diff --git a/accounts/__pycache__/__init__.cpython-38.pyc b/accounts/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..51160fc3d Binary files /dev/null and b/accounts/__pycache__/__init__.cpython-38.pyc differ diff --git a/accounts/__pycache__/email.cpython-38.pyc b/accounts/__pycache__/email.cpython-38.pyc new file mode 100644 index 000000000..9b2e30b6a Binary files /dev/null and b/accounts/__pycache__/email.cpython-38.pyc differ diff --git a/accounts/__pycache__/forms.cpython-38.pyc b/accounts/__pycache__/forms.cpython-38.pyc new file mode 100644 index 000000000..3afc31ecd Binary files /dev/null and b/accounts/__pycache__/forms.cpython-38.pyc differ diff --git a/accounts/__pycache__/models.cpython-38.pyc b/accounts/__pycache__/models.cpython-38.pyc new file mode 100644 index 000000000..e8c00f11a Binary files /dev/null and b/accounts/__pycache__/models.cpython-38.pyc differ diff --git a/accounts/__pycache__/urls.cpython-38.pyc b/accounts/__pycache__/urls.cpython-38.pyc new file mode 100644 index 000000000..27b6bc5fd Binary files /dev/null and b/accounts/__pycache__/urls.cpython-38.pyc differ diff --git a/accounts/__pycache__/util.cpython-38.pyc b/accounts/__pycache__/util.cpython-38.pyc new file mode 100644 index 000000000..9a6429d6c Binary files /dev/null and b/accounts/__pycache__/util.cpython-38.pyc differ diff --git a/accounts/__pycache__/views.cpython-38.pyc b/accounts/__pycache__/views.cpython-38.pyc new file mode 100644 index 000000000..55ea69898 Binary files /dev/null and b/accounts/__pycache__/views.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0001_initial.cpython-38.pyc b/accounts/migrations/__pycache__/0001_initial.cpython-38.pyc new file mode 100644 index 000000000..4278595c2 Binary files /dev/null and b/accounts/migrations/__pycache__/0001_initial.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0002_auto_20150209_1118.cpython-38.pyc b/accounts/migrations/__pycache__/0002_auto_20150209_1118.cpython-38.pyc new file mode 100644 index 000000000..b846ad38f Binary files /dev/null and b/accounts/migrations/__pycache__/0002_auto_20150209_1118.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0003_userprofile_question_basket.cpython-38.pyc b/accounts/migrations/__pycache__/0003_userprofile_question_basket.cpython-38.pyc new file mode 100644 index 000000000..38e0b28fb Binary files /dev/null and b/accounts/migrations/__pycache__/0003_userprofile_question_basket.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0004_auto_20151104_1553.cpython-38.pyc b/accounts/migrations/__pycache__/0004_auto_20151104_1553.cpython-38.pyc new file mode 100644 index 000000000..4f48d3f8c Binary files /dev/null and b/accounts/migrations/__pycache__/0004_auto_20151104_1553.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0005_auto_20160203_1531.cpython-38.pyc b/accounts/migrations/__pycache__/0005_auto_20160203_1531.cpython-38.pyc new file mode 100644 index 000000000..7d075c953 Binary files /dev/null and b/accounts/migrations/__pycache__/0005_auto_20160203_1531.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0006_auto_20160203_1532.cpython-38.pyc b/accounts/migrations/__pycache__/0006_auto_20160203_1532.cpython-38.pyc new file mode 100644 index 000000000..0c2d0ce63 Binary files /dev/null and b/accounts/migrations/__pycache__/0006_auto_20160203_1532.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0007_auto_20160203_1535.cpython-38.pyc b/accounts/migrations/__pycache__/0007_auto_20160203_1535.cpython-38.pyc new file mode 100644 index 000000000..c1ff7bd64 Binary files /dev/null and b/accounts/migrations/__pycache__/0007_auto_20160203_1535.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0008_auto_20160203_1535.cpython-38.pyc b/accounts/migrations/__pycache__/0008_auto_20160203_1535.cpython-38.pyc new file mode 100644 index 000000000..4609da9f4 Binary files /dev/null and b/accounts/migrations/__pycache__/0008_auto_20160203_1535.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0009_userprofile_personal_project.cpython-38.pyc b/accounts/migrations/__pycache__/0009_userprofile_personal_project.cpython-38.pyc new file mode 100644 index 000000000..f169bf9c8 Binary files /dev/null and b/accounts/migrations/__pycache__/0009_userprofile_personal_project.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0010_create_personal_projects.cpython-38.pyc b/accounts/migrations/__pycache__/0010_create_personal_projects.cpython-38.pyc new file mode 100644 index 000000000..235946b69 Binary files /dev/null and b/accounts/migrations/__pycache__/0010_create_personal_projects.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0011_auto_20160208_0935.cpython-38.pyc b/accounts/migrations/__pycache__/0011_auto_20160208_0935.cpython-38.pyc new file mode 100644 index 000000000..bd429ea7d Binary files /dev/null and b/accounts/migrations/__pycache__/0011_auto_20160208_0935.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0012_auto_20160229_0917.cpython-38.pyc b/accounts/migrations/__pycache__/0012_auto_20160229_0917.cpython-38.pyc new file mode 100644 index 000000000..672ac6e92 Binary files /dev/null and b/accounts/migrations/__pycache__/0012_auto_20160229_0917.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0013_userprofile_avatar.cpython-38.pyc b/accounts/migrations/__pycache__/0013_userprofile_avatar.cpython-38.pyc new file mode 100644 index 000000000..b073a7b44 Binary files /dev/null and b/accounts/migrations/__pycache__/0013_userprofile_avatar.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0014_auto_20170112_1526.cpython-38.pyc b/accounts/migrations/__pycache__/0014_auto_20170112_1526.cpython-38.pyc new file mode 100644 index 000000000..6a4692120 Binary files /dev/null and b/accounts/migrations/__pycache__/0014_auto_20170112_1526.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0015_userprofile_wrap_lines.cpython-38.pyc b/accounts/migrations/__pycache__/0015_userprofile_wrap_lines.cpython-38.pyc new file mode 100644 index 000000000..3165c8106 Binary files /dev/null and b/accounts/migrations/__pycache__/0015_userprofile_wrap_lines.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0016_userprofile_mathjax_url.cpython-38.pyc b/accounts/migrations/__pycache__/0016_userprofile_mathjax_url.cpython-38.pyc new file mode 100644 index 000000000..564b91bff Binary files /dev/null and b/accounts/migrations/__pycache__/0016_userprofile_mathjax_url.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0017_auto_20171018_0843.cpython-38.pyc b/accounts/migrations/__pycache__/0017_auto_20171018_0843.cpython-38.pyc new file mode 100644 index 000000000..d1f93f7f8 Binary files /dev/null and b/accounts/migrations/__pycache__/0017_auto_20171018_0843.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0018_editoritemviewed.cpython-38.pyc b/accounts/migrations/__pycache__/0018_editoritemviewed.cpython-38.pyc new file mode 100644 index 000000000..e100b8878 Binary files /dev/null and b/accounts/migrations/__pycache__/0018_editoritemviewed.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0019_auto_20200421_1607.cpython-38.pyc b/accounts/migrations/__pycache__/0019_auto_20200421_1607.cpython-38.pyc new file mode 100644 index 000000000..701d96f1d Binary files /dev/null and b/accounts/migrations/__pycache__/0019_auto_20200421_1607.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/0020_userprofile_email_about_item_queue_entries.cpython-38.pyc b/accounts/migrations/__pycache__/0020_userprofile_email_about_item_queue_entries.cpython-38.pyc new file mode 100644 index 000000000..d2ac59d1b Binary files /dev/null and b/accounts/migrations/__pycache__/0020_userprofile_email_about_item_queue_entries.cpython-38.pyc differ diff --git a/accounts/migrations/__pycache__/__init__.cpython-38.pyc b/accounts/migrations/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..c925a88af Binary files /dev/null and b/accounts/migrations/__pycache__/__init__.cpython-38.pyc differ diff --git a/accounts/templatetags/__pycache__/__init__.cpython-38.pyc b/accounts/templatetags/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..91db34f9c Binary files /dev/null and b/accounts/templatetags/__pycache__/__init__.cpython-38.pyc differ diff --git a/accounts/templatetags/__pycache__/absoluteurl.cpython-38.pyc b/accounts/templatetags/__pycache__/absoluteurl.cpython-38.pyc new file mode 100644 index 000000000..d35aafade Binary files /dev/null and b/accounts/templatetags/__pycache__/absoluteurl.cpython-38.pyc differ diff --git a/accounts/templatetags/__pycache__/user_link.cpython-38.pyc b/accounts/templatetags/__pycache__/user_link.cpython-38.pyc new file mode 100644 index 000000000..e405f7f86 Binary files /dev/null and b/accounts/templatetags/__pycache__/user_link.cpython-38.pyc differ diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 000000000..556bf465c Binary files /dev/null and b/db.sqlite3 differ diff --git a/editor/__pycache__/__init__.cpython-38.pyc b/editor/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..fda619d16 Binary files /dev/null and b/editor/__pycache__/__init__.cpython-38.pyc differ diff --git a/editor/__pycache__/admin.cpython-38.pyc b/editor/__pycache__/admin.cpython-38.pyc new file mode 100644 index 000000000..f013e0e67 Binary files /dev/null and b/editor/__pycache__/admin.cpython-38.pyc differ diff --git a/editor/__pycache__/apps.cpython-38.pyc b/editor/__pycache__/apps.cpython-38.pyc new file mode 100644 index 000000000..ef887ed8b Binary files /dev/null and b/editor/__pycache__/apps.cpython-38.pyc differ diff --git a/editor/__pycache__/context_processors.cpython-38.pyc b/editor/__pycache__/context_processors.cpython-38.pyc new file mode 100644 index 000000000..efe4c432e Binary files /dev/null and b/editor/__pycache__/context_processors.cpython-38.pyc differ diff --git a/editor/__pycache__/email_notification.cpython-38.pyc b/editor/__pycache__/email_notification.cpython-38.pyc new file mode 100644 index 000000000..6f274ed6e Binary files /dev/null and b/editor/__pycache__/email_notification.cpython-38.pyc differ diff --git a/editor/__pycache__/forms.cpython-38.pyc b/editor/__pycache__/forms.cpython-38.pyc new file mode 100644 index 000000000..61139cfce Binary files /dev/null and b/editor/__pycache__/forms.cpython-38.pyc differ diff --git a/editor/__pycache__/jsonfield.cpython-38.pyc b/editor/__pycache__/jsonfield.cpython-38.pyc new file mode 100644 index 000000000..a35e92c8e Binary files /dev/null and b/editor/__pycache__/jsonfield.cpython-38.pyc differ diff --git a/editor/__pycache__/lockdown_app.cpython-38.pyc b/editor/__pycache__/lockdown_app.cpython-38.pyc new file mode 100644 index 000000000..42ae061a9 Binary files /dev/null and b/editor/__pycache__/lockdown_app.cpython-38.pyc differ diff --git a/editor/__pycache__/models.cpython-38.pyc b/editor/__pycache__/models.cpython-38.pyc new file mode 100644 index 000000000..f3ad25f94 Binary files /dev/null and b/editor/__pycache__/models.cpython-38.pyc differ diff --git a/editor/__pycache__/notify_watching.cpython-38.pyc b/editor/__pycache__/notify_watching.cpython-38.pyc new file mode 100644 index 000000000..502122e8d Binary files /dev/null and b/editor/__pycache__/notify_watching.cpython-38.pyc differ diff --git a/editor/__pycache__/slugify.cpython-38.pyc b/editor/__pycache__/slugify.cpython-38.pyc new file mode 100644 index 000000000..7d887ce75 Binary files /dev/null and b/editor/__pycache__/slugify.cpython-38.pyc differ diff --git a/editor/__pycache__/tables.cpython-38.pyc b/editor/__pycache__/tables.cpython-38.pyc new file mode 100644 index 000000000..8e89768c8 Binary files /dev/null and b/editor/__pycache__/tables.cpython-38.pyc differ diff --git a/editor/__pycache__/urls.cpython-38.pyc b/editor/__pycache__/urls.cpython-38.pyc new file mode 100644 index 000000000..26e1d6155 Binary files /dev/null and b/editor/__pycache__/urls.cpython-38.pyc differ diff --git a/editor/management/__pycache__/__init__.cpython-38.pyc b/editor/management/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..3810ab857 Binary files /dev/null and b/editor/management/__pycache__/__init__.cpython-38.pyc differ diff --git a/editor/management/commands/__pycache__/__init__.cpython-38.pyc b/editor/management/commands/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..f0175d856 Binary files /dev/null and b/editor/management/commands/__pycache__/__init__.cpython-38.pyc differ diff --git a/editor/management/commands/__pycache__/first_setup_db.cpython-38.pyc b/editor/management/commands/__pycache__/first_setup_db.cpython-38.pyc new file mode 100644 index 000000000..de571baf8 Binary files /dev/null and b/editor/management/commands/__pycache__/first_setup_db.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0001_initial.cpython-38.pyc b/editor/migrations/__pycache__/0001_initial.cpython-38.pyc new file mode 100644 index 000000000..39577ea65 Binary files /dev/null and b/editor/migrations/__pycache__/0001_initial.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0002_add_licence.cpython-38.pyc b/editor/migrations/__pycache__/0002_add_licence.cpython-38.pyc new file mode 100644 index 000000000..24f975b72 Binary files /dev/null and b/editor/migrations/__pycache__/0002_add_licence.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0003_load_initial_licences.cpython-38.pyc b/editor/migrations/__pycache__/0003_load_initial_licences.cpython-38.pyc new file mode 100644 index 000000000..d3cabcf12 Binary files /dev/null and b/editor/migrations/__pycache__/0003_load_initial_licences.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0004_remove_question_progress.cpython-38.pyc b/editor/migrations/__pycache__/0004_remove_question_progress.cpython-38.pyc new file mode 100644 index 000000000..d46010ecb Binary files /dev/null and b/editor/migrations/__pycache__/0004_remove_question_progress.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0005_stamp_of_approval.cpython-38.pyc b/editor/migrations/__pycache__/0005_stamp_of_approval.cpython-38.pyc new file mode 100644 index 000000000..7f7df7f6e Binary files /dev/null and b/editor/migrations/__pycache__/0005_stamp_of_approval.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0006_add_please_test_stamp.cpython-38.pyc b/editor/migrations/__pycache__/0006_add_please_test_stamp.cpython-38.pyc new file mode 100644 index 000000000..bdb4e4c1e Binary files /dev/null and b/editor/migrations/__pycache__/0006_add_please_test_stamp.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0007_questionpullrequest.cpython-38.pyc b/editor/migrations/__pycache__/0007_questionpullrequest.cpython-38.pyc new file mode 100644 index 000000000..666708170 Binary files /dev/null and b/editor/migrations/__pycache__/0007_questionpullrequest.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0008_questionpullrequest_created.cpython-38.pyc b/editor/migrations/__pycache__/0008_questionpullrequest_created.cpython-38.pyc new file mode 100644 index 000000000..f6598954f Binary files /dev/null and b/editor/migrations/__pycache__/0008_questionpullrequest_created.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0009_auto_20151014_1104.cpython-38.pyc b/editor/migrations/__pycache__/0009_auto_20151014_1104.cpython-38.pyc new file mode 100644 index 000000000..dffb295fc Binary files /dev/null and b/editor/migrations/__pycache__/0009_auto_20151014_1104.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0010_questionpullrequest_comment.cpython-38.pyc b/editor/migrations/__pycache__/0010_questionpullrequest_comment.cpython-38.pyc new file mode 100644 index 000000000..f9c14dec2 Binary files /dev/null and b/editor/migrations/__pycache__/0010_questionpullrequest_comment.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0011_auto_20151201_1154.cpython-38.pyc b/editor/migrations/__pycache__/0011_auto_20151201_1154.cpython-38.pyc new file mode 100644 index 000000000..8af732fcd Binary files /dev/null and b/editor/migrations/__pycache__/0011_auto_20151201_1154.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0012_auto_20151201_1335.cpython-38.pyc b/editor/migrations/__pycache__/0012_auto_20151201_1335.cpython-38.pyc new file mode 100644 index 000000000..b71e783fa Binary files /dev/null and b/editor/migrations/__pycache__/0012_auto_20151201_1335.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0013_version_2_models.cpython-38.pyc b/editor/migrations/__pycache__/0013_version_2_models.cpython-38.pyc new file mode 100644 index 000000000..e97fe4403 Binary files /dev/null and b/editor/migrations/__pycache__/0013_version_2_models.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0014_version_2_data_migration.cpython-38.pyc b/editor/migrations/__pycache__/0014_version_2_data_migration.cpython-38.pyc new file mode 100644 index 000000000..d8e173fef Binary files /dev/null and b/editor/migrations/__pycache__/0014_version_2_data_migration.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0015_remove_comment_date.cpython-38.pyc b/editor/migrations/__pycache__/0015_remove_comment_date.cpython-38.pyc new file mode 100644 index 000000000..7312f6e4a Binary files /dev/null and b/editor/migrations/__pycache__/0015_remove_comment_date.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0016_timelineitem_hidden_by.cpython-38.pyc b/editor/migrations/__pycache__/0016_timelineitem_hidden_by.cpython-38.pyc new file mode 100644 index 000000000..8756f367b Binary files /dev/null and b/editor/migrations/__pycache__/0016_timelineitem_hidden_by.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0017_project_public_view.cpython-38.pyc b/editor/migrations/__pycache__/0017_project_public_view.cpython-38.pyc new file mode 100644 index 000000000..ee666e9a2 Binary files /dev/null and b/editor/migrations/__pycache__/0017_project_public_view.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0018_site_broadcasts.cpython-38.pyc b/editor/migrations/__pycache__/0018_site_broadcasts.cpython-38.pyc new file mode 100644 index 000000000..3cc93627d Binary files /dev/null and b/editor/migrations/__pycache__/0018_site_broadcasts.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0019_auto_20160601_1528.cpython-38.pyc b/editor/migrations/__pycache__/0019_auto_20160601_1528.cpython-38.pyc new file mode 100644 index 000000000..7e6f9e8ab Binary files /dev/null and b/editor/migrations/__pycache__/0019_auto_20160601_1528.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0020_newexamquestion_group.cpython-38.pyc b/editor/migrations/__pycache__/0020_newexamquestion_group.cpython-38.pyc new file mode 100644 index 000000000..ea5b920e5 Binary files /dev/null and b/editor/migrations/__pycache__/0020_newexamquestion_group.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0021_auto_20170112_1526.cpython-38.pyc b/editor/migrations/__pycache__/0021_auto_20170112_1526.cpython-38.pyc new file mode 100644 index 000000000..9f9a60057 Binary files /dev/null and b/editor/migrations/__pycache__/0021_auto_20170112_1526.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0022_custom_part_types.cpython-38.pyc b/editor/migrations/__pycache__/0022_custom_part_types.cpython-38.pyc new file mode 100644 index 000000000..423b4498d Binary files /dev/null and b/editor/migrations/__pycache__/0022_custom_part_types.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0022_taxonomies.cpython-38.pyc b/editor/migrations/__pycache__/0022_taxonomies.cpython-38.pyc new file mode 100644 index 000000000..197b7f5c9 Binary files /dev/null and b/editor/migrations/__pycache__/0022_taxonomies.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0023_auto_20171018_0843.cpython-38.pyc b/editor/migrations/__pycache__/0023_auto_20171018_0843.cpython-38.pyc new file mode 100644 index 000000000..00d95815c Binary files /dev/null and b/editor/migrations/__pycache__/0023_auto_20171018_0843.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0023_merge.cpython-38.pyc b/editor/migrations/__pycache__/0023_merge.cpython-38.pyc new file mode 100644 index 000000000..e523d2187 Binary files /dev/null and b/editor/migrations/__pycache__/0023_merge.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0024_auto_20180118_1135.cpython-38.pyc b/editor/migrations/__pycache__/0024_auto_20180118_1135.cpython-38.pyc new file mode 100644 index 000000000..a2db9c044 Binary files /dev/null and b/editor/migrations/__pycache__/0024_auto_20180118_1135.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0024_customparttype_input_options.cpython-38.pyc b/editor/migrations/__pycache__/0024_customparttype_input_options.cpython-38.pyc new file mode 100644 index 000000000..5c0c5f61a Binary files /dev/null and b/editor/migrations/__pycache__/0024_customparttype_input_options.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0025_merge.cpython-38.pyc b/editor/migrations/__pycache__/0025_merge.cpython-38.pyc new file mode 100644 index 000000000..8c7dcbf98 Binary files /dev/null and b/editor/migrations/__pycache__/0025_merge.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0026_auto_20171122_1518.cpython-38.pyc b/editor/migrations/__pycache__/0026_auto_20171122_1518.cpython-38.pyc new file mode 100644 index 000000000..0d25bbe39 Binary files /dev/null and b/editor/migrations/__pycache__/0026_auto_20171122_1518.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0027_customparttype_ready_to_use.cpython-38.pyc b/editor/migrations/__pycache__/0027_customparttype_ready_to_use.cpython-38.pyc new file mode 100644 index 000000000..c2536c265 Binary files /dev/null and b/editor/migrations/__pycache__/0027_customparttype_ready_to_use.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0028_merge_20180122_1044.cpython-38.pyc b/editor/migrations/__pycache__/0028_merge_20180122_1044.cpython-38.pyc new file mode 100644 index 000000000..8b6f95956 Binary files /dev/null and b/editor/migrations/__pycache__/0028_merge_20180122_1044.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0029_customparttype_help_url.cpython-38.pyc b/editor/migrations/__pycache__/0029_customparttype_help_url.cpython-38.pyc new file mode 100644 index 000000000..682fd7f99 Binary files /dev/null and b/editor/migrations/__pycache__/0029_customparttype_help_url.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0030_customparttype_copy_of.cpython-38.pyc b/editor/migrations/__pycache__/0030_customparttype_copy_of.cpython-38.pyc new file mode 100644 index 000000000..5b46ee429 Binary files /dev/null and b/editor/migrations/__pycache__/0030_customparttype_copy_of.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0031_auto_20180510_1513.cpython-38.pyc b/editor/migrations/__pycache__/0031_auto_20180510_1513.cpython-38.pyc new file mode 100644 index 000000000..57550915b Binary files /dev/null and b/editor/migrations/__pycache__/0031_auto_20180510_1513.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0032_auto_20180626_1005.cpython-38.pyc b/editor/migrations/__pycache__/0032_auto_20180626_1005.cpython-38.pyc new file mode 100644 index 000000000..182321deb Binary files /dev/null and b/editor/migrations/__pycache__/0032_auto_20180626_1005.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0033_editoritem_contributors.cpython-38.pyc b/editor/migrations/__pycache__/0033_editoritem_contributors.cpython-38.pyc new file mode 100644 index 000000000..269ad217d Binary files /dev/null and b/editor/migrations/__pycache__/0033_editoritem_contributors.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0034_set_contributors.cpython-38.pyc b/editor/migrations/__pycache__/0034_set_contributors.cpython-38.pyc new file mode 100644 index 000000000..6b03da1c0 Binary files /dev/null and b/editor/migrations/__pycache__/0034_set_contributors.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0035_customparttype_extensions.cpython-38.pyc b/editor/migrations/__pycache__/0035_customparttype_extensions.cpython-38.pyc new file mode 100644 index 000000000..04bb5ccf7 Binary files /dev/null and b/editor/migrations/__pycache__/0035_customparttype_extensions.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0036_extension_runs_headless.cpython-38.pyc b/editor/migrations/__pycache__/0036_extension_runs_headless.cpython-38.pyc new file mode 100644 index 000000000..0ca6372e3 Binary files /dev/null and b/editor/migrations/__pycache__/0036_extension_runs_headless.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0037_auto_20190320_1436.cpython-38.pyc b/editor/migrations/__pycache__/0037_auto_20190320_1436.cpython-38.pyc new file mode 100644 index 000000000..e098705ab Binary files /dev/null and b/editor/migrations/__pycache__/0037_auto_20190320_1436.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0038_auto_20190321_0932.cpython-38.pyc b/editor/migrations/__pycache__/0038_auto_20190321_0932.cpython-38.pyc new file mode 100644 index 000000000..6e3f50752 Binary files /dev/null and b/editor/migrations/__pycache__/0038_auto_20190321_0932.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0039_extension_editable.cpython-38.pyc b/editor/migrations/__pycache__/0039_extension_editable.cpython-38.pyc new file mode 100644 index 000000000..04415a728 Binary files /dev/null and b/editor/migrations/__pycache__/0039_extension_editable.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0040_auto_20191018_0643.cpython-38.pyc b/editor/migrations/__pycache__/0040_auto_20191018_0643.cpython-38.pyc new file mode 100644 index 000000000..c8ec5a766 Binary files /dev/null and b/editor/migrations/__pycache__/0040_auto_20191018_0643.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0041_auto_20191030_1330.cpython-38.pyc b/editor/migrations/__pycache__/0041_auto_20191030_1330.cpython-38.pyc new file mode 100644 index 000000000..673ce3a8f Binary files /dev/null and b/editor/migrations/__pycache__/0041_auto_20191030_1330.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0042_tip.cpython-38.pyc b/editor/migrations/__pycache__/0042_tip.cpython-38.pyc new file mode 100644 index 000000000..cd9e54508 Binary files /dev/null and b/editor/migrations/__pycache__/0042_tip.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0043_auto_20200420_1458.cpython-38.pyc b/editor/migrations/__pycache__/0043_auto_20200420_1458.cpython-38.pyc new file mode 100644 index 000000000..db75f66cc Binary files /dev/null and b/editor/migrations/__pycache__/0043_auto_20200420_1458.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0044_remove_editoritem_watching_users.cpython-38.pyc b/editor/migrations/__pycache__/0044_remove_editoritem_watching_users.cpython-38.pyc new file mode 100644 index 000000000..ef984b68a Binary files /dev/null and b/editor/migrations/__pycache__/0044_remove_editoritem_watching_users.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0045_auto_20200421_1530.cpython-38.pyc b/editor/migrations/__pycache__/0045_auto_20200421_1530.cpython-38.pyc new file mode 100644 index 000000000..e83c1ad12 Binary files /dev/null and b/editor/migrations/__pycache__/0045_auto_20200421_1530.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0046_resource_alt_text.cpython-38.pyc b/editor/migrations/__pycache__/0046_resource_alt_text.cpython-38.pyc new file mode 100644 index 000000000..58f91b73d Binary files /dev/null and b/editor/migrations/__pycache__/0046_resource_alt_text.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0047_auto_20200827_0837.cpython-38.pyc b/editor/migrations/__pycache__/0047_auto_20200827_0837.cpython-38.pyc new file mode 100644 index 000000000..3259dab6f Binary files /dev/null and b/editor/migrations/__pycache__/0047_auto_20200827_0837.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0048_themeaccess.cpython-38.pyc b/editor/migrations/__pycache__/0048_themeaccess.cpython-38.pyc new file mode 100644 index 000000000..e8e2dca87 Binary files /dev/null and b/editor/migrations/__pycache__/0048_themeaccess.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0049_auto_20201012_1409.cpython-38.pyc b/editor/migrations/__pycache__/0049_auto_20201012_1409.cpython-38.pyc new file mode 100644 index 000000000..137acf945 Binary files /dev/null and b/editor/migrations/__pycache__/0049_auto_20201012_1409.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0050_auto_20201019_1127.cpython-38.pyc b/editor/migrations/__pycache__/0050_auto_20201019_1127.cpython-38.pyc new file mode 100644 index 000000000..af9b0b8ec Binary files /dev/null and b/editor/migrations/__pycache__/0050_auto_20201019_1127.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0051_auto_20201027_1547.cpython-38.pyc b/editor/migrations/__pycache__/0051_auto_20201027_1547.cpython-38.pyc new file mode 100644 index 000000000..93fce77e3 Binary files /dev/null and b/editor/migrations/__pycache__/0051_auto_20201027_1547.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0052_auto_20201029_1046.cpython-38.pyc b/editor/migrations/__pycache__/0052_auto_20201029_1046.cpython-38.pyc new file mode 100644 index 000000000..cfa1ee89b Binary files /dev/null and b/editor/migrations/__pycache__/0052_auto_20201029_1046.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0053_auto_20210308_1105.cpython-38.pyc b/editor/migrations/__pycache__/0053_auto_20210308_1105.cpython-38.pyc new file mode 100644 index 000000000..43651d300 Binary files /dev/null and b/editor/migrations/__pycache__/0053_auto_20210308_1105.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0054_auto_20210816_1144.cpython-38.pyc b/editor/migrations/__pycache__/0054_auto_20210816_1144.cpython-38.pyc new file mode 100644 index 000000000..f46eb8e98 Binary files /dev/null and b/editor/migrations/__pycache__/0054_auto_20210816_1144.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0055_customparttypeaccess.cpython-38.pyc b/editor/migrations/__pycache__/0055_customparttypeaccess.cpython-38.pyc new file mode 100644 index 000000000..31476b599 Binary files /dev/null and b/editor/migrations/__pycache__/0055_customparttypeaccess.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0056_auto_20211109_0858.cpython-38.pyc b/editor/migrations/__pycache__/0056_auto_20211109_0858.cpython-38.pyc new file mode 100644 index 000000000..dc6e2060f Binary files /dev/null and b/editor/migrations/__pycache__/0056_auto_20211109_0858.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0057_queues.cpython-38.pyc b/editor/migrations/__pycache__/0057_queues.cpython-38.pyc new file mode 100644 index 000000000..8a78a1a1d Binary files /dev/null and b/editor/migrations/__pycache__/0057_queues.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0058_queues_remove_old_access.cpython-38.pyc b/editor/migrations/__pycache__/0058_queues_remove_old_access.cpython-38.pyc new file mode 100644 index 000000000..df41bd60d Binary files /dev/null and b/editor/migrations/__pycache__/0058_queues_remove_old_access.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0059_alter_customparttype_input_widget.cpython-38.pyc b/editor/migrations/__pycache__/0059_alter_customparttype_input_widget.cpython-38.pyc new file mode 100644 index 000000000..90ea6d36a Binary files /dev/null and b/editor/migrations/__pycache__/0059_alter_customparttype_input_widget.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0060_auto_20220517_1437.cpython-38.pyc b/editor/migrations/__pycache__/0060_auto_20220517_1437.cpython-38.pyc new file mode 100644 index 000000000..f41659bda Binary files /dev/null and b/editor/migrations/__pycache__/0060_auto_20220517_1437.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0061_auto_20220518_1356.cpython-38.pyc b/editor/migrations/__pycache__/0061_auto_20220518_1356.cpython-38.pyc new file mode 100644 index 000000000..17532815a Binary files /dev/null and b/editor/migrations/__pycache__/0061_auto_20220518_1356.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0062_itemqueueentry_assigned_user.cpython-38.pyc b/editor/migrations/__pycache__/0062_itemqueueentry_assigned_user.cpython-38.pyc new file mode 100644 index 000000000..864fa23f0 Binary files /dev/null and b/editor/migrations/__pycache__/0062_itemqueueentry_assigned_user.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0063_alter_abilityframework_options_and_more.cpython-38.pyc b/editor/migrations/__pycache__/0063_alter_abilityframework_options_and_more.cpython-38.pyc new file mode 100644 index 000000000..746ef9b7b Binary files /dev/null and b/editor/migrations/__pycache__/0063_alter_abilityframework_options_and_more.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/0064_alter_editoritem_options.cpython-38.pyc b/editor/migrations/__pycache__/0064_alter_editoritem_options.cpython-38.pyc new file mode 100644 index 000000000..65041e53a Binary files /dev/null and b/editor/migrations/__pycache__/0064_alter_editoritem_options.cpython-38.pyc differ diff --git a/editor/migrations/__pycache__/__init__.cpython-38.pyc b/editor/migrations/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..c945b5cde Binary files /dev/null and b/editor/migrations/__pycache__/__init__.cpython-38.pyc differ diff --git a/editor/static/js/question/part_types.js b/editor/static/js/question/part_types.js index af1721865..d817abf45 100644 --- a/editor/static/js/question/part_types.js +++ b/editor/static/js/question/part_types.js @@ -673,7 +673,7 @@ part_types.models = [ model.addChoice = function() { var c = { - content: Editor.contentObservable('Choice '+(model.choices().length+1)), + content: Editor.contentObservable(''), marks: ko.observable(0), distractor: Editor.contentObservable(''), answers: ko.observableArray([]) @@ -828,7 +828,7 @@ part_types.models = [ model.addChoice = function() { var c = { - content: Editor.contentObservable('Choice '+(model.choices().length+1)), + content: Editor.contentObservable(''), marks: ko.observable(0), distractor: Editor.contentObservable(''), answers: ko.observableArray([]) @@ -1037,7 +1037,7 @@ part_types.models = [ model.addChoice = function() { var c = { - content: Editor.contentObservable('Choice '+(model.choices().length+1)), + content: Editor.contentObservable(''), marks: ko.observable(0), distractor: Editor.contentObservable('') }; diff --git a/editor/templates/index_message.html b/editor/templates/index_message.html new file mode 100644 index 000000000..2463ac075 --- /dev/null +++ b/editor/templates/index_message.html @@ -0,0 +1,14 @@ +

Welcome to Numbas development

+ +

+Numbas is a web-based e-assessment system developed at Newcastle University. +

+ +

+This instance of the Numbas editor is run by someone who didn't customise this message. +

+ +

+If you have any comments or questions about Numbas, please send an e-mail to +numbas@ncl.ac.uk or visit our website. +

diff --git a/editor/templates/privacy_policy_content.html b/editor/templates/privacy_policy_content.html new file mode 100644 index 000000000..000ce9cac --- /dev/null +++ b/editor/templates/privacy_policy_content.html @@ -0,0 +1,6 @@ +
+

Privacy policy

+
+ +

The site administrator needs to put the privacy policy here.

+

For sites based in the UK, the ICO provides good advice on writing a privacy notice.

diff --git a/editor/templates/terms_of_use_content.html b/editor/templates/terms_of_use_content.html new file mode 100644 index 000000000..a0c67dd30 --- /dev/null +++ b/editor/templates/terms_of_use_content.html @@ -0,0 +1,5 @@ +
+

Terms of use

+
+ +

The site administrator needs to put the terms of use here.

diff --git a/editor/templatetags/__pycache__/__init__.cpython-38.pyc b/editor/templatetags/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..aead640bf Binary files /dev/null and b/editor/templatetags/__pycache__/__init__.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/can_edit.cpython-38.pyc b/editor/templatetags/__pycache__/can_edit.cpython-38.pyc new file mode 100644 index 000000000..7279f8551 Binary files /dev/null and b/editor/templatetags/__pycache__/can_edit.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/editable_package.cpython-38.pyc b/editor/templatetags/__pycache__/editable_package.cpython-38.pyc new file mode 100644 index 000000000..daca8dd7a Binary files /dev/null and b/editor/templatetags/__pycache__/editable_package.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/editor_controls.cpython-38.pyc b/editor/templatetags/__pycache__/editor_controls.cpython-38.pyc new file mode 100644 index 000000000..aaed09b56 Binary files /dev/null and b/editor/templatetags/__pycache__/editor_controls.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/extra_sanitize.cpython-38.pyc b/editor/templatetags/__pycache__/extra_sanitize.cpython-38.pyc new file mode 100644 index 000000000..1c76add1b Binary files /dev/null and b/editor/templatetags/__pycache__/extra_sanitize.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/helplink.cpython-38.pyc b/editor/templatetags/__pycache__/helplink.cpython-38.pyc new file mode 100644 index 000000000..03a6c4da0 Binary files /dev/null and b/editor/templatetags/__pycache__/helplink.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/human_list.cpython-38.pyc b/editor/templatetags/__pycache__/human_list.cpython-38.pyc new file mode 100644 index 000000000..0ce00ab13 Binary files /dev/null and b/editor/templatetags/__pycache__/human_list.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/json_filter.cpython-38.pyc b/editor/templatetags/__pycache__/json_filter.cpython-38.pyc new file mode 100644 index 000000000..160253857 Binary files /dev/null and b/editor/templatetags/__pycache__/json_filter.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/links.cpython-38.pyc b/editor/templatetags/__pycache__/links.cpython-38.pyc new file mode 100644 index 000000000..07ba71698 Binary files /dev/null and b/editor/templatetags/__pycache__/links.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/percentage.cpython-38.pyc b/editor/templatetags/__pycache__/percentage.cpython-38.pyc new file mode 100644 index 000000000..e297e1de4 Binary files /dev/null and b/editor/templatetags/__pycache__/percentage.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/raw_include.cpython-38.pyc b/editor/templatetags/__pycache__/raw_include.cpython-38.pyc new file mode 100644 index 000000000..05a84431b Binary files /dev/null and b/editor/templatetags/__pycache__/raw_include.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/sstatic.cpython-38.pyc b/editor/templatetags/__pycache__/sstatic.cpython-38.pyc new file mode 100644 index 000000000..edf2dcc0c Binary files /dev/null and b/editor/templatetags/__pycache__/sstatic.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/stamp.cpython-38.pyc b/editor/templatetags/__pycache__/stamp.cpython-38.pyc new file mode 100644 index 000000000..815b9c709 Binary files /dev/null and b/editor/templatetags/__pycache__/stamp.cpython-38.pyc differ diff --git a/editor/templatetags/__pycache__/timeline.cpython-38.pyc b/editor/templatetags/__pycache__/timeline.cpython-38.pyc new file mode 100644 index 000000000..9b5fa58e1 Binary files /dev/null and b/editor/templatetags/__pycache__/timeline.cpython-38.pyc differ diff --git a/editor/views/__pycache__/__init__.cpython-38.pyc b/editor/views/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..be5e97bd3 Binary files /dev/null and b/editor/views/__pycache__/__init__.cpython-38.pyc differ diff --git a/editor/views/__pycache__/basket.cpython-38.pyc b/editor/views/__pycache__/basket.cpython-38.pyc new file mode 100644 index 000000000..8805341bd Binary files /dev/null and b/editor/views/__pycache__/basket.cpython-38.pyc differ diff --git a/editor/views/__pycache__/custom_part_type.cpython-38.pyc b/editor/views/__pycache__/custom_part_type.cpython-38.pyc new file mode 100644 index 000000000..813556e43 Binary files /dev/null and b/editor/views/__pycache__/custom_part_type.cpython-38.pyc differ diff --git a/editor/views/__pycache__/editable_package.cpython-38.pyc b/editor/views/__pycache__/editable_package.cpython-38.pyc new file mode 100644 index 000000000..1aed753bf Binary files /dev/null and b/editor/views/__pycache__/editable_package.cpython-38.pyc differ diff --git a/editor/views/__pycache__/editoritem.cpython-38.pyc b/editor/views/__pycache__/editoritem.cpython-38.pyc new file mode 100644 index 000000000..996457197 Binary files /dev/null and b/editor/views/__pycache__/editoritem.cpython-38.pyc differ diff --git a/editor/views/__pycache__/errors.cpython-38.pyc b/editor/views/__pycache__/errors.cpython-38.pyc new file mode 100644 index 000000000..885c2b69d Binary files /dev/null and b/editor/views/__pycache__/errors.cpython-38.pyc differ diff --git a/editor/views/__pycache__/exam.cpython-38.pyc b/editor/views/__pycache__/exam.cpython-38.pyc new file mode 100644 index 000000000..510bcb9db Binary files /dev/null and b/editor/views/__pycache__/exam.cpython-38.pyc differ diff --git a/editor/views/__pycache__/extension.cpython-38.pyc b/editor/views/__pycache__/extension.cpython-38.pyc new file mode 100644 index 000000000..e56e2aaa5 Binary files /dev/null and b/editor/views/__pycache__/extension.cpython-38.pyc differ diff --git a/editor/views/__pycache__/folder.cpython-38.pyc b/editor/views/__pycache__/folder.cpython-38.pyc new file mode 100644 index 000000000..b1ed965b3 Binary files /dev/null and b/editor/views/__pycache__/folder.cpython-38.pyc differ diff --git a/editor/views/__pycache__/generic.cpython-38.pyc b/editor/views/__pycache__/generic.cpython-38.pyc new file mode 100644 index 000000000..8f4c61249 Binary files /dev/null and b/editor/views/__pycache__/generic.cpython-38.pyc differ diff --git a/editor/views/__pycache__/notification.cpython-38.pyc b/editor/views/__pycache__/notification.cpython-38.pyc new file mode 100644 index 000000000..5ad3bd195 Binary files /dev/null and b/editor/views/__pycache__/notification.cpython-38.pyc differ diff --git a/editor/views/__pycache__/project.cpython-38.pyc b/editor/views/__pycache__/project.cpython-38.pyc new file mode 100644 index 000000000..a03b3acd4 Binary files /dev/null and b/editor/views/__pycache__/project.cpython-38.pyc differ diff --git a/editor/views/__pycache__/question.cpython-38.pyc b/editor/views/__pycache__/question.cpython-38.pyc new file mode 100644 index 000000000..071a31009 Binary files /dev/null and b/editor/views/__pycache__/question.cpython-38.pyc differ diff --git a/editor/views/__pycache__/queue.cpython-38.pyc b/editor/views/__pycache__/queue.cpython-38.pyc new file mode 100644 index 000000000..568aff3e1 Binary files /dev/null and b/editor/views/__pycache__/queue.cpython-38.pyc differ diff --git a/editor/views/__pycache__/resource.cpython-38.pyc b/editor/views/__pycache__/resource.cpython-38.pyc new file mode 100644 index 000000000..82602e116 Binary files /dev/null and b/editor/views/__pycache__/resource.cpython-38.pyc differ diff --git a/editor/views/__pycache__/site_broadcast.cpython-38.pyc b/editor/views/__pycache__/site_broadcast.cpython-38.pyc new file mode 100644 index 000000000..1fb1e124d Binary files /dev/null and b/editor/views/__pycache__/site_broadcast.cpython-38.pyc differ diff --git a/editor/views/__pycache__/theme.cpython-38.pyc b/editor/views/__pycache__/theme.cpython-38.pyc new file mode 100644 index 000000000..2bf70a50d Binary files /dev/null and b/editor/views/__pycache__/theme.cpython-38.pyc differ diff --git a/editor/views/__pycache__/timeline.cpython-38.pyc b/editor/views/__pycache__/timeline.cpython-38.pyc new file mode 100644 index 000000000..570cb19e5 Binary files /dev/null and b/editor/views/__pycache__/timeline.cpython-38.pyc differ diff --git a/editor/views/__pycache__/user.cpython-38.pyc b/editor/views/__pycache__/user.cpython-38.pyc new file mode 100644 index 000000000..d775212a1 Binary files /dev/null and b/editor/views/__pycache__/user.cpython-38.pyc differ diff --git a/migration/__pycache__/__init__.cpython-38.pyc b/migration/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..4edb49da3 Binary files /dev/null and b/migration/__pycache__/__init__.cpython-38.pyc differ diff --git a/migration/__pycache__/forms.cpython-38.pyc b/migration/__pycache__/forms.cpython-38.pyc new file mode 100644 index 000000000..3969cfa99 Binary files /dev/null and b/migration/__pycache__/forms.cpython-38.pyc differ diff --git a/migration/__pycache__/urls.cpython-38.pyc b/migration/__pycache__/urls.cpython-38.pyc new file mode 100644 index 000000000..009f5a4f4 Binary files /dev/null and b/migration/__pycache__/urls.cpython-38.pyc differ diff --git a/migration/__pycache__/views.cpython-38.pyc b/migration/__pycache__/views.cpython-38.pyc new file mode 100644 index 000000000..94a4ab2fc Binary files /dev/null and b/migration/__pycache__/views.cpython-38.pyc differ diff --git a/numbas/__pycache__/__init__.cpython-38.pyc b/numbas/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 000000000..ca5a610f1 Binary files /dev/null and b/numbas/__pycache__/__init__.cpython-38.pyc differ diff --git a/numbas/__pycache__/settings.cpython-38.pyc b/numbas/__pycache__/settings.cpython-38.pyc new file mode 100644 index 000000000..f3e777129 Binary files /dev/null and b/numbas/__pycache__/settings.cpython-38.pyc differ diff --git a/numbas/__pycache__/urls.cpython-38.pyc b/numbas/__pycache__/urls.cpython-38.pyc new file mode 100644 index 000000000..f9f7bd815 Binary files /dev/null and b/numbas/__pycache__/urls.cpython-38.pyc differ diff --git a/numbas/settings.py b/numbas/settings.py new file mode 100644 index 000000000..87f2dc8cf --- /dev/null +++ b/numbas/settings.py @@ -0,0 +1,223 @@ +""" +For more information on this file, see +https://docs.djangoproject.com/en/2.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.0/ref/settings/ +""" + +import os +import sys + +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + +DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'lk9_ggyjkq11t#u1cykf@u36577z8t!rr@(x#4a%qobny+vp8&' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + +DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' + +# Application definition + +INSTALLED_APPS = [ + 'accounts', + 'editor', + + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'django.contrib.sites', + + 'django.contrib.humanize', + 'sanitizer', + 'notifications', + 'analytical', + 'reversion', + 'registration', + 'django_tables2', + 'taggit', + 'el_pagination', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'numbas.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + "django.template.context_processors.i18n", + "django.template.context_processors.media", + "django.template.context_processors.static", + "editor.context_processors.global_settings", + "editor.context_processors.site_root", + ], + }, + }, +] + +# Database +# https://docs.djangoproject.com/en/2.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + +# Password hashing +# https://docs.djangoproject.com/en/4.1/ref/settings/#std-setting-PASSWORD_HASHERS +PASSWORD_HASHERS = [ + 'django.contrib.auth.hashers.ScryptPasswordHasher', + 'django.contrib.auth.hashers.PBKDF2PasswordHasher', + 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.Argon2PasswordHasher', + 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', +] + + +# Internationalization +# https://docs.djangoproject.com/en/2.0/topics/i18n/ + +LANGUAGE_CODE = 'en-gb' + +TIME_ZONE = 'Europe/London' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.0/howto/static-files/ + +STATIC_URL = '/static/' +STATIC_ROOT = 'editor/static' + +SITE_TITLE = 'Numbas development' +SITE_ID = 1 + +MATHJAX_URL = 'https://cdn.jsdelivr.net/npm/mathjax@2' + +MEDIA_ROOT = 'media' +MEDIA_URL = '/media/' + +GLOBAL_SETTINGS = { + 'NUMBAS_PATH': 'C:\\Users\\Lapin\\OneDrive - Newcastle University\\Documents\\html\\compiler', + 'PREVIEW_PATH': 'editor/static/previews', + 'PREVIEW_URL': '/static/previews/', # a URL which serves files from PREVIEW_PATH + 'HELP_URL': 'https://docs.numbas.org.uk/en/latest/', # the URL of the Numbas webdocs + 'PYTHON_EXEC': 'C:\\Users\\Lapin\\OneDrive - Newcastle University\\Documents\\html\\numbas_venv\\Scripts\\python.exe', + 'NUMBAS_THEMES': [('Standard', 'default'), ('Printable worksheet', 'worksheet'), ('School', 'school')], + 'NUMBAS_LOCALES': [ + ('English', 'en-GB'), + ('Afrikaans (92% complete)', 'af-ZA'), + ('Bahasa Indonesia (83% complete)', 'in-ID'), + ('Deutsch (91% complete)', 'de-DE'), + ('Español (83% complete)', 'es-ES'), + ('Français (76% complete)', 'fr-FR'), + ('Italiano (53% complete)', 'it-IT'), + ('Nederlands (87% complete)', 'nl-NL'), + ('Norsk bokmål (56% complete)', 'nb-NO'), + ('Polski (18% complete)', 'pl-PL'), + ('Português brasileiro (65% complete)', 'pt-BR'), + ('Shqip (53% complete)', 'sq-AL'), + ('Svenska (61% complete)', 'sv-SE'), + ('Tiếng Việt (88% complete)', 'vi-VN'), + ('Türkçe (13% complete)', 'tr-TR'), + ('עִבְרִית (20% complete)', 'he-IL'), + ('中文 (75% complete)', 'zh-CN'), + ('日本語 (38% complete)', 'ja-JP'), + ('ﺎﻠﻋﺮﺒﻳﺓ (80% complete)', 'ar-SA'), + ], + #Uncomment the lines below and provide paths to minification tools to minify javascript and CSS files + #'MINIFIER_PATHS': { + # 'js': 'uglifyjs', + # 'css': 'uglifycss', + #} +} + +EVERYTHING_VISIBLE = False # Set this to True to allow every user to see all content, regardless of access settings + +ALLOW_REGISTRATION = True +ACCOUNT_ACTIVATION_DAYS = 10 + +LOGIN_REDIRECT_URL = '/' +LOGIN_URL = '/login/' +CAN_LOGOUT = True +CAN_CHANGE_PASSWORD = True +LOGOUT_REDIRECT_URL = '/' + +sys.path.append(os.path.join(GLOBAL_SETTINGS['NUMBAS_PATH'],'bin')) + +SANITIZER_ALLOWED_TAGS = ['a', 'p', 'img','br','strong','em','div','code','i','b', 'ul', 'ol', 'li', 'table','thead','tbody','td','th','tr', 'h1','h2','h3','h4','h5','h6', 'hr'] +SANITIZER_ALLOWED_ATTRIBUTES = ['href','title'] + +DEFAULT_FROM_EMAIL = '' + +# Must users be able to view all the questions in an exam in order to view the exam? +EXAM_ACCESS_REQUIRES_QUESTION_ACCESS = False + +# The prefix for all URLs on this server. +# If the editor is accessed through https://mydomain.com/editor/, then URL_PREFIX should be '/editor/'. +# If it's accessed from the top of the domain, then it should be '/'. +URL_PREFIX = '/' + +# CSS variables for the interface. +CSS_VARIABLES = { + 'brand-color': '#acdeff', # The colour of the top nav bar. +} + +# Settings for the lockdown app +LOCKDOWN_APP = { + # Salt for encrypted links to launch the lockdown app. + # This is built into the lockdown app, so shouldn't change unless you have your own version. + 'salt': '45ab2cf2e139c01f8447d17dc653d585', +}