forked from Automattic/sensei
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
executable file
·2087 lines (1921 loc) · 160 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*** Changelog ***
2021.08.26 - version 3.13.1
* New: Add filters to customize the My Courses and Course Completed page content [#4286](https://github.com/Automattic/sensei/pull/4286), [#4290](https://github.com/Automattic/sensei/pull/4290)
* New: Add "Find More Courses" block variation [#4293](https://github.com/Automattic/sensei/pull/4293)
* Tweak: Rename Take Course block to Course Sign Up [#4288](https://github.com/Automattic/sensei/pull/4288)
* Tweak: Update Learner Courses block styles [#4291](https://github.com/Automattic/sensei/pull/4291)
* Tweak: Clarify editor notice when adding first Sensei block or removing last Sensei block [#4276](https://github.com/Automattic/sensei/pull/4276)
* Fix: "No lessons message" on Order Lessons page when lessons exist [#4269](https://github.com/Automattic/sensei/pull/4269) 👏 @timwiel
* Fix: Custom color selector in Learner Courses block [#4289](https://github.com/Automattic/sensei/pull/4289)
2021.08.12 - version 3.13.0
* New: Course Completed Page
* Add Course Completed page [#4254](https://github.com/Automattic/sensei/pull/4254), [#4280](https://github.com/Automattic/sensei/pull/4280)
* Add Course Completed Actions block [#4266](https://github.com/Automattic/sensei/pull/4266)
* Add Course Results block [#4267](https://github.com/Automattic/sensei/pull/4267), [#4273](https://github.com/Automattic/sensei/pull/4273), [#4279](https://github.com/Automattic/sensei/pull/4279)
* Update View Results button link [#4270](https://github.com/Automattic/sensei/pull/4270)
* Add default blocks to Course Completed page [#4281](https://github.com/Automattic/sensei/pull/4281)
* Fix: Use new filter for block categories in WordPress 5.8 [#4264](https://github.com/Automattic/sensei/pull/4264)
2021.07.19 - version 3.12.0
* New: Add grid view to Learner Courses block and update list view [#4243](https://github.com/Automattic/sensei/pull/4243)
* New: PHP 8 compatibility [#4244](https://github.com/Automattic/sensei/pull/4244)
* Tweak: Don't set minimum width for course progress bar on front end [#4247](https://github.com/Automattic/sensei/pull/4247)
* Tweak: Add notice when adding first Sensei block or removing last block for a course or lesson [#4246](https://github.com/Automattic/sensei/pull/4246)
* Fix: Caching course structure order [#4326](https://github.com/Automattic/sensei/pull/4236)
* Fix: Use standard way of getting quiz ID on grading page [#4240](https://github.com/Automattic/sensei/pull/4240)
2021.06.23 - version 3.11.1
* Tweak: Update SenseiLMS.com notices integration [#4233](https://github.com/Automattic/sensei/pull/4233)
2021.05.10 - version 3.11.0
* New: Extensions Page Redesign
* Add counter to Extensions menu to display the number of available plugin updates [#4156](https://github.com/Automattic/sensei/pull/4156)
* Add missing WooCommerce.com connection notice [#4161](https://github.com/Automattic/sensei/pull/4161)
* Add extensions page structure [#4162](https://github.com/Automattic/sensei/pull/4162)
* Improve extensions page responsive styles [#4163](https://github.com/Automattic/sensei/pull/4163)
* Add filters to the Extensions page [#4164](https://github.com/Automattic/sensei/pull/4164)
* Add extensions update banner [#4167](https://github.com/Automattic/sensei/pull/4167)
* Add extension card logic [#4180](https://github.com/Automattic/sensei/pull/4180)
* Integrate extensions page with real data [#4183](https://github.com/Automattic/sensei/pull/4183)
* Tweak extensions page design [#4185](https://github.com/Automattic/sensei/pull/4185)
* Create Extensions page dynamically [#4197](https://github.com/Automattic/sensei/pull/4197)
* Minor tweaks to copy on Extensions page [#4199](https://github.com/Automattic/sensei/pull/4199)
* Add images to extensions page [#4201](https://github.com/Automattic/sensei/pull/4201)
* Add extension update endpoint [#4203](https://github.com/Automattic/sensei/pull/4203)
* Get extensions layout from SenseiLMS.com [#4204](https://github.com/Automattic/sensei/pull/4204)
* Enable updating plugins on Extensions page [#4205](https://github.com/Automattic/sensei/pull/4205)
* Add changelog links to extensions with update available [#4210](https://github.com/Automattic/sensei/pull/4210)
* Handle connecting to WooCommerce.com from Extensions page [#4213](https://github.com/Automattic/sensei/pull/4213)
* Enable installing plugins on Extensions page [#4214](https://github.com/Automattic/sensei/pull/4214)
* Handle activating / installing WooCommerce from the Extensions page [#4215](https://github.com/Automattic/sensei/pull/4215)
* Preload extensions data [#4217](https://github.com/Automattic/sensei/pull/4217)
* Simplify ExtensionActions component styles [#4219](https://github.com/Automattic/sensei/pull/4219)
* Add space between featured cards [#4221](https://github.com/Automattic/sensei/pull/4221)
* Log when extensions are installed or updated on the Extensions page [#4222](https://github.com/Automattic/sensei/pull/4222)
* Update extensions error message to be formatted [#4225](https://github.com/Automattic/sensei/pull/4225)
* New: Add Lesson Properties block [#4196](https://github.com/Automattic/sensei/pull/4196)
* Tweak: Ignore "Course Archive Image" setting when rendering featured image in Learner Courses block [#4184](https://github.com/Automattic/sensei/pull/4184)
* Tweak: Remove WooCommerce Components dependency [#4189](https://github.com/Automattic/sensei/pull/4189)
* Tweak: Deprecate experimental REST API [#4190](https://github.com/Automattic/sensei/pull/4190)
* Tweak: Filter arguments when duplicating a Sensei post [#4198](https://github.com/Automattic/sensei/pull/4198)
* Fix: Fix sporadic unit test failure [#4195](https://github.com/Automattic/sensei/pull/4195)
2021.04.14 - version 3.10.0
* New: Learner Courses block (My Courses) [#4126](https://github.com/Automattic/sensei/pull/4126)
* New: Add View Results block [#4155](https://github.com/Automattic/sensei/pull/4155)
* New: Add blocks to My Courses page on setup [#4137](https://github.com/Automattic/sensei/pull/4137)
* New: Add learner messages button block [#4134](https://github.com/Automattic/sensei/pull/4134)
* Tweak: Improve conditional content description [#4115](https://github.com/Automattic/sensei/pull/4115)
* Tweak: Print the first lesson in a prerequisite chain [#4114](https://github.com/Automattic/sensei/pull/4114)
* Tweak: Remove Gutenberg compatibility assets [#4132](https://github.com/Automattic/sensei/pull/4132)
* Tweak: Show teacher's questions only when using category questions [#4148](https://github.com/Automattic/sensei/pull/4148)
2021.03.31 - version 3.9.1
* New: Show validation in single question editor [#4087](https://github.com/Automattic/sensei/pull/4087)
* New: Log template overrides [#4113](https://github.com/Automattic/sensei/pull/4113)
* Tweak: Add input as answer when unfocusing gap fill question [#4119](https://github.com/Automattic/sensei/pull/4119)
* Tweak: Round course progress percentage to nearest integer [#4131](https://github.com/Automattic/sensei/pull/4131)
* Tweak: Add points suffix to question grade controls [#4120](https://github.com/Automattic/sensei/pull/4120)
* Tweak: Remove placeholder text from category question selector [#4144](https://github.com/Automattic/sensei/pull/4144)
* Tweak: Make invalid category question save message more descriptive [#4145](https://github.com/Automattic/sensei/pull/4145)
* Tweak: Add Sensei version to extension messages transient [#4143](https://github.com/Automattic/sensei/pull/4143)
* Fix: Enable updateSelection to prevent block crashes [#4125](https://github.com/Automattic/sensei/pull/4125)
* Fix: Create module taxonomy before cleaning data [#4128](https://github.com/Automattic/sensei/pull/4128)
* Fix: Enable legacy quiz meta boxes if the Classic Editor plugin is activated [#4147](https://github.com/Automattic/sensei/pull/4147)
* Fix: Error when manually adding course outline block [#4141](https://github.com/Automattic/sensei/pull/4141)
2021.03.25 - version 3.9.0
* New: Quiz Block
* Add Quiz and Question blocks [#3936](https://github.com/Automattic/sensei/pull/3936)
* Prepare structure store for quiz block [#3950](https://github.com/Automattic/sensei/pull/3950)
* Add quiz block structure store and sync [#3958](https://github.com/Automattic/sensei/pull/3958)
* Add Quiz block settings [#3987](https://github.com/Automattic/sensei/pull/3987)
* Normalize quiz options attribute coming from the REST API [#3996](https://github.com/Automattic/sensei/pull/3996)
* Add Quiz block to block template and ensure only one Quiz block can be added to a lesson [#3983](https://github.com/Automattic/sensei/pull/3983)
* Update block descriptions and quiz settings helper text [#4000](https://github.com/Automattic/sensei/pull/4000)
* Add existing questions modal [#4003](https://github.com/Automattic/sensei/pull/4003)
* Handle adding existing questions to quiz [#4014](https://github.com/Automattic/sensei/pull/4014)
* Add icon for quiz block [#4017](https://github.com/Automattic/sensei/pull/4017)
* Handling saving quiz [#4011](https://github.com/Automattic/sensei/pull/4011)
* Add the quiz block when the quiz is enabled for lesson [#4018](https://github.com/Automattic/sensei/pull/4018)
* Unescape question category term names in existing question modal [#4041](https://github.com/Automattic/sensei/pull/4041)
* Fix question type dropdown in existing question modal for teachers [#4040](https://github.com/Automattic/sensei/pull/4040)
* Fix resetting the "Number of Questions" quiz setting [#4037](https://github.com/Automattic/sensei/pull/4037)
* Implement saving for single question block editor [#4032](https://github.com/Automattic/sensei/pull/4032)
* Update inserter for quiz block [#4038](https://github.com/Automattic/sensei/pull/4038)
* Handle quiz status based on block presence and question count [#4033](https://github.com/Automattic/sensei/pull/4033)
* Migrate question media [#4035](https://github.com/Automattic/sensei/pull/4035), [#4064](https://github.com/Automattic/sensei/pull/4064)
* Disable block based question editor when question category is used in any quiz [#4054](https://github.com/Automattic/sensei/pull/4054)
* Fix existing questions not loading in WP 5.7 [#4069](https://github.com/Automattic/sensei/pull/4069)
* Limit "Number of Questions" setting to number of questions in quiz [#4063](https://github.com/Automattic/sensei/pull/4063)
* Fix editor undo for auto-inserted blocks & quiz block [#4074](https://github.com/Automattic/sensei/pull/4074)
* Fix existing questions modal auto-closing after block insertion [#4084](https://github.com/Automattic/sensei/pull/4084)
* Avoid overriding non-editable question [#4086](https://github.com/Automattic/sensei/pull/4086), [#4093](https://github.com/Automattic/sensei/pull/4093)
* Add quiz block validation [#4077](https://github.com/Automattic/sensei/pull/4077)
* Include category questions when calculating the upper limit of the "Number of Questions" setting [#4090](https://github.com/Automattic/sensei/pull/4090)
* Fix questions not loading for teachers [#4094](https://github.com/Automattic/sensei/pull/4094)
* Fix draft question block focus and visibility [#4091](https://github.com/Automattic/sensei/pull/4091)
* Fix error with quiz appender [#4096](https://github.com/Automattic/sensei/pull/4096), [#4098](https://github.com/Automattic/sensei/pull/4098)
* Fix page jump when clicking the quiz appender [#4100](https://github.com/Automattic/sensei/pull/4100)
* Fix minor quiz block issues [#4103](https://github.com/Automattic/sensei/pull/4103)
* Only include questions in the existing questions modal that haven't already been added to the quiz [#4109](https://github.com/Automattic/sensei/pull/4109)
* New: Question Block
* Add question type selector [#3940](https://github.com/Automattic/sensei/pull/3940)
* Add question numbering [#3941](https://github.com/Automattic/sensei/pull/3941)
* Add Single Line and Multi Line answer boxes [#3963](https://github.com/Automattic/sensei/pull/3963)
* Add Gap Fill question block [#3974](https://github.com/Automattic/sensei/pull/3974)
* Add Multiple Choice and True/False question blocks [#3967](https://github.com/Automattic/sensei/pull/3967)
* Add File Upload question block [#3975](https://github.com/Automattic/sensei/pull/3975)
* Improve question block navigation [#3976](https://github.com/Automattic/sensei/pull/3976)
* Add common Question block settings [#3979](https://github.com/Automattic/sensei/pull/3979)
* Update default answers for multiple choice question [#3992](https://github.com/Automattic/sensei/pull/3992)
* Ensure question block types are the same as the types in the question bank [#3997](https://github.com/Automattic/sensei/pull/3997)
* Remove Question Categories section from question block settings [#4008](https://github.com/Automattic/sensei/pull/4008)
* Add points assignment to question block toolbar [#3999](https://github.com/Automattic/sensei/pull/3999)
* Add shared question notice [#4001](https://github.com/Automattic/sensei/pull/4001)
* Adjust question block controls [#4012](https://github.com/Automattic/sensei/pull/4012)
* Synchronize question API and block attribute schema [#4029](https://github.com/Automattic/sensei/pull/4029)
* Minor tweaks to question blocks [#4031](https://github.com/Automattic/sensei/pull/4031)
* Add read-only question blocks [#4061](https://github.com/Automattic/sensei/pull/4061)
* Fix React warning about null `textarea` [#4070](https://github.com/Automattic/sensei/pull/4070)
* Don't add question block when it already exists (auto-draft) [#4071](https://github.com/Automattic/sensei/pull/4071)
* Changes for question type extensibility [#4066](https://github.com/Automattic/sensei/pull/4066)
* Change gap fill before/after to plain text input [#4082](https://github.com/Automattic/sensei/pull/4082)
* Update question block validation visuals [#4104](https://github.com/Automattic/sensei/pull/4104)
* New: Category Question block
* Add settings and basic UI to category question block [#4080](https://github.com/Automattic/sensei/pull/4080)
* Remove category question feature flag [#4088](https://github.com/Automattic/sensei/pull/4088)
* New: REST API
* Add API endpoint for fetching a quiz [#3959](https://github.com/Automattic/sensei/pull/3959)
* Expand multiple_question post type in quiz REST API [#3966](https://github.com/Automattic/sensei/pull/3966)
* Add API endpoints for questions [#3993](https://github.com/Automattic/sensei/pull/3993)
* Implement saving quiz and questions via the REST API [#3972](https://github.com/Automattic/sensei/pull/3972)
* Retrieve individual question options from REST API [#4013](https://github.com/Automattic/sensei/pull/4013)
* Add editable flag to question REST API responses [#4036](https://github.com/Automattic/sensei/pull/4036)
* Add lesson quiz question protection to REST API [#4039](https://github.com/Automattic/sensei/pull/4039)
* Add multiple/category questions to REST API [#4072](https://github.com/Automattic/sensei/pull/4072)
* New: Add filter to allow for changing uploaded file prefix [#3986](https://github.com/Automattic/sensei/pull/3986)
* New: Display enrollment provider exceptions in the logs [#3989](https://github.com/Automattic/sensei/pull/3989)
* New: Add filter to disable block based quiz editor [#4009](https://github.com/Automattic/sensei/pull/4009)
* New: Log the quiz editor being used on a site [#4022](https://github.com/Automattic/sensei/pull/4022)
* New: Log legacy flags in system usage tracking [#4056](https://github.com/Automattic/sensei/pull/4056)
* New: Log sensei_plugin_update event on plugin update [#4058](https://github.com/Automattic/sensei/pull/4058)
* New: Add single question block editor [#4025](https://github.com/Automattic/sensei/pull/4025)
* New: Filter the block templates [#4026](https://github.com/Automattic/sensei/pull/4026)
* New: Only use block based editor in question bank if enabled [#4055](https://github.com/Automattic/sensei/pull/4055)
* New: Fix previous questions that have changed teachers [#4030](https://github.com/Automattic/sensei/pull/4030)
* Tweak: Generalize lesson block inserters [#3952](https://github.com/Automattic/sensei/pull/3952)
* Tweak: Clean up course outline hooks [#3953](https://github.com/Automattic/sensei/pull/3953)
* Tweak: Flatten structure for course outline schema references in the REST API [#4015](https://github.com/Automattic/sensei/pull/4015)
* Tweak: Change question author when possible on teacher change [#4024](https://github.com/Automattic/sensei/pull/4024)
* Tweak: Use block button styles for quiz actions [#4023](https://github.com/Automattic/sensei/pull/4023)
* Tweak: Allow draft questions if they are not in a quiz [#4076](https://github.com/Automattic/sensei/pull/4076)
* Tweak: Update lessons in sample course [#4083](https://github.com/Automattic/sensei/pull/4083)
* Tweak: Preload course and quiz structure [#3995](https://github.com/Automattic/sensei/pull/3995)
* Tweak: Remove abandoned `multiple_question` posts [#4060](https://github.com/Automattic/sensei/pull/4060)
* Tweak: Add Sensei blocks to the top of the block inserter [#4112](https://github.com/Automattic/sensei/pull/4112)
* Tweak: Prevent enrolment calculations on each update [#4121](https://github.com/Automattic/sensei/pull/4121)
* Fix: Infinite loop when saving course structure [#4027](https://github.com/Automattic/sensei/pull/4027)
* Fix: Fatal error when `post_password_required` is called early [#4006](https://github.com/Automattic/sensei/pull/4006)
* Fix: Prevent teachers from being able to add other teachers' questions [#4085](https://github.com/Automattic/sensei/pull/4085)
* Fix: Don't show breadcrumb to teachers on Grading page for courses or lessons they don't own [#4085](https://github.com/Automattic/sensei/pull/4085)
* Fix: Check if the user can edit a course before adding a lesson to it [#4085](https://github.com/Automattic/sensei/pull/4085)
* Fix: Validate question owner before adding a question [#4085](https://github.com/Automattic/sensei/pull/4085)
* Fix: Only show courses belonging to the current teacher on the Analysis page [#4085](https://github.com/Automattic/sensei/pull/4085)
* Fix: Quiz nonce checks [#4085](https://github.com/Automattic/sensei/pull/4085)
* Fix: Email not sending when a learner starts a course [#4089](https://github.com/Automattic/sensei/pull/4089)
2021.02.17 - version 3.8.1
* Fix: Fix lesson module metabox saving with Yoast installed [#3982](https://github.com/Automattic/sensei/pull/3982)
* Fix: Fix course lessons in modules not appearing on analysis screen [#3971](https://github.com/Automattic/sensei/pull/3971)
* Fix: Allow template field to be edited by teachers [#3985](https://github.com/Automattic/sensei/pull/3985)
* Fix: Add post type and access checks to main view on learner management [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
* Fix: Check for edit access for course in bulk learner management [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
* Fix: Make sure users who aren't participants can't see private messages [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
* Fix: Escape HTML in gap fill editor preview [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
* Fix: Hide REST API lesson content and remove lesson and question feeds [#3984](https://github.com/Automattic/sensei/pull/3984)
2021.02.09 - version 3.8.0
* New: Conditional Content block
* Add Restricted Course Content block [#3849](https://github.com/Automattic/sensei/pull/3849)
* Rename Restricted Content block to Conditional Content [#3939](https://github.com/Automattic/sensei/pull/3939)
* New: Lesson Actions block
* Isolate course blocks [#3885](https://github.com/Automattic/sensei/pull/3885)
* Add basic setup for lesson actions block [#3886](https://github.com/Automattic/sensei/pull/3886)
* Add Lesson Actions block settings [#3887](https://github.com/Automattic/sensei/pull/3887)
* Fix button alignment in lesson actions block [#3895](https://github.com/Automattic/sensei/pull/3895)
* Style selected state of buttons in editor for the lesson actions block [#3903](https://github.com/Automattic/sensei/pull/3903)
* Fix issues with selecting different buttons in the lesson actions block [#3907](https://github.com/Automattic/sensei/pull/3907)
* Add Sensei LMS block category for lessons [#3908](https://github.com/Automattic/sensei/pull/3908)
* Add `View quiz` button to lesson actions block [#3910](https://github.com/Automattic/sensei/pull/3910)
* Fix alignment of buttons in Lesson Actions block [#3913](https://github.com/Automattic/sensei/pull/3913)
* Disable Complete Lesson button in editor for an in-progress lesson if passmark must be achieved [#3914](https://github.com/Automattic/sensei/pull/3914)
* Add shared block foundation [#3917](https://github.com/Automattic/sensei/pull/3917)
* Display Lesson Actions block in the frontend [#3929](https://github.com/Automattic/sensei/pull/3929)
* Fix opacity of disabled buttons in Lesson Actions block [#3932](https://github.com/Automattic/sensei/pull/3932)
* Handle lesson hooks for lessons which contain a block [#3935](https://github.com/Automattic/sensei/pull/3935)
* Add block template to the lesson editor [#3937](https://github.com/Automattic/sensei/pull/3937)
* Fully hide inactive buttons in Lesson Actions block and add state separator [#3943](https://github.com/Automattic/sensei/pull/3943)
* Update block descriptions for Lesson Actions blocks [#3944](https://github.com/Automattic/sensei/pull/3944)
* Show View Quiz button in Lesson Actions block even after quiz is completed [#3946](https://github.com/Automattic/sensei/pull/3946)
* Update Reset Lesson block description [#3948](https://github.com/Automattic/sensei/pull/3948)
* Use quiz state to determine if complete lesson is allowed [#3949](https://github.com/Automattic/sensei/pull/3949)
* Fix: Don't initialize lesson blocks if they don't exist on the page [#3960](https://github.com/Automattic/sensei/pull/3960)
* Fix Lesson Actions styles [#3961](https://github.com/Automattic/sensei/pull/3961)
* New: Add toolbar dropdown component for use with blocks [#3904](https://github.com/Automattic/sensei/pull/3904)
* New: Log when lessons are updated [#3920](https://github.com/Automattic/sensei/pull/3920)
* Tweak: Use Sensei_Notices in Take Course block [#3901](https://github.com/Automattic/sensei/pull/3901)
* Tweak: Update question field names [#3905](https://github.com/Automattic/sensei/pull/3905)
* Tweak: Update text in Lesson Actions and Restricted Course Content blocks [#3927](https://github.com/Automattic/sensei/pull/3927)
* Tweak: Update blocks architecture [#3928](https://github.com/Automattic/sensei/pull/3928)
* Tweak: Add icons for Conditional Content and Lesson Actions blocks [#3954](https://github.com/Automattic/sensei/pull/3954)
* Fix: Enable translating blocks [#3919](https://github.com/Automattic/sensei/pull/3919)
* Fix: Do not allow duplicate notices to be displayed [#3923](https://github.com/Automattic/sensei/pull/3923)
* Fix: Fix lesson order being changed when saving lesson [#3951](https://github.com/Automattic/sensei/pull/3951) 👏 @hansschuijff
* Fix: Fix block translations [#3962](https://github.com/Automattic/sensei/pull/3962)
2021.01.21 - version 3.7.0
* New: Add filter to only allow some mime types to quiz file upload answers [#3828](https://github.com/Automattic/sensei/pull/3828)
* New: Remove REST API Test Harness code [#3475](https://github.com/Automattic/sensei/pull/3475)
* New: Show admin notice if Sensei hasn't been built correctly [#3775](https://github.com/Automattic/sensei/pull/3775) 👏 @merkushin
* New: Log course completion rate [#3777](https://github.com/Automattic/sensei/pull/3777)
* New: Add Remove Progress button in Learner Management for lessons [#3857](https://github.com/Automattic/sensei/pull/3857)
* New: Add basic integrations with Site Health [#3834](https://github.com/Automattic/sensei/pull/3834)
* New: Add Tools page and deprecate Data Updates page [#3842](https://github.com/Automattic/sensei/pull/3842)
* New: Add course enrollment debugger to Tools menu [#3843](https://github.com/Automattic/sensei/pull/3843)
* New: Add hook to filter meta keys when duplicating courses [#3830](https://github.com/Automattic/sensei/pull/3830)
* New: Add comment table indexes on upgrade [#3861](https://github.com/Automattic/sensei/pull/3861)
* New: Add notice to install WooCommerce Paid Courses [#3876](https://github.com/Automattic/sensei/pull/3876), [#3884](https://github.com/Automattic/sensei/pull/3884)
* Tweak: Enable translating more Sensei content using Polylang and WPML [#3840](https://github.com/Automattic/sensei/pull/3840)
* Tweak: Ensure all data is removed when uninstalling the plugin [#3864](https://github.com/Automattic/sensei/pull/3864)
* Tweak: Minor tool fixes and additions [#3896](https://github.com/Automattic/sensei/pull/3896)
* Tweak: Rename `Grading Notes` to `Answer Feedback` in grading tool [#3897](https://github.com/Automattic/sensei/pull/3897)
* Fix: Fix empty Courses page on multi-site install [#3827](https://github.com/Automattic/sensei/pull/3827)
* Fix: Fix linter issues [#3833](https://github.com/Automattic/sensei/pull/3833)
* Fix: Fix some columns not showing in courses, lessons and questions lists [#3273](https://github.com/Automattic/sensei/pull/3273) 👏 @hansschuijff
* Fix: Prevent double form submission [#3838](https://github.com/Automattic/sensei/pull/3838)
* Fix: Fix teacher/admin module slug conflicts in course outline block [#3846](https://github.com/Automattic/sensei/pull/3846)
* Fix: Fix some colors not being applied on front end for course blocks [#3844](https://github.com/Automattic/sensei/pull/3844)
* Fix: Fix teacher change issue on saving block editor meta boxes [#3829](https://github.com/Automattic/sensei/pull/3829)
* Fix: Remove duplicate progress entries after inserting a new one [#3855](https://github.com/Automattic/sensei/pull/3855)
* Fix: Fix module renaming in course outline block [#3862](https://github.com/Automattic/sensei/pull/3862)
* Fix: Teachers should only be able to access their own courses [#3873](https://github.com/Automattic/sensei/pull/3873)
* Fix: Fix order that lessons in a module are retrieved in [#3879](https://github.com/Automattic/sensei/pull/3879)
* Fix: Always use numeric grade when grading manually [#3755](https://github.com/Automattic/sensei/pull/3755)
* Fix: Hide Modules metabox after changing course teacher to prevent module conflicts [#3869](https://github.com/Automattic/sensei/pull/3869)
2021.01.06 - version 3.6.1
* Fix: Fix not being able to save course when Yoast SEO is activated [#3866](https://github.com/Automattic/sensei/pull/3866)
* Fix: Ensure exit survey is displayed after deactivating Sensei with WooCommerce Paid Courses [#3871](https://github.com/Automattic/sensei/pull/3871)
2020.12.10 - version 3.6.0
* New: Course Outline block
* Add "Edit lesson" link to lesson block settings [#3637](https://github.com/Automattic/sensei/pull/3637)
* Add "Not Started" option to module block status setting [#3678](https://github.com/Automattic/sensei/pull/3678)
* Add Edit Lesson button to course outline block toolbar [#3708](https://github.com/Automattic/sensei/pull/3708)
* Add ability to expand/collapse modules [#3628](https://github.com/Automattic/sensei/pull/3628)
* Add chevron to lesson block [#3679](https://github.com/Automattic/sensei/pull/3679)
* Add course outline block icons [#3630](https://github.com/Automattic/sensei/pull/3630)
* Add course outline empty state [#3594](https://github.com/Automattic/sensei/pull/3594)
* Add course structure API integration [#3600](https://github.com/Automattic/sensei/pull/3600)
* Add endpoints for getting and saving course structure [#3593](https://github.com/Automattic/sensei/pull/3593)
* Add font size setting to lesson block [#3634](https://github.com/Automattic/sensei/pull/3634)
* Add lesson block color customization [#3620](https://github.com/Automattic/sensei/pull/3620)
* Add lesson block status setting [#3643](https://github.com/Automattic/sensei/pull/3643)
* Add module block status setting [#3613](https://github.com/Automattic/sensei/pull/3613)
* Add outline and module block styles [#3650](https://github.com/Automattic/sensei/pull/3650)
* Add saving of course structure [#3602](https://github.com/Automattic/sensei/pull/3602)
* Add setting to course outline block that disables module animation [#3641](https://github.com/Automattic/sensei/pull/3641)
* Add support for course outline block to importer [#3698](https://github.com/Automattic/sensei/pull/3698)
* Add support for inner block attributes [#3615](https://github.com/Automattic/sensei/pull/3615)
* Add transform that enables grouping selected lessons into a module [#3651](https://github.com/Automattic/sensei/pull/3651)
* Allow for different context when getting course structure [#3621](https://github.com/Automattic/sensei/pull/3621)
* Allow line wrapping for module, lesson titles [#3692](https://github.com/Automattic/sensei/pull/3692)
* Create quiz when saving new lesson in course outline block [#3629](https://github.com/Automattic/sensei/pull/3629)
* Display all lessons and modules in preview mode in the outline block [#3699](https://github.com/Automattic/sensei/pull/3699)
* Don't show Edit Lesson link in toolbar for empty lessons [#3720](https://github.com/Automattic/sensei/pull/3720)
* Escape outline block HTML [#3681](https://github.com/Automattic/sensei/pull/3681)
* Extract inner block attributes on server-side [#3625](https://github.com/Automattic/sensei/pull/3625)
* Fix Course Outline block for WordPress 5.3 [#3623](https://github.com/Automattic/sensei/pull/3623)
* Fix PHP notice when saving new lesson in course outline block [#3660](https://github.com/Automattic/sensei/pull/3660)
* Fix SVG usage and replace collapsible module icon with SVG image [#3683](https://github.com/Automattic/sensei/pull/3683)
* Fix lesson link style [#3687](https://github.com/Automattic/sensei/pull/3687)
* Fix module and lesson text colors in course outline block on WordPress 5.4 [#3799](https://github.com/Automattic/sensei/pull/3799)
* Fix module and lesson title styles [#3797](https://github.com/Automattic/sensei/pull/3797)
* Fix module status on frontend [#3644](https://github.com/Automattic/sensei/pull/3644)
* Fix placeholder icon and buttons for WordPress 5.3 [#3669](https://github.com/Automattic/sensei/pull/3669)
* Fix some issues with saving the course structure [#3648](https://github.com/Automattic/sensei/pull/3648)
* Refactor outline block files [#3697](https://github.com/Automattic/sensei/pull/3697)
* Refine display of post status in the lesson block [#3680](https://github.com/Automattic/sensei/pull/3680)
* Remove inserter from module block and adjust how empty lesson block is added [#3684](https://github.com/Automattic/sensei/pull/3684)
* Remove module animation setting and replace with collapsible modules setting [#3675](https://github.com/Automattic/sensei/pull/3675)
* Set a default value for `outlineClassName` in the module block [#3806](https://github.com/Automattic/sensei/pull/3806)
* Show draft status in lesson block [#3653](https://github.com/Automattic/sensei/pull/3653)
* Standardize module style and border settings in course outline and module blocks [#3749](https://github.com/Automattic/sensei/pull/3749)
* Update lesson block status setting [#3663](https://github.com/Automattic/sensei/pull/3663)
* Update placeholder text for course outline block module description, and course and lesson title [#3642](https://github.com/Automattic/sensei/pull/3642)
* Update text in block settings and reorder the panels in the lesson block [#3657](https://github.com/Automattic/sensei/pull/3657)
* Use block.json for metadata shared between JS and PHP [#3635](https://github.com/Automattic/sensei/pull/3635)
* Use outline block style if no style is set in the module block [#3803](https://github.com/Automattic/sensei/pull/3803)
* Add a message for course outline block without published content [#3721](https://github.com/Automattic/sensei/pull/3721)
* Add course outline basic setup [#3560](https://github.com/Automattic/sensei/pull/3560)
* Add lesson preview badge to the course outline [#3732](https://github.com/Automattic/sensei/pull/3732)
* Base for course outline content [#3584](https://github.com/Automattic/sensei/pull/3584)
* Change course outline styling to distinguish lessons that belong to a module and lessons that do not [#3726](https://github.com/Automattic/sensei/pull/3726)
* Change outline block error messages [#3707](https://github.com/Automattic/sensei/pull/3707)
* Focus the module title input when adding a new module [#3676](https://github.com/Automattic/sensei/pull/3676)
* Hide module description on the front end when there is no description [#3710](https://github.com/Automattic/sensei/pull/3710)
* Hide modules and lessons meta boxes in course editor when outline block is present [#3649](https://github.com/Automattic/sensei/pull/3649)
* Make it easier to select the course outline block in the editor [#3756](https://github.com/Automattic/sensei/pull/3756)
* Refactor modules collapsing script to use domReady [#3722](https://github.com/Automattic/sensei/pull/3722)
* Add module link to the course outline block when the module has a description [#3723](https://github.com/Automattic/sensei/pull/3723)
* Fix collapsible modules not working when animation is disabled [#3665](https://github.com/Automattic/sensei/pull/3665)
* Improve animation for expanding and collapsing modules [#3646](https://github.com/Automattic/sensei/pull/3646)
* Add support for default theme colors to Course Outline block [#3741](https://github.com/Automattic/sensei/pull/3741)
* Add support for default theme colors to the module border color setting [#3805](https://github.com/Automattic/sensei/pull/3805)
* Make border rules for "Minimal" module style less specific to allow overrides [#3802](https://github.com/Automattic/sensei/pull/3802)
* Fix race condition when saving [#3800](https://github.com/Automattic/sensei/pull/3800)
* Fix how "Edit Lesson" link displays in WordPress 5.4 [#3816](https://github.com/Automattic/sensei/pull/3816)
* Fix undo in module block [#3820](https://github.com/Automattic/sensei/pull/3820)
* New: Take Course block
* Add Take Course block [#3703](https://github.com/Automattic/sensei/pull/3703)
* Add `wp-block-button` class to button block [#3795](https://github.com/Automattic/sensei/pull/3795)
* Add render callback filter for Take Course block [#3762](https://github.com/Automattic/sensei/pull/3762)
* Fix issue with cleared alignment in Take Course block [#3764](https://github.com/Automattic/sensei/pull/3764)
* Minor improvements to Take Course block [#3761](https://github.com/Automattic/sensei/pull/3761)
* Fix error being logged to the console for the Take Course block [#3770](https://github.com/Automattic/sensei/pull/3770)
* New: Contact Teacher block
* Add Contact Teacher block [#3702](https://github.com/Automattic/sensei/pull/3702)
* Move private message form to Contact Teacher block [#3717](https://github.com/Automattic/sensei/pull/3717)
* Change Contact Teacher button default style [#3787](https://github.com/Automattic/sensei/pull/3787)
* New: Course Progress block
* Introduce course progress block [#3689](https://github.com/Automattic/sensei/pull/3689)
* Add course progress block color settings [#3695](https://github.com/Automattic/sensei/pull/3695)
* Add progress bar border radius and height settings to course progress block [#3733](https://github.com/Automattic/sensei/pull/3733)
* Fix alignment of progress bar settings in WordPress 5.4 [#3807](https://github.com/Automattic/sensei/pull/3807)
* Integrate course progress in the frontend [#3731](https://github.com/Automattic/sensei/pull/3731)
* Integrate module and lesson status with course progress block [#3712](https://github.com/Automattic/sensei/pull/3712)
* Refinements to course progress block [#3735](https://github.com/Automattic/sensei/pull/3735)
* Update the description for the course progress block [#3730](https://github.com/Automattic/sensei/pull/3730)
* Update default border radius in the course progress block [#3781](https://github.com/Automattic/sensei/pull/3781)
* New: Add base button block [#3686](https://github.com/Automattic/sensei/pull/3686)
* New: Add block icons [#3750](https://github.com/Automattic/sensei/pull/3750)
* New: Add filter to disable single course template [#3706](https://github.com/Automattic/sensei/pull/3706)
* New: Enforce minimum PHP version of 7.0 [#3592](https://github.com/Automattic/sensei/pull/3592)
* New: Ensure sensei_course_start hook works without custom template for single course [#3765](https://github.com/Automattic/sensei/pull/3765)
* New: Handle block based and legacy single course frontend rendering [#3647](https://github.com/Automattic/sensei/pull/3647)
* New: Improve base button extendability [#3748](https://github.com/Automattic/sensei/pull/3748)
* New: Remove underline from `ins` element in button block [#3780](https://github.com/Automattic/sensei/pull/3780)
* New: Tweak block descriptions [#3792](https://github.com/Automattic/sensei/pull/3792)
* New: Update block category icon [#3798](https://github.com/Automattic/sensei/pull/3798)
* New: Add block checks to the `course_update` event log [#3727](https://github.com/Automattic/sensei/pull/3727)
* New: Add filter for customizing block arguments [#3782](https://github.com/Automattic/sensei/pull/3782)
* New: Add new blocks to the course block template [#3734](https://github.com/Automattic/sensei/pull/3734)
* New: Add spacing between course blocks [#3757](https://github.com/Automattic/sensei/pull/3757)
* New: Fix message alignment in Twenty Twenty theme [#3766](https://github.com/Automattic/sensei/pull/3766)
* New: Hide course video meta box for courses using Sensei blocks [#3779](https://github.com/Automattic/sensei/pull/3779)
* New: Log when a course is updated [#3652](https://github.com/Automattic/sensei/pull/3652)
* New: Move Contact Teacher below Take Course in the course block template [#3804](https://github.com/Automattic/sensei/pull/3804)
* New: Remove optional templates feature flag [#3791](https://github.com/Automattic/sensei/pull/3791)
* New: Remove the temporary feature flag for the course blocks [#3754](https://github.com/Automattic/sensei/pull/3754)
* New: Standardize button styles [#3788](https://github.com/Automattic/sensei/pull/3788)
* New: Update alignment component used in button blocks [#3783](https://github.com/Automattic/sensei/pull/3783)
* New: Add validation to post object before logging course update event [#3709](https://github.com/Automattic/sensei/pull/3709)
* New: Ensure Lessons and Modules meta boxes are displayed for legacy courses [#3661](https://github.com/Automattic/sensei/pull/3661)
* New: Add isPreview flag to button blocks [#3811](https://github.com/Automattic/sensei/pull/3811)
* New: Don't show "Course Video" metabox when any Sensei block is added to the course page [#3818](https://github.com/Automattic/sensei/pull/3818)
* New: Use Sensei logo in block inserter [#3823](https://github.com/Automattic/sensei/pull/3823)
* Tweak: Center text within Setup Wizard buttons [#3575](https://github.com/Automattic/sensei/pull/3575)
* Tweak: Make detail fields required on exit survey [#3786](https://github.com/Automattic/sensei/pull/3786)
* Tweak: Update sample course to include blocks [#3808](https://github.com/Automattic/sensei/pull/3808), [#3831](https://github.com/Automattic/sensei/pull/3831)
* Tweak: Refactor "Order Lessons" page to use the Sensei_Course_Structure class [#3664](https://github.com/Automattic/sensei/pull/3664)
* Tweak: Refactor "Order Modules" page to use the Sensei_Course_Structure class [#3672](https://github.com/Automattic/sensei/pull/3672)
* Fix: Ensure analysis export works with RTL languages [#3751](https://github.com/Automattic/sensei/pull/3751)
* Fix: Ensure learners who have already viewed a quiz see the latest updates the next time they view it [#2887](https://github.com/Automattic/sensei/pull/2887) 👏 @JuanchoPestana
* Fix: Remove wrapper elements from templates [#3772](https://github.com/Automattic/sensei/pull/3772)
* Fix: Strip HTML from plugin installation error message [#3753](https://github.com/Automattic/sensei/pull/3753)
* Fix: Fix incorrect rounding of maximum file size for file upload questions [#3673](https://github.com/Automattic/sensei/pull/3673)
2020.10.29 - version 3.5.3
* Fix: Visibility of quiz passmark percentage field [#3715](https://github.com/Automattic/sensei/pull/3715)
* Fix: PHP notices on taxonomy pages for unsupported themes [#3704](https://github.com/Automattic/sensei/pull/3704)
* New: Exit survey when the plugin is deactivated [#3729](https://github.com/Automattic/sensei/pull/3729)
2020.09.30 - version 3.5.2
* Fix: Fix course being duplicated when lesson has no quiz and teacher is updated [#3654](https://github.com/Automattic/sensei/pull/3654)
* Fix: Fix resetting a learner's lesson progress removes learner from list [#3626](https://github.com/Automattic/sensei/pull/3626)
* Fix: Target the correct element when resetting input fields in quiz questions [#3604](https://github.com/Automattic/sensei/pull/3604)
* Fix: Close unordered list element in sensei_course_categories shortcode [#3622](https://github.com/Automattic/sensei/pull/3622)
* Fix: Fix PHP notice when viewing course category page on unsupported themes [#3608](https://github.com/Automattic/sensei/pull/3608)
* Fix: Multiple choice question is correct only when all right answers are checked [#3617](https://github.com/Automattic/sensei/pull/3617)
* Fix: Fix fatal error on activating Discount Rules for WooCommerce plugin [#3616](https://github.com/Automattic/sensei/pull/3616)
* Fix: Don't overwrite lesson meta with defaults on update [#3589](https://github.com/Automattic/sensei/pull/3589)
* Fix: Fix deprecated function call [#3633](https://github.com/Automattic/sensei/pull/3633)
* Fix: Exclude right/wrong prefix in exported answers' escaped values [#3640](https://github.com/Automattic/sensei/pull/3640)
* Fix: Fix quiz settings [#3632](https://github.com/Automattic/sensei/pull/3632)
* New: Include category in heading for sensei_courses shortcode when filtering by category [#3627](https://github.com/Automattic/sensei/pull/3627)
* New: Use archive-lesson template on lesson archive page [#3614](https://github.com/Automattic/sensei/pull/3614)
* New: Add filter login required [#3631](https://github.com/Automattic/sensei/pull/3631)
* New: Sort course filter on Lessons page in alphabetical order [#3605](https://github.com/Automattic/sensei/pull/3605)
* New: Show scheduled lessons in Prerequisite dropdown [#3609](https://github.com/Automattic/sensei/pull/3609)
2020.09.10 - version 3.5.1
* Tweak: Update usage tracking for sample courses
* Add sample_course property to publish event [#3596](https://github.com/Automattic/sensei/pull/3596)
* Include flag for sample data on import events [#3588](https://github.com/Automattic/sensei/pull/3588)
* Tweak: Only add "first" and "last" CSS classes for grid layouts on course archive page [#3467](https://github.com/Automattic/sensei/pull/3467)
2020.08.27 - version 3.5.0
* New: Exporter
* Add error handling to exporter [#3541](https://github.com/Automattic/sensei/pull/3541)
* Export multiple choice answers in correct order [#3558](https://github.com/Automattic/sensei/pull/3558)
* Fix "Randomise answer order" checkbox being exported incorrectly [#3550](https://github.com/Automattic/sensei/pull/3550)
* Fix incorrect handling of media when exporting questions [#3551](https://github.com/Automattic/sensei/pull/3551)
* Add content types to export page [#3412](https://github.com/Automattic/sensei/pull/3412)
* Add export page [#3409](https://github.com/Automattic/sensei/pull/3409)
* Add exporter REST API and job [#3442](https://github.com/Automattic/sensei/pull/3442)
* Add progress and results pages [#3413](https://github.com/Automattic/sensei/pull/3413)
* Change export progress Cancel link to button [#3516](https://github.com/Automattic/sensei/pull/3516)
* Export courses CSV [#3462](https://github.com/Automattic/sensei/pull/3462)
* Export lessons CSV [#3513](https://github.com/Automattic/sensei/pull/3513)
* Export list of lessons in courses CSV and remove Course column from lessons CSV [#3531](https://github.com/Automattic/sensei/pull/3531)
* Export questions CSV [#3506](https://github.com/Automattic/sensei/pull/3506)
* Export the correct order when lessons belong to modules [#3537](https://github.com/Automattic/sensei/pull/3537)
* Fix reordering of checkboxes in export page on Safari [#3518](https://github.com/Automattic/sensei/pull/3518)
* Log when an export job completes [#3526](https://github.com/Automattic/sensei/pull/3526)
* Log when the Export submenu is clicked [#3528](https://github.com/Automattic/sensei/pull/3528)
* Log when users click the Continue button in exporter [#3527](https://github.com/Automattic/sensei/pull/3527)
* Make the error more descriptive when the attachment fetch request fails [#3559](https://github.com/Automattic/sensei/pull/3559)
* Merge data port model with import model [#3521](https://github.com/Automattic/sensei/pull/3521)
* Package exported CSVs into a ZIP file when possible [#3519](https://github.com/Automattic/sensei/pull/3519)
* Remove data port task clean_up methods [#3525](https://github.com/Automattic/sensei/pull/3525)
* Reverse the exported value of course notifications [#3543](https://github.com/Automattic/sensei/pull/3543)
* Update copy used in exporter [#3529](https://github.com/Automattic/sensei/pull/3529)
* Fixes: Importer
* Run import job batches in polling requests [#3455](https://github.com/Automattic/sensei/pull/3455)
* Use Lessons column in courses CSV to associate courses with lessons when importing [#3536](https://github.com/Automattic/sensei/pull/3536)
* Fix division by zero when there are no associated import tasks [#3557](https://github.com/Automattic/sensei/pull/3557)
* Fix duplicate content sometimes being imported [#3538](https://github.com/Automattic/sensei/pull/3538)
* Fix: Error in setup wizard when navigating to a previous step [#3533](https://github.com/Automattic/sensei/pull/3533)
* New: Add sample course installation to the Setup Wizard [#3507](https://github.com/Automattic/sensei/pull/3507)
* Tweak: Redirect to sample course after importing it [#3545](https://github.com/Automattic/sensei/pull/3545)
* New: Use preloading for initial requests in importer and setup wizard [#3446](https://github.com/Automattic/sensei/pull/3446)
* Tweak: Show courses with any status in Course Prerequisite dropdown [#3555](https://github.com/Automattic/sensei/pull/3555)
2020.08.11 - version 3.4.1
* Fix: Question editor compatibility with WordPress 5.5 [#3510](https://github.com/Automattic/sensei/pull/3510)
* Fix: Trigger setting updated events only when changed [#3503](https://github.com/Automattic/sensei/pull/3503)
2020.08.06 - version 3.4.0
* New: Remove / Restore Enrollments
* Add meta handler for removing and restoring a learner's enrollment [#3402](https://github.com/Automattic/sensei/pull/3402)
* Change learner management actions from buttons to links [#3404](https://github.com/Automattic/sensei/pull/3404)
* Implement enrollment actions in Learner Management [#3410](https://github.com/Automattic/sensei/pull/3410)
* Update text in confirmation dialogs when removing or restoring enrollments [#3456](https://github.com/Automattic/sensei/pull/3456)
* Vertically align column data in Learner Management tables [#3476](https://github.com/Automattic/sensei/pull/3476)
* Add the ability to remove and restore enrollments in bulk learner management [#3473](https://github.com/Automattic/sensei/pull/3473)
* Update learner management enrollment notices to be more generic [#3466](https://github.com/Automattic/sensei/pull/3466)
* Log enrollment and progress actions in Learner Management [#3465](https://github.com/Automattic/sensei/pull/3465)
2020.07.30 - version 3.3.1
* Fix: Setup wizard and importer in WordPress 5.0 - 5.3 [#3482](https://github.com/Automattic/sensei/pull/3482)
2020.07.23 - version 3.3.0
* New: Importer
* Add byte order mark removal [#3365](https://github.com/Automattic/sensei/pull/3365)
* Add delimiter detection [#3364](https://github.com/Automattic/sensei/pull/3364)
* Add import attachments validation [#3358](https://github.com/Automattic/sensei/pull/3358)
* Add "Import content" option to the setup wizard [#3340](https://github.com/Automattic/sensei/pull/3340), [#3350](https://github.com/Automattic/sensei/pull/3350)
* Add passmark range validation [#3342](https://github.com/Automattic/sensei/pull/3342)
* Add title and link to the import logs [#3403](https://github.com/Automattic/sensei/pull/3403)
* Display importer failures and partial imports in their own sections on the Done page [#3379](https://github.com/Automattic/sensei/pull/3379)
* Hide import counters when nothing is imported [#3396](https://github.com/Automattic/sensei/pull/3396)
* Log when Sensei LMS > Import is clicked [#3348](https://github.com/Automattic/sensei/pull/3348)
* Log when the Continue button is clicked on the Import Content page [#3366](https://github.com/Automattic/sensei/pull/3366)
* Tweaks to importer Done step [#3407](https://github.com/Automattic/sensei/pull/3407)
* Add Import base UI [#3191](https://github.com/Automattic/sensei/pull/3191)
* Add a class to read a CSV file [#3256](https://github.com/Automattic/sensei/pull/3256)
* Add a class which manages data port jobs [#3107](https://github.com/Automattic/sensei/pull/3107)
* Add base data port model class and foundation for questions model [#3259](https://github.com/Automattic/sensei/pull/3259)
* Add create user utility [#3221](https://github.com/Automattic/sensei/pull/3221)
* Add data port base class [#3099](https://github.com/Automattic/sensei/pull/3099)
* Add data port logs REST API endpoint [#3325](https://github.com/Automattic/sensei/pull/3325)
* Add documentation link to first step of importer [#3452](https://github.com/Automattic/sensei/pull/3452)
* Add endpoint to start a data port job [#3213](https://github.com/Automattic/sensei/pull/3213)
* Add garbage collection to data port manager [#3242](https://github.com/Automattic/sensei/pull/3242)
* Add importer UI data manager [#3306](https://github.com/Automattic/sensei/pull/3306)
* Add importer done page [#3305](https://github.com/Automattic/sensei/pull/3305)
* Add importer progress step [#3315](https://github.com/Automattic/sensei/pull/3315)
* Add page for uploading CSV import files [#3211](https://github.com/Automattic/sensei/pull/3211)
* Add results to import job [#3328](https://github.com/Automattic/sensei/pull/3328)
* Add sample data for importer [#3450](https://github.com/Automattic/sensei/pull/3450)
* Add string utilities for data port [#3289](https://github.com/Automattic/sensei/pull/3289)
* Add support for translating strings in JavaScript files in Importer [#3319](https://github.com/Automattic/sensei/pull/3319)
* Add utilities to add an attachment to a post [#3286](https://github.com/Automattic/sensei/pull/3286)
* Add warnings in cases where the email will be ignored [#3451](https://github.com/Automattic/sensei/pull/3451)
* Adjust Import submenu position [#3408](https://github.com/Automattic/sensei/pull/3408)
* Check post type when translating import ID [#3444](https://github.com/Automattic/sensei/pull/3444)
* Fix CSS for upload button [#3243](https://github.com/Automattic/sensei/pull/3243)
* Fix more issues with question import and deal with empty categories [#3391](https://github.com/Automattic/sensei/pull/3391)
* Fix passmark issues [#3432](https://github.com/Automattic/sensei/pull/3432)
* Fix question import issues [#3387](https://github.com/Automattic/sensei/pull/3387)
* Implement course import task [#3247](https://github.com/Automattic/sensei/pull/3247)
* Implement question import task [#3281](https://github.com/Automattic/sensei/pull/3281)
* Add helper to allow for warnings during import [#3351](https://github.com/Automattic/sensei/pull/3351)
* Add taxonomy utility [#3225](https://github.com/Automattic/sensei/pull/3225)
* Attempt to convert encoding to UTF-8 [#3346](https://github.com/Automattic/sensei/pull/3346)
* Cast boolean-like strings to boolean [#3341](https://github.com/Automattic/sensei/pull/3341)
* Delete existing files immediately on upload attempt [#3222](https://github.com/Automattic/sensei/pull/3222)
* Delete uploaded files [#3336](https://github.com/Automattic/sensei/pull/3336)
* Fix delete icon shrinking with long filenames [#3374](https://github.com/Automattic/sensei/pull/3374)
* Fix reducer mutation [#3343](https://github.com/Automattic/sensei/pull/3343)
* Link prerequisites for courses and lessons [#3338](https://github.com/Automattic/sensei/pull/3338)
* Log file upload errors [#3367](https://github.com/Automattic/sensei/pull/3367)
* Log notices instead of failing imports entirely [#3360](https://github.com/Automattic/sensei/pull/3360)
* Log warnings and errors [#3381](https://github.com/Automattic/sensei/pull/3381)
* Add data validation and default handling in base model [#3284](https://github.com/Automattic/sensei/pull/3284)
* Include log information in Import command [#3317](https://github.com/Automattic/sensei/pull/3317)
* Log when an import job completes [#3377](https://github.com/Automattic/sensei/pull/3377)
* No longer match files with just the same parent post [#3393](https://github.com/Automattic/sensei/pull/3393)
* Order import logs by content type and then by line number [#3445](https://github.com/Automattic/sensei/pull/3445)
* REST API: Add Importer base endpoints [#3188](https://github.com/Automattic/sensei/pull/3188)
* REST API: Add file upload/delete for importer [#3199](https://github.com/Automattic/sensei/pull/3199)
* Refactor attachment utilities to support different types of attachments [#3290](https://github.com/Automattic/sensei/pull/3290)
* Remove file source URL from imported media description [#3384](https://github.com/Automattic/sensei/pull/3384)
* Remove unnecessary component button styles in Importer [#3316](https://github.com/Automattic/sensei/pull/3316)
* Update Importer REST API with `{job_id}` prefix to most endpoints [#3324](https://github.com/Automattic/sensei/pull/3324)
* Update importer visuals [#3406](https://github.com/Automattic/sensei/pull/3406)
* Consolidate process_line to parent file process class [#3291](https://github.com/Automattic/sensei/pull/3291)
* Add lesson length validation [#3438](https://github.com/Automattic/sensei/pull/3438)
* Add number of questions validation [#3449](https://github.com/Automattic/sensei/pull/3449)
* Add validation to multiple choice questions without a right answer [#3397](https://github.com/Automattic/sensei/pull/3397)
* Defer warnings until post is created and add warnings on sanitization [#3443](https://github.com/Automattic/sensei/pull/3443)
* Fix 404 error when importing more content [#3419](https://github.com/Automattic/sensei/pull/3419)
* Fix error message overflowing parent container on import upload screen [#3344](https://github.com/Automattic/sensei/pull/3344)
* Fix import CSV with HTML content [#3430](https://github.com/Automattic/sensei/pull/3430)
* Fix title in the import logs [#3423](https://github.com/Automattic/sensei/pull/3423)
* Fix validation for question type method [#3425](https://github.com/Automattic/sensei/pull/3425)
* Update default right answer to true [#3424](https://github.com/Automattic/sensei/pull/3424)
* New: Add filter to customize the query arguments used to fetch the courses a learner is enrolled in [#3347](https://github.com/Automattic/sensei/pull/3347), [#3369](https://github.com/Automattic/sensei/pull/3369)
* New: Log when paid extensions are selected to be installed in setup wizard [#3398](https://github.com/Automattic/sensei/pull/3398)
* New: Log `sensei_plugin_install` on WCCOM plugin activation [#3373](https://github.com/Automattic/sensei/pull/3373)
* Tweak: Make usage tracking pixel calls non-blocking [#3378](https://github.com/Automattic/sensei/pull/3378)
* Tweak: Add random string to uploaded files for file upload questions [#3359](https://github.com/Automattic/sensei/pull/3359)
* Fix: Add CSS classes for completed and preview lessons not in a module [#3333](https://github.com/Automattic/sensei/pull/3333)
* Fix: Setup Wizard features step not being saved when nothing is selected [#3361](https://github.com/Automattic/sensei/pull/3361)
* Fix linter issues with full-screen setup wizard code [#3418](https://github.com/Automattic/sensei/pull/3418)
2020.06.30 - version 3.2.0
* New: Add paid extensions to the setup wizard [#3297](https://github.com/Automattic/sensei/pull/3297), [#3309](https://github.com/Automattic/sensei/pull/3309), [#3323](https://github.com/Automattic/sensei/pull/3323), [#3322](https://github.com/Automattic/sensei/pull/3322), [#3326](https://github.com/Automattic/sensei/pull/3326), [#3329](https://github.com/Automattic/sensei/pull/3329), [#3332](https://github.com/Automattic/sensei/pull/3332), [#3331](https://github.com/Automattic/sensei/pull/3331), [#3330](https://github.com/Automattic/sensei/pull/3330)
* New: Enable admins and lesson author to view quiz for lesson with an unmet prerequisite [#3080](https://github.com/Automattic/sensei/pull/3080) 👏 @JuanchoPestana
* New: Deprecate sensei_the_excerpt function [#3248](https://github.com/Automattic/sensei/pull/3248) 👏 @truongwp
* Tweak: Add "Educate students" option to Purpose step of setup wizard [#3311](https://github.com/Automattic/sensei/pull/3311)
* Tweak: Setup Wizard: Allow purpose options to be translated [#3320](https://github.com/Automattic/sensei/pull/3320)
* Tweak: Add "sensei" CSS class to all Sensei LMS pages [#3275](https://github.com/Automattic/sensei/pull/3275) 👏 @hansschuijff
* Tweak: Use semantic heading structure on course results page [#3271](https://github.com/Automattic/sensei/pull/3271) 👏 @hansschuijff
* Tweak: Add missing taxonomy labels [#3276](https://github.com/Automattic/sensei/pull/3276) 👏 @hansschuijff
* Tweak: Fail gracefully if no extensions found in the setup wizard [#3283](https://github.com/Automattic/sensei/pull/3283)
* Fix: Fix incorrect parameter being passed to has_term function [#3274](https://github.com/Automattic/sensei/pull/3274) 👏 @hansschuijff
2020.06.05 - version 3.1.1
* Fix: Clear setup wizard user data option on uninstall [#3263](https://github.com/Automattic/sensei/pull/3263)
* Fix: Mark setup wizard as completed at the "Ready" step [#3265](https://github.com/Automattic/sensei/pull/3265)
2020.06.04 - version 3.1.0
* New: Setup wizard for new users - [#3066](https://github.com/Automattic/sensei/pull/3066), [#3085](https://github.com/Automattic/sensei/pull/3085), [#3093](https://github.com/Automattic/sensei/pull/3093), [#3082](https://github.com/Automattic/sensei/pull/3082), [#3101](https://github.com/Automattic/sensei/pull/3101), [#3103](https://github.com/Automattic/sensei/pull/3103), [#3096](https://github.com/Automattic/sensei/pull/3096), [#3117](https://github.com/Automattic/sensei/pull/3117), [#3118](https://github.com/Automattic/sensei/pull/3118), [#3119](https://github.com/Automattic/sensei/pull/3119), [#3102](https://github.com/Automattic/sensei/pull/3102), [#3157](https://github.com/Automattic/sensei/pull/3157), [#3106](https://github.com/Automattic/sensei/pull/3106), [#3121](https://github.com/Automattic/sensei/pull/3121), [#3172](https://github.com/Automattic/sensei/pull/3172), [#3175](https://github.com/Automattic/sensei/pull/3175), [#3174](https://github.com/Automattic/sensei/pull/3174), [#3176](https://github.com/Automattic/sensei/pull/3176), [#3189](https://github.com/Automattic/sensei/pull/3189), [#3184](https://github.com/Automattic/sensei/pull/3184), [#3156](https://github.com/Automattic/sensei/pull/3156), [#3181](https://github.com/Automattic/sensei/pull/3181), [#3190](https://github.com/Automattic/sensei/pull/3190), [#3239](https://github.com/Automattic/sensei/pull/3239), [#3227](https://github.com/Automattic/sensei/pull/3227), [#3198](https://github.com/Automattic/sensei/pull/3198), [#3241](https://github.com/Automattic/sensei/pull/3241), [#3194](https://github.com/Automattic/sensei/pull/3194), [#3250](https://github.com/Automattic/sensei/pull/3250), [#3246](https://github.com/Automattic/sensei/pull/3246), [#3258](https://github.com/Automattic/sensei/pull/3258)
* New: Filter for enabling/disabling enrolment related background jobs [#3182](https://github.com/Automattic/sensei/pull/3182)
* New: Add "Date Completed" field to the Learner Management page [#3064](https://github.com/Automattic/sensei/pull/3064) 👏 @timwiel
* Tweak: Add Sensei and WCPC version directly in usage stats [#3094](https://github.com/Automattic/sensei/pull/3094)
* Tweak: Remove old setup notices in favour of the new wizard [#3155](https://github.com/Automattic/sensei/pull/3155)
* Tweak: Remove mailing list signup modal in favour of the setup wizard [#3167](https://github.com/Automattic/sensei/pull/3167)
* Tweak: Include email classes in autoloader [#3098](https://github.com/Automattic/sensei/pull/3098)
* Tweak: Remove mass database invalidation of enrolment results on course recalculation [#3183](https://github.com/Automattic/sensei/pull/3183)
* Tweak: Send usage tracking data as soon as the user opts in [#3220](https://github.com/Automattic/sensei/pull/3220)
* Tweak: Remove "Most Used" course modules [#3224](https://github.com/Automattic/sensei/pull/3224)
* Tweak: Bump minimum WordPress version to 5.0 [#3244](https://github.com/Automattic/sensei/pull/3244)
* Tweak: Change "Lessons" to "Lesson" if there is only a single lesson in a course [#3145](https://github.com/Automattic/sensei/pull/3145) 👏 @truongwp
* Tweak: Fix translatable string [#3185](https://github.com/Automattic/sensei/pull/3185) 👏 @truongwp
* Fix: Update meta box header when question type of new question is changed [#3008](https://github.com/Automattic/sensei/pull/3008)
* Fix: PHP notice for logged out user when viewing quiz of free preview lesson [#2980](https://github.com/Automattic/sensei/pull/2980)
* Fix: PHP warning on single course page [#3136](https://github.com/Automattic/sensei/pull/3136)
* Fix: Course dropdown width on the lessons page [#3223](https://github.com/Automattic/sensei/pull/3136)
2020.04.29 - version 3.0.1
* Tweak: Prevent some queries from running unnecessarily [#3022](https://github.com/Automattic/sensei/pull/3022)
* Fix: Skip enrollment checking completely for guests [#3086](https://github.com/Automattic/sensei/pull/3086)
2020.04.27 - version 3.0.0
* New: Add Recalculate Enrolment data update [#2998](https://github.com/Automattic/sensei/pull/2998)
* New: Add a filter for the course archive page URL [#2899](https://github.com/Automattic/sensei/pull/2899)
* New: Add course enrollment indicator to learner management [#2838](https://github.com/Automattic/sensei/pull/2838)
* New: Add course enrolment recalculation scheduler [#2874](https://github.com/Automattic/sensei/pull/2874)
* New: Add learner management filter for manually enrolled users [#2987](https://github.com/Automattic/sensei/pull/2987), [#2996](https://github.com/Automattic/sensei/pull/2996)
* New: Add manual enrollment provider [#2848](https://github.com/Automattic/sensei/pull/2848)
* New: Add missing deprecation notices [#2974](https://github.com/Automattic/sensei/pull/2974)
* New: Enable filtering by "Enrolled Learners" and "Unenrolled Learners" in Learner Management [#2981](https://github.com/Automattic/sensei/pull/2981), [#2988](https://github.com/Automattic/sensei/pull/2988)
* New: Allow frontend enrolment form to be handled by other providers [#2973](https://github.com/Automattic/sensei/pull/2973)
* New: Block access to module when not signed up [#2952](https://github.com/Automattic/sensei/pull/2952)
* New: Block frontend manual enrollment if there is a handling provider [#2862](https://github.com/Automattic/sensei/pull/2862)
* New: Courses must be published to have enrolment [#2877](https://github.com/Automattic/sensei/pull/2877)
* New: Create generic enrolment job scheduler and introduce course recalculation [#2909](https://github.com/Automattic/sensei/pull/2909)
* New: Defer triggering recalculation until the end of the request [#2905](https://github.com/Automattic/sensei/pull/2905), [#2914](https://github.com/Automattic/sensei/pull/2914)
* New: Deprecate Sensei_Utils::user_started_course [#2984](https://github.com/Automattic/sensei/pull/2984)
* New: Deprecate filters used by legacy WCPC memberships [#2979](https://github.com/Automattic/sensei/pull/2979)
* New: Filter defer enrolment check behavior [#2942](https://github.com/Automattic/sensei/pull/2942)
* New: Introduce enrolment manager [#2844](https://github.com/Automattic/sensei/pull/2844)
* New: Introduce provider state storage and stored status providers [#2888](https://github.com/Automattic/sensei/pull/2888)
* New: Manually enrol student on frontend when they sign up for course [#2854](https://github.com/Automattic/sensei/pull/2854)
* New: Pass the comment ID to the `sensei_is_legacy_enrolled` filter [#2872](https://github.com/Automattic/sensei/pull/2872)
* New: Recalculate course enrolment when moving from published to not published [#2990](https://github.com/Automattic/sensei/pull/2990)
* New: Recalculate when any provider version changes [#2916](https://github.com/Automattic/sensei/pull/2916)
* New: Refactor so that providers are instantiated by their handler [#2875](https://github.com/Automattic/sensei/pull/2875)
* New: Remove deprecated functionality for 3.0 [#2969](https://github.com/Automattic/sensei/pull/2969)
* New: Remove enrolments on user deletion [#2898](https://github.com/Automattic/sensei/pull/2898)
* New: Remove the taxonomy sensei_learner terms and new user meta on uninstall [#2897](https://github.com/Automattic/sensei/pull/2897)
* New: Deprecate Sensei_Lesson::user_not_taking_course_message [#2953](https://github.com/Automattic/sensei/pull/2953), [#2978](https://github.com/Automattic/sensei/pull/2978)
* New: Remove user meta on uninstall [#2907](https://github.com/Automattic/sensei/pull/2907)
* New: Run plugin update checker and tasks on every request [#2967](https://github.com/Automattic/sensei/pull/2967)
* New: Split course progress from course enrolment [#2799](https://github.com/Automattic/sensei/pull/2799)
* New: Split scheduler to seperate classes for easier testing [#2991](https://github.com/Automattic/sensei/pull/2991)
* New: Switch to storing enrolment results in user meta [#2903](https://github.com/Automattic/sensei/pull/2903)
* New: Update enrolled courses queries to use learner term [#2946](https://github.com/Automattic/sensei/pull/2946)
* New: Use Action Scheduler for enrolment async jobs when available [#2930](https://github.com/Automattic/sensei/pull/2930)
* New: Add filter to bypass enrolment functionality [#3011](https://github.com/Automattic/sensei/pull/3011)
* New: Allow providers to provide debug information [#3020](https://github.com/Automattic/sensei/pull/3020)
* New: Fire actions on enrolment status change and manual enrolment status change [#3035](https://github.com/Automattic/sensei/pull/3035)
* New: Add a filter for the batch size of the learner calculation job [#3054](https://github.com/Automattic/sensei/pull/3054)
* New: Introduce a provider journal store [#3027](https://github.com/Automattic/sensei/pull/3027)
* New: Add multisite support for enrolment data [#3072](https://github.com/Automattic/sensei/pull/3072)
* New: Delete provider journal data on uninstall [#3073](https://github.com/Automattic/sensei/pull/3073)
* Tweak: Append post status to prerequisite lesson on Lessons page [#2853](https://github.com/Automattic/sensei/pull/2853) 👏 @JuanchoPestana
* Tweak: Change user_started_course in quiz and email code [#2968](https://github.com/Automattic/sensei/pull/2968)
* Tweak: Add support for enrolments in bulk learner management [#2965](https://github.com/Automattic/sensei/pull/2965)
* Tweak: Move enrolment files to own directory [#2881](https://github.com/Automattic/sensei/pull/2881)
* Tweak: Replace usages of Sensei_Utils::user_started_course in course methods [#2962](https://github.com/Automattic/sensei/pull/2962)
* Tweak: Replace usages of Sensei_Utils::user_started_course in templates [#2951](https://github.com/Automattic/sensei/pull/2951)
* Tweak: Rename "Remove progress" bulk learner action [#2985](https://github.com/Automattic/sensei/pull/2985)
* Tweak: Update usage tracking for enrolment count [#2958](https://github.com/Automattic/sensei/pull/2958)
* Tweak: Hide "Manually Enrolled Learners" filter when not needed [#3014](https://github.com/Automattic/sensei/pull/3014)
* Tweak: Remove logging functionality from provider state [#3021](https://github.com/Automattic/sensei/pull/3021)
* Tweak: Refactor removal of Sensei comments from total counts [#3009](https://github.com/Automattic/sensei/pull/3009)
* Tweak: Switch to using a handler when a learner starts taking a course [#3000](https://github.com/Automattic/sensei/pull/3000)
* Tweak: Allow for not storing enrolment results when they don't provide enrolment [#3028](https://github.com/Automattic/sensei/pull/3028)
* Tweak: Update course calculation job to paginate using last calculated user ID [#3029](https://github.com/Automattic/sensei/pull/3029)
* Tweak: Don't manually enrol learners who don't have course progress [#3030](https://github.com/Automattic/sensei/pull/3030)
* Tweak: Ensure courses share the same provider state meta per learner [#3033](https://github.com/Automattic/sensei/pull/3033)
* Tweak: Replace "student" with "learner" in methods and frontend hook [#3038](https://github.com/Automattic/sensei/pull/3038)
* Tweak: Use `time` instead of `microtime` function when logging enrolment results [#3034](https://github.com/Automattic/sensei/pull/3034)
* Tweak: Switch to using a filter when storing enrolment results [#3031](https://github.com/Automattic/sensei/pull/3031)
* Tweak: Use new strategy for looping through last user ID for learner calculation job [#3055](https://github.com/Automattic/sensei/pull/3055)
* Tweak: Use a less filtered method for checking if user has started course [#3065](https://github.com/Automattic/sensei/pull/3065)
* Tweak: Block enrolment checking and display notice with WCPC v1 [#3070](https://github.com/Automattic/sensei/pull/3070)
* Fix: Add clear background to TinyMCE buttons [#2833](https://github.com/Automattic/sensei/pull/2833) 👏 @JuanchoPestana
* Fix: Add missing question ID to hidden question field [#2871](https://github.com/Automattic/sensei/pull/2871) 👏 @traed
* Fix: Add module admin scripts on course edit page [#2918](https://github.com/Automattic/sensei/pull/2918)
* Fix: Check sensei_user_can_register_for_course filter when My Courses Page is not set [#2865](https://github.com/Automattic/sensei/pull/2865) 👏 @JuanchoPestana
* Fix: Enable teachers to remove / reset progress and edit the start date for a learner [#2922](https://github.com/Automattic/sensei/pull/2922)
* Fix: Fix PHP 7.4 issues [#2876](https://github.com/Automattic/sensei/pull/2876)
* Fix: Fix bulk editing lessons [#2917](https://github.com/Automattic/sensei/pull/2917)
* Fix: Fix display of "Next Lesson" button in notice [#2949](https://github.com/Automattic/sensei/pull/2949)
* Fix: Improve theme support for TwentyTwenty [#2902](https://github.com/Automattic/sensei/pull/2902)
* Fix: Only enqueue user-dashboard.js where required [#2882](https://github.com/Automattic/sensei/pull/2882) 👏 @coleshaw
* Fix: Fix PHP notices when viewing course archive page on certain themes [#2911](https://github.com/Automattic/sensei/pull/2911)
* Fix: Fix JS error on Lessons page [#2910](https://github.com/Automattic/sensei/pull/2910)
* Fix: Set lesson status to ungraded after reset [#2919](https://github.com/Automattic/sensei/pull/2919)
* Fix: Limit triggering of sensei_single_title in single quiz the_title hook for quiz posts [#2920](https://github.com/Automattic/sensei/pull/2920)
* Fix: Ensure lesson comments are not displayed if user isn't allowed to view lesson [#2840](https://github.com/Automattic/sensei/pull/2840) 👏 @JuanchoPestana
* Fix: Fix lesson order for courses that are duplicated with lessons [#2883](https://github.com/Automattic/sensei/pull/2883)
* Fix: Fix video playback for question media attachments [#2886](https://github.com/Automattic/sensei/pull/2886)
* Fix: Add fail-safes on update version check [#3019](https://github.com/Automattic/sensei/pull/3019)
* Fix: Fix comment template not displaying for messages [#3024](https://github.com/Automattic/sensei/pull/3024)
2020.01.23 - version 2.4.0
* New: Replace Twitter button with Create Course button after activation - #2850
* Fix: PHP warning for multiple choice questions - #2843
* Fix: Default settings cleared after clicking "Install Sensei LMS Pages" button - #2847
* Fix: Add transparent background to TinyMCE editor buttons for multi line questions (@JuanchoPestana) - #2855
2020.01.14 - version 2.3.0
* New: Configure Renovate - #2805
* New: Remove Sensei_WP_Cli class - #2814
* New: Upgrade WPCS to 2.2 - #2793
* New: Add REST endpoint for messages - #2809
* New: Initial setup needed for blocks - #2810
* Tweak: Optimize JS script file loading - #2815
* Fix: Auto-grading of manually graded questions - #2816
* Fix: Add closing span tag in gap fill question template (@traed) - #2824
* Fix: Duplicated course maintaining original prerequisites - #2821
* Fix: Lesson order when duplicating course with lessons - #2827
2019.10.23 - version 2.2.1
* New: Allow HTML in question titles - #2780
* Tweak: Optimize loading of teacher dropdown on Courses page (@mostafaabd) - #2750
* Tweak: Update extension parameters passed to Google Analytics - #2783
* Tweak: Move upsell higher in ReadMe - #2782
* Fix: No longer flush rewrite rules on course and lesson save - #2718
* Fix: Fix layout issue with Academia theme - #2773
* Fix: Remove default wrapper around single post renderer on unsupported theme - #2786
* Fix: Do not limit message comments on single post comment feeds - #2776
2019.09.03 - version 2.2.0
* New: Add `sensei_course_meta_before_save` and `sensei_course_meta_default_save` hooks for saving course meta - #2761
* New: Add `sensei_course_show_lessons` filter to conditionally hide lessons on single course page - #2763
* New: Add `sensei_modules_title` filter for modifying the module title HTML - #2737
* New: Remove ability to add a course from the lesson page - #2758
* New: Deprecate `Sensei_Lesson::lesson_save_course` function - #2769
* New: Deprecate `Sensei_Lesson::lesson_add_course` function - #2760
* New: Add support for custom fields on REST API requests - #2747
* Tweak: Log product count when a course is published - #2755
* Tweak: Update layout of course meta on relevant pages - #2751
* Fix: Items not showing up on plugin activation via WP CLI (@kakoma) - #2766
* Fix: Ensure WooCommerce notices are displayed for unsupported themes - #2756
* Fix: Clean up modules when course teacher is changed - #2472
* Fix: Conflict with WP Ultimate Recipe plugin - #2749
* Fix: Show draft, private, future lessons on the Order Lessons page (@mostafaabd) - #2746, #2371
* Fix: PHP notice when trashing / restoring a course (@mostafaabd) - #2721
* Fix: Alignment issue on single course page when lesson has a featured image (@mostafaabd) - #2719
2019.06.26 - version 2.1.2
* Fix: Modules not displaying in WP admin - #2742
* Fix: Multiple correct answers being removed from question editor - #2743
* Fix: Filtering of allowed CSS attributes for bulk learner actions - #2744
2019.06.25 - version 2.1.1
* New: Bump minimum supported WordPress version to 4.9 - #2725
* Tweak: Rename event logging JS file to match file naming standards - #2730
* Tweak: Fix PHPCS issues with undefined variables - #2731
* Tweak: Remove unused variables from codebase - #2732
* Tweak: Fix PHPCS issues with global variable overrides - #2733
* Fix: Remove global cache flush - #2682
* Fix: Don't call non-static method statically - #2729
* Fix: PHP fatal error on WordPress versions < 5.0 - #2736
2019.06.17 - version 2.1.0
* New: Add "Edit Course" button when in classic editor - #2514
* New: Add `sensei_complete_lesson_redirect_url` filter for disabling the redirect after completing a lesson - #2510
* New: Add event logging to the WordPress dashboard - #2672, #2673, #2675, #2686, #2696, #2695, #2700, #2697, #2702, #2684, #2687, #2707, #2706, #2709, #2715
* Tweak: Make queries on Analysis page more performant - #2359
* Tweak: Ensure module status does not overlap module name - #2699, #2713
* Tweak: Allow more HTML elements in Sensei notices - #2712
* Tweak: Adjust alignment of value inside progress bar - #2701
* Tweak: Adjust vertical gap for quiz tabs - #2523
* Tweak: Update lesson preview checkbox text - #2711
* Fix: Enable teachers to save course settings in the block editor - #2658
* Fix: Don't prefill fields with empty characters on the registration form - #2622
* Fix: Add label and description for a message that is related to a quiz - #2521
* Fix: PHP notice on the Order Courses page when there are no courses - #2689
* Fix: PHP notice on the Grading page when there are no submitted quizzes - #2691
* Fix: Fix SSI directive error on the quiz page - #2704
* Fix: Hide private messages from comment feed - #2726
2019.05.01 - version 2.0.1
* New: Rename plugin to Sensei LMS - #2511, #2516
* New: Deprecate `manage_sensei_page_sensei_learners_sortable_columns` in favour of `manage_sensei-lms_page_sensei_learners_sortable_columns` - #2516
* New: Deprecate `manage_sensei_page_sensei_grading_sortable_columns` in favour of `manage_sensei-lms_page_sensei_grading_sortable_columns` - #2516
* New: Deprecate `manage_sensei_page_sensei_analysis_sortable_columns` in favour of `manage_sensei-lms_page_sensei_analysis_sortable_columns` - #2516
* Tweak: Change text domain from `sensei` to `sensei-lms` - #2511
* Tweak: Update footer text in `templates/emails/footer.php` - #2516
* Fix: Allow "Learner Admin" link to be translated - #2516
2019.04.02 - version 2.0.0
* New: Extract all WooCommerce integration functionality
* New: Add dependency check for minimum PHP version (5.6)
* New: Email signup modal appears on initial activation
* New: Sensei Extensions page
* New: Filter `sensei_lesson_course_create_form_top` was added
* New: Filter `sensei_lesson_course_create_form_bottom` was added
* New: Action `sensei_lesson_course_created` was added
* New: Filter `sensei_course_content_has_access` was added
* New: Filter `sensei_output_course_enrolment_actions` was added
* New: Filter `sensei_lesson_show_course_signup_notice` was added
* New: Filter `sensei_lesson_course_signup_notice_message` was added
* New: Filter `sensei_lesson_course_signup_notice_level` was added
* New: Filter `sensei_quiz_course_signup_notice_message` was added
* New: Action `sensei_course_meta_inside_before` was added
* New: Action `sensei_course_meta_inside_after` was added
* New: Filter `sensei_shortcode_classes` was added
* New: Filter `sensei_widget_course_component_components_list` was added
* New: Filter `sensei_widget_course_component_get_courses_{$component} ` was added
* New: Filter `sensei_widget_course_component_no_courses_message_{$component}` was added
* New: Run plugin updates when needed - #2497
* New: Sensei_Main::sensei_woocommerce_email_course_details has been deprecated in favour of Sensei_WC::email_course_details
* New: Sensei_Main::sensei_woocommerce_reactivate_subscription has been deprecated in favour of Sensei_WC::reactivate_subscription
* New: Sensei_Main::sensei_woocommerce_subscription_ended has been deprecated in favour of Sensei_WC::end_subscription
* New: Sensei_Main::sensei_woocommerce_complete_order has been deprecated in favour of Sensei_WC::complete_order
* New: Sensei_Main::sensei_woocommerce_cancel_order has been deprecated in favour of Sensei_WC::cancel_order
* New: Sensei_Main::sensei_activate_subscription has been deprecated in favour of Sensei_WC::activate_subscription
* New: Sensei_Main::woocommerce_course_update has been deprecated in favour of Sensei_WC::course_update
* New: Sensei_Main::sensei_get_woocommerce_product_object has been deprecated in favour of Sensei_WC::get_product_object
* New: Sensei_Main::disable_guest_checkout has been deprecated in favour of Sensei_WC::disable_guest_checkout
* New: Sensei_Main::virtual_order_payment_complete has been deprecated in favour of Sensei_WC::virtual_order_payment_complete
* New: Sensei_Main::check_user_permissions has been deprecated with no replacement
* New: Sensei_Utils::sensei_is_woocommerce_present has been deprecated in favour of Sensei_WC::is_woocommerce_present
* New: Sensei_Utils::sensei_is_woocommerce_activated has been deprecated in favour of Sensei_WC::is_woocommerce_active
* New: Sensei_Utils::sensei_customer_bought_product has been deprecated in favour of Sensei_WC::has_customer_bought_product
* New: Sensei_Frontend::activate_purchased_courses has been deprecated in favour of \Sensei_WC_Paid_Courses\Courses::activate_purchased_courses
* New: Sensei_Frontend::activate_purchased_single_course has been deprecated in favour of \Sensei_WC_Paid_Courses\Courses::activate_purchased_single_course
* New: Sensei_Frontend::sensei_woocommerce_in_cart_message has been deprecated in favour of Sensei_WC::course_in_cart_message
* New: Sensei_Course::get_product_courses has been deprecated in favour of Sensei_WC_Paid_Courses\Courses::get_product_courses
* New: Sensei_Course::get_product_courses_query_args has been deprecated in favour of Sensei_WC_Paid_Courses\Courses::get_product_courses_query_args
* New: Sensei_WC_Utils::wc_version_less_than has been deprecated in favour of version_compare( WC()->version, $str, '<' )
* New: Sensei_WC_Utils::is_product_variation has been deprecated in favour of $product->is_type( 'variation' )
* New: Sensei_WC_Utils::get_order_id has been deprecated in favour of $order->get_id()
* New: Sensei_WC_Utils::get_product has been deprecated in favour of wc_get_product
* New: Sensei_WC_Utils::get_parent_product has been deprecated in favour of wc_get_product
* New: Sensei_WC_Utils::get_formatted_variation has been deprecated in favour of wc_get_formatted_variation
* New: Sensei_WC_Utils::get_product_variation_data has been deprecated in favour of \Sensei_WC_Utils::get_variation_data
* New: Sensei_WC_Utils::get_product_from_item has been deprecated in favour of $item->get_product()
* New: Sensei_WC_Utils::get_checkout_url has been deprecated in favour of wc_get_checkout_url
* New: sensei_wc_add_to_cart has been deprecated in favour of Sensei_WC::the_add_to_cart_button_html
* New: sensei_check_if_product_is_in_cart has been deprecated in favour of Sensei_WC::is_product_in_cart
* New: sensei_simple_course_price has been deprecated in favour of Sensei_WC_Paid_Courses\Frontend\Courses::output_course_price
* New: is_woocommerce_active has been deprecated with no replacement.
* New: sensei_check_woocommerce_version has been deprecated with no replacement
* New: The `newcourses` shortcode has been deprecated
* New: The `featuredcourses` shortcode has been deprecated
* New: The `freecourses` shortcode has been deprecated
* New: The `paidcourses` shortcode has been deprecated
* New: The `usercourses` shortcode has been deprecated
* New: The `allcourses` shortcode has been deprecated
* New: The `sensei_show_delete_course_button` hook has been deprecated and will be removed in Sensei 4.0
* New: The `sensei_merge_courses_with_parent_product` hook has been deprecated in favour of `sensei_wc_paid_courses_merge_courses_with_parent_product`
* Tweak: Access Permissions setting only controls Lesson content
* Tweak: Change text domain from `woothemes-sensei` to `sensei`
* Tweak: In `templates/content-course.php`, call Sensei_Course::get_course_loop_content_class instead of WooThemes_Sensei_Course::get_course_loop_content_class
* Tweak: In `templates/single-quiz/question-type-*.php`, call Sensei_Question::get_template_data instead of WooThemes_Sensei_Question::get_template_data
* Tweak: Update version numbers and add `ABSPATH` checks in templates - #2488
* Fix: Conflict with Jetpack shortcodes module causing Sensei videos to not display
* Fix: Bug causing the Lesson order to change on Lesson update
* Fix: Completed modules being displayed as "In Progress"
* Fix: Fix permalink/rewrite rule issue on plugin activation - #2492
* Fix: Allow for late additions to data updates - #2490
* Fix: Fix issues with coding standards
2019.03.27 - version 1.12.3
* New: Restrict future updates for sites running a version of PHP less than 5.6 - #2502
* Fix: Conflict with Jetpack shortcodes module and Sensei videos - #2426
* Fix: Change progress status to "Completed" in modules (@tonytettinger) - #2342
* Fix: Lesson order changes when lesson is updated using Classic Editor - #2471
* Fix: Update version number on plugin update - #2503
2018.11.29 - version 1.12.2
* New: Add usage tracking for course enrolments
* Fix: PHP warnings when ordering courses, modules or lessons
* Fix: PHP warnings on Sensei Analysis page
* Fix: PHP warning on Course Results page
* Fix: Add missing translations on Messages screen
* Fix: Enable translating "more" text on Bulk Learner Actions screen
* Fix: Show post content for paid courses on single course page
* Fix: Show course categories in WordPress 5.0
* Fix: Coding standard and security violations
* Fix: Use updated lesson data when updating quiz
* Tweak: Removed underscores from filenames
2018.11.01 - version 1.12.1
* Fix: Comments not displaying on Lesson page on unsupported themes
* Fix: I18n problems
* Fix: AJAX requests sent too frequently
* Fix: Comments displaying where they shouldn't on some unsupported themes
2018.10.22 - version 1.12.0
* New: Better support for non-Sensei themes
* New: Redirect to next lesson after completing a lesson
* New: Show comments for preview lessons
* New: Add `sensei_course_image_html` filter to enable altering HTML output of a course image
* Tweak: Start lesson when student first views lesson page
* Tweak: Remove _Single Course page displays_ setting
* Tweak: Minify sensei.css
* Tweak: Upgrade Select2 to latest version
* Fix: Bulk Learner Actions showing all users in the network
* Fix: JavaScript error on Lessons page
2018.06.13 - version 1.11.0
* Fix: Fix display of all other lessons after module is removed
* Fix: Fix when force completing lessons with quizzes with questions
* Fix: Course score based on quizzes that have graded questions
* Tweak: Improve performance of fetching the learner count for usage tracking
* Tweak: Use domain as value of Tracks userid parameter
* Tweak: Delete user's messages when the user is deleted
* Tweak: Update URL and Twitter account in tweet that can be sent after activating
* New: Add filter for successful payment statuses - sensei_wc_order_statuses
* New: Add (Free) Preview label to lesson title
* New: Add usage tracking for quiz settings
* New: Add stats for number of quizzes and quiz questions
* New: Add email column to Analysis screen
2018.04.11 - version 1.10.1
* Fix: Fix error in data updates when there are no quizzes
* Tweak: Add setting for data deletion
2018.04.04 - version 1.10.0
* Fix: Fixes associating courses after purchase of a variable subscription product
* Fix: Allow certain HTML tags on quiz correct answer result
* Fix: Fix number parameter not working for [sensei_user_courses] shortcode
* Fix: Ensure answers to true / false questions are translated for students
* Fix: Fix PHP notices when viewing or adding a lesson and there are no courses
* Fix: Fix PHP 7.2.x warnings
* Fix: Fix get_class warning on PHP 7.2.x
* Fix: Check if WC_VERSION constant is defined before using it
* Fix: Fix CSS class name translation
* Fix: Hardcode DAY_IN_SECONDS to avoid continuous sending of data on old WP installations
* Fix: Fix PHP notices when purchasing non-course product as a guest
* Tweak: Remove WooThemes branding on settings page
* Tweak: On single course page, link to module only if we should
* Tweak: Conditionally link to module in lesson breadcrumb
* Tweak: Exclude modules from course navigation when not appropriate
* Tweak: Send usage data immediately when enabled through opt-in dialog
* Tweak: Clean up extended settings in Gutenberg Lesson editor
* New: Delete plugin data on uninstall
* New: Add revisions support to courses, lessons and questions
* New: Add sensei_start_course_redirect_url filter when starting course
* New: Add usage tracking for active and completed courses
* New: Show lesson tags in Gutenberg editor
* New: Add usage tracking for system info
2018.02.06 - version 1.9.20
* New: Course navigation moves between both lessons and modules
* New: Page template for modules
* New: Filters for customizing quiz answer text and CSS class names
* New: Usage tracking
* Tweak: Remove Sensei Welcome screen
* Tweak: Remove theme check notice
* Fix: Tabbed navigation for `sensei_user_courses` shortcode
* Fix: Setting course start date for all students
* Fix: Only authorized users can view messages
* Fix: Only users with appropriate permissions can duplicate courses and lessons
2017.11.07 - version 1.9.19
* Fix: Fix JS bugs introduced by minification process
* Add: ESLint support
2017.11.01 - version 1.9.18
* Fix: Can't preview draft lessons in draft course
* Fix: Show Draft Lessons when Previewing course draft
* Fix: Issue with lesson excerpts
* Fix: Incorrect heading structure, Use h1s for headings on Module, Course and Lesson Order
- Add: sensei_learner_admin_get_row_data Filter. Managing table columns on Managing learners
* Fix: Learner Profiles: display correct url pattern when wp in custom folder. Learner Profiles Settings showing wrong learner URL Pattern when WP installation in custom location
* Fix: Ordering courses using "menu_order" and Courses > Order Courses doesn't work. WC: Don't construct WC_Orders
* Fix: Replace 'new WC_Order' with wc_get_order() function.
* Fix: Course not showing in My Courses if order is manually Completed
* Fix: Simplify CSS for displaying answer feedback
- Change purchase button text when a course is free. Change "purchase this course" for free products. Change "purchase this course" for free products
* Fix: Link course to a single variation of a variable WooCommerce product.
* Fix: Removed learner from Course comeback if see course single page
* Fix: Scheduled lessons not added to course page. Scheduled lessons should be added to course page
* Fix: Always show answers filter doesn't work for zero grade questions
* Fix: Single quotes in video embed HTML breaks on save
* Fix: WP_Query not getting reset on My Courses page. Reset postdata after resetting $wp_query
* Fix: Messaging issue on preview lessons. Correct the phrasing for lesson previews on Purchasable courses.
- Add: Learner Bulk Actions: Make Learner search more flexible.
- Add: filter sensei_send_message_link
* Fix: Learner Profiles can handle email-like usernames.
* Fix: Lesson: Allow Completing if Quiz has no questions
* Fix: "Complete Lesson" button missing
* Fix: Videos visible when prerequisites have not been completed
* Fix: Modification to users displayed in Analysis?
* Fix: some of the columns to be sortable for Learners in Analysis overview
* Fix: Weird html in shortcodes. Fixes excerpts in template to properly nest within paragraphs.
* Fix: New lesson: cannot assign to a module unless a draft is saved first. Lesson Admin: Populate modules on course change
* Fix: Pagination not working on course archive front page
* Fix: Featured course filter gives 404 on home page
* Fix: Multi Line Quiz responses displayed as HTML if saved and resumed
* Fix: Can't delete answer feedback
* Fix: Courses page sorting dropdown problems