From 4eb421bc33decc4abceabcb56d0f67626bb541ea Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 12 Jun 2023 11:14:19 +0100 Subject: [PATCH] hacky reset of migrations --- anatomy/migrations/0001_initial.py | 141 +++++++------- anatomy/migrations/0002_exam_active.py | 18 -- anatomy/migrations/0002_initial.py | 85 +++++++++ anatomy/migrations/0003_auto_20201119_1941.py | 40 ---- anatomy/migrations/0004_auto_20201123_1619.py | 25 --- anatomy/migrations/0005_auto_20201126_1730.py | 39 ---- anatomy/migrations/0006_auto_20201129_0955.py | 25 --- anatomy/migrations/0007_auto_20201201_2358.py | 23 --- .../0008_anatomyquestion_open_access.py | 18 -- .../0009_anatomyquestion_image_annotations.py | 18 -- anatomy/migrations/0010_auto_20201206_1716.py | 26 --- .../migrations/0011_anatomyquestion_author.py | 20 -- .../migrations/0012_exam_publish_results.py | 18 -- anatomy/migrations/0013_auto_20201227_1200.py | 35 ---- anatomy/migrations/0014_exam_time_limit.py | 18 -- anatomy/migrations/0015_auto_20201228_2235.py | 18 -- anatomy/migrations/0016_auto_20210104_1310.py | 25 --- anatomy/migrations/0017_auto_20210104_1355.py | 23 --- anatomy/migrations/0018_auto_20210112_1726.py | 34 ---- anatomy/migrations/0019_auto_20210118_1339.py | 20 -- anatomy/migrations/0020_auto_20210118_1402.py | 20 -- anatomy/migrations/0021_auto_20210120_2206.py | 20 -- anatomy/migrations/0022_auto_20210121_1806.py | 20 -- anatomy/migrations/0023_auto_20210125_1534.py | 20 -- anatomy/migrations/0024_auto_20210130_1515.py | 20 -- anatomy/migrations/0025_auto_20210205_1106.py | 23 --- ...0026_remove_anatomyquestion_examination.py | 17 -- .../0027_anatomyquestion_examination.py | 20 -- anatomy/migrations/0028_auto_20210206_0905.py | 24 --- anatomy/migrations/0029_auto_20210209_2239.py | 20 -- anatomy/migrations/0030_auto_20210214_2028.py | 20 -- anatomy/migrations/0031_auto_20210215_1043.py | 20 -- anatomy/migrations/0032_auto_20210215_1144.py | 20 -- anatomy/migrations/0033_auto_20210215_1147.py | 20 -- anatomy/migrations/0034_auto_20210215_1200.py | 19 -- .../0035_exam_json_creation_time.py | 18 -- anatomy/migrations/0036_exam_exam_mode.py | 18 -- anatomy/migrations/0037_auto_20210422_1143.py | 35 ---- anatomy/migrations/0038_auto_20210429_1904.py | 17 -- anatomy/migrations/0039_answer_proposed.py | 18 -- .../migrations/0040_alter_exam_exam_mode.py | 18 -- anatomy/migrations/0041_alter_exam_name.py | 18 -- .../migrations/0042_exam_json_creation_id.py | 18 -- ...name_json_creation_id_exam_exam_json_id.py | 18 -- anatomy/migrations/0044_auto_20210816_1306.py | 23 --- anatomy/migrations/0045_exam_open_access.py | 18 -- .../migrations/0046_alter_exam_open_access.py | 18 -- anatomy/migrations/0047_auto_20211022_2038.py | 28 --- anatomy/migrations/0048_auto_20211025_1102.py | 25 --- anatomy/migrations/0049_delete_structure.py | 16 -- .../0050_rename_structure2_structure.py | 17 -- .../0051_alter_anatomyquestion_structure.py | 19 -- .../0052_remove_anatomyquestion_structure.py | 17 -- .../0053_anatomyquestion_structure.py | 19 -- anatomy/migrations/0054_exam_valid_users.py | 19 -- .../migrations/0055_ciduseranswer_score.py | 18 -- .../0056_alter_ciduseranswer_score.py | 18 -- anatomy/migrations/0057_auto_20211215_2036.py | 53 ------ anatomy/migrations/0058_exam_user_scores.py | 18 -- .../migrations/0059_exam_include_history.py | 18 -- anatomy/migrations/0060_exam_authors_only.py | 18 -- ...rename_valid_users_exam_valid_cid_users.py | 18 -- .../migrations/0062_exam_valid_user_users.py | 20 -- anatomy/migrations/0063_ciduseranswer_user.py | 21 --- anatomy/migrations/0064_auto_20220521_1020.py | 24 --- .../0065_exam_exam_results_emailed.py | 18 -- .../0066_remove_exam_stats_graph.py | 17 -- .../0067_alter_anatomyquestion_image.py | 19 -- .../0068_alter_ciduseranswer_options.py | 17 -- .../0069_rename_ciduseranswer_useranswer.py | 19 -- .../0070_anatomyquestion_authors_only.py | 18 -- .../0071_anatomyquestion_feedback.py | 18 -- atlas/migrations/0001_initial.py | 173 +++++++++++++++--- atlas/migrations/0002_auto_20211123_2240.py | 24 --- atlas/migrations/0002_initial.py | 156 ++++++++++++++++ ...03_rename_subpecialty_case_subspecialty.py | 18 -- atlas/migrations/0004_auto_20211125_2216.py | 26 --- .../migrations/0005_condition_primary_name.py | 18 -- atlas/migrations/0006_auto_20211128_1448.py | 34 ---- atlas/migrations/0007_auto_20211128_1622.py | 87 --------- ...008_rename_seriesfindings_seriesfinding.py | 17 -- .../0009_seriesfinding_viewport_json.py | 18 -- atlas/migrations/0010_auto_20211129_2214.py | 33 ---- atlas/migrations/0011_auto_20211130_1807.py | 39 ---- atlas/migrations/0012_auto_20211130_2050.py | 28 --- .../0013_rename_structure_structure_name.py | 18 -- atlas/migrations/0014_remove_case_sign.py | 17 -- atlas/migrations/0015_condition_parent.py | 18 -- atlas/migrations/0016_auto_20211206_2224.py | 25 --- atlas/migrations/0017_presentation.py | 23 --- .../0018_alter_presentation_name.py | 18 -- atlas/migrations/0019_case_presentation.py | 18 -- ...gical_process_case_pathological_process.py | 18 -- ...pathalogicalprocess_pathologicalprocess.py | 17 -- atlas/migrations/0022_auto_20211214_1745.py | 35 ---- atlas/migrations/0023_case_previous_case.py | 19 -- .../0024_alter_case_previous_case.py | 19 -- atlas/migrations/0025_auto_20220321_1602.py | 36 ---- atlas/migrations/0026_auto_20220321_1612.py | 23 --- atlas/migrations/0027_auto_20220325_2138.py | 32 ---- .../migrations/0028_casecollection_author.py | 20 -- .../0029_casecollection_show_report.py | 18 -- atlas/migrations/0030_auto_20220331_2224.py | 27 --- ...31_alter_casecollection_collection_type.py | 18 -- atlas/migrations/0032_auto_20220401_1849.py | 38 ---- .../migrations/0033_casecollection_archive.py | 18 -- atlas/migrations/0034_auto_20220401_2235.py | 23 --- .../0035_casecollection_show_history.py | 18 -- .../0036_casecollection_exam_mode.py | 18 -- .../0037_cidreportanswer_feedback.py | 18 -- atlas/migrations/0038_auto_20220408_2355.py | 43 ----- atlas/migrations/0039_auto_20220408_2357.py | 63 ------- atlas/migrations/0040_casecollection_group.py | 20 -- atlas/migrations/0041_auto_20220421_1747.py | 23 --- atlas/migrations/0042_auto_20220421_1751.py | 24 --- ...43_alter_casecollection_cid_user_groups.py | 19 -- atlas/migrations/0044_userreportanswer.py | 33 ---- ...id_users_casecollection_valid_cid_users.py | 18 -- .../0046_alter_casedetail_sort_order.py | 18 -- ...parent_alter_condition_synonym_and_more.py | 33 ---- atlas/migrations/0048_auto_20230116_1119.py | 33 ---- ...parent_alter_condition_synonym_and_more.py | 33 ---- .../0050_alter_series_description.py | 18 -- generic/migrations/0001_initial.py | 167 ++++++++++++++--- generic/migrations/0002_delete_site.py | 17 -- generic/migrations/0003_site.py | 21 --- generic/migrations/0004_auto_20210205_1031.py | 17 -- generic/migrations/0005_auto_20210205_1035.py | 17 -- generic/migrations/0006_delete_site.py | 16 -- generic/migrations/0007_site.py | 21 --- generic/migrations/0008_plane.py | 23 --- generic/migrations/0009_contrast.py | 23 --- generic/migrations/0010_questionnote.py | 26 --- generic/migrations/0011_auto_20210503_1831.py | 31 ---- generic/migrations/0012_auto_20210505_1828.py | 19 -- .../0013_questionnote_user_author.py | 21 --- .../0014_alter_questionnote_note.py | 18 -- .../migrations/0015_ciduser_ciduserexam.py | 34 ---- generic/migrations/0016_ciduser_active.py | 18 -- generic/migrations/0017_alter_ciduser_cid.py | 18 -- generic/migrations/0018_auto_20211214_1745.py | 46 ----- .../migrations/0019_cidusergroup_archive.py | 18 -- .../0020_ciduser_supervisor_email.py | 18 -- .../0021_ciduser_login_email_sent.py | 18 -- .../0022_ciduser_results_email_sent.py | 18 -- .../0023_alter_examination_examination.py | 18 -- generic/migrations/0024_auto_20211231_1044.py | 23 --- .../migrations/0025_alter_ciduser_group.py | 19 -- ...0026_ciduser_generic_cid_cid_291418_idx.py | 17 -- generic/migrations/0027_auto_20220520_1705.py | 24 --- .../0028_alter_ciduserexam_user_user.py | 21 --- generic/migrations/0029_userusergroup.py | 24 --- .../0030_alter_userusergroup_users.py | 20 -- generic/migrations/0031_userprofile.py | 25 --- .../0032_userprofile_registration_number.py | 18 -- generic/migrations/0033_userprofile_grade.py | 18 -- generic/migrations/0034_auto_20220523_2010.py | 29 --- generic/migrations/0035_userprofile_grade.py | 19 -- ...0036_ciduserexam_results_emailed_status.py | 18 -- generic/migrations/0037_supervisor.py | 26 --- .../migrations/0038_alter_supervisor_user.py | 21 --- .../migrations/0039_alter_supervisor_user.py | 21 --- .../migrations/0040_alter_supervisor_email.py | 18 -- generic/migrations/0041_auto_20221114_1355.py | 54 ------ .../migrations/0042_userprofile_supervisor.py | 19 -- .../0043_alter_userprofile_supervisor.py | 19 -- generic/migrations/0044_auto_20221114_2035.py | 32 ---- generic/migrations/0045_auto_20221114_2103.py | 21 --- generic/migrations/0046_auto_20221121_0955.py | 23 --- generic/migrations/0047_auto_20221121_1637.py | 29 --- ...chive_alter_userusergroup_name_and_more.py | 40 ---- generic/migrations/0049_auto_20230116_1119.py | 13 -- .../0050_delete_condition_delete_sign.py | 20 -- longs/migrations/0001_initial.py | 149 +++++++++++---- longs/migrations/0002_auto_20210204_2258.py | 24 --- longs/migrations/0003_long_condition.py | 20 -- longs/migrations/0004_auto_20210204_2259.py | 24 --- longs/migrations/0005_auto_20210205_0955.py | 18 -- longs/migrations/0006_auto_20210205_0958.py | 18 -- .../migrations/0007_longseries_examination.py | 20 -- longs/migrations/0008_auto_20210205_1013.py | 21 --- longs/migrations/0009_auto_20210205_1146.py | 24 --- longs/migrations/0010_auto_20210206_0905.py | 26 --- longs/migrations/0011_auto_20210206_1531.py | 19 -- longs/migrations/0012_auto_20210206_1541.py | 24 --- longs/migrations/0013_auto_20210206_2147.py | 18 -- longs/migrations/0014_auto_20210211_1827.py | 20 -- longs/migrations/0015_auto_20210214_2028.py | 25 --- longs/migrations/0016_auto_20210214_2301.py | 17 -- longs/migrations/0017_auto_20210215_1043.py | 20 -- longs/migrations/0018_auto_20210215_1052.py | 19 -- .../0019_longseriesimage_upload_filename.py | 18 -- longs/migrations/0020_auto_20210216_1018.py | 22 --- longs/migrations/0021_auto_20210216_1018.py | 18 -- longs/migrations/0022_long_mark_scheme.py | 18 -- longs/migrations/0023_auto_20210216_1315.py | 18 -- longs/migrations/0024_auto_20210217_1423.py | 17 -- longs/migrations/0025_auto_20210217_2218.py | 20 -- longs/migrations/0026_long_description.py | 18 -- longs/migrations/0027_longseries_plane.py | 20 -- longs/migrations/0028_longseries_contrast.py | 20 -- longs/migrations/0029_auto_20210225_1819.py | 25 --- longs/migrations/0030_long_recreate_json.py | 18 -- longs/migrations/0031_auto_20210309_1527.py | 23 --- longs/migrations/0032_exam_exam_mode.py | 18 -- longs/migrations/0033_auto_20210422_1143.py | 28 --- longs/migrations/0034_exam_author.py | 20 -- .../migrations/0035_longseries_open_access.py | 18 -- longs/migrations/0036_alter_exam_exam_mode.py | 18 -- .../migrations/0037_alter_exam_time_limit.py | 18 -- longs/migrations/0038_alter_exam_name.py | 18 -- longs/migrations/0039_auto_20210801_0918.py | 23 --- longs/migrations/0040_auto_20210801_0947.py | 23 --- longs/migrations/0041_long_sorted_series.py | 19 -- longs/migrations/0042_auto_20210811_1837.py | 23 --- .../0043_rename_sorted_series_long_series.py | 18 -- longs/migrations/0044_auto_20210816_1306.py | 23 --- .../0045_alter_ciduseranswer_score.py | 18 -- longs/migrations/0046_delete_note.py | 16 -- longs/migrations/0047_auto_20210911_1759.py | 36 ---- longs/migrations/0048_auto_20210911_1806.py | 26 --- .../0049_alter_ciduseranswer_mark.py | 18 -- longs/migrations/0050_auto_20210911_1818.py | 23 --- longs/migrations/0051_exam_double_mark.py | 18 -- .../migrations/0052_alter_exam_double_mark.py | 18 -- longs/migrations/0053_exam_open_access.py | 18 -- .../migrations/0054_alter_exam_open_access.py | 18 -- longs/migrations/0055_exam_valid_users.py | 19 -- longs/migrations/0056_auto_20211215_2036.py | 53 ------ longs/migrations/0057_exam_user_scores.py | 18 -- longs/migrations/0058_exam_include_history.py | 18 -- longs/migrations/0059_exam_authors_only.py | 18 -- ...rename_valid_users_exam_valid_cid_users.py | 18 -- .../migrations/0061_exam_valid_user_users.py | 20 -- longs/migrations/0062_auto_20220521_2135.py | 32 ---- .../0063_exam_exam_results_emailed.py | 18 -- .../0064_remove_exam_stats_graph.py | 17 -- ..._remove_long_condition_remove_long_sign.py | 21 --- .../0066_rename_ciduseranswer_useranswer.py | 19 -- longs/migrations/0067_long_authors_only.py | 18 -- .../0068_remove_long_published_date.py | 17 -- longs/migrations/0069_alter_long_feedback.py | 18 -- ...ong_condition_remove_long_sign_and_more.py | 18 -- physics/migrations/0001_initial.py | 116 +++++++++--- physics/migrations/0002_auto_20201216_2207.py | 43 ----- physics/migrations/0003_auto_20201228_2235.py | 38 ---- .../0004_exam_json_creation_time.py | 18 -- physics/migrations/0005_exam_exam_mode.py | 18 -- physics/migrations/0006_auto_20210422_1143.py | 28 --- physics/migrations/0007_exam_author.py | 20 -- .../migrations/0008_alter_exam_exam_mode.py | 18 -- physics/migrations/0009_alter_exam_name.py | 18 -- .../migrations/0010_exam_json_creation_id.py | 18 -- ...name_json_creation_id_exam_exam_json_id.py | 18 -- physics/migrations/0012_auto_20210816_1306.py | 23 --- physics/migrations/0013_exam_open_access.py | 18 -- .../migrations/0014_alter_exam_open_access.py | 18 -- physics/migrations/0015_exam_valid_users.py | 19 -- physics/migrations/0016_auto_20211215_2036.py | 53 ------ physics/migrations/0017_exam_user_scores.py | 18 -- .../migrations/0018_exam_include_history.py | 18 -- physics/migrations/0019_exam_authors_only.py | 18 -- ...rename_valid_users_exam_valid_cid_users.py | 18 -- .../migrations/0021_exam_valid_user_users.py | 20 -- physics/migrations/0022_auto_20220521_2135.py | 32 ---- .../0023_alter_exam_cid_user_groups.py | 19 -- .../0024_alter_exam_cid_user_groups.py | 19 -- .../0025_exam_exam_results_emailed.py | 18 -- .../0026_remove_exam_stats_graph.py | 17 -- ...ranswer_options_alter_ciduseranswer_cid.py | 22 --- .../0028_rename_ciduseranswer_useranswer.py | 19 -- .../migrations/0029_question_authors_only.py | 18 -- .../migrations/0030_question_open_access.py | 18 -- physics/migrations/0031_question_feedback.py | 18 -- rapids/migrations/0001_initial.py | 111 ++++++++--- rapids/migrations/0002_auto_20210118_1402.py | 52 ------ rapids/migrations/0003_auto_20210120_2206.py | 71 ------- rapids/migrations/0004_auto_20210120_2214.py | 31 ---- rapids/migrations/0005_auto_20210121_1806.py | 30 --- rapids/migrations/0006_auto_20210121_1809.py | 22 --- rapids/migrations/0007_auto_20210125_1534.py | 30 --- rapids/migrations/0008_auto_20210130_1515.py | 25 --- rapids/migrations/0009_auto_20210205_1046.py | 24 --- rapids/migrations/0010_auto_20210205_1051.py | 19 -- rapids/migrations/0011_auto_20210205_1056.py | 33 ---- rapids/migrations/0012_auto_20210206_0905.py | 18 -- rapids/migrations/0013_auto_20210209_2239.py | 20 -- rapids/migrations/0014_auto_20210211_2034.py | 20 -- rapids/migrations/0015_auto_20210211_2035.py | 20 -- rapids/migrations/0016_auto_20210214_2028.py | 20 -- rapids/migrations/0017_auto_20210215_1043.py | 20 -- rapids/migrations/0018_auto_20210215_1144.py | 20 -- rapids/migrations/0019_auto_20210215_1203.py | 20 -- .../0020_exam_json_creation_time.py | 18 -- rapids/migrations/0021_exam_exam_mode.py | 18 -- rapids/migrations/0022_auto_20210422_1143.py | 41 ----- rapids/migrations/0023_answer_proposed.py | 18 -- .../migrations/0024_alter_exam_exam_mode.py | 18 -- rapids/migrations/0025_auto_20210709_1135.py | 26 --- .../migrations/0026_exam_json_creation_id.py | 18 -- ...name_json_creation_id_exam_exam_json_id.py | 18 -- rapids/migrations/0028_auto_20210816_1306.py | 23 --- .../0029_rapidimage_image_annotations.py | 18 -- ...0030_alter_rapidimage_image_annotations.py | 18 -- rapids/migrations/0031_delete_note.py | 16 -- rapids/migrations/0032_exam_double_mark.py | 18 -- rapids/migrations/0033_answermarks.py | 25 --- rapids/migrations/0034_auto_20211016_2128.py | 20 -- rapids/migrations/0035_exam_open_access.py | 18 -- .../migrations/0036_alter_exam_open_access.py | 18 -- rapids/migrations/0037_auto_20211121_1020.py | 23 --- .../0038_alter_rapidimage_image_md5_hash.py | 18 -- rapids/migrations/0039_exam_valid_users.py | 19 -- .../migrations/0040_alter_exam_valid_users.py | 19 -- rapids/migrations/0041_ciduseranswer_score.py | 18 -- rapids/migrations/0042_auto_20211215_2036.py | 53 ------ rapids/migrations/0043_exam_user_scores.py | 18 -- rapids/migrations/0044_rapid_history.py | 18 -- .../migrations/0045_rapidimage_description.py | 18 -- .../migrations/0046_exam_include_history.py | 18 -- .../migrations/0047_exam_cid_user_groups.py | 19 -- .../0048_alter_exam_cid_user_groups.py | 19 -- .../0049_alter_exam_cid_user_groups.py | 19 -- .../0050_alter_exam_cid_user_groups.py | 19 -- rapids/migrations/0051_exam_authors_only.py | 18 -- rapids/migrations/0052_rapidimage_filename.py | 18 -- rapids/migrations/0053_ciduseranswer_user.py | 21 --- ...rename_valid_users_exam_valid_cid_users.py | 18 -- .../migrations/0055_exam_valid_user_users.py | 20 -- .../migrations/0056_exam_user_user_groups.py | 19 -- .../0057_alter_ciduseranswer_user.py | 21 --- rapids/migrations/0058_auto_20220521_1020.py | 24 --- .../0059_ciduseranswer_callstate.py | 18 -- .../0060_exam_exam_results_emailed.py | 18 -- .../0061_remove_exam_stats_graph.py | 17 -- .../0062_alter_ciduseranswer_options.py | 17 -- .../0063_rename_ciduseranswer_useranswer.py | 19 -- rapids/migrations/0064_rapid_authors_only.py | 18 -- .../0065_remove_rapid_published_date.py | 17 -- .../migrations/0066_alter_rapid_feedback.py | 18 -- sbas/migrations/0001_initial.py | 101 +++++++--- sbas/migrations/0002_auto_20210801_0918.py | 53 ------ ...name_json_creation_id_exam_exam_json_id.py | 18 -- sbas/migrations/0004_auto_20210816_1306.py | 23 --- sbas/migrations/0005_exam_open_access.py | 18 -- .../migrations/0006_alter_exam_open_access.py | 18 -- sbas/migrations/0007_exam_valid_users.py | 19 -- sbas/migrations/0008_auto_20211215_2036.py | 53 ------ sbas/migrations/0009_exam_user_scores.py | 18 -- sbas/migrations/0010_exam_include_history.py | 18 -- sbas/migrations/0011_exam_authors_only.py | 18 -- ...rename_valid_users_exam_valid_cid_users.py | 18 -- sbas/migrations/0013_exam_valid_user_users.py | 20 -- sbas/migrations/0014_auto_20220521_2135.py | 32 ---- .../0015_exam_exam_results_emailed.py | 18 -- .../0016_remove_exam_stats_graph.py | 17 -- ...ranswer_options_alter_ciduseranswer_cid.py | 22 --- .../0018_rename_ciduseranswer_useranswer.py | 19 -- sbas/migrations/0019_question_authors_only.py | 18 -- sbas/migrations/0020_question_open_access.py | 18 -- wally/migrations/0001_initial.py | 2 +- 361 files changed, 949 insertions(+), 8097 deletions(-) delete mode 100644 anatomy/migrations/0002_exam_active.py create mode 100644 anatomy/migrations/0002_initial.py delete mode 100644 anatomy/migrations/0003_auto_20201119_1941.py delete mode 100644 anatomy/migrations/0004_auto_20201123_1619.py delete mode 100644 anatomy/migrations/0005_auto_20201126_1730.py delete mode 100644 anatomy/migrations/0006_auto_20201129_0955.py delete mode 100644 anatomy/migrations/0007_auto_20201201_2358.py delete mode 100644 anatomy/migrations/0008_anatomyquestion_open_access.py delete mode 100644 anatomy/migrations/0009_anatomyquestion_image_annotations.py delete mode 100644 anatomy/migrations/0010_auto_20201206_1716.py delete mode 100644 anatomy/migrations/0011_anatomyquestion_author.py delete mode 100644 anatomy/migrations/0012_exam_publish_results.py delete mode 100644 anatomy/migrations/0013_auto_20201227_1200.py delete mode 100644 anatomy/migrations/0014_exam_time_limit.py delete mode 100644 anatomy/migrations/0015_auto_20201228_2235.py delete mode 100644 anatomy/migrations/0016_auto_20210104_1310.py delete mode 100644 anatomy/migrations/0017_auto_20210104_1355.py delete mode 100644 anatomy/migrations/0018_auto_20210112_1726.py delete mode 100644 anatomy/migrations/0019_auto_20210118_1339.py delete mode 100644 anatomy/migrations/0020_auto_20210118_1402.py delete mode 100644 anatomy/migrations/0021_auto_20210120_2206.py delete mode 100644 anatomy/migrations/0022_auto_20210121_1806.py delete mode 100644 anatomy/migrations/0023_auto_20210125_1534.py delete mode 100644 anatomy/migrations/0024_auto_20210130_1515.py delete mode 100644 anatomy/migrations/0025_auto_20210205_1106.py delete mode 100644 anatomy/migrations/0026_remove_anatomyquestion_examination.py delete mode 100644 anatomy/migrations/0027_anatomyquestion_examination.py delete mode 100644 anatomy/migrations/0028_auto_20210206_0905.py delete mode 100644 anatomy/migrations/0029_auto_20210209_2239.py delete mode 100644 anatomy/migrations/0030_auto_20210214_2028.py delete mode 100644 anatomy/migrations/0031_auto_20210215_1043.py delete mode 100644 anatomy/migrations/0032_auto_20210215_1144.py delete mode 100644 anatomy/migrations/0033_auto_20210215_1147.py delete mode 100644 anatomy/migrations/0034_auto_20210215_1200.py delete mode 100644 anatomy/migrations/0035_exam_json_creation_time.py delete mode 100644 anatomy/migrations/0036_exam_exam_mode.py delete mode 100644 anatomy/migrations/0037_auto_20210422_1143.py delete mode 100644 anatomy/migrations/0038_auto_20210429_1904.py delete mode 100644 anatomy/migrations/0039_answer_proposed.py delete mode 100644 anatomy/migrations/0040_alter_exam_exam_mode.py delete mode 100644 anatomy/migrations/0041_alter_exam_name.py delete mode 100644 anatomy/migrations/0042_exam_json_creation_id.py delete mode 100644 anatomy/migrations/0043_rename_json_creation_id_exam_exam_json_id.py delete mode 100644 anatomy/migrations/0044_auto_20210816_1306.py delete mode 100644 anatomy/migrations/0045_exam_open_access.py delete mode 100644 anatomy/migrations/0046_alter_exam_open_access.py delete mode 100644 anatomy/migrations/0047_auto_20211022_2038.py delete mode 100644 anatomy/migrations/0048_auto_20211025_1102.py delete mode 100644 anatomy/migrations/0049_delete_structure.py delete mode 100644 anatomy/migrations/0050_rename_structure2_structure.py delete mode 100644 anatomy/migrations/0051_alter_anatomyquestion_structure.py delete mode 100644 anatomy/migrations/0052_remove_anatomyquestion_structure.py delete mode 100644 anatomy/migrations/0053_anatomyquestion_structure.py delete mode 100644 anatomy/migrations/0054_exam_valid_users.py delete mode 100644 anatomy/migrations/0055_ciduseranswer_score.py delete mode 100644 anatomy/migrations/0056_alter_ciduseranswer_score.py delete mode 100644 anatomy/migrations/0057_auto_20211215_2036.py delete mode 100644 anatomy/migrations/0058_exam_user_scores.py delete mode 100644 anatomy/migrations/0059_exam_include_history.py delete mode 100644 anatomy/migrations/0060_exam_authors_only.py delete mode 100644 anatomy/migrations/0061_rename_valid_users_exam_valid_cid_users.py delete mode 100644 anatomy/migrations/0062_exam_valid_user_users.py delete mode 100644 anatomy/migrations/0063_ciduseranswer_user.py delete mode 100644 anatomy/migrations/0064_auto_20220521_1020.py delete mode 100644 anatomy/migrations/0065_exam_exam_results_emailed.py delete mode 100644 anatomy/migrations/0066_remove_exam_stats_graph.py delete mode 100644 anatomy/migrations/0067_alter_anatomyquestion_image.py delete mode 100644 anatomy/migrations/0068_alter_ciduseranswer_options.py delete mode 100644 anatomy/migrations/0069_rename_ciduseranswer_useranswer.py delete mode 100644 anatomy/migrations/0070_anatomyquestion_authors_only.py delete mode 100644 anatomy/migrations/0071_anatomyquestion_feedback.py delete mode 100644 atlas/migrations/0002_auto_20211123_2240.py create mode 100644 atlas/migrations/0002_initial.py delete mode 100644 atlas/migrations/0003_rename_subpecialty_case_subspecialty.py delete mode 100644 atlas/migrations/0004_auto_20211125_2216.py delete mode 100644 atlas/migrations/0005_condition_primary_name.py delete mode 100644 atlas/migrations/0006_auto_20211128_1448.py delete mode 100644 atlas/migrations/0007_auto_20211128_1622.py delete mode 100644 atlas/migrations/0008_rename_seriesfindings_seriesfinding.py delete mode 100644 atlas/migrations/0009_seriesfinding_viewport_json.py delete mode 100644 atlas/migrations/0010_auto_20211129_2214.py delete mode 100644 atlas/migrations/0011_auto_20211130_1807.py delete mode 100644 atlas/migrations/0012_auto_20211130_2050.py delete mode 100644 atlas/migrations/0013_rename_structure_structure_name.py delete mode 100644 atlas/migrations/0014_remove_case_sign.py delete mode 100644 atlas/migrations/0015_condition_parent.py delete mode 100644 atlas/migrations/0016_auto_20211206_2224.py delete mode 100644 atlas/migrations/0017_presentation.py delete mode 100644 atlas/migrations/0018_alter_presentation_name.py delete mode 100644 atlas/migrations/0019_case_presentation.py delete mode 100644 atlas/migrations/0020_rename_pathalogical_process_case_pathological_process.py delete mode 100644 atlas/migrations/0021_rename_pathalogicalprocess_pathologicalprocess.py delete mode 100644 atlas/migrations/0022_auto_20211214_1745.py delete mode 100644 atlas/migrations/0023_case_previous_case.py delete mode 100644 atlas/migrations/0024_alter_case_previous_case.py delete mode 100644 atlas/migrations/0025_auto_20220321_1602.py delete mode 100644 atlas/migrations/0026_auto_20220321_1612.py delete mode 100644 atlas/migrations/0027_auto_20220325_2138.py delete mode 100644 atlas/migrations/0028_casecollection_author.py delete mode 100644 atlas/migrations/0029_casecollection_show_report.py delete mode 100644 atlas/migrations/0030_auto_20220331_2224.py delete mode 100644 atlas/migrations/0031_alter_casecollection_collection_type.py delete mode 100644 atlas/migrations/0032_auto_20220401_1849.py delete mode 100644 atlas/migrations/0033_casecollection_archive.py delete mode 100644 atlas/migrations/0034_auto_20220401_2235.py delete mode 100644 atlas/migrations/0035_casecollection_show_history.py delete mode 100644 atlas/migrations/0036_casecollection_exam_mode.py delete mode 100644 atlas/migrations/0037_cidreportanswer_feedback.py delete mode 100644 atlas/migrations/0038_auto_20220408_2355.py delete mode 100644 atlas/migrations/0039_auto_20220408_2357.py delete mode 100644 atlas/migrations/0040_casecollection_group.py delete mode 100644 atlas/migrations/0041_auto_20220421_1747.py delete mode 100644 atlas/migrations/0042_auto_20220421_1751.py delete mode 100644 atlas/migrations/0043_alter_casecollection_cid_user_groups.py delete mode 100644 atlas/migrations/0044_userreportanswer.py delete mode 100644 atlas/migrations/0045_rename_valid_users_casecollection_valid_cid_users.py delete mode 100644 atlas/migrations/0046_alter_casedetail_sort_order.py delete mode 100644 atlas/migrations/0047_alter_condition_parent_alter_condition_synonym_and_more.py delete mode 100644 atlas/migrations/0048_auto_20230116_1119.py delete mode 100644 atlas/migrations/0049_alter_condition_parent_alter_condition_synonym_and_more.py delete mode 100644 atlas/migrations/0050_alter_series_description.py delete mode 100644 generic/migrations/0002_delete_site.py delete mode 100644 generic/migrations/0003_site.py delete mode 100644 generic/migrations/0004_auto_20210205_1031.py delete mode 100644 generic/migrations/0005_auto_20210205_1035.py delete mode 100644 generic/migrations/0006_delete_site.py delete mode 100644 generic/migrations/0007_site.py delete mode 100644 generic/migrations/0008_plane.py delete mode 100644 generic/migrations/0009_contrast.py delete mode 100644 generic/migrations/0010_questionnote.py delete mode 100644 generic/migrations/0011_auto_20210503_1831.py delete mode 100644 generic/migrations/0012_auto_20210505_1828.py delete mode 100644 generic/migrations/0013_questionnote_user_author.py delete mode 100644 generic/migrations/0014_alter_questionnote_note.py delete mode 100644 generic/migrations/0015_ciduser_ciduserexam.py delete mode 100644 generic/migrations/0016_ciduser_active.py delete mode 100644 generic/migrations/0017_alter_ciduser_cid.py delete mode 100644 generic/migrations/0018_auto_20211214_1745.py delete mode 100644 generic/migrations/0019_cidusergroup_archive.py delete mode 100644 generic/migrations/0020_ciduser_supervisor_email.py delete mode 100644 generic/migrations/0021_ciduser_login_email_sent.py delete mode 100644 generic/migrations/0022_ciduser_results_email_sent.py delete mode 100644 generic/migrations/0023_alter_examination_examination.py delete mode 100644 generic/migrations/0024_auto_20211231_1044.py delete mode 100644 generic/migrations/0025_alter_ciduser_group.py delete mode 100644 generic/migrations/0026_ciduser_generic_cid_cid_291418_idx.py delete mode 100644 generic/migrations/0027_auto_20220520_1705.py delete mode 100644 generic/migrations/0028_alter_ciduserexam_user_user.py delete mode 100644 generic/migrations/0029_userusergroup.py delete mode 100644 generic/migrations/0030_alter_userusergroup_users.py delete mode 100644 generic/migrations/0031_userprofile.py delete mode 100644 generic/migrations/0032_userprofile_registration_number.py delete mode 100644 generic/migrations/0033_userprofile_grade.py delete mode 100644 generic/migrations/0034_auto_20220523_2010.py delete mode 100644 generic/migrations/0035_userprofile_grade.py delete mode 100644 generic/migrations/0036_ciduserexam_results_emailed_status.py delete mode 100644 generic/migrations/0037_supervisor.py delete mode 100644 generic/migrations/0038_alter_supervisor_user.py delete mode 100644 generic/migrations/0039_alter_supervisor_user.py delete mode 100644 generic/migrations/0040_alter_supervisor_email.py delete mode 100644 generic/migrations/0041_auto_20221114_1355.py delete mode 100644 generic/migrations/0042_userprofile_supervisor.py delete mode 100644 generic/migrations/0043_alter_userprofile_supervisor.py delete mode 100644 generic/migrations/0044_auto_20221114_2035.py delete mode 100644 generic/migrations/0045_auto_20221114_2103.py delete mode 100644 generic/migrations/0046_auto_20221121_0955.py delete mode 100644 generic/migrations/0047_auto_20221121_1637.py delete mode 100644 generic/migrations/0048_alter_userusergroup_archive_alter_userusergroup_name_and_more.py delete mode 100644 generic/migrations/0049_auto_20230116_1119.py delete mode 100644 generic/migrations/0050_delete_condition_delete_sign.py delete mode 100644 longs/migrations/0002_auto_20210204_2258.py delete mode 100644 longs/migrations/0003_long_condition.py delete mode 100644 longs/migrations/0004_auto_20210204_2259.py delete mode 100644 longs/migrations/0005_auto_20210205_0955.py delete mode 100644 longs/migrations/0006_auto_20210205_0958.py delete mode 100644 longs/migrations/0007_longseries_examination.py delete mode 100644 longs/migrations/0008_auto_20210205_1013.py delete mode 100644 longs/migrations/0009_auto_20210205_1146.py delete mode 100644 longs/migrations/0010_auto_20210206_0905.py delete mode 100644 longs/migrations/0011_auto_20210206_1531.py delete mode 100644 longs/migrations/0012_auto_20210206_1541.py delete mode 100644 longs/migrations/0013_auto_20210206_2147.py delete mode 100644 longs/migrations/0014_auto_20210211_1827.py delete mode 100644 longs/migrations/0015_auto_20210214_2028.py delete mode 100644 longs/migrations/0016_auto_20210214_2301.py delete mode 100644 longs/migrations/0017_auto_20210215_1043.py delete mode 100644 longs/migrations/0018_auto_20210215_1052.py delete mode 100644 longs/migrations/0019_longseriesimage_upload_filename.py delete mode 100644 longs/migrations/0020_auto_20210216_1018.py delete mode 100644 longs/migrations/0021_auto_20210216_1018.py delete mode 100644 longs/migrations/0022_long_mark_scheme.py delete mode 100644 longs/migrations/0023_auto_20210216_1315.py delete mode 100644 longs/migrations/0024_auto_20210217_1423.py delete mode 100644 longs/migrations/0025_auto_20210217_2218.py delete mode 100644 longs/migrations/0026_long_description.py delete mode 100644 longs/migrations/0027_longseries_plane.py delete mode 100644 longs/migrations/0028_longseries_contrast.py delete mode 100644 longs/migrations/0029_auto_20210225_1819.py delete mode 100644 longs/migrations/0030_long_recreate_json.py delete mode 100644 longs/migrations/0031_auto_20210309_1527.py delete mode 100644 longs/migrations/0032_exam_exam_mode.py delete mode 100644 longs/migrations/0033_auto_20210422_1143.py delete mode 100644 longs/migrations/0034_exam_author.py delete mode 100644 longs/migrations/0035_longseries_open_access.py delete mode 100644 longs/migrations/0036_alter_exam_exam_mode.py delete mode 100644 longs/migrations/0037_alter_exam_time_limit.py delete mode 100644 longs/migrations/0038_alter_exam_name.py delete mode 100644 longs/migrations/0039_auto_20210801_0918.py delete mode 100644 longs/migrations/0040_auto_20210801_0947.py delete mode 100644 longs/migrations/0041_long_sorted_series.py delete mode 100644 longs/migrations/0042_auto_20210811_1837.py delete mode 100644 longs/migrations/0043_rename_sorted_series_long_series.py delete mode 100644 longs/migrations/0044_auto_20210816_1306.py delete mode 100644 longs/migrations/0045_alter_ciduseranswer_score.py delete mode 100644 longs/migrations/0046_delete_note.py delete mode 100644 longs/migrations/0047_auto_20210911_1759.py delete mode 100644 longs/migrations/0048_auto_20210911_1806.py delete mode 100644 longs/migrations/0049_alter_ciduseranswer_mark.py delete mode 100644 longs/migrations/0050_auto_20210911_1818.py delete mode 100644 longs/migrations/0051_exam_double_mark.py delete mode 100644 longs/migrations/0052_alter_exam_double_mark.py delete mode 100644 longs/migrations/0053_exam_open_access.py delete mode 100644 longs/migrations/0054_alter_exam_open_access.py delete mode 100644 longs/migrations/0055_exam_valid_users.py delete mode 100644 longs/migrations/0056_auto_20211215_2036.py delete mode 100644 longs/migrations/0057_exam_user_scores.py delete mode 100644 longs/migrations/0058_exam_include_history.py delete mode 100644 longs/migrations/0059_exam_authors_only.py delete mode 100644 longs/migrations/0060_rename_valid_users_exam_valid_cid_users.py delete mode 100644 longs/migrations/0061_exam_valid_user_users.py delete mode 100644 longs/migrations/0062_auto_20220521_2135.py delete mode 100644 longs/migrations/0063_exam_exam_results_emailed.py delete mode 100644 longs/migrations/0064_remove_exam_stats_graph.py delete mode 100644 longs/migrations/0065_remove_long_condition_remove_long_sign.py delete mode 100644 longs/migrations/0066_rename_ciduseranswer_useranswer.py delete mode 100644 longs/migrations/0067_long_authors_only.py delete mode 100644 longs/migrations/0068_remove_long_published_date.py delete mode 100644 longs/migrations/0069_alter_long_feedback.py delete mode 100644 longs/migrations/0070_remove_long_condition_remove_long_sign_and_more.py delete mode 100644 physics/migrations/0002_auto_20201216_2207.py delete mode 100644 physics/migrations/0003_auto_20201228_2235.py delete mode 100644 physics/migrations/0004_exam_json_creation_time.py delete mode 100644 physics/migrations/0005_exam_exam_mode.py delete mode 100644 physics/migrations/0006_auto_20210422_1143.py delete mode 100644 physics/migrations/0007_exam_author.py delete mode 100644 physics/migrations/0008_alter_exam_exam_mode.py delete mode 100644 physics/migrations/0009_alter_exam_name.py delete mode 100644 physics/migrations/0010_exam_json_creation_id.py delete mode 100644 physics/migrations/0011_rename_json_creation_id_exam_exam_json_id.py delete mode 100644 physics/migrations/0012_auto_20210816_1306.py delete mode 100644 physics/migrations/0013_exam_open_access.py delete mode 100644 physics/migrations/0014_alter_exam_open_access.py delete mode 100644 physics/migrations/0015_exam_valid_users.py delete mode 100644 physics/migrations/0016_auto_20211215_2036.py delete mode 100644 physics/migrations/0017_exam_user_scores.py delete mode 100644 physics/migrations/0018_exam_include_history.py delete mode 100644 physics/migrations/0019_exam_authors_only.py delete mode 100644 physics/migrations/0020_rename_valid_users_exam_valid_cid_users.py delete mode 100644 physics/migrations/0021_exam_valid_user_users.py delete mode 100644 physics/migrations/0022_auto_20220521_2135.py delete mode 100644 physics/migrations/0023_alter_exam_cid_user_groups.py delete mode 100644 physics/migrations/0024_alter_exam_cid_user_groups.py delete mode 100644 physics/migrations/0025_exam_exam_results_emailed.py delete mode 100644 physics/migrations/0026_remove_exam_stats_graph.py delete mode 100644 physics/migrations/0027_alter_ciduseranswer_options_alter_ciduseranswer_cid.py delete mode 100644 physics/migrations/0028_rename_ciduseranswer_useranswer.py delete mode 100644 physics/migrations/0029_question_authors_only.py delete mode 100644 physics/migrations/0030_question_open_access.py delete mode 100644 physics/migrations/0031_question_feedback.py delete mode 100644 rapids/migrations/0002_auto_20210118_1402.py delete mode 100644 rapids/migrations/0003_auto_20210120_2206.py delete mode 100644 rapids/migrations/0004_auto_20210120_2214.py delete mode 100644 rapids/migrations/0005_auto_20210121_1806.py delete mode 100644 rapids/migrations/0006_auto_20210121_1809.py delete mode 100644 rapids/migrations/0007_auto_20210125_1534.py delete mode 100644 rapids/migrations/0008_auto_20210130_1515.py delete mode 100644 rapids/migrations/0009_auto_20210205_1046.py delete mode 100644 rapids/migrations/0010_auto_20210205_1051.py delete mode 100644 rapids/migrations/0011_auto_20210205_1056.py delete mode 100644 rapids/migrations/0012_auto_20210206_0905.py delete mode 100644 rapids/migrations/0013_auto_20210209_2239.py delete mode 100644 rapids/migrations/0014_auto_20210211_2034.py delete mode 100644 rapids/migrations/0015_auto_20210211_2035.py delete mode 100644 rapids/migrations/0016_auto_20210214_2028.py delete mode 100644 rapids/migrations/0017_auto_20210215_1043.py delete mode 100644 rapids/migrations/0018_auto_20210215_1144.py delete mode 100644 rapids/migrations/0019_auto_20210215_1203.py delete mode 100644 rapids/migrations/0020_exam_json_creation_time.py delete mode 100644 rapids/migrations/0021_exam_exam_mode.py delete mode 100644 rapids/migrations/0022_auto_20210422_1143.py delete mode 100644 rapids/migrations/0023_answer_proposed.py delete mode 100644 rapids/migrations/0024_alter_exam_exam_mode.py delete mode 100644 rapids/migrations/0025_auto_20210709_1135.py delete mode 100644 rapids/migrations/0026_exam_json_creation_id.py delete mode 100644 rapids/migrations/0027_rename_json_creation_id_exam_exam_json_id.py delete mode 100644 rapids/migrations/0028_auto_20210816_1306.py delete mode 100644 rapids/migrations/0029_rapidimage_image_annotations.py delete mode 100644 rapids/migrations/0030_alter_rapidimage_image_annotations.py delete mode 100644 rapids/migrations/0031_delete_note.py delete mode 100644 rapids/migrations/0032_exam_double_mark.py delete mode 100644 rapids/migrations/0033_answermarks.py delete mode 100644 rapids/migrations/0034_auto_20211016_2128.py delete mode 100644 rapids/migrations/0035_exam_open_access.py delete mode 100644 rapids/migrations/0036_alter_exam_open_access.py delete mode 100644 rapids/migrations/0037_auto_20211121_1020.py delete mode 100644 rapids/migrations/0038_alter_rapidimage_image_md5_hash.py delete mode 100644 rapids/migrations/0039_exam_valid_users.py delete mode 100644 rapids/migrations/0040_alter_exam_valid_users.py delete mode 100644 rapids/migrations/0041_ciduseranswer_score.py delete mode 100644 rapids/migrations/0042_auto_20211215_2036.py delete mode 100644 rapids/migrations/0043_exam_user_scores.py delete mode 100644 rapids/migrations/0044_rapid_history.py delete mode 100644 rapids/migrations/0045_rapidimage_description.py delete mode 100644 rapids/migrations/0046_exam_include_history.py delete mode 100644 rapids/migrations/0047_exam_cid_user_groups.py delete mode 100644 rapids/migrations/0048_alter_exam_cid_user_groups.py delete mode 100644 rapids/migrations/0049_alter_exam_cid_user_groups.py delete mode 100644 rapids/migrations/0050_alter_exam_cid_user_groups.py delete mode 100644 rapids/migrations/0051_exam_authors_only.py delete mode 100644 rapids/migrations/0052_rapidimage_filename.py delete mode 100644 rapids/migrations/0053_ciduseranswer_user.py delete mode 100644 rapids/migrations/0054_rename_valid_users_exam_valid_cid_users.py delete mode 100644 rapids/migrations/0055_exam_valid_user_users.py delete mode 100644 rapids/migrations/0056_exam_user_user_groups.py delete mode 100644 rapids/migrations/0057_alter_ciduseranswer_user.py delete mode 100644 rapids/migrations/0058_auto_20220521_1020.py delete mode 100644 rapids/migrations/0059_ciduseranswer_callstate.py delete mode 100644 rapids/migrations/0060_exam_exam_results_emailed.py delete mode 100644 rapids/migrations/0061_remove_exam_stats_graph.py delete mode 100644 rapids/migrations/0062_alter_ciduseranswer_options.py delete mode 100644 rapids/migrations/0063_rename_ciduseranswer_useranswer.py delete mode 100644 rapids/migrations/0064_rapid_authors_only.py delete mode 100644 rapids/migrations/0065_remove_rapid_published_date.py delete mode 100644 rapids/migrations/0066_alter_rapid_feedback.py delete mode 100644 sbas/migrations/0002_auto_20210801_0918.py delete mode 100644 sbas/migrations/0003_rename_json_creation_id_exam_exam_json_id.py delete mode 100644 sbas/migrations/0004_auto_20210816_1306.py delete mode 100644 sbas/migrations/0005_exam_open_access.py delete mode 100644 sbas/migrations/0006_alter_exam_open_access.py delete mode 100644 sbas/migrations/0007_exam_valid_users.py delete mode 100644 sbas/migrations/0008_auto_20211215_2036.py delete mode 100644 sbas/migrations/0009_exam_user_scores.py delete mode 100644 sbas/migrations/0010_exam_include_history.py delete mode 100644 sbas/migrations/0011_exam_authors_only.py delete mode 100644 sbas/migrations/0012_rename_valid_users_exam_valid_cid_users.py delete mode 100644 sbas/migrations/0013_exam_valid_user_users.py delete mode 100644 sbas/migrations/0014_auto_20220521_2135.py delete mode 100644 sbas/migrations/0015_exam_exam_results_emailed.py delete mode 100644 sbas/migrations/0016_remove_exam_stats_graph.py delete mode 100644 sbas/migrations/0017_alter_ciduseranswer_options_alter_ciduseranswer_cid.py delete mode 100644 sbas/migrations/0018_rename_ciduseranswer_useranswer.py delete mode 100644 sbas/migrations/0019_question_authors_only.py delete mode 100644 sbas/migrations/0020_question_open_access.py diff --git a/anatomy/migrations/0001_initial.py b/anatomy/migrations/0001_initial.py index 383a5a20..d2b41933 100644 --- a/anatomy/migrations/0001_initial.py +++ b/anatomy/migrations/0001_initial.py @@ -1,8 +1,7 @@ -# Generated by Django 3.1.2 on 2020-10-16 19:07 +# Generated by Django 4.1.4 on 2023-06-12 10:07 import anatomy.models from django.conf import settings -import django.core.files.storage from django.db import migrations, models import django.db.models.deletion import django.utils.timezone @@ -21,9 +20,26 @@ class Migration(migrations.Migration): name='AnatomyQuestion', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('image', models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://161.35.163.87//media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path)), - ('description', models.CharField(help_text="Short description of the image e.g. 'Sagittal CT Chest, Abdomen & Pelvis', will be displayed as the title.", max_length=400)), + ('authors_only', models.BooleanField(default=False, help_text='If true only question authors will be able to view.')), ('created_date', models.DateTimeField(default=django.utils.timezone.now)), + ('open_access', models.BooleanField(default=True, help_text='If a question should be freely available to browse')), + ('feedback', models.TextField(blank=True, help_text='Question Feedback', null=True)), + ('image', models.ImageField(help_text="The image to use for the question. Ideally use use unmarked images and annotate (arrow) them on the test system. If you wish to reuse an image that is already uploaded 'clone' the question that contains it.", upload_to=anatomy.models.image_directory_path)), + ('image_annotations', models.TextField(blank=True, help_text='Stores a JSON representation of annotations to be applied by cornerstonetools')), + ('description', models.CharField(help_text="Short description of the image e.g. 'Sagittal CT Chest, Abdomen & Pelvis', will be displayed as the title.", max_length=400)), + ], + options={ + 'permissions': (), + }, + ), + migrations.CreateModel( + name='Answer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('answer', models.TextField(max_length=500)), + ('answer_compare', models.TextField(max_length=500)), + ('status', models.CharField(choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1)), + ('proposed', models.BooleanField(default=False)), ], ), migrations.CreateModel( @@ -37,16 +53,32 @@ class Migration(migrations.Migration): name='Exam', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=200)), - ('exam_questions', models.ManyToManyField(related_name='exams', to='anatomy.AnatomyQuestion')), - ], - ), - migrations.CreateModel( - name='Examination', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('examination', models.CharField(max_length=200)), + ('name', models.CharField(help_text='Name of the exam', max_length=200)), + ('active', models.BooleanField(default=False, help_text='If an exam should be available to take')), + ('exam_mode', models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)')), + ('include_history', models.BooleanField(default=False, help_text='If an exam should include history when taking')), + ('publish_results', models.BooleanField(default=False, help_text='If an exams results should be available')), + ('recreate_json', models.BooleanField(default=False, help_text='If the json cache needs updating')), + ('json_creation_time', models.DateTimeField(blank=True, default=None, null=True)), + ('exam_json_id', models.IntegerField(default=1, help_text='auto incrementing field when json recreated')), + ('archive', models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default')), + ('open_access', models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)')), + ('authors_only', models.BooleanField(default=False, help_text='If true only exam authors will be able to view.')), + ('stats_mean', models.FloatField(default=0)), + ('stats_mode', models.CharField(default=0, max_length=25)), + ('stats_median', models.FloatField(default=0)), + ('stats_candidates', models.FloatField(default=0)), + ('stats_min', models.FloatField(default=0)), + ('stats_max', models.FloatField(default=0)), + ('stats_max_possible', models.FloatField(default=0)), + ('user_scores', models.JSONField(default=dict)), + ('exam_results_emailed', models.DateTimeField(default=None, null=True)), + ('time_limit', models.IntegerField(default=5400, help_text='Exam time limit (in seconds)')), + ('author', models.ManyToManyField(blank=True, help_text='Author of exam', related_name='anatomy_exam_author', to=settings.AUTH_USER_MODEL)), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='Modality', @@ -62,86 +94,37 @@ class Migration(migrations.Migration): ('text', models.CharField(max_length=400)), ], ), + migrations.CreateModel( + name='Region', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('region', models.CharField(max_length=200)), + ], + ), migrations.CreateModel( name='Structure', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('bodypart', models.CharField(max_length=200)), + ('structure', models.CharField(max_length=200, unique=True)), ], ), migrations.CreateModel( name='UserAnswer', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.CharField(blank=True, max_length=500)), - ('cid', models.IntegerField(blank=True, null=True)), - ('flagged', models.BooleanField(default=False)), - ('created', models.DateTimeField(auto_now_add=True)), - ('updated', models.DateTimeField(auto_now=True)), - ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='exam', to='anatomy.exam')), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_answers', to='anatomy.anatomyquestion')), - ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='IncorrectAnswers', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.CharField(max_length=500)), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='incorrect_answers', to='anatomy.anatomyquestion')), - ], - ), - migrations.CreateModel( - name='HalfMarkAnswers', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.CharField(max_length=500)), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='half_mark_answers', to='anatomy.anatomyquestion')), - ], - ), - migrations.CreateModel( - name='CidUserAnswer', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.CharField(blank=True, max_length=500)), - ('cid', models.IntegerField(blank=True, null=True)), + ('cid', models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), + ('answer', models.TextField(blank=True, max_length=500)), + ('answer_compare', models.TextField(blank=True, max_length=500)), + ('score', models.CharField(blank=True, choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1)), ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='anatomy.exam')), ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='anatomy.anatomyquestion')), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_anatomy_user_answers', to=settings.AUTH_USER_MODEL)), ], - ), - migrations.CreateModel( - name='Answers', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.CharField(max_length=500)), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='anatomy.anatomyquestion')), - ], - ), - migrations.AddField( - model_name='anatomyquestion', - name='body_part', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.bodypart'), - ), - migrations.AddField( - model_name='anatomyquestion', - name='examination', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.examination'), - ), - migrations.AddField( - model_name='anatomyquestion', - name='modality', - field=models.ForeignKey(help_text='Modality of the image', null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.modality'), - ), - migrations.AddField( - model_name='anatomyquestion', - name='question_type', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.questiontype'), - ), - migrations.AddField( - model_name='anatomyquestion', - name='structure', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.structure'), + options={ + 'ordering': ['cid'], + 'abstract': False, + }, ), ] diff --git a/anatomy/migrations/0002_exam_active.py b/anatomy/migrations/0002_exam_active.py deleted file mode 100644 index 4fc645aa..00000000 --- a/anatomy/migrations/0002_exam_active.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.2 on 2020-10-16 19:10 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='active', - field=models.BooleanField(default=True, help_text='If an exam should be available'), - ), - ] diff --git a/anatomy/migrations/0002_initial.py b/anatomy/migrations/0002_initial.py new file mode 100644 index 00000000..69b4e5d9 --- /dev/null +++ b/anatomy/migrations/0002_initial.py @@ -0,0 +1,85 @@ +# Generated by Django 4.1.4 on 2023-06-12 10:07 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import sortedm2m.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('generic', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('anatomy', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='exam', + name='cid_user_groups', + field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='anatomy_cid_user_groups', to='generic.cidusergroup'), + ), + migrations.AddField( + model_name='exam', + name='exam_questions', + field=sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='anatomy.anatomyquestion'), + ), + migrations.AddField( + model_name='exam', + name='user_user_groups', + field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='anatomy_user_user_groups', to='generic.userusergroup'), + ), + migrations.AddField( + model_name='exam', + name='valid_cid_users', + field=models.ManyToManyField(blank=True, related_name='anatomy_exams', to='generic.ciduser'), + ), + migrations.AddField( + model_name='exam', + name='valid_user_users', + field=models.ManyToManyField(blank=True, related_name='user_anatomy_exams', to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='answer', + name='question', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='anatomy.anatomyquestion'), + ), + migrations.AddField( + model_name='anatomyquestion', + name='author', + field=models.ManyToManyField(blank=True, help_text='Author(s) of question', related_name='anatomy_authored_questions', to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='anatomyquestion', + name='body_part', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.bodypart'), + ), + migrations.AddField( + model_name='anatomyquestion', + name='examination', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.examination'), + ), + migrations.AddField( + model_name='anatomyquestion', + name='modality', + field=models.ForeignKey(help_text='Modality of the image', null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.modality'), + ), + migrations.AddField( + model_name='anatomyquestion', + name='question_type', + field=models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.questiontype'), + ), + migrations.AddField( + model_name='anatomyquestion', + name='region', + field=models.ForeignKey(blank=True, help_text='Region the image covers', null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.region'), + ), + migrations.AddField( + model_name='anatomyquestion', + name='structure', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.structure'), + ), + ] diff --git a/anatomy/migrations/0003_auto_20201119_1941.py b/anatomy/migrations/0003_auto_20201119_1941.py deleted file mode 100644 index 1d821afb..00000000 --- a/anatomy/migrations/0003_auto_20201119_1941.py +++ /dev/null @@ -1,40 +0,0 @@ -# Generated by Django 3.1.3 on 2020-11-19 19:41 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0002_exam_active'), - ] - - operations = [ - migrations.CreateModel( - name='Answer', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.CharField(max_length=500)), - ('status', models.CharField(choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1)), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='anatomy.anatomyquestion')), - ], - ), - migrations.RemoveField( - model_name='halfmarkanswers', - name='question', - ), - migrations.RemoveField( - model_name='incorrectanswers', - name='question', - ), - migrations.DeleteModel( - name='Answers', - ), - migrations.DeleteModel( - name='HalfMarkAnswers', - ), - migrations.DeleteModel( - name='IncorrectAnswers', - ), - ] diff --git a/anatomy/migrations/0004_auto_20201123_1619.py b/anatomy/migrations/0004_auto_20201123_1619.py deleted file mode 100644 index d7517d15..00000000 --- a/anatomy/migrations/0004_auto_20201123_1619.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.1.2 on 2020-11-23 16:19 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0003_auto_20201119_1941'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='recreate_json', - field=models.BooleanField(default=False, help_text='If the json cache needs updating'), - ), - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://161.35.163.87//media/anatomy/', location='/home/ross/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0005_auto_20201126_1730.py b/anatomy/migrations/0005_auto_20201126_1730.py deleted file mode 100644 index fecda219..00000000 --- a/anatomy/migrations/0005_auto_20201126_1730.py +++ /dev/null @@ -1,39 +0,0 @@ -# Generated by Django 3.1.3 on 2020-11-26 17:30 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0004_auto_20201123_1619'), - ] - - operations = [ - migrations.RenameField( - model_name='structure', - old_name='bodypart', - new_name='structure', - ), - migrations.RemoveField( - model_name='exam', - name='recreate_json', - ), - #migrations.AddField( - # model_name='anatomyquestion', - # name='open_access', - # field=models.BooleanField(default=True, help_text='If an question should be freely available to browse'), - #), - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://161.35.163.87//media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - migrations.AlterField( - model_name='exam', - name='exam_questions', - field=models.ManyToManyField(blank='true', related_name='exams', to='anatomy.AnatomyQuestion'), - ), - ] diff --git a/anatomy/migrations/0006_auto_20201129_0955.py b/anatomy/migrations/0006_auto_20201129_0955.py deleted file mode 100644 index de49928d..00000000 --- a/anatomy/migrations/0006_auto_20201129_0955.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.1.3 on 2020-11-29 09:55 - -from django.db import migrations, models -import sortedm2m.fields -from sortedm2m.operations import AlterSortedManyToManyField - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0005_auto_20201126_1730'), - ] - - operations = [ - #migrations.AddField( - # model_name='anatomyquestion', - # name='open_access', - # field=models.BooleanField(default=True, help_text='If an question should be freely available to browse'), - #), - AlterSortedManyToManyField( - model_name='exam', - name='exam_questions', - field=sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='anatomy.AnatomyQuestion'), - ), - ] diff --git a/anatomy/migrations/0007_auto_20201201_2358.py b/anatomy/migrations/0007_auto_20201201_2358.py deleted file mode 100644 index d5ff156f..00000000 --- a/anatomy/migrations/0007_auto_20201201_2358.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-01 23:58 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0006_auto_20201129_0955'), - ] - - operations = [ - #migrations.AddField( - #model_name='anatomyquestion', - #name='open_access', - #field=models.BooleanField(default=True, help_text='If an question should be freely available to browse'), - #), - migrations.AddField( - model_name='exam', - name='recreate_json', - field=models.BooleanField(default=False, help_text='If the json cache needs updating'), - ), - ] diff --git a/anatomy/migrations/0008_anatomyquestion_open_access.py b/anatomy/migrations/0008_anatomyquestion_open_access.py deleted file mode 100644 index a2224cea..00000000 --- a/anatomy/migrations/0008_anatomyquestion_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-03 09:29 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0007_auto_20201201_2358'), - ] - - operations = [ - migrations.AddField( - model_name='anatomyquestion', - name='open_access', - field=models.BooleanField(default=True, help_text='If an question should be freely available to browse'), - ), - ] diff --git a/anatomy/migrations/0009_anatomyquestion_image_annotations.py b/anatomy/migrations/0009_anatomyquestion_image_annotations.py deleted file mode 100644 index 8529e3a6..00000000 --- a/anatomy/migrations/0009_anatomyquestion_image_annotations.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-06 11:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0008_anatomyquestion_open_access'), - ] - - operations = [ - migrations.AddField( - model_name='anatomyquestion', - name='image_annotations', - field=models.TextField(blank=True, help_text='Stores a JSON representation of annotations to be applied by cornerstonetools'), - ), - ] diff --git a/anatomy/migrations/0010_auto_20201206_1716.py b/anatomy/migrations/0010_auto_20201206_1716.py deleted file mode 100644 index 410dc1cd..00000000 --- a/anatomy/migrations/0010_auto_20201206_1716.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-06 17:16 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0009_anatomyquestion_image_annotations'), - ] - - operations = [ - migrations.CreateModel( - name='Region', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('region', models.CharField(max_length=200)), - ], - ), - migrations.AddField( - model_name='anatomyquestion', - name='region', - field=models.ForeignKey(blank=True, help_text='Region the image covers', null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.region'), - ), - ] diff --git a/anatomy/migrations/0011_anatomyquestion_author.py b/anatomy/migrations/0011_anatomyquestion_author.py deleted file mode 100644 index 4d4b03c8..00000000 --- a/anatomy/migrations/0011_anatomyquestion_author.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-06 18:12 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('anatomy', '0010_auto_20201206_1716'), - ] - - operations = [ - migrations.AddField( - model_name='anatomyquestion', - name='author', - field=models.ManyToManyField(blank=True, help_text='Author(s) of question', related_name='anatomy_authored_questions', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/anatomy/migrations/0012_exam_publish_results.py b/anatomy/migrations/0012_exam_publish_results.py deleted file mode 100644 index d59828ed..00000000 --- a/anatomy/migrations/0012_exam_publish_results.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-10 23:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0011_anatomyquestion_author'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='publish_results', - field=models.BooleanField(default=True, help_text='If an exams results should be available'), - ), - ] diff --git a/anatomy/migrations/0013_auto_20201227_1200.py b/anatomy/migrations/0013_auto_20201227_1200.py deleted file mode 100644 index 7c50e212..00000000 --- a/anatomy/migrations/0013_auto_20201227_1200.py +++ /dev/null @@ -1,35 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-27 12:00 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0012_exam_publish_results'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://penracourses.org.uk//media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - migrations.AlterField( - model_name='answer', - name='answer', - field=models.TextField(max_length=500), - ), - migrations.AlterField( - model_name='ciduseranswer', - name='answer', - field=models.TextField(blank=True, max_length=500), - ), - migrations.AlterField( - model_name='useranswer', - name='answer', - field=models.TextField(blank=True, max_length=500), - ), - ] diff --git a/anatomy/migrations/0014_exam_time_limit.py b/anatomy/migrations/0014_exam_time_limit.py deleted file mode 100644 index fab14570..00000000 --- a/anatomy/migrations/0014_exam_time_limit.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-28 10:17 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0013_auto_20201227_1200'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='time_limit', - field=models.IntegerField(default=False, help_text='Exam time limit (in seconds)'), - ), - ] diff --git a/anatomy/migrations/0015_auto_20201228_2235.py b/anatomy/migrations/0015_auto_20201228_2235.py deleted file mode 100644 index db9cf541..00000000 --- a/anatomy/migrations/0015_auto_20201228_2235.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-28 22:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0014_exam_time_limit'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='time_limit', - field=models.IntegerField(default=5400, help_text='Exam time limit (in seconds)'), - ), - ] diff --git a/anatomy/migrations/0016_auto_20210104_1310.py b/anatomy/migrations/0016_auto_20210104_1310.py deleted file mode 100644 index 6d6d08a6..00000000 --- a/anatomy/migrations/0016_auto_20210104_1310.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.1.2 on 2021-01-04 13:10 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0015_auto_20201228_2235'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://penracourses.org.uk//media/anatomy/', location='/home/ross/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - migrations.AlterField( - model_name='useranswer', - name='cid', - field=models.BigIntegerField(blank=True, null=True), - ), - ] diff --git a/anatomy/migrations/0017_auto_20210104_1355.py b/anatomy/migrations/0017_auto_20210104_1355.py deleted file mode 100644 index c7cca477..00000000 --- a/anatomy/migrations/0017_auto_20210104_1355.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.2 on 2021-01-04 13:55 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0016_auto_20210104_1310'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduseranswer', - name='cid', - field=models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True), - ), - migrations.AlterField( - model_name='useranswer', - name='cid', - field=models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True), - ), - ] diff --git a/anatomy/migrations/0018_auto_20210112_1726.py b/anatomy/migrations/0018_auto_20210112_1726.py deleted file mode 100644 index 80cea94b..00000000 --- a/anatomy/migrations/0018_auto_20210112_1726.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-12 17:26 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0017_auto_20210104_1355'), - ] - - operations = [ - migrations.AddField( - model_name='answer', - name='answer_compare', - field=models.TextField(default='temp', max_length=500), - preserve_default=False, - ), - migrations.AddField( - model_name='ciduseranswer', - name='answer_compare', - field=models.TextField(blank=True, max_length=500), - ), - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - migrations.DeleteModel( - name='UserAnswer', - ), - ] diff --git a/anatomy/migrations/0019_auto_20210118_1339.py b/anatomy/migrations/0019_auto_20210118_1339.py deleted file mode 100644 index 779db910..00000000 --- a/anatomy/migrations/0019_auto_20210118_1339.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.2 on 2021-01-18 13:39 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0018_auto_20210112_1726'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0020_auto_20210118_1402.py b/anatomy/migrations/0020_auto_20210118_1402.py deleted file mode 100644 index 35de5e8f..00000000 --- a/anatomy/migrations/0020_auto_20210118_1402.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.2 on 2021-01-18 14:02 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0019_auto_20210118_1339'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://penracourses.org.uk//media/anatomy/', location='/home/ross/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0021_auto_20210120_2206.py b/anatomy/migrations/0021_auto_20210120_2206.py deleted file mode 100644 index afd5f97e..00000000 --- a/anatomy/migrations/0021_auto_20210120_2206.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-20 22:06 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0020_auto_20210118_1402'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://penracourses.org.uk//media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0022_auto_20210121_1806.py b/anatomy/migrations/0022_auto_20210121_1806.py deleted file mode 100644 index 5471d954..00000000 --- a/anatomy/migrations/0022_auto_20210121_1806.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-21 18:06 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0021_auto_20210120_2206'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0023_auto_20210125_1534.py b/anatomy/migrations/0023_auto_20210125_1534.py deleted file mode 100644 index 27a809c0..00000000 --- a/anatomy/migrations/0023_auto_20210125_1534.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-01-25 15:34 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0022_auto_20210121_1806'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0024_auto_20210130_1515.py b/anatomy/migrations/0024_auto_20210130_1515.py deleted file mode 100644 index ae48739d..00000000 --- a/anatomy/migrations/0024_auto_20210130_1515.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-30 15:15 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0023_auto_20210125_1534'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0025_auto_20210205_1106.py b/anatomy/migrations/0025_auto_20210205_1106.py deleted file mode 100644 index 7a2938d7..00000000 --- a/anatomy/migrations/0025_auto_20210205_1106.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 11:06 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0007_site'), - ('anatomy', '0024_auto_20210130_1515'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='examination', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.examination'), - ), - migrations.DeleteModel( - name='Examination', - ), - ] diff --git a/anatomy/migrations/0026_remove_anatomyquestion_examination.py b/anatomy/migrations/0026_remove_anatomyquestion_examination.py deleted file mode 100644 index ea34f342..00000000 --- a/anatomy/migrations/0026_remove_anatomyquestion_examination.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 11:09 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0025_auto_20210205_1106'), - ] - - operations = [ - migrations.RemoveField( - model_name='anatomyquestion', - name='examination', - ), - ] diff --git a/anatomy/migrations/0027_anatomyquestion_examination.py b/anatomy/migrations/0027_anatomyquestion_examination.py deleted file mode 100644 index c22e157c..00000000 --- a/anatomy/migrations/0027_anatomyquestion_examination.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 11:10 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0007_site'), - ('anatomy', '0026_remove_anatomyquestion_examination'), - ] - - operations = [ - migrations.AddField( - model_name='anatomyquestion', - name='examination', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.examination'), - ), - ] diff --git a/anatomy/migrations/0028_auto_20210206_0905.py b/anatomy/migrations/0028_auto_20210206_0905.py deleted file mode 100644 index 941fb6d0..00000000 --- a/anatomy/migrations/0028_auto_20210206_0905.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-06 09:05 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0027_anatomyquestion_examination'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='open_access', - field=models.BooleanField(default=True, help_text='If a question should be freely available to browse'), - ), - migrations.AlterField( - model_name='anatomyquestion', - name='question_type', - field=models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.questiontype'), - ), - ] diff --git a/anatomy/migrations/0029_auto_20210209_2239.py b/anatomy/migrations/0029_auto_20210209_2239.py deleted file mode 100644 index 60fc1770..00000000 --- a/anatomy/migrations/0029_auto_20210209_2239.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-09 22:39 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0028_auto_20210206_0905'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0030_auto_20210214_2028.py b/anatomy/migrations/0030_auto_20210214_2028.py deleted file mode 100644 index bb2894ad..00000000 --- a/anatomy/migrations/0030_auto_20210214_2028.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-14 20:28 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0029_auto_20210209_2239'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/scripts/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0031_auto_20210215_1043.py b/anatomy/migrations/0031_auto_20210215_1043.py deleted file mode 100644 index adae2402..00000000 --- a/anatomy/migrations/0031_auto_20210215_1043.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 10:43 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0030_auto_20210214_2028'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/ross/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0032_auto_20210215_1144.py b/anatomy/migrations/0032_auto_20210215_1144.py deleted file mode 100644 index 9ef42cca..00000000 --- a/anatomy/migrations/0032_auto_20210215_1144.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 11:44 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0031_auto_20210215_1043'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/anatomy/', location='/home/django/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0033_auto_20210215_1147.py b/anatomy/migrations/0033_auto_20210215_1147.py deleted file mode 100644 index 2e2266b5..00000000 --- a/anatomy/migrations/0033_auto_20210215_1147.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 11:47 - -import anatomy.models -import django.core.files.storage -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0032_auto_20210215_1144'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media//', location='/home/django/rad/media//'), upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0034_auto_20210215_1200.py b/anatomy/migrations/0034_auto_20210215_1200.py deleted file mode 100644 index a6cd6eba..00000000 --- a/anatomy/migrations/0034_auto_20210215_1200.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 12:00 - -import anatomy.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0033_auto_20210215_1147'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0035_exam_json_creation_time.py b/anatomy/migrations/0035_exam_json_creation_time.py deleted file mode 100644 index 2138b523..00000000 --- a/anatomy/migrations/0035_exam_json_creation_time.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-09 15:27 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0034_auto_20210215_1200'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_time', - field=models.DateTimeField(blank=True, default=None, null=True), - ), - ] diff --git a/anatomy/migrations/0036_exam_exam_mode.py b/anatomy/migrations/0036_exam_exam_mode.py deleted file mode 100644 index 99cf1cce..00000000 --- a/anatomy/migrations/0036_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-19 11:17 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0035_exam_json_creation_time'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be take in exam_mode'), - ), - ] diff --git a/anatomy/migrations/0037_auto_20210422_1143.py b/anatomy/migrations/0037_auto_20210422_1143.py deleted file mode 100644 index 58d46330..00000000 --- a/anatomy/migrations/0037_auto_20210422_1143.py +++ /dev/null @@ -1,35 +0,0 @@ -# Generated by Django 3.1.3 on 2021-04-22 11:43 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('anatomy', '0036_exam_exam_mode'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='author', - field=models.ManyToManyField(blank=True, help_text='Author of exam', related_name='anatomy_exam_author', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available'), - ), - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be taken in exam mode'), - ), - migrations.AlterField( - model_name='exam', - name='publish_results', - field=models.BooleanField(default=False, help_text='If an exams results should be available'), - ), - ] diff --git a/anatomy/migrations/0038_auto_20210429_1904.py b/anatomy/migrations/0038_auto_20210429_1904.py deleted file mode 100644 index 23e02e73..00000000 --- a/anatomy/migrations/0038_auto_20210429_1904.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-04-29 19:04 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0037_auto_20210422_1143'), - ] - - operations = [ - migrations.AlterModelOptions( - name='anatomyquestion', - options={'permissions': ()}, - ), - ] diff --git a/anatomy/migrations/0039_answer_proposed.py b/anatomy/migrations/0039_answer_proposed.py deleted file mode 100644 index e7b8196f..00000000 --- a/anatomy/migrations/0039_answer_proposed.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-05-03 11:45 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0038_auto_20210429_1904'), - ] - - operations = [ - migrations.AddField( - model_name='answer', - name='proposed', - field=models.BooleanField(default=False), - ), - ] diff --git a/anatomy/migrations/0040_alter_exam_exam_mode.py b/anatomy/migrations/0040_alter_exam_exam_mode.py deleted file mode 100644 index cdef9e6c..00000000 --- a/anatomy/migrations/0040_alter_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-06 19:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0039_answer_proposed'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)'), - ), - ] diff --git a/anatomy/migrations/0041_alter_exam_name.py b/anatomy/migrations/0041_alter_exam_name.py deleted file mode 100644 index d0bca8fc..00000000 --- a/anatomy/migrations/0041_alter_exam_name.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-09 11:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0040_alter_exam_exam_mode'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='name', - field=models.CharField(help_text='Name of the exam', max_length=200), - ), - ] diff --git a/anatomy/migrations/0042_exam_json_creation_id.py b/anatomy/migrations/0042_exam_json_creation_id.py deleted file mode 100644 index 93a83923..00000000 --- a/anatomy/migrations/0042_exam_json_creation_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0041_alter_exam_name'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_id', - field=models.IntegerField(default=1, help_text='auto incrementing field when json recreated'), - ), - ] diff --git a/anatomy/migrations/0043_rename_json_creation_id_exam_exam_json_id.py b/anatomy/migrations/0043_rename_json_creation_id_exam_exam_json_id.py deleted file mode 100644 index b634d914..00000000 --- a/anatomy/migrations/0043_rename_json_creation_id_exam_exam_json_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:47 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0042_exam_json_creation_id'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='json_creation_id', - new_name='exam_json_id', - ), - ] diff --git a/anatomy/migrations/0044_auto_20210816_1306.py b/anatomy/migrations/0044_auto_20210816_1306.py deleted file mode 100644 index 8d51aebd..00000000 --- a/anatomy/migrations/0044_auto_20210816_1306.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.6 on 2021-08-16 12:06 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0043_rename_json_creation_id_exam_exam_json_id'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='archive', - field=models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default'), - ), - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available to take'), - ), - ] diff --git a/anatomy/migrations/0045_exam_open_access.py b/anatomy/migrations/0045_exam_open_access.py deleted file mode 100644 index a81d22ce..00000000 --- a/anatomy/migrations/0045_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0044_auto_20210816_1306'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible'), - ), - ] diff --git a/anatomy/migrations/0046_alter_exam_open_access.py b/anatomy/migrations/0046_alter_exam_open_access.py deleted file mode 100644 index a7dac64f..00000000 --- a/anatomy/migrations/0046_alter_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0045_exam_open_access'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)'), - ), - ] diff --git a/anatomy/migrations/0047_auto_20211022_2038.py b/anatomy/migrations/0047_auto_20211022_2038.py deleted file mode 100644 index f20a4a9a..00000000 --- a/anatomy/migrations/0047_auto_20211022_2038.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-22 19:38 - -import anatomy.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0046_alter_exam_open_access'), - ] - - operations = [ - migrations.RemoveField( - model_name='structure', - name='id', - ), - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(help_text="The image to use for the question. Ideally use use unmarked images and annotate (arrow) them on the test system. If you wish to reuse an image that is already uploaded 'clone' the question that contains it.As a preference", upload_to=anatomy.models.image_directory_path), - ), - migrations.AlterField( - model_name='structure', - name='structure', - field=models.CharField(max_length=200, primary_key=True, serialize=False), - ), - ] diff --git a/anatomy/migrations/0048_auto_20211025_1102.py b/anatomy/migrations/0048_auto_20211025_1102.py deleted file mode 100644 index d0d0108c..00000000 --- a/anatomy/migrations/0048_auto_20211025_1102.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-25 10:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0047_auto_20211022_2038'), - ] - - operations = [ - migrations.CreateModel( - name='Structure2', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('structure', models.CharField(max_length=200, unique=True)), - ], - ), - migrations.AlterField( - model_name='anatomyquestion', - name='structure', - field=models.CharField(max_length=255, null=True), - ), - ] diff --git a/anatomy/migrations/0049_delete_structure.py b/anatomy/migrations/0049_delete_structure.py deleted file mode 100644 index 7412143f..00000000 --- a/anatomy/migrations/0049_delete_structure.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-25 10:07 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0048_auto_20211025_1102'), - ] - - operations = [ - migrations.DeleteModel( - name='Structure', - ), - ] diff --git a/anatomy/migrations/0050_rename_structure2_structure.py b/anatomy/migrations/0050_rename_structure2_structure.py deleted file mode 100644 index 87aac950..00000000 --- a/anatomy/migrations/0050_rename_structure2_structure.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-25 10:08 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0049_delete_structure'), - ] - - operations = [ - migrations.RenameModel( - old_name='Structure2', - new_name='Structure', - ), - ] diff --git a/anatomy/migrations/0051_alter_anatomyquestion_structure.py b/anatomy/migrations/0051_alter_anatomyquestion_structure.py deleted file mode 100644 index 9eacad09..00000000 --- a/anatomy/migrations/0051_alter_anatomyquestion_structure.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-25 10:08 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0050_rename_structure2_structure'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='structure', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.structure'), - ), - ] diff --git a/anatomy/migrations/0052_remove_anatomyquestion_structure.py b/anatomy/migrations/0052_remove_anatomyquestion_structure.py deleted file mode 100644 index 3a6c1a57..00000000 --- a/anatomy/migrations/0052_remove_anatomyquestion_structure.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-25 10:15 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0051_alter_anatomyquestion_structure'), - ] - - operations = [ - migrations.RemoveField( - model_name='anatomyquestion', - name='structure', - ), - ] diff --git a/anatomy/migrations/0053_anatomyquestion_structure.py b/anatomy/migrations/0053_anatomyquestion_structure.py deleted file mode 100644 index 03660966..00000000 --- a/anatomy/migrations/0053_anatomyquestion_structure.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-25 10:17 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0052_remove_anatomyquestion_structure'), - ] - - operations = [ - migrations.AddField( - model_name='anatomyquestion', - name='structure', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='anatomy.structure'), - ), - ] diff --git a/anatomy/migrations/0054_exam_valid_users.py b/anatomy/migrations/0054_exam_valid_users.py deleted file mode 100644 index b061fcfe..00000000 --- a/anatomy/migrations/0054_exam_valid_users.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 22:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0015_ciduser_ciduserexam'), - ('anatomy', '0053_anatomyquestion_structure'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_users', - field=models.ManyToManyField(blank=True, related_name='anatomy_exams', to='generic.CidUser'), - ), - ] diff --git a/anatomy/migrations/0055_ciduseranswer_score.py b/anatomy/migrations/0055_ciduseranswer_score.py deleted file mode 100644 index d82f2fc2..00000000 --- a/anatomy/migrations/0055_ciduseranswer_score.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 18:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0054_exam_valid_users'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='score', - field=models.CharField(choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1), - ), - ] diff --git a/anatomy/migrations/0056_alter_ciduseranswer_score.py b/anatomy/migrations/0056_alter_ciduseranswer_score.py deleted file mode 100644 index d1061bae..00000000 --- a/anatomy/migrations/0056_alter_ciduseranswer_score.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 20:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0055_ciduseranswer_score'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduseranswer', - name='score', - field=models.CharField(blank=True, choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1), - ), - ] diff --git a/anatomy/migrations/0057_auto_20211215_2036.py b/anatomy/migrations/0057_auto_20211215_2036.py deleted file mode 100644 index 6d66bca6..00000000 --- a/anatomy/migrations/0057_auto_20211215_2036.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 20:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0056_alter_ciduseranswer_score'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='stats_candidates', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_graph', - field=models.TextField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max_possible', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mean', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_median', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_min', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mode', - field=models.CharField(default=0, max_length=25), - ), - ] diff --git a/anatomy/migrations/0058_exam_user_scores.py b/anatomy/migrations/0058_exam_user_scores.py deleted file mode 100644 index 670fde36..00000000 --- a/anatomy/migrations/0058_exam_user_scores.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-31 10:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0057_auto_20211215_2036'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='user_scores', - field=models.JSONField(default=dict), - ), - ] diff --git a/anatomy/migrations/0059_exam_include_history.py b/anatomy/migrations/0059_exam_include_history.py deleted file mode 100644 index 51446404..00000000 --- a/anatomy/migrations/0059_exam_include_history.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 21:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0058_exam_user_scores'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='include_history', - field=models.BooleanField(default=False, help_text='If an exam should include history when taking'), - ), - ] diff --git a/anatomy/migrations/0060_exam_authors_only.py b/anatomy/migrations/0060_exam_authors_only.py deleted file mode 100644 index 77f43469..00000000 --- a/anatomy/migrations/0060_exam_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-03 17:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0059_exam_include_history'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only exam authors will be able to view.'), - ), - ] diff --git a/anatomy/migrations/0061_rename_valid_users_exam_valid_cid_users.py b/anatomy/migrations/0061_rename_valid_users_exam_valid_cid_users.py deleted file mode 100644 index 0a1de09c..00000000 --- a/anatomy/migrations/0061_rename_valid_users_exam_valid_cid_users.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 10:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0060_exam_authors_only'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='valid_users', - new_name='valid_cid_users', - ), - ] diff --git a/anatomy/migrations/0062_exam_valid_user_users.py b/anatomy/migrations/0062_exam_valid_user_users.py deleted file mode 100644 index 5ad7fef2..00000000 --- a/anatomy/migrations/0062_exam_valid_user_users.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 12:42 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('anatomy', '0061_rename_valid_users_exam_valid_cid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_user_users', - field=models.ManyToManyField(blank=True, related_name='user_anatomy_exams', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/anatomy/migrations/0063_ciduseranswer_user.py b/anatomy/migrations/0063_ciduseranswer_user.py deleted file mode 100644 index 80838968..00000000 --- a/anatomy/migrations/0063_ciduseranswer_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 19:51 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('anatomy', '0062_exam_valid_user_users'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_anatomy_user_answers', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/anatomy/migrations/0064_auto_20220521_1020.py b/anatomy/migrations/0064_auto_20220521_1020.py deleted file mode 100644 index 3bd07906..00000000 --- a/anatomy/migrations/0064_auto_20220521_1020.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-21 09:20 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - ('anatomy', '0063_ciduseranswer_user'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='anatomy_cid_user_groups', to='generic.CidUserGroup'), - ), - migrations.AddField( - model_name='exam', - name='user_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='anatomy_user_user_groups', to='generic.UserUserGroup'), - ), - ] diff --git a/anatomy/migrations/0065_exam_exam_results_emailed.py b/anatomy/migrations/0065_exam_exam_results_emailed.py deleted file mode 100644 index 277dec65..00000000 --- a/anatomy/migrations/0065_exam_exam_results_emailed.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-26 15:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0064_auto_20220521_1020'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_results_emailed', - field=models.DateTimeField(default=None, null=True), - ), - ] diff --git a/anatomy/migrations/0066_remove_exam_stats_graph.py b/anatomy/migrations/0066_remove_exam_stats_graph.py deleted file mode 100644 index 9fc27cd8..00000000 --- a/anatomy/migrations/0066_remove_exam_stats_graph.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-30 20:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0065_exam_exam_results_emailed'), - ] - - operations = [ - migrations.RemoveField( - model_name='exam', - name='stats_graph', - ), - ] diff --git a/anatomy/migrations/0067_alter_anatomyquestion_image.py b/anatomy/migrations/0067_alter_anatomyquestion_image.py deleted file mode 100644 index 0d618c6a..00000000 --- a/anatomy/migrations/0067_alter_anatomyquestion_image.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 09:44 - -import anatomy.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0066_remove_exam_stats_graph'), - ] - - operations = [ - migrations.AlterField( - model_name='anatomyquestion', - name='image', - field=models.ImageField(help_text="The image to use for the question. Ideally use use unmarked images and annotate (arrow) them on the test system. If you wish to reuse an image that is already uploaded 'clone' the question that contains it.", upload_to=anatomy.models.image_directory_path), - ), - ] diff --git a/anatomy/migrations/0068_alter_ciduseranswer_options.py b/anatomy/migrations/0068_alter_ciduseranswer_options.py deleted file mode 100644 index 5de7f8c1..00000000 --- a/anatomy/migrations/0068_alter_ciduseranswer_options.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:11 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0067_alter_anatomyquestion_image'), - ] - - operations = [ - migrations.AlterModelOptions( - name='ciduseranswer', - options={'ordering': ['cid']}, - ), - ] diff --git a/anatomy/migrations/0069_rename_ciduseranswer_useranswer.py b/anatomy/migrations/0069_rename_ciduseranswer_useranswer.py deleted file mode 100644 index 542e18dd..00000000 --- a/anatomy/migrations/0069_rename_ciduseranswer_useranswer.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:14 - -from django.conf import settings -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('anatomy', '0068_alter_ciduseranswer_options'), - ] - - operations = [ - migrations.RenameModel( - old_name='CidUserAnswer', - new_name='UserAnswer', - ), - ] diff --git a/anatomy/migrations/0070_anatomyquestion_authors_only.py b/anatomy/migrations/0070_anatomyquestion_authors_only.py deleted file mode 100644 index 499bae4b..00000000 --- a/anatomy/migrations/0070_anatomyquestion_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0069_rename_ciduseranswer_useranswer'), - ] - - operations = [ - migrations.AddField( - model_name='anatomyquestion', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only question authors will be able to view.'), - ), - ] diff --git a/anatomy/migrations/0071_anatomyquestion_feedback.py b/anatomy/migrations/0071_anatomyquestion_feedback.py deleted file mode 100644 index cfa58bf0..00000000 --- a/anatomy/migrations/0071_anatomyquestion_feedback.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('anatomy', '0070_anatomyquestion_authors_only'), - ] - - operations = [ - migrations.AddField( - model_name='anatomyquestion', - name='feedback', - field=models.TextField(blank=True, help_text='Question Feedback', null=True), - ), - ] diff --git a/atlas/migrations/0001_initial.py b/atlas/migrations/0001_initial.py index 44196856..4feb3e5c 100644 --- a/atlas/migrations/0001_initial.py +++ b/atlas/migrations/0001_initial.py @@ -1,12 +1,11 @@ -# Generated by Django 3.2.8 on 2021-11-23 19:28 +# Generated by Django 4.1.4 on 2023-06-12 10:07 import atlas.models from django.conf import settings +import django.core.validators from django.db import migrations, models import django.db.models.deletion import django.utils.timezone -import sortedm2m.fields -#import tagulous.models.fields class Migration(migrations.Migration): @@ -14,24 +13,157 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('anatomy', '0053_anatomyquestion_structure'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0014_alter_questionnote_note'), ] operations = [ + migrations.CreateModel( + name='Case', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(default='', help_text='Title of the case', max_length=255)), + ('description', models.TextField(blank=True, help_text='Description of the case')), + ('history', models.TextField(blank=True, help_text='A (brief) summary of the relevant history', null=True)), + ('discussion', models.TextField(blank=True, null=True)), + ('report', models.TextField(blank=True, help_text='A model (sample) report for the case.', null=True)), + ('verified', models.BooleanField(default=False)), + ('created_date', models.DateTimeField(default=django.utils.timezone.now)), + ('published_date', models.DateTimeField(blank=True, null=True)), + ('scrapped', models.BooleanField(default=False, help_text='Question has been scrapped and will not be shown')), + ('open_access', models.BooleanField(default=True, help_text='If a case should be freely available to browse')), + ], + ), + migrations.CreateModel( + name='CaseCollection', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('publish_results', models.BooleanField(default=False, help_text='If a collection should published')), + ('active', models.BooleanField(default=True, help_text='If a collection should be available')), + ('show_title_pre', models.BooleanField(default=False, help_text='Show the title of the cases (pre exam)')), + ('show_history_pre', models.BooleanField(default=False, help_text='Show the history of the cases (pre exam)')), + ('show_description_pre', models.BooleanField(default=False, help_text='Show the description of the cases (pre exam)')), + ('show_discussion_pre', models.BooleanField(default=False, help_text='Show the case discussion (pre exam)')), + ('show_report_pre', models.BooleanField(default=False, help_text='Show the case report (pre exam)')), + ('show_title_post', models.BooleanField(default=False, help_text='Show the title of the cases (post exam)')), + ('show_history_post', models.BooleanField(default=False, help_text='Show the history of the cases (post exam)')), + ('show_description_post', models.BooleanField(default=False, help_text='Show the description of the cases (post exam)')), + ('show_discussion_post', models.BooleanField(default=False, help_text='Show the case discussion (post exam)')), + ('show_report_post', models.BooleanField(default=False, help_text='Show the case report (post exam)')), + ('archive', models.BooleanField(default=False)), + ('exam_mode', models.BooleanField(default=False)), + ('open_access', models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)')), + ('collection_type', models.CharField(choices=[('REV', 'Review'), ('REP', 'Report')], default='REP', max_length=3)), + ], + ), + migrations.CreateModel( + name='CaseDetail', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(default=1000)), + ], + options={ + 'ordering': ('sort_order',), + }, + ), + migrations.CreateModel( + name='CidReportAnswer', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('answer', models.TextField(blank=True)), + ('feedback', models.TextField(blank=True)), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('score', models.IntegerField(blank=True, null=True, validators=[django.core.validators.MaxValueValidator(10), django.core.validators.MinValueValidator(0)])), + ('cid', models.BigIntegerField(help_text='Candidate ID')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Condition', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('primary', models.BooleanField(default='True')), + ], + bases=(atlas.models.SynMixin, models.Model), + ), + migrations.CreateModel( + name='Differential', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('text', models.TextField(blank=True, null=True)), + ], + ), + migrations.CreateModel( + name='Finding', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('primary', models.BooleanField(default='True')), + ], + bases=(atlas.models.SynMixin, models.Model), + ), + migrations.CreateModel( + name='PathologicalProcess', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='Presentation', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ], + ), migrations.CreateModel( name='Series', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('description', models.TextField(blank=True, help_text='Description of stack, for admin organisation, will not be visible when taking')), - ('open_access', models.BooleanField(default=True, help_text='If a question should be freely available to browse')), + ('open_access', models.BooleanField(default=True, help_text='If a series should be freely available to browse')), ('author', models.ManyToManyField(blank=True, related_name='series', to=settings.AUTH_USER_MODEL)), - ('contrast', models.ForeignKey(blank=True, help_text='MRI / CT contrast', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_contrast', to='generic.contrast')), - ('examination', models.ForeignKey(help_text='Name of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_examination', to='generic.examination')), - ('modality', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_modality', to='anatomy.modality')), - ('plane', models.ForeignKey(blank=True, help_text='Plane of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_plane', to='generic.plane')), ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Subspecialty', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='UserReportAnswer', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('answer', models.TextField(blank=True)), + ('feedback', models.TextField(blank=True)), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('score', models.IntegerField(blank=True, null=True, validators=[django.core.validators.MaxValueValidator(10), django.core.validators.MinValueValidator(0)])), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.casedetail')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Structure', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('primary', models.BooleanField(default='True')), + ('synonym', models.ManyToManyField(blank=True, to='atlas.structure')), + ], + bases=(atlas.models.SynMixin, models.Model), ), migrations.CreateModel( name='SeriesImage', @@ -47,22 +179,15 @@ class Migration(migrations.Migration): }, ), migrations.CreateModel( - name='Case', + name='SeriesFinding', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('description', models.TextField(blank=True, help_text='Description of the case, for admin organisation, will not be visible when taking')), - ('history', models.TextField(blank=True, null=True)), - ('findings', models.TextField(blank=True, null=True)), - ('subpecialty', models.CharField(choices=[('BR', 'Breast'), ('CA', 'Cardiac'), ('GI', 'Gastrointestinal and hepatobiliary'), ('HN', 'Head and Neck'), ('MS', 'Musculoskeletal'), ('NE', 'Neuroradiology'), ('OG', 'Obstectric and Gynaecological'), ('PA', 'Paediatric'), ('UR', 'Uroradiology'), ('VA', 'Vascular'), ('HA', 'Haemotology and Oncology')], max_length=2)), - ('verified', models.BooleanField(default=False)), - ('created_date', models.DateTimeField(default=django.utils.timezone.now)), - ('published_date', models.DateTimeField(blank=True, null=True)), - ('scrapped', models.BooleanField(default=False, help_text='Question has been scrapped and will not be shown')), - ('open_access', models.BooleanField(default=True, help_text='If a question should be freely available to browse')), - ('author', models.ManyToManyField(blank=True, help_text='Author of question', related_name='atlas_authored_questions', to=settings.AUTH_USER_MODEL)), - ('condition', models.CharField(blank=True, help_text='Associated condition. Will allow searching / filtering and tips / hints to be displayed. Conditions with spaces must be enclosed in quotes "..."')), - ('series', sortedm2m.fields.SortedManyToManyField(help_text=None, related_name='atlas', to='atlas.Series')), - ('sign', models.CharField( blank=True, help_text='Radiological signs in the question')), + ('description', models.TextField(blank=True, help_text='Findings on the series / stack', null=True)), + ('annotation_json', models.TextField(blank=True, null=True)), + ('viewport_json', models.TextField(blank=True, null=True)), + ('findings', models.ManyToManyField(blank=True, to='atlas.finding')), + ('series', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='findings', to='atlas.series')), + ('structures', models.ManyToManyField(blank=True, to='atlas.structure')), ], ), ] diff --git a/atlas/migrations/0002_auto_20211123_2240.py b/atlas/migrations/0002_auto_20211123_2240.py deleted file mode 100644 index 100c5361..00000000 --- a/atlas/migrations/0002_auto_20211123_2240.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-23 22:40 - -from django.db import migrations, models -import sortedm2m.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='case', - name='title', - field=models.CharField(default='', help_text='Title of the case', max_length=255), - ), - migrations.AlterField( - model_name='case', - name='series', - field=sortedm2m.fields.SortedManyToManyField(help_text=None, related_name='case', to='atlas.Series'), - ), - ] diff --git a/atlas/migrations/0002_initial.py b/atlas/migrations/0002_initial.py new file mode 100644 index 00000000..0837ab35 --- /dev/null +++ b/atlas/migrations/0002_initial.py @@ -0,0 +1,156 @@ +# Generated by Django 4.1.4 on 2023-06-12 10:07 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import sortedm2m.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('generic', '0001_initial'), + ('anatomy', '0002_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('atlas', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='series', + name='contrast', + field=models.ForeignKey(blank=True, help_text='MRI / CT contrast', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_contrast', to='generic.contrast'), + ), + migrations.AddField( + model_name='series', + name='examination', + field=models.ForeignKey(help_text='Name of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_examination', to='generic.examination'), + ), + migrations.AddField( + model_name='series', + name='modality', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_modality', to='anatomy.modality'), + ), + migrations.AddField( + model_name='series', + name='plane', + field=models.ForeignKey(blank=True, help_text='Plane of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='atlas_series_plane', to='generic.plane'), + ), + migrations.AddField( + model_name='presentation', + name='subspecialty', + field=models.ManyToManyField(blank=True, to='atlas.subspecialty'), + ), + migrations.AddField( + model_name='finding', + name='synonym', + field=models.ManyToManyField(blank=True, to='atlas.finding'), + ), + migrations.AddField( + model_name='differential', + name='case', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='differentialcase', to='atlas.case'), + ), + migrations.AddField( + model_name='differential', + name='condition', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.condition'), + ), + migrations.AddField( + model_name='condition', + name='parent', + field=models.ManyToManyField(blank=True, to='atlas.condition'), + ), + migrations.AddField( + model_name='condition', + name='subspecialty', + field=models.ManyToManyField(blank=True, to='atlas.subspecialty'), + ), + migrations.AddField( + model_name='condition', + name='synonym', + field=models.ManyToManyField(blank=True, to='atlas.condition'), + ), + migrations.AddField( + model_name='cidreportanswer', + name='question', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.casedetail'), + ), + migrations.AddField( + model_name='casedetail', + name='case', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.case'), + ), + migrations.AddField( + model_name='casedetail', + name='collection', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.casecollection'), + ), + migrations.AddField( + model_name='casecollection', + name='author', + field=models.ManyToManyField(blank=True, help_text='Author of the collection', to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='casecollection', + name='cases', + field=models.ManyToManyField(through='atlas.CaseDetail', to='atlas.case'), + ), + migrations.AddField( + model_name='casecollection', + name='cid_user_groups', + field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', to='generic.cidusergroup'), + ), + migrations.AddField( + model_name='casecollection', + name='valid_cid_users', + field=models.ManyToManyField(blank=True, related_name='casecollection_exams', to='generic.ciduser'), + ), + migrations.AddField( + model_name='case', + name='author', + field=models.ManyToManyField(blank=True, help_text='Author of the case', related_name='atlas_authored_cases', to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='case', + name='condition', + field=models.ManyToManyField(blank=True, to='atlas.condition'), + ), + migrations.AddField( + model_name='case', + name='differential', + field=models.ManyToManyField(related_name='casedifferential', through='atlas.Differential', to='atlas.condition'), + ), + migrations.AddField( + model_name='case', + name='editor', + field=models.ManyToManyField(blank=True, related_name='atlas_edited_cases', to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='case', + name='pathological_process', + field=models.ManyToManyField(blank=True, to='atlas.pathologicalprocess'), + ), + migrations.AddField( + model_name='case', + name='presentation', + field=models.ManyToManyField(blank=True, to='atlas.presentation'), + ), + migrations.AddField( + model_name='case', + name='previous_case', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='next_case', to='atlas.case'), + ), + migrations.AddField( + model_name='case', + name='series', + field=sortedm2m.fields.SortedManyToManyField(help_text=None, related_name='case', to='atlas.series'), + ), + migrations.AddField( + model_name='case', + name='subspecialty', + field=models.ManyToManyField(blank=True, to='atlas.subspecialty'), + ), + ] diff --git a/atlas/migrations/0003_rename_subpecialty_case_subspecialty.py b/atlas/migrations/0003_rename_subpecialty_case_subspecialty.py deleted file mode 100644 index bf7a7a4f..00000000 --- a/atlas/migrations/0003_rename_subpecialty_case_subspecialty.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-24 18:47 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0002_auto_20211123_2240'), - ] - - operations = [ - migrations.RenameField( - model_name='case', - old_name='subpecialty', - new_name='subspecialty', - ), - ] diff --git a/atlas/migrations/0004_auto_20211125_2216.py b/atlas/migrations/0004_auto_20211125_2216.py deleted file mode 100644 index 4f2b44ad..00000000 --- a/atlas/migrations/0004_auto_20211125_2216.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-25 22:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0003_rename_subpecialty_case_subspecialty'), - ] - - operations = [ - migrations.CreateModel( - name='Condition', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ('synonym', models.ManyToManyField(blank=True, related_name='_atlas_condition_synonym_+', to='atlas.Condition')), - ], - ), - migrations.AlterField( - model_name='case', - name='condition', - field=models.ManyToManyField(blank=True, to='atlas.Condition'), - ), - ] diff --git a/atlas/migrations/0005_condition_primary_name.py b/atlas/migrations/0005_condition_primary_name.py deleted file mode 100644 index e595a795..00000000 --- a/atlas/migrations/0005_condition_primary_name.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-25 22:32 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0004_auto_20211125_2216'), - ] - - operations = [ - migrations.AddField( - model_name='condition', - name='primary_name', - field=models.BooleanField(default='True'), - ), - ] diff --git a/atlas/migrations/0006_auto_20211128_1448.py b/atlas/migrations/0006_auto_20211128_1448.py deleted file mode 100644 index 8f18b425..00000000 --- a/atlas/migrations/0006_auto_20211128_1448.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 3.2.4 on 2021-11-28 14:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0005_condition_primary_name'), - ] - - operations = [ - migrations.CreateModel( - name='Subspecialty', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ], - ), - migrations.RemoveField( - model_name='case', - name='subspecialty', - ), - migrations.AddField( - model_name='condition', - name='subspecialty', - field=models.ManyToManyField(blank=True, to='atlas.Subspecialty'), - ), - migrations.AddField( - model_name='case', - name='subspecialty', - field=models.ManyToManyField(blank=True, to='atlas.Subspecialty'), - ), - ] diff --git a/atlas/migrations/0007_auto_20211128_1622.py b/atlas/migrations/0007_auto_20211128_1622.py deleted file mode 100644 index 220002a5..00000000 --- a/atlas/migrations/0007_auto_20211128_1622.py +++ /dev/null @@ -1,87 +0,0 @@ -# Generated by Django 3.2.4 on 2021-11-28 16:22 - -import atlas.models -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ("atlas", "0006_auto_20211128_1448"), - ] - - operations = [ - migrations.CreateModel( - name="Finding", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("name", models.CharField(max_length=255)), - ("primary_name", models.BooleanField(default="True")), - ( - "synonym", - models.ManyToManyField( - blank=True, - related_name="_atlas_finding_synonym_+", - to="atlas.Finding", - ), - ), - ], - bases=(atlas.models.SynMixin, models.Model), - ), - migrations.RemoveField( - model_name="case", - name="findings", - ), - migrations.AlterField( - model_name="case", - name="description", - field=models.TextField(blank=True, help_text="Description of the case"), - ), - migrations.AlterField( - model_name="series", - name="description", - field=models.TextField(blank=True, help_text="Description of stack"), - ), - migrations.CreateModel( - name="SeriesFindings", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "description", - models.TextField( - blank=True, - help_text="Findings on the series / stack", - null=True, - ), - ), - ("annotation_json", models.TextField(blank=True, null=True)), - ("findings", models.ManyToManyField(blank=True, to="atlas.Finding")), - ( - "series", - models.ForeignKey( - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="findings", - to="atlas.series", - ), - ), - ], - ), - ] diff --git a/atlas/migrations/0008_rename_seriesfindings_seriesfinding.py b/atlas/migrations/0008_rename_seriesfindings_seriesfinding.py deleted file mode 100644 index 083c50ed..00000000 --- a/atlas/migrations/0008_rename_seriesfindings_seriesfinding.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-29 19:10 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0007_auto_20211128_1622'), - ] - - operations = [ - migrations.RenameModel( - old_name='SeriesFindings', - new_name='SeriesFinding', - ), - ] diff --git a/atlas/migrations/0009_seriesfinding_viewport_json.py b/atlas/migrations/0009_seriesfinding_viewport_json.py deleted file mode 100644 index 7c4a26e9..00000000 --- a/atlas/migrations/0009_seriesfinding_viewport_json.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-29 21:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0008_rename_seriesfindings_seriesfinding'), - ] - - operations = [ - migrations.AddField( - model_name='seriesfinding', - name='viewport_json', - field=models.TextField(blank=True, null=True), - ), - ] diff --git a/atlas/migrations/0010_auto_20211129_2214.py b/atlas/migrations/0010_auto_20211129_2214.py deleted file mode 100644 index e24526bb..00000000 --- a/atlas/migrations/0010_auto_20211129_2214.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-29 22:14 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0009_seriesfinding_viewport_json'), - ] - - operations = [ - migrations.AddField( - model_name='case', - name='discussion', - field=models.TextField(blank=True, null=True), - ), - migrations.CreateModel( - name='Differential', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('text', models.TextField(blank=True, null=True)), - ('case', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='differentialcase', to='atlas.case')), - ('condition', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.condition')), - ], - ), - migrations.AddField( - model_name='case', - name='differential', - field=models.ManyToManyField(related_name='casedifferential', through='atlas.Differential', to='atlas.Condition'), - ), - ] diff --git a/atlas/migrations/0011_auto_20211130_1807.py b/atlas/migrations/0011_auto_20211130_1807.py deleted file mode 100644 index 829efa4e..00000000 --- a/atlas/migrations/0011_auto_20211130_1807.py +++ /dev/null @@ -1,39 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-30 18:07 - -import atlas.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0010_auto_20211129_2214'), - ] - - operations = [ - migrations.AlterField( - model_name='condition', - name='name', - field=models.CharField(max_length=255, unique=True), - ), - migrations.AlterField( - model_name='finding', - name='name', - field=models.CharField(max_length=255, unique=True), - ), - migrations.CreateModel( - name='Structure', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('structure', models.CharField(max_length=255, unique=True)), - ('primary_name', models.BooleanField(default='True')), - ('synonym', models.ManyToManyField(blank=True, related_name='_atlas_structure_synonym_+', to='atlas.Structure')), - ], - bases=(atlas.models.SynMixin, models.Model), - ), - migrations.AddField( - model_name='seriesfinding', - name='structures', - field=models.ManyToManyField(blank=True, to='atlas.Structure'), - ), - ] diff --git a/atlas/migrations/0012_auto_20211130_2050.py b/atlas/migrations/0012_auto_20211130_2050.py deleted file mode 100644 index 6d892395..00000000 --- a/atlas/migrations/0012_auto_20211130_2050.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-30 20:50 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0011_auto_20211130_1807'), - ] - - operations = [ - migrations.RenameField( - model_name='condition', - old_name='primary_name', - new_name='primary', - ), - migrations.RenameField( - model_name='finding', - old_name='primary_name', - new_name='primary', - ), - migrations.RenameField( - model_name='structure', - old_name='primary_name', - new_name='primary', - ), - ] diff --git a/atlas/migrations/0013_rename_structure_structure_name.py b/atlas/migrations/0013_rename_structure_structure_name.py deleted file mode 100644 index 7f61548d..00000000 --- a/atlas/migrations/0013_rename_structure_structure_name.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-11-30 22:55 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0012_auto_20211130_2050'), - ] - - operations = [ - migrations.RenameField( - model_name='structure', - old_name='structure', - new_name='name', - ), - ] diff --git a/atlas/migrations/0014_remove_case_sign.py b/atlas/migrations/0014_remove_case_sign.py deleted file mode 100644 index 920dd994..00000000 --- a/atlas/migrations/0014_remove_case_sign.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-01 19:32 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0013_rename_structure_structure_name'), - ] - - operations = [ - migrations.RemoveField( - model_name='case', - name='sign', - ), - ] diff --git a/atlas/migrations/0015_condition_parent.py b/atlas/migrations/0015_condition_parent.py deleted file mode 100644 index c7560a23..00000000 --- a/atlas/migrations/0015_condition_parent.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-12-05 16:23 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0014_remove_case_sign'), - ] - - operations = [ - migrations.AddField( - model_name='condition', - name='parent', - field=models.ManyToManyField(blank=True, related_name='_atlas_condition_parent_+', to='atlas.Condition'), - ), - ] diff --git a/atlas/migrations/0016_auto_20211206_2224.py b/atlas/migrations/0016_auto_20211206_2224.py deleted file mode 100644 index 0b6387e0..00000000 --- a/atlas/migrations/0016_auto_20211206_2224.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-06 22:24 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0015_condition_parent'), - ] - - operations = [ - migrations.CreateModel( - name='PathalogicalProcess', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ], - ), - migrations.AddField( - model_name='case', - name='pathalogical_process', - field=models.ManyToManyField(blank=True, to='atlas.PathalogicalProcess'), - ), - ] diff --git a/atlas/migrations/0017_presentation.py b/atlas/migrations/0017_presentation.py deleted file mode 100644 index 236e8f5a..00000000 --- a/atlas/migrations/0017_presentation.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-06 22:31 - -import atlas.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0016_auto_20211206_2224'), - ] - - operations = [ - migrations.CreateModel( - name='Presentation', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, unique=True)), - ('subspecialty', models.ManyToManyField(blank=True, to='atlas.Subspecialty')), - ], - bases=(atlas.models.SynMixin, models.Model), - ), - ] diff --git a/atlas/migrations/0018_alter_presentation_name.py b/atlas/migrations/0018_alter_presentation_name.py deleted file mode 100644 index 2cbda17b..00000000 --- a/atlas/migrations/0018_alter_presentation_name.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-07 09:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0017_presentation'), - ] - - operations = [ - migrations.AlterField( - model_name='presentation', - name='name', - field=models.CharField(max_length=255), - ), - ] diff --git a/atlas/migrations/0019_case_presentation.py b/atlas/migrations/0019_case_presentation.py deleted file mode 100644 index 9bc441d6..00000000 --- a/atlas/migrations/0019_case_presentation.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-07 11:41 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0018_alter_presentation_name'), - ] - - operations = [ - migrations.AddField( - model_name='case', - name='presentation', - field=models.ManyToManyField(blank=True, to='atlas.Presentation'), - ), - ] diff --git a/atlas/migrations/0020_rename_pathalogical_process_case_pathological_process.py b/atlas/migrations/0020_rename_pathalogical_process_case_pathological_process.py deleted file mode 100644 index b9d075b6..00000000 --- a/atlas/migrations/0020_rename_pathalogical_process_case_pathological_process.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-07 15:13 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0019_case_presentation'), - ] - - operations = [ - migrations.RenameField( - model_name='case', - old_name='pathalogical_process', - new_name='pathological_process', - ), - ] diff --git a/atlas/migrations/0021_rename_pathalogicalprocess_pathologicalprocess.py b/atlas/migrations/0021_rename_pathalogicalprocess_pathologicalprocess.py deleted file mode 100644 index 5a825540..00000000 --- a/atlas/migrations/0021_rename_pathalogicalprocess_pathologicalprocess.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-07 15:23 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0020_rename_pathalogical_process_case_pathological_process'), - ] - - operations = [ - migrations.RenameModel( - old_name='PathalogicalProcess', - new_name='PathologicalProcess', - ), - ] diff --git a/atlas/migrations/0022_auto_20211214_1745.py b/atlas/migrations/0022_auto_20211214_1745.py deleted file mode 100644 index 3cbeb13d..00000000 --- a/atlas/migrations/0022_auto_20211214_1745.py +++ /dev/null @@ -1,35 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-14 17:45 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('atlas', '0021_rename_pathalogicalprocess_pathologicalprocess'), - ] - - operations = [ - migrations.AddField( - model_name='case', - name='editor', - field=models.ManyToManyField(blank=True, related_name='atlas_edited_cases', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='case', - name='report', - field=models.TextField(blank=True, help_text='A model (sample) report for the case.', null=True), - ), - migrations.AlterField( - model_name='case', - name='author', - field=models.ManyToManyField(blank=True, help_text='Author of the case', related_name='atlas_authored_cases', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='case', - name='history', - field=models.TextField(blank=True, help_text='A (brief) summary of the relevant history', null=True), - ), - ] diff --git a/atlas/migrations/0023_case_previous_case.py b/atlas/migrations/0023_case_previous_case.py deleted file mode 100644 index d7bd72f5..00000000 --- a/atlas/migrations/0023_case_previous_case.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-23 17:20 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0022_auto_20211214_1745'), - ] - - operations = [ - migrations.AddField( - model_name='case', - name='previous_case', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='next_case', to='atlas.case'), - ), - ] diff --git a/atlas/migrations/0024_alter_case_previous_case.py b/atlas/migrations/0024_alter_case_previous_case.py deleted file mode 100644 index 3d4d0a13..00000000 --- a/atlas/migrations/0024_alter_case_previous_case.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-23 17:28 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0023_case_previous_case'), - ] - - operations = [ - migrations.AlterField( - model_name='case', - name='previous_case', - field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='next_case', to='atlas.case'), - ), - ] diff --git a/atlas/migrations/0025_auto_20220321_1602.py b/atlas/migrations/0025_auto_20220321_1602.py deleted file mode 100644 index f93c1ca2..00000000 --- a/atlas/migrations/0025_auto_20220321_1602.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-21 16:02 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0024_alter_case_previous_case'), - ] - - operations = [ - migrations.CreateModel( - name='CaseCollection', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, unique=True)), - ('open_access', models.BooleanField(default=True, help_text='If a collection should be freely available to browse')), - ], - ), - migrations.CreateModel( - name='CaseDetail', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('sort_order', models.IntegerField()), - ('case', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.case')), - ('collection', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.casecollection')), - ], - ), - migrations.AddField( - model_name='casecollection', - name='cases', - field=models.ManyToManyField(through='atlas.CaseDetail', to='atlas.Case'), - ), - ] diff --git a/atlas/migrations/0026_auto_20220321_1612.py b/atlas/migrations/0026_auto_20220321_1612.py deleted file mode 100644 index 7d28be1f..00000000 --- a/atlas/migrations/0026_auto_20220321_1612.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-21 16:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0025_auto_20220321_1602'), - ] - - operations = [ - migrations.AlterField( - model_name='case', - name='open_access', - field=models.BooleanField(default=True, help_text='If a case should be freely available to browse'), - ), - migrations.AlterField( - model_name='series', - name='open_access', - field=models.BooleanField(default=True, help_text='If a series should be freely available to browse'), - ), - ] diff --git a/atlas/migrations/0027_auto_20220325_2138.py b/atlas/migrations/0027_auto_20220325_2138.py deleted file mode 100644 index f47b1021..00000000 --- a/atlas/migrations/0027_auto_20220325_2138.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 3.2.4 on 2022-03-25 21:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0026_auto_20220321_1612'), - ] - - operations = [ - migrations.AlterModelOptions( - name='casedetail', - options={'ordering': ('sort_order',)}, - ), - migrations.AddField( - model_name='casecollection', - name='show_description', - field=models.BooleanField(default=False, help_text='Show the description of the cases'), - ), - migrations.AddField( - model_name='casecollection', - name='show_discussion', - field=models.BooleanField(default=False, help_text='Show the case discussion'), - ), - migrations.AddField( - model_name='casecollection', - name='show_title', - field=models.BooleanField(default=False, help_text='Show the title of the cases'), - ), - ] diff --git a/atlas/migrations/0028_casecollection_author.py b/atlas/migrations/0028_casecollection_author.py deleted file mode 100644 index 1405097e..00000000 --- a/atlas/migrations/0028_casecollection_author.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-29 20:53 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('atlas', '0027_auto_20220325_2138'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='author', - field=models.ManyToManyField(blank=True, help_text='Author of the collection', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/atlas/migrations/0029_casecollection_show_report.py b/atlas/migrations/0029_casecollection_show_report.py deleted file mode 100644 index 3c716f14..00000000 --- a/atlas/migrations/0029_casecollection_show_report.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-29 20:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0028_casecollection_author'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='show_report', - field=models.BooleanField(default=False, help_text='Show the case report'), - ), - ] diff --git a/atlas/migrations/0030_auto_20220331_2224.py b/atlas/migrations/0030_auto_20220331_2224.py deleted file mode 100644 index c4b64d4b..00000000 --- a/atlas/migrations/0030_auto_20220331_2224.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-31 21:24 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0029_casecollection_show_report'), - ] - - operations = [ - migrations.RemoveField( - model_name='casecollection', - name='open_access', - ), - migrations.AddField( - model_name='casecollection', - name='collection_type', - field=models.IntegerField(choices=[(1, 'Review'), (2, 'Basic Text Input')], default=1), - ), - migrations.AddField( - model_name='casecollection', - name='published', - field=models.BooleanField(default=True, help_text='If a collection should published'), - ), - ] diff --git a/atlas/migrations/0031_alter_casecollection_collection_type.py b/atlas/migrations/0031_alter_casecollection_collection_type.py deleted file mode 100644 index 7c152764..00000000 --- a/atlas/migrations/0031_alter_casecollection_collection_type.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-31 21:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0030_auto_20220331_2224'), - ] - - operations = [ - migrations.AlterField( - model_name='casecollection', - name='collection_type', - field=models.CharField(choices=[('RE', 'Review'), ('BTI', 'Basic Text Input')], default='RE', max_length=3), - ), - ] diff --git a/atlas/migrations/0032_auto_20220401_1849.py b/atlas/migrations/0032_auto_20220401_1849.py deleted file mode 100644 index afb5337d..00000000 --- a/atlas/migrations/0032_auto_20220401_1849.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-01 17:49 - -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('atlas', '0031_alter_casecollection_collection_type'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='valid_users', - field=models.ManyToManyField(blank=True, related_name='casecollection_exams', to='generic.CidUser'), - ), - migrations.AlterField( - model_name='casecollection', - name='collection_type', - field=models.CharField(choices=[('REV', 'Review'), ('REP', 'Report')], default='REP', max_length=3), - ), - migrations.CreateModel( - name='CidReportAnswer', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.TextField(blank=True)), - ('cid', models.BigIntegerField(help_text='Candidate ID')), - ('created', models.DateTimeField(auto_now_add=True)), - ('updated', models.DateTimeField(auto_now=True)), - ('score', models.IntegerField(blank=True, null=True, validators=[django.core.validators.MaxValueValidator(10), django.core.validators.MinValueValidator(0)])), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.casedetail')), - ], - ), - ] diff --git a/atlas/migrations/0033_casecollection_archive.py b/atlas/migrations/0033_casecollection_archive.py deleted file mode 100644 index 0a41c4df..00000000 --- a/atlas/migrations/0033_casecollection_archive.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-01 18:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0032_auto_20220401_1849'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='archive', - field=models.BooleanField(default=False), - ), - ] diff --git a/atlas/migrations/0034_auto_20220401_2235.py b/atlas/migrations/0034_auto_20220401_2235.py deleted file mode 100644 index a9ec2de0..00000000 --- a/atlas/migrations/0034_auto_20220401_2235.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-01 21:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0033_casecollection_archive'), - ] - - operations = [ - migrations.RenameField( - model_name='casecollection', - old_name='published', - new_name='publish_results', - ), - migrations.AddField( - model_name='casecollection', - name='active', - field=models.BooleanField(default=True, help_text='If a collection should be available'), - ), - ] diff --git a/atlas/migrations/0035_casecollection_show_history.py b/atlas/migrations/0035_casecollection_show_history.py deleted file mode 100644 index 748fd120..00000000 --- a/atlas/migrations/0035_casecollection_show_history.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-01 22:15 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0034_auto_20220401_2235'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='show_history', - field=models.BooleanField(default=False, help_text='Show the history of the cases'), - ), - ] diff --git a/atlas/migrations/0036_casecollection_exam_mode.py b/atlas/migrations/0036_casecollection_exam_mode.py deleted file mode 100644 index 898f66d7..00000000 --- a/atlas/migrations/0036_casecollection_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 13:09 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0035_casecollection_show_history'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='exam_mode', - field=models.BooleanField(default=False), - ), - ] diff --git a/atlas/migrations/0037_cidreportanswer_feedback.py b/atlas/migrations/0037_cidreportanswer_feedback.py deleted file mode 100644 index 12cc1bc2..00000000 --- a/atlas/migrations/0037_cidreportanswer_feedback.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 15:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0036_casecollection_exam_mode'), - ] - - operations = [ - migrations.AddField( - model_name='cidreportanswer', - name='feedback', - field=models.TextField(blank=True), - ), - ] diff --git a/atlas/migrations/0038_auto_20220408_2355.py b/atlas/migrations/0038_auto_20220408_2355.py deleted file mode 100644 index 4ce699e5..00000000 --- a/atlas/migrations/0038_auto_20220408_2355.py +++ /dev/null @@ -1,43 +0,0 @@ -# Generated by Django 3.2.4 on 2022-04-08 22:55 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0037_cidreportanswer_feedback'), - ] - - operations = [ - migrations.RenameField( - model_name='casecollection', - old_name='show_description', - new_name='show_description_pre', - ), - migrations.RenameField( - model_name='casecollection', - old_name='show_discussion', - new_name='show_discussion_pre', - ), - migrations.RenameField( - model_name='casecollection', - old_name='show_history', - new_name='show_history_pre', - ), - migrations.RenameField( - model_name='casecollection', - old_name='show_report', - new_name='show_report_pre', - ), - migrations.RenameField( - model_name='casecollection', - old_name='show_title', - new_name='show_title_pre', - ), - migrations.AlterField( - model_name='casecollection', - name='publish_results', - field=models.BooleanField(default=False, help_text='If a collection should published'), - ), - ] diff --git a/atlas/migrations/0039_auto_20220408_2357.py b/atlas/migrations/0039_auto_20220408_2357.py deleted file mode 100644 index 2940c1ee..00000000 --- a/atlas/migrations/0039_auto_20220408_2357.py +++ /dev/null @@ -1,63 +0,0 @@ -# Generated by Django 3.2.4 on 2022-04-08 22:57 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0038_auto_20220408_2355'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='show_description_post', - field=models.BooleanField(default=False, help_text='Show the description of the cases (post exam)'), - ), - migrations.AddField( - model_name='casecollection', - name='show_discussion_post', - field=models.BooleanField(default=False, help_text='Show the case discussion (post exam)'), - ), - migrations.AddField( - model_name='casecollection', - name='show_history_post', - field=models.BooleanField(default=False, help_text='Show the history of the cases (post exam)'), - ), - migrations.AddField( - model_name='casecollection', - name='show_report_post', - field=models.BooleanField(default=False, help_text='Show the case report (post exam)'), - ), - migrations.AddField( - model_name='casecollection', - name='show_title_post', - field=models.BooleanField(default=False, help_text='Show the title of the cases (post exam)'), - ), - migrations.AlterField( - model_name='casecollection', - name='show_description_pre', - field=models.BooleanField(default=False, help_text='Show the description of the cases (pre exam)'), - ), - migrations.AlterField( - model_name='casecollection', - name='show_discussion_pre', - field=models.BooleanField(default=False, help_text='Show the case discussion (pre exam)'), - ), - migrations.AlterField( - model_name='casecollection', - name='show_history_pre', - field=models.BooleanField(default=False, help_text='Show the history of the cases (pre exam)'), - ), - migrations.AlterField( - model_name='casecollection', - name='show_report_pre', - field=models.BooleanField(default=False, help_text='Show the case report (pre exam)'), - ), - migrations.AlterField( - model_name='casecollection', - name='show_title_pre', - field=models.BooleanField(default=False, help_text='Show the title of the cases (pre exam)'), - ), - ] diff --git a/atlas/migrations/0040_casecollection_group.py b/atlas/migrations/0040_casecollection_group.py deleted file mode 100644 index d3efddda..00000000 --- a/atlas/migrations/0040_casecollection_group.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-21 16:45 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('atlas', '0039_auto_20220408_2357'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='group', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.cidusergroup'), - ), - ] diff --git a/atlas/migrations/0041_auto_20220421_1747.py b/atlas/migrations/0041_auto_20220421_1747.py deleted file mode 100644 index f377e3bf..00000000 --- a/atlas/migrations/0041_auto_20220421_1747.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-21 16:47 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('atlas', '0040_casecollection_group'), - ] - - operations = [ - migrations.RemoveField( - model_name='casecollection', - name='group', - ), - migrations.AddField( - model_name='casecollection', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, null=True, to='generic.CidUserGroup'), - ), - ] diff --git a/atlas/migrations/0042_auto_20220421_1751.py b/atlas/migrations/0042_auto_20220421_1751.py deleted file mode 100644 index c8a3db8a..00000000 --- a/atlas/migrations/0042_auto_20220421_1751.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-21 16:51 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('atlas', '0041_auto_20220421_1747'), - ] - - operations = [ - migrations.AddField( - model_name='casecollection', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)'), - ), - migrations.AlterField( - model_name='casecollection', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, to='generic.CidUserGroup'), - ), - ] diff --git a/atlas/migrations/0043_alter_casecollection_cid_user_groups.py b/atlas/migrations/0043_alter_casecollection_cid_user_groups.py deleted file mode 100644 index 7fbb854c..00000000 --- a/atlas/migrations/0043_alter_casecollection_cid_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-26 20:57 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('atlas', '0042_auto_20220421_1751'), - ] - - operations = [ - migrations.AlterField( - model_name='casecollection', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', to='generic.CidUserGroup'), - ), - ] diff --git a/atlas/migrations/0044_userreportanswer.py b/atlas/migrations/0044_userreportanswer.py deleted file mode 100644 index 465dbfa8..00000000 --- a/atlas/migrations/0044_userreportanswer.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-03 17:48 - -from django.conf import settings -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('atlas', '0043_alter_casecollection_cid_user_groups'), - ] - - operations = [ - migrations.CreateModel( - name='UserReportAnswer', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.TextField(blank=True)), - ('feedback', models.TextField(blank=True)), - ('created', models.DateTimeField(auto_now_add=True)), - ('updated', models.DateTimeField(auto_now=True)), - ('score', models.IntegerField(blank=True, null=True, validators=[django.core.validators.MaxValueValidator(10), django.core.validators.MinValueValidator(0)])), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.casedetail')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/atlas/migrations/0045_rename_valid_users_casecollection_valid_cid_users.py b/atlas/migrations/0045_rename_valid_users_casecollection_valid_cid_users.py deleted file mode 100644 index d25e3b40..00000000 --- a/atlas/migrations/0045_rename_valid_users_casecollection_valid_cid_users.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 10:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0044_userreportanswer'), - ] - - operations = [ - migrations.RenameField( - model_name='casecollection', - old_name='valid_users', - new_name='valid_cid_users', - ), - ] diff --git a/atlas/migrations/0046_alter_casedetail_sort_order.py b/atlas/migrations/0046_alter_casedetail_sort_order.py deleted file mode 100644 index ed7679ba..00000000 --- a/atlas/migrations/0046_alter_casedetail_sort_order.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-07-05 20:45 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0045_rename_valid_users_casecollection_valid_cid_users'), - ] - - operations = [ - migrations.AlterField( - model_name='casedetail', - name='sort_order', - field=models.IntegerField(default=1000), - ), - ] diff --git a/atlas/migrations/0047_alter_condition_parent_alter_condition_synonym_and_more.py b/atlas/migrations/0047_alter_condition_parent_alter_condition_synonym_and_more.py deleted file mode 100644 index cc9103eb..00000000 --- a/atlas/migrations/0047_alter_condition_parent_alter_condition_synonym_and_more.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 4.1.4 on 2022-12-19 13:30 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0046_alter_casedetail_sort_order'), - ] - - operations = [ - migrations.AlterField( - model_name='condition', - name='parent', - field=models.ManyToManyField(blank=True, to='atlas.condition'), - ), - migrations.AlterField( - model_name='condition', - name='synonym', - field=models.ManyToManyField(blank=True, to='atlas.condition'), - ), - migrations.AlterField( - model_name='finding', - name='synonym', - field=models.ManyToManyField(blank=True, to='atlas.finding'), - ), - migrations.AlterField( - model_name='structure', - name='synonym', - field=models.ManyToManyField(blank=True, to='atlas.structure'), - ), - ] diff --git a/atlas/migrations/0048_auto_20230116_1119.py b/atlas/migrations/0048_auto_20230116_1119.py deleted file mode 100644 index 1a35085d..00000000 --- a/atlas/migrations/0048_auto_20230116_1119.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 3.2.13 on 2023-01-16 11:19 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0047_alter_condition_parent_alter_condition_synonym_and_more'), - ] - - operations = [ - migrations.AlterField( - model_name='condition', - name='parent', - field=models.ManyToManyField(blank=True, related_name='_atlas_condition_parent_+', to='atlas.Condition'), - ), - migrations.AlterField( - model_name='condition', - name='synonym', - field=models.ManyToManyField(blank=True, related_name='_atlas_condition_synonym_+', to='atlas.Condition'), - ), - migrations.AlterField( - model_name='finding', - name='synonym', - field=models.ManyToManyField(blank=True, related_name='_atlas_finding_synonym_+', to='atlas.Finding'), - ), - migrations.AlterField( - model_name='structure', - name='synonym', - field=models.ManyToManyField(blank=True, related_name='_atlas_structure_synonym_+', to='atlas.Structure'), - ), - ] diff --git a/atlas/migrations/0049_alter_condition_parent_alter_condition_synonym_and_more.py b/atlas/migrations/0049_alter_condition_parent_alter_condition_synonym_and_more.py deleted file mode 100644 index 6b8320f4..00000000 --- a/atlas/migrations/0049_alter_condition_parent_alter_condition_synonym_and_more.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 4.1.4 on 2023-04-03 09:04 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0048_auto_20230116_1119'), - ] - - operations = [ - migrations.AlterField( - model_name='condition', - name='parent', - field=models.ManyToManyField(blank=True, to='atlas.condition'), - ), - migrations.AlterField( - model_name='condition', - name='synonym', - field=models.ManyToManyField(blank=True, to='atlas.condition'), - ), - migrations.AlterField( - model_name='finding', - name='synonym', - field=models.ManyToManyField(blank=True, to='atlas.finding'), - ), - migrations.AlterField( - model_name='structure', - name='synonym', - field=models.ManyToManyField(blank=True, to='atlas.structure'), - ), - ] diff --git a/atlas/migrations/0050_alter_series_description.py b/atlas/migrations/0050_alter_series_description.py deleted file mode 100644 index f9670a8e..00000000 --- a/atlas/migrations/0050_alter_series_description.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-06-12 09:55 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('atlas', '0049_alter_condition_parent_alter_condition_synonym_and_more'), - ] - - operations = [ - migrations.AlterField( - model_name='series', - name='description', - field=models.TextField(blank=True, help_text='Description of stack, for admin organisation, will not be visible when taking'), - ), - ] diff --git a/generic/migrations/0001_initial.py b/generic/migrations/0001_initial.py index b760960f..b39711c6 100644 --- a/generic/migrations/0001_initial.py +++ b/generic/migrations/0001_initial.py @@ -1,7 +1,8 @@ -# Generated by Django 3.1.3 on 2021-02-04 22:27 +# Generated by Django 4.1.4 on 2023-06-12 10:07 +from django.conf import settings from django.db import migrations, models -#import tagulous.models.models +import django.db.models.deletion class Migration(migrations.Migration): @@ -9,57 +10,169 @@ class Migration(migrations.Migration): initial = True dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('contenttypes', '0002_remove_content_type_name'), ] operations = [ + migrations.CreateModel( + name='CidUser', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cid', models.IntegerField(blank=True, null=True, unique=True)), + ('passcode', models.CharField(blank=True, max_length=50)), + ('active', models.BooleanField(default=True)), + ('internal_candidate', models.BooleanField(default=False)), + ('name', models.CharField(blank=True, max_length=255)), + ('email', models.EmailField(blank=True, max_length=254)), + ('login_email_sent', models.BooleanField(default=False)), + ('results_email_sent', models.BooleanField(default=False)), + ], + ), + migrations.CreateModel( + name='CidUserGroup', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, max_length=50)), + ('archive', models.BooleanField(default=False)), + ], + ), + migrations.CreateModel( + name='Contrast', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('contrast', models.CharField(max_length=200, unique=True)), + ], + options={ + 'ordering': ('contrast',), + }, + ), migrations.CreateModel( name='Examination', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('examination', models.CharField(max_length=200)), + ('examination', models.CharField(max_length=200, unique=True)), ], options={ 'ordering': ('examination',), }, ), + migrations.CreateModel( + name='NoteType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('note_type', models.CharField(max_length=200)), + ], + ), + migrations.CreateModel( + name='Plane', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('plane', models.CharField(max_length=200, unique=True)), + ], + options={ + 'ordering': ('plane',), + }, + ), migrations.CreateModel( name='Site', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('site', models.CharField(max_length=200)), - ('initials', models.CharField(max_length=200)), + ('full_name', models.CharField(blank=True, help_text='Name of the site', max_length=255)), + ('short_code', models.CharField(blank=True, help_text='Shortcode/name of the site', max_length=255)), ], ), migrations.CreateModel( - name='Sign', + name='Supervisor', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, unique=True)), - ('slug', models.SlugField()), - ('count', models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use')), - ('protected', models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0')), + ('email', models.EmailField(help_text='The (nhs.net) email address of the supervisor', max_length=254, unique=True)), + ('name', models.CharField(help_text='Name of the supervisor', max_length=255)), + ('active', models.BooleanField(default=True)), + ('site', models.ForeignKey(blank=True, help_text='Hospital site at which the supervisor is based', null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.site')), + ('user', models.OneToOneField(blank=True, help_text='If the supervisor has an account on the test system that can be associated here', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], - options={ - 'ordering': ('name',), - 'abstract': False, - 'unique_together': {('slug',)}, - }, - #bases=(tagulous.models.models.BaseTagModel, models.Model), ), migrations.CreateModel( - name='Condition', + name='UserGrades', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, unique=True)), - ('slug', models.SlugField()), - ('count', models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use')), - ('protected', models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0')), + ('name', models.CharField(max_length=100)), ], - options={ - 'ordering': ('name',), - 'abstract': False, - 'unique_together': {('slug',)}, - }, - #bases=(tagulous.models.models.BaseTagModel, models.Model), + ), + migrations.CreateModel( + name='UserUserGroup', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, help_text='Name of the User Group', max_length=50)), + ('archive', models.BooleanField(default=False, help_text='Archived groups remain on the test system but are not displayed by default')), + ('users', models.ManyToManyField(blank=True, related_name='user_groups', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='UserProfile', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('registration_number', models.CharField(blank=True, max_length=25)), + ('peninsula_trainee', models.BooleanField(default=False)), + ('grade', models.ForeignKey(blank=True, help_text='User grade', null=True, on_delete=django.db.models.deletion.CASCADE, to='generic.usergrades')), + ('supervisor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='trainee', to='generic.supervisor')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='QuestionNote', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('object_id', models.PositiveIntegerField()), + ('author', models.CharField(blank=True, max_length=200)), + ('note', models.TextField(blank=True)), + ('created_on', models.DateTimeField(auto_now_add=True)), + ('complete', models.BooleanField(default=False)), + ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), + ('note_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='generic.notetype')), + ('user_author', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='ExamUserStatus', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('datetime', models.DateTimeField(auto_now_add=True)), + ('status', models.CharField(max_length=255)), + ('extra', models.CharField(max_length=255)), + ('object_id', models.PositiveIntegerField()), + ('cid_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.ciduser')), + ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), + ('user_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='CidUserExam', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('object_id', models.PositiveIntegerField()), + ('start_time', models.DateTimeField(blank=True, null=True)), + ('end_time', models.DateTimeField(blank=True, null=True)), + ('manual_submission', models.BooleanField(default=False)), + ('results_emailed_status', models.CharField(blank=True, max_length=255)), + ('cid_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_userexam', to='generic.ciduser')), + ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), + ('user_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_userexam', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='ciduser', + name='group', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.cidusergroup'), + ), + migrations.AddField( + model_name='ciduser', + name='supervisor', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='cid_user', to='generic.supervisor'), + ), + migrations.AddIndex( + model_name='ciduser', + index=models.Index(fields=['cid'], name='generic_cid_cid_291418_idx'), ), ] diff --git a/generic/migrations/0002_delete_site.py b/generic/migrations/0002_delete_site.py deleted file mode 100644 index 60cdf484..00000000 --- a/generic/migrations/0002_delete_site.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:13 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0008_auto_20210205_1013'), - ('generic', '0001_initial'), - ] - - operations = [ - migrations.DeleteModel( - name='Site', - ), - ] diff --git a/generic/migrations/0003_site.py b/generic/migrations/0003_site.py deleted file mode 100644 index 7ab771ca..00000000 --- a/generic/migrations/0003_site.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:22 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0002_delete_site'), - ] - - operations = [ - migrations.CreateModel( - name='Site', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('site', models.CharField(max_length=200)), - ('initials', models.CharField(max_length=200)), - ], - ), - ] diff --git a/generic/migrations/0004_auto_20210205_1031.py b/generic/migrations/0004_auto_20210205_1031.py deleted file mode 100644 index 8962ef28..00000000 --- a/generic/migrations/0004_auto_20210205_1031.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:31 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0003_site'), - ] - - operations = [ - migrations.AlterModelTable( - name='site', - table='rapids_site', - ), - ] diff --git a/generic/migrations/0005_auto_20210205_1035.py b/generic/migrations/0005_auto_20210205_1035.py deleted file mode 100644 index 6c415009..00000000 --- a/generic/migrations/0005_auto_20210205_1035.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:35 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0004_auto_20210205_1031'), - ] - - operations = [ - migrations.AlterModelTable( - name='site', - table=None, - ), - ] diff --git a/generic/migrations/0006_delete_site.py b/generic/migrations/0006_delete_site.py deleted file mode 100644 index d9a9e2b0..00000000 --- a/generic/migrations/0006_delete_site.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:37 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0005_auto_20210205_1035'), - ] - - operations = [ - migrations.DeleteModel( - name='Site', - ), - ] diff --git a/generic/migrations/0007_site.py b/generic/migrations/0007_site.py deleted file mode 100644 index d09cd4dd..00000000 --- a/generic/migrations/0007_site.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:39 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0006_delete_site'), - ] - - operations = [ - migrations.CreateModel( - name='Site', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('site', models.CharField(max_length=200)), - ('initials', models.CharField(max_length=200)), - ], - ), - ] diff --git a/generic/migrations/0008_plane.py b/generic/migrations/0008_plane.py deleted file mode 100644 index 3564effe..00000000 --- a/generic/migrations/0008_plane.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-25 18:08 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0007_site'), - ] - - operations = [ - migrations.CreateModel( - name='Plane', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('plane', models.CharField(max_length=200)), - ], - options={ - 'ordering': ('plane',), - }, - ), - ] diff --git a/generic/migrations/0009_contrast.py b/generic/migrations/0009_contrast.py deleted file mode 100644 index 1d7aa61e..00000000 --- a/generic/migrations/0009_contrast.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-25 18:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0008_plane'), - ] - - operations = [ - migrations.CreateModel( - name='Contrast', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('contrast', models.CharField(max_length=200)), - ], - options={ - 'ordering': ('contrast',), - }, - ), - ] diff --git a/generic/migrations/0010_questionnote.py b/generic/migrations/0010_questionnote.py deleted file mode 100644 index 31cf3242..00000000 --- a/generic/migrations/0010_questionnote.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.1.3 on 2021-05-03 18:08 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ('generic', '0009_contrast'), - ] - - operations = [ - migrations.CreateModel( - name='QuestionNote', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('object_id', models.PositiveIntegerField()), - ('author', models.CharField(blank=True, max_length=200)), - ('note', models.TextField()), - ('created_on', models.DateTimeField(auto_now_add=True)), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), - ], - ), - ] diff --git a/generic/migrations/0011_auto_20210503_1831.py b/generic/migrations/0011_auto_20210503_1831.py deleted file mode 100644 index c861ef4c..00000000 --- a/generic/migrations/0011_auto_20210503_1831.py +++ /dev/null @@ -1,31 +0,0 @@ -# Generated by Django 3.1.3 on 2021-05-03 18:31 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0010_questionnote'), - ] - - operations = [ - migrations.CreateModel( - name='NoteType', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('note_type', models.CharField(max_length=200)), - ], - ), - migrations.AddField( - model_name='questionnote', - name='complete', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='questionnote', - name='note_type', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='generic.notetype'), - ), - ] diff --git a/generic/migrations/0012_auto_20210505_1828.py b/generic/migrations/0012_auto_20210505_1828.py deleted file mode 100644 index f0cd5d5f..00000000 --- a/generic/migrations/0012_auto_20210505_1828.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.1.3 on 2021-05-05 18:28 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0011_auto_20210503_1831'), - ] - - operations = [ - migrations.AlterField( - model_name='questionnote', - name='note_type', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='generic.notetype'), - ), - ] diff --git a/generic/migrations/0013_questionnote_user_author.py b/generic/migrations/0013_questionnote_user_author.py deleted file mode 100644 index c10f421d..00000000 --- a/generic/migrations/0013_questionnote_user_author.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-09 16:14 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0012_auto_20210505_1828'), - ] - - operations = [ - migrations.AddField( - model_name='questionnote', - name='user_author', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/generic/migrations/0014_alter_questionnote_note.py b/generic/migrations/0014_alter_questionnote_note.py deleted file mode 100644 index 2ce44642..00000000 --- a/generic/migrations/0014_alter_questionnote_note.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-09 16:24 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0013_questionnote_user_author'), - ] - - operations = [ - migrations.AlterField( - model_name='questionnote', - name='note', - field=models.TextField(blank=True), - ), - ] diff --git a/generic/migrations/0015_ciduser_ciduserexam.py b/generic/migrations/0015_ciduser_ciduserexam.py deleted file mode 100644 index ddbfb8c4..00000000 --- a/generic/migrations/0015_ciduser_ciduserexam.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 12:47 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ('generic', '0014_alter_questionnote_note'), - ] - - operations = [ - migrations.CreateModel( - name='CidUser', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('cid', models.IntegerField(blank=True, null=True)), - ('passcode', models.CharField(blank=True, max_length=50)), - ], - ), - migrations.CreateModel( - name='CidUserExam', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('object_id', models.PositiveIntegerField()), - ('start_time', models.DateTimeField(blank=True, null=True)), - ('end_time', models.DateTimeField(blank=True, null=True)), - ('cid_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='generic.ciduser')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), - ], - ), - ] diff --git a/generic/migrations/0016_ciduser_active.py b/generic/migrations/0016_ciduser_active.py deleted file mode 100644 index 625aa49a..00000000 --- a/generic/migrations/0016_ciduser_active.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 22:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0015_ciduser_ciduserexam'), - ] - - operations = [ - migrations.AddField( - model_name='ciduser', - name='active', - field=models.BooleanField(default=True), - ), - ] diff --git a/generic/migrations/0017_alter_ciduser_cid.py b/generic/migrations/0017_alter_ciduser_cid.py deleted file mode 100644 index 24066529..00000000 --- a/generic/migrations/0017_alter_ciduser_cid.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 22:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0016_ciduser_active'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduser', - name='cid', - field=models.IntegerField(blank=True, null=True, unique=True), - ), - ] diff --git a/generic/migrations/0018_auto_20211214_1745.py b/generic/migrations/0018_auto_20211214_1745.py deleted file mode 100644 index 66c01283..00000000 --- a/generic/migrations/0018_auto_20211214_1745.py +++ /dev/null @@ -1,46 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-14 17:45 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0017_alter_ciduser_cid'), - ] - - operations = [ - migrations.CreateModel( - name='CidUserGroup', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, max_length=50)), - ], - ), - migrations.AddField( - model_name='ciduser', - name='email', - field=models.EmailField(blank=True, max_length=254), - ), - migrations.AddField( - model_name='ciduser', - name='internal_candidate', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='ciduser', - name='name', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='ciduserexam', - name='manual_submission', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='ciduser', - name='group', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.cidusergroup'), - ), - ] diff --git a/generic/migrations/0019_cidusergroup_archive.py b/generic/migrations/0019_cidusergroup_archive.py deleted file mode 100644 index 24c42060..00000000 --- a/generic/migrations/0019_cidusergroup_archive.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-14 18:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0018_auto_20211214_1745'), - ] - - operations = [ - migrations.AddField( - model_name='cidusergroup', - name='archive', - field=models.BooleanField(default=False), - ), - ] diff --git a/generic/migrations/0020_ciduser_supervisor_email.py b/generic/migrations/0020_ciduser_supervisor_email.py deleted file mode 100644 index 72a9bc5e..00000000 --- a/generic/migrations/0020_ciduser_supervisor_email.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-14 19:15 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0019_cidusergroup_archive'), - ] - - operations = [ - migrations.AddField( - model_name='ciduser', - name='supervisor_email', - field=models.EmailField(blank=True, max_length=254), - ), - ] diff --git a/generic/migrations/0021_ciduser_login_email_sent.py b/generic/migrations/0021_ciduser_login_email_sent.py deleted file mode 100644 index bbec055b..00000000 --- a/generic/migrations/0021_ciduser_login_email_sent.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 21:00 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0020_ciduser_supervisor_email'), - ] - - operations = [ - migrations.AddField( - model_name='ciduser', - name='login_email_sent', - field=models.BooleanField(default=False), - ), - ] diff --git a/generic/migrations/0022_ciduser_results_email_sent.py b/generic/migrations/0022_ciduser_results_email_sent.py deleted file mode 100644 index 39f59e01..00000000 --- a/generic/migrations/0022_ciduser_results_email_sent.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-17 16:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0021_ciduser_login_email_sent'), - ] - - operations = [ - migrations.AddField( - model_name='ciduser', - name='results_email_sent', - field=models.BooleanField(default=False), - ), - ] diff --git a/generic/migrations/0023_alter_examination_examination.py b/generic/migrations/0023_alter_examination_examination.py deleted file mode 100644 index eecd344c..00000000 --- a/generic/migrations/0023_alter_examination_examination.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-23 17:28 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0022_ciduser_results_email_sent'), - ] - - operations = [ - migrations.AlterField( - model_name='examination', - name='examination', - field=models.CharField(max_length=200, unique=True), - ), - ] diff --git a/generic/migrations/0024_auto_20211231_1044.py b/generic/migrations/0024_auto_20211231_1044.py deleted file mode 100644 index 2b78cbd7..00000000 --- a/generic/migrations/0024_auto_20211231_1044.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-31 10:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0023_alter_examination_examination'), - ] - - operations = [ - migrations.AlterField( - model_name='contrast', - name='contrast', - field=models.CharField(max_length=200, unique=True), - ), - migrations.AlterField( - model_name='plane', - name='plane', - field=models.CharField(max_length=200, unique=True), - ), - ] diff --git a/generic/migrations/0025_alter_ciduser_group.py b/generic/migrations/0025_alter_ciduser_group.py deleted file mode 100644 index f961d060..00000000 --- a/generic/migrations/0025_alter_ciduser_group.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-01 18:32 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0024_auto_20211231_1044'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduser', - name='group', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.cidusergroup'), - ), - ] diff --git a/generic/migrations/0026_ciduser_generic_cid_cid_291418_idx.py b/generic/migrations/0026_ciduser_generic_cid_cid_291418_idx.py deleted file mode 100644 index d4c8fb95..00000000 --- a/generic/migrations/0026_ciduser_generic_cid_cid_291418_idx.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.10 on 2022-03-30 21:51 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0025_alter_ciduser_group'), - ] - - operations = [ - migrations.AddIndex( - model_name='ciduser', - index=models.Index(fields=['cid'], name='generic_cid_cid_291418_idx'), - ), - ] diff --git a/generic/migrations/0027_auto_20220520_1705.py b/generic/migrations/0027_auto_20220520_1705.py deleted file mode 100644 index 51382a1a..00000000 --- a/generic/migrations/0027_auto_20220520_1705.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 16:05 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ] - - operations = [ - migrations.AddField( - model_name='ciduserexam', - name='user_user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_userexam', to='generic.ciduser'), - ), - migrations.AlterField( - model_name='ciduserexam', - name='cid_user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_userexam', to='generic.ciduser'), - ), - ] diff --git a/generic/migrations/0028_alter_ciduserexam_user_user.py b/generic/migrations/0028_alter_ciduserexam_user_user.py deleted file mode 100644 index e6353fe2..00000000 --- a/generic/migrations/0028_alter_ciduserexam_user_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 16:12 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0027_auto_20220520_1705'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduserexam', - name='user_user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_userexam', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/generic/migrations/0029_userusergroup.py b/generic/migrations/0029_userusergroup.py deleted file mode 100644 index aeceebc3..00000000 --- a/generic/migrations/0029_userusergroup.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 17:44 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0028_alter_ciduserexam_user_user'), - ] - - operations = [ - migrations.CreateModel( - name='UserUserGroup', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, max_length=50)), - ('archive', models.BooleanField(default=False)), - ('users', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL)), - ], - ), - ] diff --git a/generic/migrations/0030_alter_userusergroup_users.py b/generic/migrations/0030_alter_userusergroup_users.py deleted file mode 100644 index 7ff51d87..00000000 --- a/generic/migrations/0030_alter_userusergroup_users.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 18:27 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0029_userusergroup'), - ] - - operations = [ - migrations.AlterField( - model_name='userusergroup', - name='users', - field=models.ManyToManyField(blank=True, related_name='user_groups', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/generic/migrations/0031_userprofile.py b/generic/migrations/0031_userprofile.py deleted file mode 100644 index e1dfb80f..00000000 --- a/generic/migrations/0031_userprofile.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 19:15 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0030_alter_userusergroup_users'), - ] - - operations = [ - migrations.CreateModel( - name='UserProfile', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('supervisor_email', models.EmailField(blank=True, max_length=254)), - ('supervisor_name', models.CharField(blank=True, max_length=100)), - ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - ] diff --git a/generic/migrations/0032_userprofile_registration_number.py b/generic/migrations/0032_userprofile_registration_number.py deleted file mode 100644 index a2831405..00000000 --- a/generic/migrations/0032_userprofile_registration_number.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 19:45 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0031_userprofile'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='registration_number', - field=models.CharField(blank=True, max_length=25), - ), - ] diff --git a/generic/migrations/0033_userprofile_grade.py b/generic/migrations/0033_userprofile_grade.py deleted file mode 100644 index 8c343ed3..00000000 --- a/generic/migrations/0033_userprofile_grade.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-23 17:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='grade', - field=models.IntegerField(blank=True, help_text='ST grade of the user', null=True), - ), - ] diff --git a/generic/migrations/0034_auto_20220523_2010.py b/generic/migrations/0034_auto_20220523_2010.py deleted file mode 100644 index 506ba8a3..00000000 --- a/generic/migrations/0034_auto_20220523_2010.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-23 19:10 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0033_userprofile_grade'), - ] - - operations = [ - migrations.CreateModel( - name='UserGrades', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100)), - ], - ), - migrations.RemoveField( - model_name='userprofile', - name='grade', - ), - migrations.AddField( - model_name='userprofile', - name='peninsula_trainee', - field=models.BooleanField(default=False), - ), - ] diff --git a/generic/migrations/0035_userprofile_grade.py b/generic/migrations/0035_userprofile_grade.py deleted file mode 100644 index 84fdfaaa..00000000 --- a/generic/migrations/0035_userprofile_grade.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-23 19:10 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0034_auto_20220523_2010'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='grade', - field=models.ForeignKey(blank=True, help_text='User grade', null=True, on_delete=django.db.models.deletion.CASCADE, to='generic.usergrades'), - ), - ] diff --git a/generic/migrations/0036_ciduserexam_results_emailed_status.py b/generic/migrations/0036_ciduserexam_results_emailed_status.py deleted file mode 100644 index 3d6bf201..00000000 --- a/generic/migrations/0036_ciduserexam_results_emailed_status.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-26 15:29 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0035_userprofile_grade'), - ] - - operations = [ - migrations.AddField( - model_name='ciduserexam', - name='results_emailed_status', - field=models.CharField(blank=True, max_length=255), - ), - ] diff --git a/generic/migrations/0037_supervisor.py b/generic/migrations/0037_supervisor.py deleted file mode 100644 index 41b341be..00000000 --- a/generic/migrations/0037_supervisor.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 09:44 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0036_ciduserexam_results_emailed_status'), - ] - - operations = [ - migrations.CreateModel( - name='Supervisor', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('email', models.EmailField(blank=True, max_length=254)), - ('name', models.CharField(blank=True, max_length=255)), - ('active', models.BooleanField(default=True)), - ('user', models.OneToOneField(blank=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - ] diff --git a/generic/migrations/0038_alter_supervisor_user.py b/generic/migrations/0038_alter_supervisor_user.py deleted file mode 100644 index bdd48489..00000000 --- a/generic/migrations/0038_alter_supervisor_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 13:18 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0037_supervisor'), - ] - - operations = [ - migrations.AlterField( - model_name='supervisor', - name='user', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/generic/migrations/0039_alter_supervisor_user.py b/generic/migrations/0039_alter_supervisor_user.py deleted file mode 100644 index cd8a21d7..00000000 --- a/generic/migrations/0039_alter_supervisor_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 13:19 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0038_alter_supervisor_user'), - ] - - operations = [ - migrations.AlterField( - model_name='supervisor', - name='user', - field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/generic/migrations/0040_alter_supervisor_email.py b/generic/migrations/0040_alter_supervisor_email.py deleted file mode 100644 index 6bb696bb..00000000 --- a/generic/migrations/0040_alter_supervisor_email.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 13:23 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0039_alter_supervisor_user'), - ] - - operations = [ - migrations.AlterField( - model_name='supervisor', - name='email', - field=models.EmailField(blank=True, max_length=254, unique=True), - ), - ] diff --git a/generic/migrations/0041_auto_20221114_1355.py b/generic/migrations/0041_auto_20221114_1355.py deleted file mode 100644 index 58d4b5bb..00000000 --- a/generic/migrations/0041_auto_20221114_1355.py +++ /dev/null @@ -1,54 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 13:55 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('generic', '0040_alter_supervisor_email'), - ] - - operations = [ - migrations.RemoveField( - model_name='site', - name='initials', - ), - migrations.RemoveField( - model_name='site', - name='site', - ), - migrations.AddField( - model_name='site', - name='full_name', - field=models.CharField(blank=True, help_text='Name of the site', max_length=255), - ), - migrations.AddField( - model_name='site', - name='short_code', - field=models.CharField(blank=True, help_text='Shortcode/name of the site', max_length=255), - ), - migrations.AddField( - model_name='supervisor', - name='site', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.site'), - ), - migrations.AlterField( - model_name='supervisor', - name='email', - field=models.EmailField(blank=True, help_text='The (nhs.net) email address of the supervisor', max_length=254, unique=True), - ), - migrations.AlterField( - model_name='supervisor', - name='name', - field=models.CharField(blank=True, help_text='Name of the supervisor', max_length=255), - ), - migrations.AlterField( - model_name='supervisor', - name='user', - field=models.OneToOneField(blank=True, help_text='If the supervisor has an account on the test system that can be associated here', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/generic/migrations/0042_userprofile_supervisor.py b/generic/migrations/0042_userprofile_supervisor.py deleted file mode 100644 index c9e48dc5..00000000 --- a/generic/migrations/0042_userprofile_supervisor.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 14:01 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0041_auto_20221114_1355'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='supervisor', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.supervisor'), - ), - ] diff --git a/generic/migrations/0043_alter_userprofile_supervisor.py b/generic/migrations/0043_alter_userprofile_supervisor.py deleted file mode 100644 index a57b60af..00000000 --- a/generic/migrations/0043_alter_userprofile_supervisor.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 14:07 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0042_userprofile_supervisor'), - ] - - operations = [ - migrations.AlterField( - model_name='userprofile', - name='supervisor', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='trainee', to='generic.supervisor'), - ), - ] diff --git a/generic/migrations/0044_auto_20221114_2035.py b/generic/migrations/0044_auto_20221114_2035.py deleted file mode 100644 index 8c794651..00000000 --- a/generic/migrations/0044_auto_20221114_2035.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 20:35 - -from django.db import migrations - - -def migrate_supervisors(apps, schema_editor): - UserProfile = apps.get_model("generic", "UserProfile") - - for profile in UserProfile.objects.all(): - if profile.supervisor_name and profile.supervisor_email: - Supervisor = apps.get_model("generic", "Supervisor") - - s, created = Supervisor.objects.get_or_create(email=profile.supervisor_email, name=profile.supervisor_name) - - if created: - s.save() - - profile.supervisor = s - - profile.save() - - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0043_alter_userprofile_supervisor'), - ] - - operations = [ - migrations.RunPython(migrate_supervisors) - ] diff --git a/generic/migrations/0045_auto_20221114_2103.py b/generic/migrations/0045_auto_20221114_2103.py deleted file mode 100644 index 61e06115..00000000 --- a/generic/migrations/0045_auto_20221114_2103.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-14 21:03 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0044_auto_20221114_2035'), - ] - - operations = [ - migrations.RemoveField( - model_name='userprofile', - name='supervisor_email', - ), - migrations.RemoveField( - model_name='userprofile', - name='supervisor_name', - ), - ] diff --git a/generic/migrations/0046_auto_20221121_0955.py b/generic/migrations/0046_auto_20221121_0955.py deleted file mode 100644 index d6c9e85b..00000000 --- a/generic/migrations/0046_auto_20221121_0955.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-21 09:55 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0045_auto_20221114_2103'), - ] - - operations = [ - migrations.RemoveField( - model_name='ciduser', - name='supervisor_email', - ), - migrations.AddField( - model_name='ciduser', - name='supervisor', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='cid_user', to='generic.supervisor'), - ), - ] diff --git a/generic/migrations/0047_auto_20221121_1637.py b/generic/migrations/0047_auto_20221121_1637.py deleted file mode 100644 index 108252d3..00000000 --- a/generic/migrations/0047_auto_20221121_1637.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.2.13 on 2022-11-21 16:37 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0046_auto_20221121_0955'), - ] - - operations = [ - migrations.AlterField( - model_name='supervisor', - name='email', - field=models.EmailField(help_text='The (nhs.net) email address of the supervisor', max_length=254, unique=True), - ), - migrations.AlterField( - model_name='supervisor', - name='name', - field=models.CharField(help_text='Name of the supervisor', max_length=255), - ), - migrations.AlterField( - model_name='supervisor', - name='site', - field=models.ForeignKey(blank=True, help_text='Hospital site at which the supervisor is based', null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.site'), - ), - ] diff --git a/generic/migrations/0048_alter_userusergroup_archive_alter_userusergroup_name_and_more.py b/generic/migrations/0048_alter_userusergroup_archive_alter_userusergroup_name_and_more.py deleted file mode 100644 index 404be327..00000000 --- a/generic/migrations/0048_alter_userusergroup_archive_alter_userusergroup_name_and_more.py +++ /dev/null @@ -1,40 +0,0 @@ -# Generated by Django 4.1.4 on 2022-12-19 13:30 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('contenttypes', '0002_remove_content_type_name'), - ('generic', '0047_auto_20221121_1637'), - ] - - operations = [ - migrations.AlterField( - model_name='userusergroup', - name='archive', - field=models.BooleanField(default=False, help_text='Archived groups remain on the test system but are not displayed by default'), - ), - migrations.AlterField( - model_name='userusergroup', - name='name', - field=models.CharField(blank=True, help_text='Name of the User Group', max_length=50), - ), - migrations.CreateModel( - name='ExamUserStatus', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('datetime', models.DateTimeField(auto_now_add=True)), - ('status', models.CharField(max_length=255)), - ('extra', models.CharField(max_length=255)), - ('object_id', models.PositiveIntegerField()), - ('cid_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='generic.ciduser')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), - ('user_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), - ], - ), - ] diff --git a/generic/migrations/0049_auto_20230116_1119.py b/generic/migrations/0049_auto_20230116_1119.py deleted file mode 100644 index f1c2700d..00000000 --- a/generic/migrations/0049_auto_20230116_1119.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 3.2.13 on 2023-01-16 11:19 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0048_alter_userusergroup_archive_alter_userusergroup_name_and_more'), - ] - - operations = [ - ] diff --git a/generic/migrations/0050_delete_condition_delete_sign.py b/generic/migrations/0050_delete_condition_delete_sign.py deleted file mode 100644 index 023168ff..00000000 --- a/generic/migrations/0050_delete_condition_delete_sign.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 4.1.4 on 2023-04-03 09:04 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0065_remove_long_condition_remove_long_sign'), - ('generic', '0049_auto_20230116_1119'), - ] - - operations = [ - migrations.DeleteModel( - name='Condition', - ), - migrations.DeleteModel( - name='Sign', - ), - ] diff --git a/longs/migrations/0001_initial.py b/longs/migrations/0001_initial.py index 61153367..d23b773c 100644 --- a/longs/migrations/0001_initial.py +++ b/longs/migrations/0001_initial.py @@ -1,7 +1,6 @@ -# Generated by Django 3.1.3 on 2021-02-04 22:55 +# Generated by Django 4.1.4 on 2023-06-12 10:07 from django.conf import settings -import django.core.files.storage from django.db import migrations, models import django.db.models.deletion import django.utils.timezone @@ -14,58 +13,122 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('anatomy', '0024_auto_20210130_1515'), + ('generic', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('anatomy', '0001_initial'), ] operations = [ + migrations.CreateModel( + name='Exam', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name of the exam', max_length=200)), + ('active', models.BooleanField(default=False, help_text='If an exam should be available to take')), + ('exam_mode', models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)')), + ('include_history', models.BooleanField(default=False, help_text='If an exam should include history when taking')), + ('publish_results', models.BooleanField(default=False, help_text='If an exams results should be available')), + ('recreate_json', models.BooleanField(default=False, help_text='If the json cache needs updating')), + ('json_creation_time', models.DateTimeField(blank=True, default=None, null=True)), + ('exam_json_id', models.IntegerField(default=1, help_text='auto incrementing field when json recreated')), + ('archive', models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default')), + ('open_access', models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)')), + ('authors_only', models.BooleanField(default=False, help_text='If true only exam authors will be able to view.')), + ('stats_mean', models.FloatField(default=0)), + ('stats_mode', models.CharField(default=0, max_length=25)), + ('stats_median', models.FloatField(default=0)), + ('stats_candidates', models.FloatField(default=0)), + ('stats_min', models.FloatField(default=0)), + ('stats_max', models.FloatField(default=0)), + ('stats_max_possible', models.FloatField(default=0)), + ('user_scores', models.JSONField(default=dict)), + ('exam_results_emailed', models.DateTimeField(default=None, null=True)), + ('time_limit', models.IntegerField(default=4500, help_text='Exam time limit (in seconds). Default is 4500 seconds (75 minutes)')), + ('double_mark', models.BooleanField(default=True, help_text='Defines if an exam is expected to be double marked')), + ('author', models.ManyToManyField(blank=True, help_text='Author of exam', related_name='long_exam_author', to=settings.AUTH_USER_MODEL)), + ('cid_user_groups', models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='longs_cid_user_groups', to='generic.cidusergroup')), + ], + options={ + 'abstract': False, + }, + ), migrations.CreateModel( name='Long', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('authors_only', models.BooleanField(default=False, help_text='If true only question authors will be able to view.')), + ('created_date', models.DateTimeField(default=django.utils.timezone.now)), + ('open_access', models.BooleanField(default=True, help_text='If a question should be freely available to browse')), + ('feedback', models.TextField(blank=True, help_text='Question Feedback', null=True)), + ('description', models.TextField(blank=True, help_text='Description of the case, for admin organisation, will not be visible when taking')), ('history', models.TextField(blank=True, null=True)), - ('feedback', models.TextField(blank=True, null=True)), - ('sign', models.CharField(blank=True, max_length=255)), ('model_observations', models.TextField(blank=True, null=True)), ('model_interpretation', models.TextField(blank=True, null=True)), ('model_principle_diagnosis', models.TextField(blank=True, null=True)), ('model_differential_diagnosis', models.TextField(blank=True, null=True)), - ('model_further_management', models.TextField(blank=True, null=True)), + ('model_management', models.TextField(blank=True, null=True)), + ('mark_scheme', models.TextField(blank=True, null=True)), ('verified', models.BooleanField(default=False)), - ('created_date', models.DateTimeField(default=django.utils.timezone.now)), - ('published_date', models.DateTimeField(blank=True, null=True)), ('scrapped', models.BooleanField(default=False, help_text='Question has been scrapped and will not be shown')), - ('open_access', models.BooleanField(default=True, help_text='If an question should be freely available to browse')), + ('recreate_json', models.BooleanField(default=False, help_text='If the json cache needs updating')), + ('json_creation_time', models.DateTimeField(blank=True, default=None, null=True)), + ('question_json_id', models.IntegerField(default=1, help_text='Auto incrementing json creation number')), ('author', models.ManyToManyField(blank=True, help_text='Author of question', related_name='long_authored_questions', to=settings.AUTH_USER_MODEL)), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='LongSeries', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('description', models.TextField(blank=True, help_text='Description of stack, for admin organisation')), - ('long', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series', to='longs.long')), + ('description', models.TextField(blank=True, help_text='Description of stack, for admin organisation, will not be visible when taking')), + ('open_access', models.BooleanField(default=True, help_text='If a series should be freely available to browse')), + ('author', models.ManyToManyField(blank=True, related_name='long_series', to=settings.AUTH_USER_MODEL)), + ('contrast', models.ForeignKey(blank=True, help_text='MRI / CT contrast', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_contrast', to='generic.contrast')), + ('examination', models.ForeignKey(help_text='Name of the examination, this appears as the thumbnail title on the test system', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_examination', to='generic.examination')), ('modality', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_modality', to='anatomy.modality')), + ('plane', models.ForeignKey(blank=True, help_text='Plane of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_plane', to='generic.plane')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( - name='Note', + name='UserAnswer', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('note', models.TextField()), - ('created_on', models.DateTimeField(auto_now_add=True)), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='long_notes', to=settings.AUTH_USER_MODEL)), - ('long', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='long_notes', to='longs.long')), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('answer_observations', models.TextField(blank=True, null=True)), + ('answer_interpretation', models.TextField(blank=True, null=True)), + ('answer_principle_diagnosis', models.TextField(blank=True, null=True)), + ('answer_differential_diagnosis', models.TextField(blank=True, null=True)), + ('answer_management', models.TextField(blank=True, null=True)), + ('cid', models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True)), + ('score', models.CharField(blank=True, choices=[('', 'Unmarked'), ('4', '4'), ('4.5', '4.5'), ('5', '5'), ('5.5', '5.5'), ('6', '6'), ('6.5', '6.5'), ('7', '7'), ('7.5', '7.5'), ('8', '8')], default='', help_text='The final score for the candidate', max_length=3)), + ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='longs.exam')), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='longs.long')), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_longs_user_answers', to=settings.AUTH_USER_MODEL)), ], + options={ + 'ordering': ['cid'], + 'abstract': False, + }, ), migrations.CreateModel( name='LongSeriesImage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('image', models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/longs/', location='/home/ross/scripts/sites/rad/media//longs/'), upload_to=longs.models.image_directory_path)), + ('image', models.FileField(upload_to=longs.models.image_directory_path)), ('position', models.IntegerField(default=0)), + ('upload_filename', models.CharField(blank=True, max_length=255)), ('series', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='images', to='longs.longseries')), ], + options={ + 'ordering': ['position'], + }, ), migrations.CreateModel( name='LongCreationDefault', @@ -74,32 +137,40 @@ class Migration(migrations.Migration): ('author', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='long_default', to=settings.AUTH_USER_MODEL)), ], ), - migrations.CreateModel( - name='Exam', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=200)), - ('active', models.BooleanField(default=True, help_text='If an exam should be available')), - ('publish_results', models.BooleanField(default=True, help_text='If an exams results should be available')), - ('recreate_json', models.BooleanField(default=False, help_text='If the json cache needs updating')), - ('time_limit', models.IntegerField(default=2100, help_text='Exam time limit (in seconds). Default is 2100 secondse (35 minutes)')), - ('exam_questions', sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='longs.Long')), - ], + migrations.AddField( + model_name='long', + name='series', + field=sortedm2m.fields.SortedManyToManyField(help_text=None, related_name='long', to='longs.longseries'), + ), + migrations.AddField( + model_name='exam', + name='exam_questions', + field=sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='longs.long'), + ), + migrations.AddField( + model_name='exam', + name='user_user_groups', + field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='longs_user_user_groups', to='generic.userusergroup'), + ), + migrations.AddField( + model_name='exam', + name='valid_cid_users', + field=models.ManyToManyField(blank=True, related_name='longs_exams', to='generic.ciduser'), + ), + migrations.AddField( + model_name='exam', + name='valid_user_users', + field=models.ManyToManyField(blank=True, related_name='user_longs_exams', to=settings.AUTH_USER_MODEL), ), migrations.CreateModel( - name='CidUserAnswer', + name='AnswerMarks', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer_observations', models.TextField(blank=True, null=True)), - ('answer_interpretation', models.TextField(blank=True, null=True)), - ('answer_principle_diagnosis', models.TextField(blank=True, null=True)), - ('answer_differential_diagnosis', models.TextField(blank=True, null=True)), - ('answer_further_management', models.TextField(blank=True, null=True)), - ('cid', models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True)), - ('created', models.DateTimeField(auto_now_add=True)), - ('updated', models.DateTimeField(auto_now=True)), - ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='longs.exam')), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='longs.long')), + ('score', models.CharField(choices=[('', 'Unmarked'), ('4', '4'), ('4.5', '4.5'), ('5', '5'), ('5.5', '5.5'), ('6', '6'), ('6.5', '6.5'), ('7', '7'), ('7.5', '7.5'), ('8', '8')], max_length=3)), + ('mark_reason', models.TextField(blank=True, help_text='Reason for the given mark - not visible to candidates', null=True)), + ('candidate_feedback', models.TextField(blank=True, help_text='Feedback for the candidate', null=True)), + ('marker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='marker', to=settings.AUTH_USER_MODEL)), + ('user_answer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mark', to='longs.useranswer')), ], ), ] diff --git a/longs/migrations/0002_auto_20210204_2258.py b/longs/migrations/0002_auto_20210204_2258.py deleted file mode 100644 index 58b03803..00000000 --- a/longs/migrations/0002_auto_20210204_2258.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-04 22:58 - -from django.db import migrations, models -#import tagulous.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0001_initial'), - ('longs', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='long', - name='sign', - ), - migrations.AddField( - model_name='long', - name='sign', - field=models.CharField(blank=True, help_text='Radiological signs in the question'), - ), - ] diff --git a/longs/migrations/0003_long_condition.py b/longs/migrations/0003_long_condition.py deleted file mode 100644 index e8d2e861..00000000 --- a/longs/migrations/0003_long_condition.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-04 22:58 - -from django.db import migrations, models -#import tagulous.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0001_initial'), - ('longs', '0002_auto_20210204_2258'), - ] - - operations = [ - migrations.AddField( - model_name='long', - name='condition', - field=models.CharField(blank=True, help_text='Associated condition. Will allow searching / filtering and tips / hints to be displayed. Conditions with spaces must be enclosed in quotes "..."'), - ), - ] diff --git a/longs/migrations/0004_auto_20210204_2259.py b/longs/migrations/0004_auto_20210204_2259.py deleted file mode 100644 index baf0e9e2..00000000 --- a/longs/migrations/0004_auto_20210204_2259.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-04 22:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0001_initial'), - ('longs', '0003_long_condition'), - ] - - operations = [ - migrations.AddField( - model_name='long', - name='site', - field=models.ManyToManyField(blank=True, default=1, help_text='If we know the source of the image', to='generic.Site'), - ), - migrations.AddField( - model_name='longcreationdefault', - name='site', - field=models.ManyToManyField(blank=True, default=1, help_text='Default site to use when creating a new long', to='generic.Site'), - ), - ] diff --git a/longs/migrations/0005_auto_20210205_0955.py b/longs/migrations/0005_auto_20210205_0955.py deleted file mode 100644 index cbca7f50..00000000 --- a/longs/migrations/0005_auto_20210205_0955.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 09:55 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0004_auto_20210204_2259'), - ] - - operations = [ - migrations.RenameField( - model_name='long', - old_name='model_further_management', - new_name='model_management', - ), - ] diff --git a/longs/migrations/0006_auto_20210205_0958.py b/longs/migrations/0006_auto_20210205_0958.py deleted file mode 100644 index 46b2d68a..00000000 --- a/longs/migrations/0006_auto_20210205_0958.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 09:58 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0005_auto_20210205_0955'), - ] - - operations = [ - migrations.RenameField( - model_name='ciduseranswer', - old_name='answer_further_management', - new_name='answer_management', - ), - ] diff --git a/longs/migrations/0007_longseries_examination.py b/longs/migrations/0007_longseries_examination.py deleted file mode 100644 index 5048b098..00000000 --- a/longs/migrations/0007_longseries_examination.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 09:59 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0001_initial'), - ('longs', '0006_auto_20210205_0958'), - ] - - operations = [ - migrations.AddField( - model_name='longseries', - name='examination', - field=models.ForeignKey(help_text='Name of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_examination', to='generic.examination'), - ), - ] diff --git a/longs/migrations/0008_auto_20210205_1013.py b/longs/migrations/0008_auto_20210205_1013.py deleted file mode 100644 index e872352a..00000000 --- a/longs/migrations/0008_auto_20210205_1013.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:13 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0007_longseries_examination'), - ] - - operations = [ - migrations.RemoveField( - model_name='long', - name='site', - ), - migrations.RemoveField( - model_name='longcreationdefault', - name='site', - ), - ] diff --git a/longs/migrations/0009_auto_20210205_1146.py b/longs/migrations/0009_auto_20210205_1146.py deleted file mode 100644 index 959226b9..00000000 --- a/longs/migrations/0009_auto_20210205_1146.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 11:46 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0008_auto_20210205_1013'), - ] - - operations = [ - migrations.AlterField( - model_name='longseries', - name='description', - field=models.TextField(blank=True, help_text='Description of stack, for admin organisation, will not be visible when taking'), - ), - migrations.AlterField( - model_name='longseries', - name='long', - field=models.ForeignKey(help_text='The question this series should be associated with', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series', to='longs.long'), - ), - ] diff --git a/longs/migrations/0010_auto_20210206_0905.py b/longs/migrations/0010_auto_20210206_0905.py deleted file mode 100644 index 11ffd999..00000000 --- a/longs/migrations/0010_auto_20210206_0905.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-06 09:05 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('longs', '0009_auto_20210205_1146'), - ] - - operations = [ - migrations.AddField( - model_name='longseries', - name='author', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='long_series', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='long', - name='open_access', - field=models.BooleanField(default=True, help_text='If a question should be freely available to browse'), - ), - ] diff --git a/longs/migrations/0011_auto_20210206_1531.py b/longs/migrations/0011_auto_20210206_1531.py deleted file mode 100644 index 6fab140c..00000000 --- a/longs/migrations/0011_auto_20210206_1531.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-06 15:31 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0010_auto_20210206_0905'), - ] - - operations = [ - migrations.AlterField( - model_name='longseries', - name='long', - field=models.ForeignKey(blank=True, help_text='The question this series should be associated with', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series', to='longs.long'), - ), - ] diff --git a/longs/migrations/0012_auto_20210206_1541.py b/longs/migrations/0012_auto_20210206_1541.py deleted file mode 100644 index 441a0874..00000000 --- a/longs/migrations/0012_auto_20210206_1541.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-06 15:41 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('longs', '0011_auto_20210206_1531'), - ] - - operations = [ - migrations.RemoveField( - model_name='longseries', - name='author', - ), - migrations.AddField( - model_name='longseries', - name='author', - field=models.ManyToManyField(blank=True, related_name='long_series', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/longs/migrations/0013_auto_20210206_2147.py b/longs/migrations/0013_auto_20210206_2147.py deleted file mode 100644 index da99394d..00000000 --- a/longs/migrations/0013_auto_20210206_2147.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-06 21:47 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0012_auto_20210206_1541'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='time_limit', - field=models.IntegerField(default=4500, help_text='Exam time limit (in seconds). Default is 4500 secondse (75 minutes)'), - ), - ] diff --git a/longs/migrations/0014_auto_20210211_1827.py b/longs/migrations/0014_auto_20210211_1827.py deleted file mode 100644 index 414ef2f2..00000000 --- a/longs/migrations/0014_auto_20210211_1827.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-11 18:27 - -import django.core.files.storage -from django.db import migrations, models -import longs.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0013_auto_20210206_2147'), - ] - - operations = [ - migrations.AlterField( - model_name='longseriesimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/longs/', location='/home/ross/rad/media/longs/'), upload_to=longs.models.image_directory_path), - ), - ] diff --git a/longs/migrations/0015_auto_20210214_2028.py b/longs/migrations/0015_auto_20210214_2028.py deleted file mode 100644 index 396b5ba1..00000000 --- a/longs/migrations/0015_auto_20210214_2028.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-14 20:28 - -import django.core.files.storage -from django.db import migrations, models -import longs.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0014_auto_20210211_1827'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='score', - field=models.CharField(choices=[('', 'Unmarked'), ('4', '4'), ('4.5', '4.5'), ('5', '5'), ('5.5', '5.5'), ('6', '6'), ('6.5', '6.5'), ('7', '7'), ('7.5', '7.5'), ('8', '8')], default='', max_length=3), - ), - migrations.AlterField( - model_name='longseriesimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/longs/', location='/home/ross/scripts/sites/rad/media/longs/'), upload_to=longs.models.image_directory_path), - ), - ] diff --git a/longs/migrations/0016_auto_20210214_2301.py b/longs/migrations/0016_auto_20210214_2301.py deleted file mode 100644 index 466ff41a..00000000 --- a/longs/migrations/0016_auto_20210214_2301.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-14 23:01 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0015_auto_20210214_2028'), - ] - - operations = [ - migrations.AlterModelOptions( - name='longseriesimage', - options={'ordering': ['position']}, - ), - ] diff --git a/longs/migrations/0017_auto_20210215_1043.py b/longs/migrations/0017_auto_20210215_1043.py deleted file mode 100644 index 52080476..00000000 --- a/longs/migrations/0017_auto_20210215_1043.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 10:43 - -import django.core.files.storage -from django.db import migrations, models -import longs.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0016_auto_20210214_2301'), - ] - - operations = [ - migrations.AlterField( - model_name='longseriesimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/longs/', location='/home/ross/sites/rad/media/longs/'), upload_to=longs.models.image_directory_path), - ), - ] diff --git a/longs/migrations/0018_auto_20210215_1052.py b/longs/migrations/0018_auto_20210215_1052.py deleted file mode 100644 index 4753da2e..00000000 --- a/longs/migrations/0018_auto_20210215_1052.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 10:52 - -from django.db import migrations, models -import longs.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0017_auto_20210215_1043'), - ] - - operations = [ - migrations.AlterField( - model_name='longseriesimage', - name='image', - field=models.FileField(upload_to=longs.models.image_directory_path), - ), - ] diff --git a/longs/migrations/0019_longseriesimage_upload_filename.py b/longs/migrations/0019_longseriesimage_upload_filename.py deleted file mode 100644 index f513f775..00000000 --- a/longs/migrations/0019_longseriesimage_upload_filename.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 16:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0018_auto_20210215_1052'), - ] - - operations = [ - migrations.AddField( - model_name='longseriesimage', - name='upload_filename', - field=models.CharField(blank=True, max_length=255), - ), - ] diff --git a/longs/migrations/0020_auto_20210216_1018.py b/longs/migrations/0020_auto_20210216_1018.py deleted file mode 100644 index 61062655..00000000 --- a/longs/migrations/0020_auto_20210216_1018.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-16 10:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0019_longseriesimage_upload_filename'), - ] - - operations = [ - migrations.RemoveField( - model_name='longseries', - name='long', - ), - migrations.AddField( - model_name='longseries', - name='long', - field=models.ManyToManyField(blank=True, help_text='The question(s) this series should be associated with', null=True, related_name='series', to='longs.Long'), - ), - ] diff --git a/longs/migrations/0021_auto_20210216_1018.py b/longs/migrations/0021_auto_20210216_1018.py deleted file mode 100644 index fd938849..00000000 --- a/longs/migrations/0021_auto_20210216_1018.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-16 10:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0020_auto_20210216_1018'), - ] - - operations = [ - migrations.AlterField( - model_name='longseries', - name='long', - field=models.ManyToManyField(blank=True, help_text='The question(s) this series should be associated with', related_name='series', to='longs.Long'), - ), - ] diff --git a/longs/migrations/0022_long_mark_scheme.py b/longs/migrations/0022_long_mark_scheme.py deleted file mode 100644 index 8ede2832..00000000 --- a/longs/migrations/0022_long_mark_scheme.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-16 11:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0021_auto_20210216_1018'), - ] - - operations = [ - migrations.AddField( - model_name='long', - name='mark_scheme', - field=models.TextField(blank=True, null=True), - ), - ] diff --git a/longs/migrations/0023_auto_20210216_1315.py b/longs/migrations/0023_auto_20210216_1315.py deleted file mode 100644 index f2f241f2..00000000 --- a/longs/migrations/0023_auto_20210216_1315.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-16 13:15 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0022_long_mark_scheme'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduseranswer', - name='score', - field=models.CharField(blank=True, choices=[('', 'Unmarked'), ('4', '4'), ('4.5', '4.5'), ('5', '5'), ('5.5', '5.5'), ('6', '6'), ('6.5', '6.5'), ('7', '7'), ('7.5', '7.5'), ('8', '8')], default='', max_length=3), - ), - ] diff --git a/longs/migrations/0024_auto_20210217_1423.py b/longs/migrations/0024_auto_20210217_1423.py deleted file mode 100644 index dda2d25a..00000000 --- a/longs/migrations/0024_auto_20210217_1423.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-17 14:23 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0023_auto_20210216_1315'), - ] - - operations = [ - migrations.AlterModelOptions( - name='ciduseranswer', - options={'ordering': ['cid']}, - ), - ] diff --git a/longs/migrations/0025_auto_20210217_2218.py b/longs/migrations/0025_auto_20210217_2218.py deleted file mode 100644 index f0f441a3..00000000 --- a/longs/migrations/0025_auto_20210217_2218.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-17 22:18 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0007_site'), - ('longs', '0024_auto_20210217_1423'), - ] - - operations = [ - migrations.AlterField( - model_name='longseries', - name='examination', - field=models.ForeignKey(help_text='Name of the examination, this appears as the thumbnail title on the test system', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_examination', to='generic.examination'), - ), - ] diff --git a/longs/migrations/0026_long_description.py b/longs/migrations/0026_long_description.py deleted file mode 100644 index 085f8cc2..00000000 --- a/longs/migrations/0026_long_description.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-25 17:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0025_auto_20210217_2218'), - ] - - operations = [ - migrations.AddField( - model_name='long', - name='description', - field=models.TextField(blank=True, help_text='Description of the case, for admin organisation, will not be visible when taking'), - ), - ] diff --git a/longs/migrations/0027_longseries_plane.py b/longs/migrations/0027_longseries_plane.py deleted file mode 100644 index b0a99137..00000000 --- a/longs/migrations/0027_longseries_plane.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-25 18:08 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0008_plane'), - ('longs', '0026_long_description'), - ] - - operations = [ - migrations.AddField( - model_name='longseries', - name='plane', - field=models.ForeignKey(help_text='Plane of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_plane', to='generic.plane'), - ), - ] diff --git a/longs/migrations/0028_longseries_contrast.py b/longs/migrations/0028_longseries_contrast.py deleted file mode 100644 index 6f781ab4..00000000 --- a/longs/migrations/0028_longseries_contrast.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-25 18:16 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0009_contrast'), - ('longs', '0027_longseries_plane'), - ] - - operations = [ - migrations.AddField( - model_name='longseries', - name='contrast', - field=models.ForeignKey(help_text='MRI / CT contrast', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_contrast', to='generic.contrast'), - ), - ] diff --git a/longs/migrations/0029_auto_20210225_1819.py b/longs/migrations/0029_auto_20210225_1819.py deleted file mode 100644 index 2a12790e..00000000 --- a/longs/migrations/0029_auto_20210225_1819.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-25 18:19 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0009_contrast'), - ('longs', '0028_longseries_contrast'), - ] - - operations = [ - migrations.AlterField( - model_name='longseries', - name='contrast', - field=models.ForeignKey(blank=True, help_text='MRI / CT contrast', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_contrast', to='generic.contrast'), - ), - migrations.AlterField( - model_name='longseries', - name='plane', - field=models.ForeignKey(blank=True, help_text='Plane of the examination', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='series_plane', to='generic.plane'), - ), - ] diff --git a/longs/migrations/0030_long_recreate_json.py b/longs/migrations/0030_long_recreate_json.py deleted file mode 100644 index 7c150520..00000000 --- a/longs/migrations/0030_long_recreate_json.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-28 16:28 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0029_auto_20210225_1819'), - ] - - operations = [ - migrations.AddField( - model_name='long', - name='recreate_json', - field=models.BooleanField(default=False, help_text='If the json cache needs updating'), - ), - ] diff --git a/longs/migrations/0031_auto_20210309_1527.py b/longs/migrations/0031_auto_20210309_1527.py deleted file mode 100644 index 9542159f..00000000 --- a/longs/migrations/0031_auto_20210309_1527.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-09 15:27 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0030_long_recreate_json'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_time', - field=models.DateTimeField(blank=True, default=None, null=True), - ), - migrations.AddField( - model_name='long', - name='json_creation_time', - field=models.DateTimeField(blank=True, default=None, null=True), - ), - ] diff --git a/longs/migrations/0032_exam_exam_mode.py b/longs/migrations/0032_exam_exam_mode.py deleted file mode 100644 index a28dfc07..00000000 --- a/longs/migrations/0032_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-19 11:20 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0031_auto_20210309_1527'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be take in exam_mode'), - ), - ] diff --git a/longs/migrations/0033_auto_20210422_1143.py b/longs/migrations/0033_auto_20210422_1143.py deleted file mode 100644 index 6fc1cdf2..00000000 --- a/longs/migrations/0033_auto_20210422_1143.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.1.3 on 2021-04-22 11:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0032_exam_exam_mode'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available'), - ), - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be taken in exam mode'), - ), - migrations.AlterField( - model_name='exam', - name='publish_results', - field=models.BooleanField(default=False, help_text='If an exams results should be available'), - ), - ] diff --git a/longs/migrations/0034_exam_author.py b/longs/migrations/0034_exam_author.py deleted file mode 100644 index 1958b36f..00000000 --- a/longs/migrations/0034_exam_author.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-04-29 19:04 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('longs', '0033_auto_20210422_1143'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='author', - field=models.ManyToManyField(blank=True, help_text='Author of exam', related_name='long_exam_author', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/longs/migrations/0035_longseries_open_access.py b/longs/migrations/0035_longseries_open_access.py deleted file mode 100644 index 21d2d06a..00000000 --- a/longs/migrations/0035_longseries_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-05-02 18:14 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0034_exam_author'), - ] - - operations = [ - migrations.AddField( - model_name='longseries', - name='open_access', - field=models.BooleanField(default=True, help_text='If a question should be freely available to browse'), - ), - ] diff --git a/longs/migrations/0036_alter_exam_exam_mode.py b/longs/migrations/0036_alter_exam_exam_mode.py deleted file mode 100644 index a7c64a12..00000000 --- a/longs/migrations/0036_alter_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-06 19:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0035_longseries_open_access'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)'), - ), - ] diff --git a/longs/migrations/0037_alter_exam_time_limit.py b/longs/migrations/0037_alter_exam_time_limit.py deleted file mode 100644 index ec3ad674..00000000 --- a/longs/migrations/0037_alter_exam_time_limit.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-06 19:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0036_alter_exam_exam_mode'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='time_limit', - field=models.IntegerField(default=4500, help_text='Exam time limit (in seconds). Default is 4500 seconds (75 minutes)'), - ), - ] diff --git a/longs/migrations/0038_alter_exam_name.py b/longs/migrations/0038_alter_exam_name.py deleted file mode 100644 index a6ca76c7..00000000 --- a/longs/migrations/0038_alter_exam_name.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-09 11:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0037_alter_exam_time_limit'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='name', - field=models.CharField(help_text='Name of the exam', max_length=200), - ), - ] diff --git a/longs/migrations/0039_auto_20210801_0918.py b/longs/migrations/0039_auto_20210801_0918.py deleted file mode 100644 index 86881822..00000000 --- a/longs/migrations/0039_auto_20210801_0918.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0038_alter_exam_name'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_id', - field=models.IntegerField(default=1, help_text='auto incrementing field when json recreated'), - ), - migrations.AddField( - model_name='long', - name='json_creation_id', - field=models.IntegerField(default=1, help_text='Auto incrementing json creation number'), - ), - ] diff --git a/longs/migrations/0040_auto_20210801_0947.py b/longs/migrations/0040_auto_20210801_0947.py deleted file mode 100644 index a9d8ed8b..00000000 --- a/longs/migrations/0040_auto_20210801_0947.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:47 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0039_auto_20210801_0918'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='json_creation_id', - new_name='exam_json_id', - ), - migrations.RenameField( - model_name='long', - old_name='json_creation_id', - new_name='question_json_id', - ), - ] diff --git a/longs/migrations/0041_long_sorted_series.py b/longs/migrations/0041_long_sorted_series.py deleted file mode 100644 index 22610533..00000000 --- a/longs/migrations/0041_long_sorted_series.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.5 on 2021-08-11 17:16 - -from django.db import migrations -import sortedm2m.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0040_auto_20210801_0947'), - ] - - operations = [ - migrations.AddField( - model_name='long', - name='sorted_series', - field=sortedm2m.fields.SortedManyToManyField(help_text=None, related_name='long_sorted', to='longs.LongSeries'), - ), - ] diff --git a/longs/migrations/0042_auto_20210811_1837.py b/longs/migrations/0042_auto_20210811_1837.py deleted file mode 100644 index 11c4a9c1..00000000 --- a/longs/migrations/0042_auto_20210811_1837.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.5 on 2021-08-11 17:37 - -from django.db import migrations -import sortedm2m.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0041_long_sorted_series'), - ] - - operations = [ - migrations.RemoveField( - model_name='longseries', - name='long', - ), - migrations.AlterField( - model_name='long', - name='sorted_series', - field=sortedm2m.fields.SortedManyToManyField(help_text=None, related_name='long', to='longs.LongSeries'), - ), - ] diff --git a/longs/migrations/0043_rename_sorted_series_long_series.py b/longs/migrations/0043_rename_sorted_series_long_series.py deleted file mode 100644 index a599b4ce..00000000 --- a/longs/migrations/0043_rename_sorted_series_long_series.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.5 on 2021-08-11 17:38 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0042_auto_20210811_1837'), - ] - - operations = [ - migrations.RenameField( - model_name='long', - old_name='sorted_series', - new_name='series', - ), - ] diff --git a/longs/migrations/0044_auto_20210816_1306.py b/longs/migrations/0044_auto_20210816_1306.py deleted file mode 100644 index 7fa4554b..00000000 --- a/longs/migrations/0044_auto_20210816_1306.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.6 on 2021-08-16 12:06 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0043_rename_sorted_series_long_series'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='archive', - field=models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default'), - ), - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available to take'), - ), - ] diff --git a/longs/migrations/0045_alter_ciduseranswer_score.py b/longs/migrations/0045_alter_ciduseranswer_score.py deleted file mode 100644 index fcab84de..00000000 --- a/longs/migrations/0045_alter_ciduseranswer_score.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-09 16:14 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0044_auto_20210816_1306'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduseranswer', - name='score', - field=models.CharField(blank=True, choices=[('', 'Unmarked'), ('4', '4'), ('4.5', '4.5'), ('5', '5'), ('5.5', '5.5'), ('6', '6'), ('6.5', '6.5'), ('7', '7'), ('7.5', '7.5'), ('8', '8')], default='', help_text='The final score for the candidate', max_length=3), - ), - ] diff --git a/longs/migrations/0046_delete_note.py b/longs/migrations/0046_delete_note.py deleted file mode 100644 index 0bd1be27..00000000 --- a/longs/migrations/0046_delete_note.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-09 17:06 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0045_alter_ciduseranswer_score'), - ] - - operations = [ - migrations.DeleteModel( - name='Note', - ), - ] diff --git a/longs/migrations/0047_auto_20210911_1759.py b/longs/migrations/0047_auto_20210911_1759.py deleted file mode 100644 index 281a3904..00000000 --- a/longs/migrations/0047_auto_20210911_1759.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-11 16:59 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('longs', '0046_delete_note'), - ] - - operations = [ - migrations.CreateModel( - name='AnswerMarks', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('score', models.CharField(choices=[('', 'Unmarked'), ('4', '4'), ('4.5', '4.5'), ('5', '5'), ('5.5', '5.5'), ('6', '6'), ('6.5', '6.5'), ('7', '7'), ('7.5', '7.5'), ('8', '8')], max_length=3)), - ('mark_reason', models.TextField(blank=True, help_text='Reason for the given mark - not visible to candidates', null=True)), - ('candidate_feedback', models.TextField(blank=True, help_text='Feedback for the candidate', null=True)), - ('marker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='marker', to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.AddField( - model_name='ciduseranswer', - name='primary_mark', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='primary_mark', to='longs.answermarks'), - ), - migrations.AddField( - model_name='ciduseranswer', - name='secondary_mark', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='secondary_mark', to='longs.answermarks'), - ), - ] diff --git a/longs/migrations/0048_auto_20210911_1806.py b/longs/migrations/0048_auto_20210911_1806.py deleted file mode 100644 index 9d3017c4..00000000 --- a/longs/migrations/0048_auto_20210911_1806.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-11 17:06 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0047_auto_20210911_1759'), - ] - - operations = [ - migrations.RemoveField( - model_name='ciduseranswer', - name='primary_mark', - ), - migrations.RemoveField( - model_name='ciduseranswer', - name='secondary_mark', - ), - migrations.AddField( - model_name='ciduseranswer', - name='mark', - field=models.ManyToManyField(blank=True, null=True, related_name='user_answer', to='longs.AnswerMarks'), - ), - ] diff --git a/longs/migrations/0049_alter_ciduseranswer_mark.py b/longs/migrations/0049_alter_ciduseranswer_mark.py deleted file mode 100644 index 8ca44e42..00000000 --- a/longs/migrations/0049_alter_ciduseranswer_mark.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-11 17:10 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0048_auto_20210911_1806'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduseranswer', - name='mark', - field=models.ManyToManyField(blank=True, related_name='user_answer', to='longs.AnswerMarks'), - ), - ] diff --git a/longs/migrations/0050_auto_20210911_1818.py b/longs/migrations/0050_auto_20210911_1818.py deleted file mode 100644 index fdeff74a..00000000 --- a/longs/migrations/0050_auto_20210911_1818.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-11 17:18 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0049_alter_ciduseranswer_mark'), - ] - - operations = [ - migrations.RemoveField( - model_name='ciduseranswer', - name='mark', - ), - migrations.AddField( - model_name='answermarks', - name='user_answer', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mark', to='longs.ciduseranswer'), - ), - ] diff --git a/longs/migrations/0051_exam_double_mark.py b/longs/migrations/0051_exam_double_mark.py deleted file mode 100644 index 23d05db1..00000000 --- a/longs/migrations/0051_exam_double_mark.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-11 17:25 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0050_auto_20210911_1818'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='double_mark', - field=models.BooleanField(default=True), - ), - ] diff --git a/longs/migrations/0052_alter_exam_double_mark.py b/longs/migrations/0052_alter_exam_double_mark.py deleted file mode 100644 index af4fbf12..00000000 --- a/longs/migrations/0052_alter_exam_double_mark.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-13 07:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0051_exam_double_mark'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='double_mark', - field=models.BooleanField(default=True, help_text='Defines if an exam is expected to be double marked'), - ), - ] diff --git a/longs/migrations/0053_exam_open_access.py b/longs/migrations/0053_exam_open_access.py deleted file mode 100644 index 3a0f01e7..00000000 --- a/longs/migrations/0053_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0052_alter_exam_double_mark'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible'), - ), - ] diff --git a/longs/migrations/0054_alter_exam_open_access.py b/longs/migrations/0054_alter_exam_open_access.py deleted file mode 100644 index 5e339ff6..00000000 --- a/longs/migrations/0054_alter_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0053_exam_open_access'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)'), - ), - ] diff --git a/longs/migrations/0055_exam_valid_users.py b/longs/migrations/0055_exam_valid_users.py deleted file mode 100644 index a390cab6..00000000 --- a/longs/migrations/0055_exam_valid_users.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 22:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0015_ciduser_ciduserexam'), - ('longs', '0054_alter_exam_open_access'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_users', - field=models.ManyToManyField(blank=True, related_name='longs_exams', to='generic.CidUser'), - ), - ] diff --git a/longs/migrations/0056_auto_20211215_2036.py b/longs/migrations/0056_auto_20211215_2036.py deleted file mode 100644 index fdc723c4..00000000 --- a/longs/migrations/0056_auto_20211215_2036.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 20:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0055_exam_valid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='stats_candidates', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_graph', - field=models.TextField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max_possible', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mean', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_median', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_min', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mode', - field=models.CharField(default=0, max_length=25), - ), - ] diff --git a/longs/migrations/0057_exam_user_scores.py b/longs/migrations/0057_exam_user_scores.py deleted file mode 100644 index e7083991..00000000 --- a/longs/migrations/0057_exam_user_scores.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-31 10:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0056_auto_20211215_2036'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='user_scores', - field=models.JSONField(default=dict), - ), - ] diff --git a/longs/migrations/0058_exam_include_history.py b/longs/migrations/0058_exam_include_history.py deleted file mode 100644 index 09293599..00000000 --- a/longs/migrations/0058_exam_include_history.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 21:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0057_exam_user_scores'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='include_history', - field=models.BooleanField(default=False, help_text='If an exam should include history when taking'), - ), - ] diff --git a/longs/migrations/0059_exam_authors_only.py b/longs/migrations/0059_exam_authors_only.py deleted file mode 100644 index 3dc7d732..00000000 --- a/longs/migrations/0059_exam_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-03 17:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0058_exam_include_history'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only exam authors will be able to view.'), - ), - ] diff --git a/longs/migrations/0060_rename_valid_users_exam_valid_cid_users.py b/longs/migrations/0060_rename_valid_users_exam_valid_cid_users.py deleted file mode 100644 index 3d47742f..00000000 --- a/longs/migrations/0060_rename_valid_users_exam_valid_cid_users.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 10:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0059_exam_authors_only'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='valid_users', - new_name='valid_cid_users', - ), - ] diff --git a/longs/migrations/0061_exam_valid_user_users.py b/longs/migrations/0061_exam_valid_user_users.py deleted file mode 100644 index 4e787e20..00000000 --- a/longs/migrations/0061_exam_valid_user_users.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 12:42 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('longs', '0060_rename_valid_users_exam_valid_cid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_user_users', - field=models.ManyToManyField(blank=True, related_name='user_longs_exams', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/longs/migrations/0062_auto_20220521_2135.py b/longs/migrations/0062_auto_20220521_2135.py deleted file mode 100644 index 3cdb0a77..00000000 --- a/longs/migrations/0062_auto_20220521_2135.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-21 20:35 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('longs', '0061_exam_valid_user_users'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_longs_user_answers', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='longs_cid_user_groups', to='generic.CidUserGroup'), - ), - migrations.AddField( - model_name='exam', - name='user_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='longs_user_user_groups', to='generic.UserUserGroup'), - ), - ] diff --git a/longs/migrations/0063_exam_exam_results_emailed.py b/longs/migrations/0063_exam_exam_results_emailed.py deleted file mode 100644 index 90314481..00000000 --- a/longs/migrations/0063_exam_exam_results_emailed.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-26 15:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0062_auto_20220521_2135'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_results_emailed', - field=models.DateTimeField(default=None, null=True), - ), - ] diff --git a/longs/migrations/0064_remove_exam_stats_graph.py b/longs/migrations/0064_remove_exam_stats_graph.py deleted file mode 100644 index a8e66f94..00000000 --- a/longs/migrations/0064_remove_exam_stats_graph.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-30 20:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0063_exam_exam_results_emailed'), - ] - - operations = [ - migrations.RemoveField( - model_name='exam', - name='stats_graph', - ), - ] diff --git a/longs/migrations/0065_remove_long_condition_remove_long_sign.py b/longs/migrations/0065_remove_long_condition_remove_long_sign.py deleted file mode 100644 index 42a4eaed..00000000 --- a/longs/migrations/0065_remove_long_condition_remove_long_sign.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 4.1.4 on 2023-04-03 09:04 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0064_remove_exam_stats_graph'), - ] - - operations = [ - #migrations.RemoveField( - # model_name='long', - # name='condition', - #), - #migrations.RemoveField( - # model_name='long', - # name='sign', - #), - ] diff --git a/longs/migrations/0066_rename_ciduseranswer_useranswer.py b/longs/migrations/0066_rename_ciduseranswer_useranswer.py deleted file mode 100644 index 5ed210df..00000000 --- a/longs/migrations/0066_rename_ciduseranswer_useranswer.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:14 - -from django.conf import settings -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('longs', '0065_remove_long_condition_remove_long_sign'), - ] - - operations = [ - migrations.RenameModel( - old_name='CidUserAnswer', - new_name='UserAnswer', - ), - ] diff --git a/longs/migrations/0067_long_authors_only.py b/longs/migrations/0067_long_authors_only.py deleted file mode 100644 index 29f41010..00000000 --- a/longs/migrations/0067_long_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0066_rename_ciduseranswer_useranswer'), - ] - - operations = [ - migrations.AddField( - model_name='long', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only question authors will be able to view.'), - ), - ] diff --git a/longs/migrations/0068_remove_long_published_date.py b/longs/migrations/0068_remove_long_published_date.py deleted file mode 100644 index e7590c39..00000000 --- a/longs/migrations/0068_remove_long_published_date.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:36 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0067_long_authors_only'), - ] - - operations = [ - migrations.RemoveField( - model_name='long', - name='published_date', - ), - ] diff --git a/longs/migrations/0069_alter_long_feedback.py b/longs/migrations/0069_alter_long_feedback.py deleted file mode 100644 index 953d90c7..00000000 --- a/longs/migrations/0069_alter_long_feedback.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0068_remove_long_published_date'), - ] - - operations = [ - migrations.AlterField( - model_name='long', - name='feedback', - field=models.TextField(blank=True, help_text='Question Feedback', null=True), - ), - ] diff --git a/longs/migrations/0070_remove_long_condition_remove_long_sign_and_more.py b/longs/migrations/0070_remove_long_condition_remove_long_sign_and_more.py deleted file mode 100644 index e8a7cdd5..00000000 --- a/longs/migrations/0070_remove_long_condition_remove_long_sign_and_more.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-06-12 09:55 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('longs', '0069_alter_long_feedback'), - ] - - operations = [ - migrations.AlterField( - model_name='longseries', - name='open_access', - field=models.BooleanField(default=True, help_text='If a series should be freely available to browse'), - ), - ] diff --git a/physics/migrations/0001_initial.py b/physics/migrations/0001_initial.py index ab4e3fea..ccc582e9 100644 --- a/physics/migrations/0001_initial.py +++ b/physics/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.1.3 on 2020-12-15 18:36 +# Generated by Django 4.1.4 on 2023-06-12 10:07 from django.conf import settings from django.db import migrations, models @@ -12,6 +12,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ('generic', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] @@ -23,50 +24,107 @@ class Migration(migrations.Migration): ('category', models.CharField(max_length=200)), ], ), - migrations.CreateModel( - name='Question', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('stem', models.TextField(help_text='Stem of the question')), - ('a', models.TextField(help_text='The question text')), - ('a_answer', models.BooleanField(default=True, help_text='Answer')), - ('b', models.TextField(help_text='The question text')), - ('b_answer', models.BooleanField(default=True, help_text='Answer')), - ('c', models.TextField(help_text='The question text')), - ('c_answer', models.BooleanField(default=True, help_text='Answer')), - ('d', models.TextField(help_text='The question text')), - ('d_answer', models.BooleanField(default=True, help_text='Answer')), - ('e', models.TextField(help_text='The question text')), - ('e_answer', models.BooleanField(default=True, help_text='Answer')), - ('created_date', models.DateTimeField(default=django.utils.timezone.now)), - ('author', models.ManyToManyField(blank=True, help_text='Author(s) of question', related_name='physics_authored_questions', to=settings.AUTH_USER_MODEL)), - ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='physics.category')), - ], - ), migrations.CreateModel( name='Exam', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=200)), - ('active', models.BooleanField(default=True, help_text='If an exam should be available')), - ('publish_results', models.BooleanField(default=True, help_text='If an exams results should be available')), - ('exam_questions', sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='physics.Question')), + ('name', models.CharField(help_text='Name of the exam', max_length=200)), + ('active', models.BooleanField(default=False, help_text='If an exam should be available to take')), + ('exam_mode', models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)')), + ('include_history', models.BooleanField(default=False, help_text='If an exam should include history when taking')), + ('publish_results', models.BooleanField(default=False, help_text='If an exams results should be available')), + ('json_creation_time', models.DateTimeField(blank=True, default=None, null=True)), + ('exam_json_id', models.IntegerField(default=1, help_text='auto incrementing field when json recreated')), + ('archive', models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default')), + ('open_access', models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)')), + ('authors_only', models.BooleanField(default=False, help_text='If true only exam authors will be able to view.')), + ('stats_mean', models.FloatField(default=0)), + ('stats_mode', models.CharField(default=0, max_length=25)), + ('stats_median', models.FloatField(default=0)), + ('stats_candidates', models.FloatField(default=0)), + ('stats_min', models.FloatField(default=0)), + ('stats_max', models.FloatField(default=0)), + ('stats_max_possible', models.FloatField(default=0)), + ('user_scores', models.JSONField(default=dict)), + ('exam_results_emailed', models.DateTimeField(default=None, null=True)), + ('time_limit', models.IntegerField(blank=True, help_text='Exam time limit (in seconds)', null=True)), + ('author', models.ManyToManyField(blank=True, help_text='Author of exam', related_name='physics_exam_author', to=settings.AUTH_USER_MODEL)), + ('cid_user_groups', models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='physics_cid_user_groups', to='generic.cidusergroup')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( - name='CidUserAnswer', + name='Question', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('authors_only', models.BooleanField(default=False, help_text='If true only question authors will be able to view.')), + ('created_date', models.DateTimeField(default=django.utils.timezone.now)), + ('open_access', models.BooleanField(default=True, help_text='If a question should be freely available to browse')), + ('feedback', models.TextField(blank=True, help_text='Question Feedback', null=True)), + ('stem', models.TextField(help_text='Stem of the question')), + ('a', models.TextField(help_text='The question text')), + ('a_answer', models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)')), + ('a_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('b', models.TextField(help_text='The question text')), + ('b_answer', models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)')), + ('b_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('c', models.TextField(help_text='The question text')), + ('c_answer', models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)')), + ('c_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('d', models.TextField(help_text='The question text')), + ('d_answer', models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)')), + ('d_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('e', models.TextField(help_text='The question text')), + ('e_answer', models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)')), + ('e_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('author', models.ManyToManyField(blank=True, help_text='Author(s) of question', related_name='physics_authored_questions', to=settings.AUTH_USER_MODEL)), + ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='physics.category')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='UserAnswer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cid', models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True)), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), ('a', models.BooleanField()), ('b', models.BooleanField()), ('c', models.BooleanField()), ('d', models.BooleanField()), ('e', models.BooleanField()), - ('cid', models.IntegerField(blank=True, null=True)), - ('created', models.DateTimeField(auto_now_add=True)), - ('updated', models.DateTimeField(auto_now=True)), ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='physics.exam')), ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='physics.question')), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_physics_user_answers', to=settings.AUTH_USER_MODEL)), ], + options={ + 'ordering': ['cid'], + 'abstract': False, + }, + ), + migrations.AddField( + model_name='exam', + name='exam_questions', + field=sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='physics.question'), + ), + migrations.AddField( + model_name='exam', + name='user_user_groups', + field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='physics_user_user_groups', to='generic.userusergroup'), + ), + migrations.AddField( + model_name='exam', + name='valid_cid_users', + field=models.ManyToManyField(blank=True, related_name='physics_exams', to='generic.ciduser'), + ), + migrations.AddField( + model_name='exam', + name='valid_user_users', + field=models.ManyToManyField(blank=True, related_name='user_physics_exams', to=settings.AUTH_USER_MODEL), ), ] diff --git a/physics/migrations/0002_auto_20201216_2207.py b/physics/migrations/0002_auto_20201216_2207.py deleted file mode 100644 index c8b7da37..00000000 --- a/physics/migrations/0002_auto_20201216_2207.py +++ /dev/null @@ -1,43 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-16 22:07 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='time_limit', - field=models.IntegerField(blank=True, help_text='Exam time limit (in seconds)', null=True), - ), - migrations.AlterField( - model_name='question', - name='a_answer', - field=models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)'), - ), - migrations.AlterField( - model_name='question', - name='b_answer', - field=models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)'), - ), - migrations.AlterField( - model_name='question', - name='c_answer', - field=models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)'), - ), - migrations.AlterField( - model_name='question', - name='d_answer', - field=models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)'), - ), - migrations.AlterField( - model_name='question', - name='e_answer', - field=models.BooleanField(default=True, help_text='Answer (check for true, uncheck for false)'), - ), - ] diff --git a/physics/migrations/0003_auto_20201228_2235.py b/physics/migrations/0003_auto_20201228_2235.py deleted file mode 100644 index 6041896a..00000000 --- a/physics/migrations/0003_auto_20201228_2235.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-28 22:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0002_auto_20201216_2207'), - ] - - operations = [ - migrations.AddField( - model_name='question', - name='a_feedback', - field=models.TextField(blank=True, help_text='Feedback for answer'), - ), - migrations.AddField( - model_name='question', - name='b_feedback', - field=models.TextField(blank=True, help_text='Feedback for answer'), - ), - migrations.AddField( - model_name='question', - name='c_feedback', - field=models.TextField(blank=True, help_text='Feedback for answer'), - ), - migrations.AddField( - model_name='question', - name='d_feedback', - field=models.TextField(blank=True, help_text='Feedback for answer'), - ), - migrations.AddField( - model_name='question', - name='e_feedback', - field=models.TextField(blank=True, help_text='Feedback for answer'), - ), - ] diff --git a/physics/migrations/0004_exam_json_creation_time.py b/physics/migrations/0004_exam_json_creation_time.py deleted file mode 100644 index 72074042..00000000 --- a/physics/migrations/0004_exam_json_creation_time.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-09 15:27 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0003_auto_20201228_2235'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_time', - field=models.DateTimeField(blank=True, default=None, null=True), - ), - ] diff --git a/physics/migrations/0005_exam_exam_mode.py b/physics/migrations/0005_exam_exam_mode.py deleted file mode 100644 index 63fac45a..00000000 --- a/physics/migrations/0005_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-19 11:17 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0004_exam_json_creation_time'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be take in exam_mode'), - ), - ] diff --git a/physics/migrations/0006_auto_20210422_1143.py b/physics/migrations/0006_auto_20210422_1143.py deleted file mode 100644 index 4ea90830..00000000 --- a/physics/migrations/0006_auto_20210422_1143.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.1.3 on 2021-04-22 11:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0005_exam_exam_mode'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available'), - ), - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be taken in exam mode'), - ), - migrations.AlterField( - model_name='exam', - name='publish_results', - field=models.BooleanField(default=False, help_text='If an exams results should be available'), - ), - ] diff --git a/physics/migrations/0007_exam_author.py b/physics/migrations/0007_exam_author.py deleted file mode 100644 index 308f7dbd..00000000 --- a/physics/migrations/0007_exam_author.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-05-03 10:36 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('physics', '0006_auto_20210422_1143'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='author', - field=models.ManyToManyField(blank=True, help_text='Author of exam', related_name='physics_exam_author', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/physics/migrations/0008_alter_exam_exam_mode.py b/physics/migrations/0008_alter_exam_exam_mode.py deleted file mode 100644 index 4ff89b0f..00000000 --- a/physics/migrations/0008_alter_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-06 19:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0007_exam_author'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)'), - ), - ] diff --git a/physics/migrations/0009_alter_exam_name.py b/physics/migrations/0009_alter_exam_name.py deleted file mode 100644 index 212cf100..00000000 --- a/physics/migrations/0009_alter_exam_name.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-09 11:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0008_alter_exam_exam_mode'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='name', - field=models.CharField(help_text='Name of the exam', max_length=200), - ), - ] diff --git a/physics/migrations/0010_exam_json_creation_id.py b/physics/migrations/0010_exam_json_creation_id.py deleted file mode 100644 index be11259a..00000000 --- a/physics/migrations/0010_exam_json_creation_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0009_alter_exam_name'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_id', - field=models.IntegerField(default=1, help_text='auto incrementing field when json recreated'), - ), - ] diff --git a/physics/migrations/0011_rename_json_creation_id_exam_exam_json_id.py b/physics/migrations/0011_rename_json_creation_id_exam_exam_json_id.py deleted file mode 100644 index 400018fb..00000000 --- a/physics/migrations/0011_rename_json_creation_id_exam_exam_json_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:47 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0010_exam_json_creation_id'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='json_creation_id', - new_name='exam_json_id', - ), - ] diff --git a/physics/migrations/0012_auto_20210816_1306.py b/physics/migrations/0012_auto_20210816_1306.py deleted file mode 100644 index 30394357..00000000 --- a/physics/migrations/0012_auto_20210816_1306.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.6 on 2021-08-16 12:06 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0011_rename_json_creation_id_exam_exam_json_id'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='archive', - field=models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default'), - ), - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available to take'), - ), - ] diff --git a/physics/migrations/0013_exam_open_access.py b/physics/migrations/0013_exam_open_access.py deleted file mode 100644 index 7b267eac..00000000 --- a/physics/migrations/0013_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0012_auto_20210816_1306'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible'), - ), - ] diff --git a/physics/migrations/0014_alter_exam_open_access.py b/physics/migrations/0014_alter_exam_open_access.py deleted file mode 100644 index 141e43e9..00000000 --- a/physics/migrations/0014_alter_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0013_exam_open_access'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)'), - ), - ] diff --git a/physics/migrations/0015_exam_valid_users.py b/physics/migrations/0015_exam_valid_users.py deleted file mode 100644 index ba5aa506..00000000 --- a/physics/migrations/0015_exam_valid_users.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 13:01 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0015_ciduser_ciduserexam'), - ('physics', '0014_alter_exam_open_access'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_users', - field=models.ManyToManyField(blank=True, related_name='physics_exams', to='generic.CidUser'), - ), - ] diff --git a/physics/migrations/0016_auto_20211215_2036.py b/physics/migrations/0016_auto_20211215_2036.py deleted file mode 100644 index fb0f318c..00000000 --- a/physics/migrations/0016_auto_20211215_2036.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 20:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0015_exam_valid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='stats_candidates', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_graph', - field=models.TextField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max_possible', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mean', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_median', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_min', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mode', - field=models.CharField(default=0, max_length=25), - ), - ] diff --git a/physics/migrations/0017_exam_user_scores.py b/physics/migrations/0017_exam_user_scores.py deleted file mode 100644 index 92f0c0b8..00000000 --- a/physics/migrations/0017_exam_user_scores.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-31 10:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0016_auto_20211215_2036'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='user_scores', - field=models.JSONField(default=dict), - ), - ] diff --git a/physics/migrations/0018_exam_include_history.py b/physics/migrations/0018_exam_include_history.py deleted file mode 100644 index 47cce439..00000000 --- a/physics/migrations/0018_exam_include_history.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 21:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0017_exam_user_scores'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='include_history', - field=models.BooleanField(default=False, help_text='If an exam should include history when taking'), - ), - ] diff --git a/physics/migrations/0019_exam_authors_only.py b/physics/migrations/0019_exam_authors_only.py deleted file mode 100644 index b2cddb48..00000000 --- a/physics/migrations/0019_exam_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-03 17:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0018_exam_include_history'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only exam authors will be able to view.'), - ), - ] diff --git a/physics/migrations/0020_rename_valid_users_exam_valid_cid_users.py b/physics/migrations/0020_rename_valid_users_exam_valid_cid_users.py deleted file mode 100644 index b8bcfd67..00000000 --- a/physics/migrations/0020_rename_valid_users_exam_valid_cid_users.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 10:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0019_exam_authors_only'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='valid_users', - new_name='valid_cid_users', - ), - ] diff --git a/physics/migrations/0021_exam_valid_user_users.py b/physics/migrations/0021_exam_valid_user_users.py deleted file mode 100644 index 37bbd597..00000000 --- a/physics/migrations/0021_exam_valid_user_users.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 12:42 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('physics', '0020_rename_valid_users_exam_valid_cid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_user_users', - field=models.ManyToManyField(blank=True, related_name='user_physics_exams', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/physics/migrations/0022_auto_20220521_2135.py b/physics/migrations/0022_auto_20220521_2135.py deleted file mode 100644 index db8c6075..00000000 --- a/physics/migrations/0022_auto_20220521_2135.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-21 20:35 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('physics', '0021_exam_valid_user_users'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_physics_user_answers', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='physics_cid_user_groups', to='generic.CidUserGroup'), - ), - migrations.AddField( - model_name='exam', - name='user_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='physics_user_user_groups', to='generic.UserUserGroup'), - ), - ] diff --git a/physics/migrations/0023_alter_exam_cid_user_groups.py b/physics/migrations/0023_alter_exam_cid_user_groups.py deleted file mode 100644 index 9f53210c..00000000 --- a/physics/migrations/0023_alter_exam_cid_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-21 20:58 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - ('physics', '0022_auto_20220521_2135'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='physics_exam_cid_user_groups', to='generic.CidUserGroup'), - ), - ] diff --git a/physics/migrations/0024_alter_exam_cid_user_groups.py b/physics/migrations/0024_alter_exam_cid_user_groups.py deleted file mode 100644 index cb63f06c..00000000 --- a/physics/migrations/0024_alter_exam_cid_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-21 20:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - ('physics', '0023_alter_exam_cid_user_groups'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='physics_cid_user_groups', to='generic.CidUserGroup'), - ), - ] diff --git a/physics/migrations/0025_exam_exam_results_emailed.py b/physics/migrations/0025_exam_exam_results_emailed.py deleted file mode 100644 index 8087b105..00000000 --- a/physics/migrations/0025_exam_exam_results_emailed.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-26 15:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0024_alter_exam_cid_user_groups'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_results_emailed', - field=models.DateTimeField(default=None, null=True), - ), - ] diff --git a/physics/migrations/0026_remove_exam_stats_graph.py b/physics/migrations/0026_remove_exam_stats_graph.py deleted file mode 100644 index 2fcf499e..00000000 --- a/physics/migrations/0026_remove_exam_stats_graph.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-30 20:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0025_exam_exam_results_emailed'), - ] - - operations = [ - migrations.RemoveField( - model_name='exam', - name='stats_graph', - ), - ] diff --git a/physics/migrations/0027_alter_ciduseranswer_options_alter_ciduseranswer_cid.py b/physics/migrations/0027_alter_ciduseranswer_options_alter_ciduseranswer_cid.py deleted file mode 100644 index 30956076..00000000 --- a/physics/migrations/0027_alter_ciduseranswer_options_alter_ciduseranswer_cid.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0026_remove_exam_stats_graph'), - ] - - operations = [ - migrations.AlterModelOptions( - name='ciduseranswer', - options={'ordering': ['cid']}, - ), - migrations.AlterField( - model_name='ciduseranswer', - name='cid', - field=models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True), - ), - ] diff --git a/physics/migrations/0028_rename_ciduseranswer_useranswer.py b/physics/migrations/0028_rename_ciduseranswer_useranswer.py deleted file mode 100644 index 928b4ad3..00000000 --- a/physics/migrations/0028_rename_ciduseranswer_useranswer.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:14 - -from django.conf import settings -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('physics', '0027_alter_ciduseranswer_options_alter_ciduseranswer_cid'), - ] - - operations = [ - migrations.RenameModel( - old_name='CidUserAnswer', - new_name='UserAnswer', - ), - ] diff --git a/physics/migrations/0029_question_authors_only.py b/physics/migrations/0029_question_authors_only.py deleted file mode 100644 index b237d4da..00000000 --- a/physics/migrations/0029_question_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0028_rename_ciduseranswer_useranswer'), - ] - - operations = [ - migrations.AddField( - model_name='question', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only question authors will be able to view.'), - ), - ] diff --git a/physics/migrations/0030_question_open_access.py b/physics/migrations/0030_question_open_access.py deleted file mode 100644 index ab8d91b5..00000000 --- a/physics/migrations/0030_question_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0029_question_authors_only'), - ] - - operations = [ - migrations.AddField( - model_name='question', - name='open_access', - field=models.BooleanField(default=True, help_text='If a question should be freely available to browse'), - ), - ] diff --git a/physics/migrations/0031_question_feedback.py b/physics/migrations/0031_question_feedback.py deleted file mode 100644 index ebfab455..00000000 --- a/physics/migrations/0031_question_feedback.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('physics', '0030_question_open_access'), - ] - - operations = [ - migrations.AddField( - model_name='question', - name='feedback', - field=models.TextField(blank=True, help_text='Question Feedback', null=True), - ), - ] diff --git a/rapids/migrations/0001_initial.py b/rapids/migrations/0001_initial.py index 6f3b1cc7..f6d8e78b 100644 --- a/rapids/migrations/0001_initial.py +++ b/rapids/migrations/0001_initial.py @@ -1,11 +1,11 @@ -# Generated by Django 3.1.2 on 2021-01-18 13:39 +# Generated by Django 4.1.4 on 2023-06-12 10:07 from django.conf import settings -import django.core.files.storage from django.db import migrations, models import django.db.models.deletion import django.utils.timezone import rapids.models +import sortedm2m.fields class Migration(migrations.Migration): @@ -13,6 +13,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ('generic', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] @@ -27,6 +28,38 @@ class Migration(migrations.Migration): 'ordering': ('name',), }, ), + migrations.CreateModel( + name='Exam', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name of the exam', max_length=200)), + ('active', models.BooleanField(default=False, help_text='If an exam should be available to take')), + ('exam_mode', models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)')), + ('include_history', models.BooleanField(default=False, help_text='If an exam should include history when taking')), + ('publish_results', models.BooleanField(default=False, help_text='If an exams results should be available')), + ('recreate_json', models.BooleanField(default=False, help_text='If the json cache needs updating')), + ('json_creation_time', models.DateTimeField(blank=True, default=None, null=True)), + ('exam_json_id', models.IntegerField(default=1, help_text='auto incrementing field when json recreated')), + ('archive', models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default')), + ('open_access', models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)')), + ('authors_only', models.BooleanField(default=False, help_text='If true only exam authors will be able to view.')), + ('stats_mean', models.FloatField(default=0)), + ('stats_mode', models.CharField(default=0, max_length=25)), + ('stats_median', models.FloatField(default=0)), + ('stats_candidates', models.FloatField(default=0)), + ('stats_min', models.FloatField(default=0)), + ('stats_max', models.FloatField(default=0)), + ('stats_max_possible', models.FloatField(default=0)), + ('user_scores', models.JSONField(default=dict)), + ('exam_results_emailed', models.DateTimeField(default=None, null=True)), + ('time_limit', models.IntegerField(default=2100, help_text='Exam time limit (in seconds). Default is 2100 secondse (35 minutes)')), + ('author', models.ManyToManyField(blank=True, help_text='Author of exam', related_name='rapid_exam_author', to=settings.AUTH_USER_MODEL)), + ('cid_user_groups', models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='rapid_cid_user_groups', to='generic.cidusergroup')), + ], + options={ + 'abstract': False, + }, + ), migrations.CreateModel( name='Examination', fields=[ @@ -41,18 +74,23 @@ class Migration(migrations.Migration): name='Rapid', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('authors_only', models.BooleanField(default=False, help_text='If true only question authors will be able to view.')), + ('created_date', models.DateTimeField(default=django.utils.timezone.now)), + ('open_access', models.BooleanField(default=True, help_text='If a question should be freely available to browse')), + ('feedback', models.TextField(blank=True, help_text='Question Feedback', null=True)), ('question', models.TextField(blank=True, null=True)), - ('feedback', models.TextField(blank=True, null=True)), + ('history', models.TextField(blank=True, null=True)), ('normal', models.BooleanField(default=False, help_text='Tick if true')), ('laterality', models.CharField(choices=[('NONE', 'None'), ('LEFT', 'Left'), ('RIGHT', 'Right'), ('BILAT', 'Bilateral')], default='NONE', help_text='Applies to the answer, not the examination', max_length=20)), ('verified', models.BooleanField(default=False)), - ('created_date', models.DateTimeField(default=django.utils.timezone.now)), - ('published_date', models.DateTimeField(blank=True, null=True)), ('scrapped', models.BooleanField(default=False, help_text='Question has been scrapped and will not be shown')), - ('abnormality', models.ManyToManyField(blank=True, help_text='The abnormality (laterality and region independent)', to='rapids.Abnormality')), + ('abnormality', models.ManyToManyField(blank=True, help_text='The abnormality (laterality and region independent). Used for categorisation but does not affect the answer', to='rapids.abnormality')), ('author', models.ManyToManyField(blank=True, help_text='Author of question', related_name='rapid_authored_questions', to=settings.AUTH_USER_MODEL)), - ('examination', models.ManyToManyField(help_text='Name of the (primary) examination', to='rapids.Examination')), + ('examination', models.ManyToManyField(help_text='Name of the (primary) examination', to='rapids.examination')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='Region', @@ -65,19 +103,37 @@ class Migration(migrations.Migration): }, ), migrations.CreateModel( - name='Site', + name='UserAnswer', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('site', models.CharField(max_length=200)), - ('initials', models.CharField(max_length=200)), + ('cid', models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True)), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('normal', models.BooleanField(default=False)), + ('answer', models.TextField(blank=True, max_length=500)), + ('answer_compare', models.TextField(blank=True, max_length=500)), + ('score', models.CharField(blank=True, choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1)), + ('callstate', models.CharField(blank=True, choices=[('C', 'Correct Call'), ('O', 'Overcall'), ('U', 'Undercall'), ('W', 'Incorrect Call'), ('P', 'Partial Call')], max_length=1, null=True)), + ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='rapids.exam')), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='rapids.rapid')), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_rapid_user_answers', to=settings.AUTH_USER_MODEL)), ], + options={ + 'ordering': ['cid'], + 'abstract': False, + }, ), migrations.CreateModel( name='RapidImage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('image', models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/sites/rad/media//rapids/'), upload_to=rapids.models.image_directory_path)), + ('image', models.FileField(upload_to=rapids.models.image_directory_path)), + ('image_annotations', models.TextField(blank=True, help_text='Stores a JSON representation of annotations to be applied by cornerstonetools', null=True)), ('feedback_image', models.BooleanField(default=False)), + ('filename', models.CharField(blank=True, help_text='Name of the original file when uploaded', max_length=255, null=True)), + ('description', models.CharField(blank=True, max_length=255, null=True)), + ('image_md5_hash', models.CharField(blank=True, max_length=32, null=True)), + ('is_dicom', models.BooleanField(default=False)), ('rapid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='rapids.rapid')), ], ), @@ -86,28 +142,32 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('author', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='rapid_default', to=settings.AUTH_USER_MODEL)), - ('site', models.ManyToManyField(blank=True, default=1, help_text='Default site to use when creating a new rapid', to='rapids.Site')), ], ), migrations.AddField( model_name='rapid', name='region', - field=models.ManyToManyField(blank=True, help_text='Region of the abnormality (laterality independent)', to='rapids.Region'), + field=models.ManyToManyField(blank=True, help_text='Region of the abnormality (laterality independent)', to='rapids.region'), ), migrations.AddField( - model_name='rapid', - name='site', - field=models.ManyToManyField(blank=True, default=1, help_text='If we know the source of the image (should possibly be removed?)', to='rapids.Site'), + model_name='exam', + name='exam_questions', + field=sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='rapids.rapid'), ), - migrations.CreateModel( - name='Note', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('note', models.TextField()), - ('created_on', models.DateTimeField(auto_now_add=True)), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rapid_notes', to=settings.AUTH_USER_MODEL)), - ('rapid', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rapid_notes', to='rapids.rapid')), - ], + migrations.AddField( + model_name='exam', + name='user_user_groups', + field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='rapid_user_user_groups', to='generic.userusergroup'), + ), + migrations.AddField( + model_name='exam', + name='valid_cid_users', + field=models.ManyToManyField(blank=True, related_name='rapid_exams', to='generic.ciduser'), + ), + migrations.AddField( + model_name='exam', + name='valid_user_users', + field=models.ManyToManyField(blank=True, related_name='user_rapid_exams', to=settings.AUTH_USER_MODEL), ), migrations.CreateModel( name='Answer', @@ -116,6 +176,7 @@ class Migration(migrations.Migration): ('answer', models.TextField(max_length=500)), ('answer_compare', models.TextField(max_length=500)), ('status', models.CharField(choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1)), + ('proposed', models.BooleanField(default=False)), ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='rapids.rapid')), ], ), diff --git a/rapids/migrations/0002_auto_20210118_1402.py b/rapids/migrations/0002_auto_20210118_1402.py deleted file mode 100644 index 56fa041e..00000000 --- a/rapids/migrations/0002_auto_20210118_1402.py +++ /dev/null @@ -1,52 +0,0 @@ -# Generated by Django 3.1.2 on 2021-01-18 14:02 - -import django.core.files.storage -from django.db import migrations, models -import django.db.models.deletion -import rapids.models -import sortedm2m.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='rapid', - name='abnormality', - field=models.ManyToManyField(blank=True, help_text='The abnormality (laterality and region independent). Used for categorisation but does not affect the answer', to='rapids.Abnormality'), - ), - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://penracourses.org.uk//media/rapids/', location='/home/ross/sites/rad/media//rapids/'), upload_to=rapids.models.image_directory_path), - ), - migrations.CreateModel( - name='Exam', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=200)), - ('active', models.BooleanField(default=True, help_text='If an exam should be available')), - ('publish_results', models.BooleanField(default=True, help_text='If an exams results should be available')), - ('recreate_json', models.BooleanField(default=False, help_text='If the json cache needs updating')), - ('time_limit', models.IntegerField(default=5400, help_text='Exam time limit (in seconds)')), - ('exam_questions', sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='rapids.Rapid')), - ], - ), - migrations.CreateModel( - name='CidUserAnswer', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.TextField(blank=True, max_length=500)), - ('answer_compare', models.TextField(blank=True, max_length=500)), - ('cid', models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True)), - ('created', models.DateTimeField(auto_now_add=True)), - ('updated', models.DateTimeField(auto_now=True)), - ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='rapids.exam')), - ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='rapids.rapid')), - ], - ), - ] diff --git a/rapids/migrations/0003_auto_20210120_2206.py b/rapids/migrations/0003_auto_20210120_2206.py deleted file mode 100644 index 6a3cb111..00000000 --- a/rapids/migrations/0003_auto_20210120_2206.py +++ /dev/null @@ -1,71 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-20 22:06 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models -#import tagulous.models.fields -#import tagulous.models.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0002_auto_20210118_1402'), - ] - - operations = [ - migrations.AlterField( - model_name='rapid', - name='site', - field=models.ManyToManyField(blank=True, default=1, help_text='If we know the source of the image', to='rapids.Site'), - ), - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://penracourses.org.uk//media/rapids/', location='/home/ross/scripts/sites/rad/media//rapids/'), upload_to=rapids.models.image_directory_path), - ), - migrations.CreateModel( - name='Sign', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, unique=True)), - ('slug', models.SlugField()), - ('count', models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use')), - ('protected', models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0')), - ], - options={ - 'ordering': ('name',), - 'abstract': False, - 'unique_together': {('slug',)}, - }, - #bases=(tagulous.models.models.BaseTagModel, models.Model), - bases=(models.Model,), - ), - migrations.CreateModel( - name='Condition', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, unique=True)), - ('slug', models.SlugField()), - ('count', models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use')), - ('protected', models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0')), - ], - options={ - 'ordering': ('name',), - 'abstract': False, - 'unique_together': {('slug',)}, - }, - #bases=(tagulous.models.models.BaseTagModel, models.Model), - bases=(models.Model,), - ), - migrations.AddField( - model_name='rapid', - name='condition', - field=models.CharField(blank=True, help_text='Associated condition. Will allow searching / filtering and tips / hints to be displayed. Conditions with spaces must be enclosed in quotes "..."',), - ), - migrations.AddField( - model_name='rapid', - name='sign', - field=models.CharField(blank=True, help_text='Radiological signs in the question'), - ), - ] diff --git a/rapids/migrations/0004_auto_20210120_2214.py b/rapids/migrations/0004_auto_20210120_2214.py deleted file mode 100644 index 615b7a8d..00000000 --- a/rapids/migrations/0004_auto_20210120_2214.py +++ /dev/null @@ -1,31 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-20 22:14 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0003_auto_20210120_2206'), - ] - - operations = [ - migrations.RemoveField( - model_name='rapid', - name='condition', - ), - migrations.AddField( - model_name='rapid', - name='condition', - field=models.CharField(blank=True, max_length=255), - ), - migrations.RemoveField( - model_name='rapid', - name='sign', - ), - migrations.AddField( - model_name='rapid', - name='sign', - field=models.CharField(blank=True, max_length=255), - ), - ] diff --git a/rapids/migrations/0005_auto_20210121_1806.py b/rapids/migrations/0005_auto_20210121_1806.py deleted file mode 100644 index b21cc89b..00000000 --- a/rapids/migrations/0005_auto_20210121_1806.py +++ /dev/null @@ -1,30 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-21 18:06 - -import django.core.files.storage -from django.db import migrations, models -import django.db.models.deletion -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0004_auto_20210120_2214'), - ] - - operations = [ - migrations.RemoveField( - model_name='rapid', - name='examination', - ), - migrations.AddField( - model_name='rapid', - name='examination', - field=models.ForeignKey(help_text='Name of the (primary) examination', null=True, on_delete=django.db.models.deletion.SET_NULL, to='rapids.examination'), - ), - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/scripts/sites/rad/media//rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0006_auto_20210121_1809.py b/rapids/migrations/0006_auto_20210121_1809.py deleted file mode 100644 index 772a9e46..00000000 --- a/rapids/migrations/0006_auto_20210121_1809.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-21 18:09 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0005_auto_20210121_1806'), - ] - - operations = [ - migrations.RemoveField( - model_name='rapid', - name='examination', - ), - migrations.AddField( - model_name='rapid', - name='examination', - field=models.ManyToManyField(help_text='Name of the (primary) examination', to='rapids.Examination'), - ), - ] diff --git a/rapids/migrations/0007_auto_20210125_1534.py b/rapids/migrations/0007_auto_20210125_1534.py deleted file mode 100644 index 0e1ebf9f..00000000 --- a/rapids/migrations/0007_auto_20210125_1534.py +++ /dev/null @@ -1,30 +0,0 @@ -# Generated by Django 3.1.5 on 2021-01-25 15:34 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0006_auto_20210121_1809'), - ] - - operations = [ - migrations.AddField( - model_name='rapid', - name='open_access', - field=models.BooleanField(default=True, help_text='If an question should be freely available to browse'), - ), - migrations.AlterField( - model_name='exam', - name='time_limit', - field=models.IntegerField(default=2100, help_text='Exam time limit (in seconds). Default is 2100 secondse (35 minutes)'), - ), - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/sites/rad/media//rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0008_auto_20210130_1515.py b/rapids/migrations/0008_auto_20210130_1515.py deleted file mode 100644 index 46779ebd..00000000 --- a/rapids/migrations/0008_auto_20210130_1515.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-30 15:15 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0007_auto_20210125_1534'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='normal', - field=models.BooleanField(default=False), - ), - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/scripts/sites/rad/media//rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0009_auto_20210205_1046.py b/rapids/migrations/0009_auto_20210205_1046.py deleted file mode 100644 index de2aa61c..00000000 --- a/rapids/migrations/0009_auto_20210205_1046.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0008_auto_20210130_1515'), - ] - - operations = [ - migrations.RemoveField( - model_name='rapid', - name='site', - ), - migrations.RemoveField( - model_name='rapidcreationdefault', - name='site', - ), - migrations.DeleteModel( - name='Site', - ), - ] diff --git a/rapids/migrations/0010_auto_20210205_1051.py b/rapids/migrations/0010_auto_20210205_1051.py deleted file mode 100644 index ffc34cdb..00000000 --- a/rapids/migrations/0010_auto_20210205_1051.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:51 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0009_auto_20210205_1046'), - ] - - operations = [ - migrations.DeleteModel( - name='Condition', - ), - migrations.DeleteModel( - name='Sign', - ), - ] diff --git a/rapids/migrations/0011_auto_20210205_1056.py b/rapids/migrations/0011_auto_20210205_1056.py deleted file mode 100644 index a596b499..00000000 --- a/rapids/migrations/0011_auto_20210205_1056.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-05 10:56 - -from django.db import migrations, models -#import tagulous.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0007_site'), - ('rapids', '0010_auto_20210205_1051'), - ] - - operations = [ - migrations.RemoveField( - model_name='rapid', - name='condition', - ), - migrations.AddField( - model_name='rapid', - name='condition', - field=models.CharField(blank=True, help_text='Associated condition. Will allow searching / filtering and tips / hints to be displayed. Conditions with spaces must be enclosed in quotes "..."'), - ), - migrations.RemoveField( - model_name='rapid', - name='sign', - ), - migrations.AddField( - model_name='rapid', - name='sign', - field=models.CharField(blank=True, help_text='Radiological signs in the question'), - ), - ] diff --git a/rapids/migrations/0012_auto_20210206_0905.py b/rapids/migrations/0012_auto_20210206_0905.py deleted file mode 100644 index 64063734..00000000 --- a/rapids/migrations/0012_auto_20210206_0905.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-06 09:05 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0011_auto_20210205_1056'), - ] - - operations = [ - migrations.AlterField( - model_name='rapid', - name='open_access', - field=models.BooleanField(default=True, help_text='If a question should be freely available to browse'), - ), - ] diff --git a/rapids/migrations/0013_auto_20210209_2239.py b/rapids/migrations/0013_auto_20210209_2239.py deleted file mode 100644 index 31981c9a..00000000 --- a/rapids/migrations/0013_auto_20210209_2239.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-09 22:39 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0012_auto_20210206_0905'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/rad/media//rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0014_auto_20210211_2034.py b/rapids/migrations/0014_auto_20210211_2034.py deleted file mode 100644 index d6fc2db2..00000000 --- a/rapids/migrations/0014_auto_20210211_2034.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-11 20:34 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0013_auto_20210209_2239'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/rad/media//rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0015_auto_20210211_2035.py b/rapids/migrations/0015_auto_20210211_2035.py deleted file mode 100644 index 2743692c..00000000 --- a/rapids/migrations/0015_auto_20210211_2035.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-11 20:35 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0014_auto_20210211_2034'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/rad/media/rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0016_auto_20210214_2028.py b/rapids/migrations/0016_auto_20210214_2028.py deleted file mode 100644 index f5fbbc00..00000000 --- a/rapids/migrations/0016_auto_20210214_2028.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.3 on 2021-02-14 20:28 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0015_auto_20210211_2035'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/scripts/sites/rad/media/rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0017_auto_20210215_1043.py b/rapids/migrations/0017_auto_20210215_1043.py deleted file mode 100644 index a19ef210..00000000 --- a/rapids/migrations/0017_auto_20210215_1043.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 10:43 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0016_auto_20210214_2028'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/ross/sites/rad/media/rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0018_auto_20210215_1144.py b/rapids/migrations/0018_auto_20210215_1144.py deleted file mode 100644 index b14e06f3..00000000 --- a/rapids/migrations/0018_auto_20210215_1144.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 11:44 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0017_auto_20210215_1043'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/rapids/', location='/home/django/rad/media/rapids/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0019_auto_20210215_1203.py b/rapids/migrations/0019_auto_20210215_1203.py deleted file mode 100644 index 13bec370..00000000 --- a/rapids/migrations/0019_auto_20210215_1203.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.5 on 2021-02-15 12:03 - -import django.core.files.storage -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0018_auto_20210215_1144'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.FileField(storage=django.core.files.storage.FileSystemStorage(base_url='/media/', location='/home/django/rad/media/'), upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0020_exam_json_creation_time.py b/rapids/migrations/0020_exam_json_creation_time.py deleted file mode 100644 index e7bb2656..00000000 --- a/rapids/migrations/0020_exam_json_creation_time.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-09 15:27 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0019_auto_20210215_1203'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_time', - field=models.DateTimeField(blank=True, default=None, null=True), - ), - ] diff --git a/rapids/migrations/0021_exam_exam_mode.py b/rapids/migrations/0021_exam_exam_mode.py deleted file mode 100644 index 58c6ce76..00000000 --- a/rapids/migrations/0021_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-03-19 11:17 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0020_exam_json_creation_time'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be take in exam_mode'), - ), - ] diff --git a/rapids/migrations/0022_auto_20210422_1143.py b/rapids/migrations/0022_auto_20210422_1143.py deleted file mode 100644 index e55c2788..00000000 --- a/rapids/migrations/0022_auto_20210422_1143.py +++ /dev/null @@ -1,41 +0,0 @@ -# Generated by Django 3.1.3 on 2021-04-22 11:43 - -from django.conf import settings -from django.db import migrations, models -import rapids.models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('rapids', '0021_exam_exam_mode'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='author', - field=models.ManyToManyField(blank=True, help_text='Author of exam', related_name='rapid_exam_author', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available'), - ), - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=True, help_text='If an exam should be taken in exam mode'), - ), - migrations.AlterField( - model_name='exam', - name='publish_results', - field=models.BooleanField(default=False, help_text='If an exams results should be available'), - ), - migrations.AlterField( - model_name='rapidimage', - name='image', - field=models.FileField(upload_to=rapids.models.image_directory_path), - ), - ] diff --git a/rapids/migrations/0023_answer_proposed.py b/rapids/migrations/0023_answer_proposed.py deleted file mode 100644 index ced659da..00000000 --- a/rapids/migrations/0023_answer_proposed.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-05-03 11:45 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0022_auto_20210422_1143'), - ] - - operations = [ - migrations.AddField( - model_name='answer', - name='proposed', - field=models.BooleanField(default=False), - ), - ] diff --git a/rapids/migrations/0024_alter_exam_exam_mode.py b/rapids/migrations/0024_alter_exam_exam_mode.py deleted file mode 100644 index 1b502e5b..00000000 --- a/rapids/migrations/0024_alter_exam_exam_mode.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-06 19:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0023_answer_proposed'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='exam_mode', - field=models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)'), - ), - ] diff --git a/rapids/migrations/0025_auto_20210709_1135.py b/rapids/migrations/0025_auto_20210709_1135.py deleted file mode 100644 index 9e02078d..00000000 --- a/rapids/migrations/0025_auto_20210709_1135.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.2.4 on 2021-07-09 11:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0024_alter_exam_exam_mode'), - ] - - operations = [ - migrations.RemoveField( - model_name='rapid', - name='condition', - ), - migrations.RemoveField( - model_name='rapid', - name='sign', - ), - migrations.AlterField( - model_name='exam', - name='name', - field=models.CharField(help_text='Name of the exam', max_length=200), - ), - ] diff --git a/rapids/migrations/0026_exam_json_creation_id.py b/rapids/migrations/0026_exam_json_creation_id.py deleted file mode 100644 index 26606688..00000000 --- a/rapids/migrations/0026_exam_json_creation_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0025_auto_20210709_1135'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_id', - field=models.IntegerField(default=1, help_text='auto incrementing field when json recreated'), - ), - ] diff --git a/rapids/migrations/0027_rename_json_creation_id_exam_exam_json_id.py b/rapids/migrations/0027_rename_json_creation_id_exam_exam_json_id.py deleted file mode 100644 index d5ed60da..00000000 --- a/rapids/migrations/0027_rename_json_creation_id_exam_exam_json_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:47 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0026_exam_json_creation_id'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='json_creation_id', - new_name='exam_json_id', - ), - ] diff --git a/rapids/migrations/0028_auto_20210816_1306.py b/rapids/migrations/0028_auto_20210816_1306.py deleted file mode 100644 index 8b9d6db6..00000000 --- a/rapids/migrations/0028_auto_20210816_1306.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.6 on 2021-08-16 12:06 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0027_rename_json_creation_id_exam_exam_json_id'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='archive', - field=models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default'), - ), - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available to take'), - ), - ] diff --git a/rapids/migrations/0029_rapidimage_image_annotations.py b/rapids/migrations/0029_rapidimage_image_annotations.py deleted file mode 100644 index 8328f02f..00000000 --- a/rapids/migrations/0029_rapidimage_image_annotations.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.5 on 2021-08-19 14:22 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0028_auto_20210816_1306'), - ] - - operations = [ - migrations.AddField( - model_name='rapidimage', - name='image_annotations', - field=models.TextField(blank=True, help_text='Stores a JSON representation of annotations to be applied by cornerstonetools'), - ), - ] diff --git a/rapids/migrations/0030_alter_rapidimage_image_annotations.py b/rapids/migrations/0030_alter_rapidimage_image_annotations.py deleted file mode 100644 index 344245a5..00000000 --- a/rapids/migrations/0030_alter_rapidimage_image_annotations.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.6 on 2021-08-20 09:09 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0029_rapidimage_image_annotations'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image_annotations', - field=models.TextField(blank=True, help_text='Stores a JSON representation of annotations to be applied by cornerstonetools', null=True), - ), - ] diff --git a/rapids/migrations/0031_delete_note.py b/rapids/migrations/0031_delete_note.py deleted file mode 100644 index 022d6529..00000000 --- a/rapids/migrations/0031_delete_note.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 3.2.6 on 2021-09-09 17:06 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0030_alter_rapidimage_image_annotations'), - ] - - operations = [ - migrations.DeleteModel( - name='Note', - ), - ] diff --git a/rapids/migrations/0032_exam_double_mark.py b/rapids/migrations/0032_exam_double_mark.py deleted file mode 100644 index 6fdb5204..00000000 --- a/rapids/migrations/0032_exam_double_mark.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-16 07:34 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0031_delete_note'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='double_mark', - field=models.BooleanField(default=False, help_text='If the exam requires double marking'), - ), - ] diff --git a/rapids/migrations/0033_answermarks.py b/rapids/migrations/0033_answermarks.py deleted file mode 100644 index d11b11df..00000000 --- a/rapids/migrations/0033_answermarks.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-16 09:24 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('rapids', '0032_exam_double_mark'), - ] - - operations = [ - migrations.CreateModel( - name='AnswerMarks', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('score', models.CharField(choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], max_length=1)), - ('marker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rapid_marks', to=settings.AUTH_USER_MODEL)), - ('user_answer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mark', to='rapids.ciduseranswer')), - ], - ), - ] diff --git a/rapids/migrations/0034_auto_20211016_2128.py b/rapids/migrations/0034_auto_20211016_2128.py deleted file mode 100644 index 20c217d9..00000000 --- a/rapids/migrations/0034_auto_20211016_2128.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-16 20:28 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0033_answermarks'), - ] - - operations = [ - migrations.RemoveField( - model_name='exam', - name='double_mark', - ), - migrations.DeleteModel( - name='AnswerMarks', - ), - ] diff --git a/rapids/migrations/0035_exam_open_access.py b/rapids/migrations/0035_exam_open_access.py deleted file mode 100644 index 2f614dd1..00000000 --- a/rapids/migrations/0035_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0034_auto_20211016_2128'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible'), - ), - ] diff --git a/rapids/migrations/0036_alter_exam_open_access.py b/rapids/migrations/0036_alter_exam_open_access.py deleted file mode 100644 index daee87f6..00000000 --- a/rapids/migrations/0036_alter_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0035_exam_open_access'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)'), - ), - ] diff --git a/rapids/migrations/0037_auto_20211121_1020.py b/rapids/migrations/0037_auto_20211121_1020.py deleted file mode 100644 index 869b06e1..00000000 --- a/rapids/migrations/0037_auto_20211121_1020.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.4 on 2021-11-21 10:20 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0036_alter_exam_open_access'), - ] - - operations = [ - migrations.AddField( - model_name='rapidimage', - name='image_md5_hash', - field=models.CharField(max_length=32, null=True), - ), - migrations.AddField( - model_name='rapidimage', - name='is_dicom', - field=models.BooleanField(default=False), - ), - ] diff --git a/rapids/migrations/0038_alter_rapidimage_image_md5_hash.py b/rapids/migrations/0038_alter_rapidimage_image_md5_hash.py deleted file mode 100644 index f72eef2f..00000000 --- a/rapids/migrations/0038_alter_rapidimage_image_md5_hash.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-11-21 10:29 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0037_auto_20211121_1020'), - ] - - operations = [ - migrations.AlterField( - model_name='rapidimage', - name='image_md5_hash', - field=models.CharField(blank=True, max_length=32, null=True), - ), - ] diff --git a/rapids/migrations/0039_exam_valid_users.py b/rapids/migrations/0039_exam_valid_users.py deleted file mode 100644 index d24b5b6e..00000000 --- a/rapids/migrations/0039_exam_valid_users.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 22:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0015_ciduser_ciduserexam'), - ('rapids', '0038_alter_rapidimage_image_md5_hash'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_users', - field=models.ManyToManyField(blank=True, related_name='rapids_exams', to='generic.CidUser'), - ), - ] diff --git a/rapids/migrations/0040_alter_exam_valid_users.py b/rapids/migrations/0040_alter_exam_valid_users.py deleted file mode 100644 index 50eb2033..00000000 --- a/rapids/migrations/0040_alter_exam_valid_users.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-12 08:50 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0017_alter_ciduser_cid'), - ('rapids', '0039_exam_valid_users'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='valid_users', - field=models.ManyToManyField(blank=True, related_name='rapid_exams', to='generic.CidUser'), - ), - ] diff --git a/rapids/migrations/0041_ciduseranswer_score.py b/rapids/migrations/0041_ciduseranswer_score.py deleted file mode 100644 index e9f12e19..00000000 --- a/rapids/migrations/0041_ciduseranswer_score.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 20:04 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0040_alter_exam_valid_users'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='score', - field=models.CharField(blank=True, choices=[('', 'Unmarked'), ('0', 'Incorrect'), ('1', 'Half mark'), ('2', 'Correct')], default='', max_length=1), - ), - ] diff --git a/rapids/migrations/0042_auto_20211215_2036.py b/rapids/migrations/0042_auto_20211215_2036.py deleted file mode 100644 index 28dd5035..00000000 --- a/rapids/migrations/0042_auto_20211215_2036.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 20:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0041_ciduseranswer_score'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='stats_candidates', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_graph', - field=models.TextField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max_possible', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mean', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_median', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_min', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mode', - field=models.CharField(default=0, max_length=25), - ), - ] diff --git a/rapids/migrations/0043_exam_user_scores.py b/rapids/migrations/0043_exam_user_scores.py deleted file mode 100644 index 2093395d..00000000 --- a/rapids/migrations/0043_exam_user_scores.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-31 10:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0042_auto_20211215_2036'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='user_scores', - field=models.JSONField(default=dict), - ), - ] diff --git a/rapids/migrations/0044_rapid_history.py b/rapids/migrations/0044_rapid_history.py deleted file mode 100644 index 4f6bcb48..00000000 --- a/rapids/migrations/0044_rapid_history.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 21:47 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0043_exam_user_scores'), - ] - - operations = [ - migrations.AddField( - model_name='rapid', - name='history', - field=models.TextField(blank=True, null=True), - ), - ] diff --git a/rapids/migrations/0045_rapidimage_description.py b/rapids/migrations/0045_rapidimage_description.py deleted file mode 100644 index 478be033..00000000 --- a/rapids/migrations/0045_rapidimage_description.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 21:50 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0044_rapid_history'), - ] - - operations = [ - migrations.AddField( - model_name='rapidimage', - name='description', - field=models.CharField(blank=True, max_length=255, null=True), - ), - ] diff --git a/rapids/migrations/0046_exam_include_history.py b/rapids/migrations/0046_exam_include_history.py deleted file mode 100644 index e7fc27f4..00000000 --- a/rapids/migrations/0046_exam_include_history.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 21:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0045_rapidimage_description'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='include_history', - field=models.BooleanField(default=False, help_text='If an exam should include history when taking'), - ), - ] diff --git a/rapids/migrations/0047_exam_cid_user_groups.py b/rapids/migrations/0047_exam_cid_user_groups.py deleted file mode 100644 index 9e205942..00000000 --- a/rapids/migrations/0047_exam_cid_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-21 14:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('rapids', '0046_exam_include_history'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(to='generic.CidUserGroup'), - ), - ] diff --git a/rapids/migrations/0048_alter_exam_cid_user_groups.py b/rapids/migrations/0048_alter_exam_cid_user_groups.py deleted file mode 100644 index dadc5af6..00000000 --- a/rapids/migrations/0048_alter_exam_cid_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-21 16:47 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('rapids', '0047_exam_cid_user_groups'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, null=True, to='generic.CidUserGroup'), - ), - ] diff --git a/rapids/migrations/0049_alter_exam_cid_user_groups.py b/rapids/migrations/0049_alter_exam_cid_user_groups.py deleted file mode 100644 index 730cf916..00000000 --- a/rapids/migrations/0049_alter_exam_cid_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-21 16:51 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('rapids', '0048_alter_exam_cid_user_groups'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, to='generic.CidUserGroup'), - ), - ] diff --git a/rapids/migrations/0050_alter_exam_cid_user_groups.py b/rapids/migrations/0050_alter_exam_cid_user_groups.py deleted file mode 100644 index 6b0bbf3e..00000000 --- a/rapids/migrations/0050_alter_exam_cid_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-26 20:57 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0026_ciduser_generic_cid_cid_291418_idx'), - ('rapids', '0049_alter_exam_cid_user_groups'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', to='generic.CidUserGroup'), - ), - ] diff --git a/rapids/migrations/0051_exam_authors_only.py b/rapids/migrations/0051_exam_authors_only.py deleted file mode 100644 index f88eea4b..00000000 --- a/rapids/migrations/0051_exam_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-03 17:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0050_alter_exam_cid_user_groups'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only exam authors will be able to view.'), - ), - ] diff --git a/rapids/migrations/0052_rapidimage_filename.py b/rapids/migrations/0052_rapidimage_filename.py deleted file mode 100644 index 931be7b7..00000000 --- a/rapids/migrations/0052_rapidimage_filename.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-18 16:55 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0051_exam_authors_only'), - ] - - operations = [ - migrations.AddField( - model_name='rapidimage', - name='filename', - field=models.CharField(blank=True, help_text='Name of the original file when uploaded', max_length=255, null=True), - ), - ] diff --git a/rapids/migrations/0053_ciduseranswer_user.py b/rapids/migrations/0053_ciduseranswer_user.py deleted file mode 100644 index 8cf56bc7..00000000 --- a/rapids/migrations/0053_ciduseranswer_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-18 18:30 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('rapids', '0052_rapidimage_filename'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/rapids/migrations/0054_rename_valid_users_exam_valid_cid_users.py b/rapids/migrations/0054_rename_valid_users_exam_valid_cid_users.py deleted file mode 100644 index 20547203..00000000 --- a/rapids/migrations/0054_rename_valid_users_exam_valid_cid_users.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 10:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0053_ciduseranswer_user'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='valid_users', - new_name='valid_cid_users', - ), - ] diff --git a/rapids/migrations/0055_exam_valid_user_users.py b/rapids/migrations/0055_exam_valid_user_users.py deleted file mode 100644 index 7f682610..00000000 --- a/rapids/migrations/0055_exam_valid_user_users.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 10:59 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('rapids', '0054_rename_valid_users_exam_valid_cid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_user_users', - field=models.ManyToManyField(blank=True, related_name='user_rapid_exams', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/rapids/migrations/0056_exam_user_user_groups.py b/rapids/migrations/0056_exam_user_user_groups.py deleted file mode 100644 index a7eedf15..00000000 --- a/rapids/migrations/0056_exam_user_user_groups.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 17:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0029_userusergroup'), - ('rapids', '0055_exam_valid_user_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='user_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', to='generic.UserUserGroup'), - ), - ] diff --git a/rapids/migrations/0057_alter_ciduseranswer_user.py b/rapids/migrations/0057_alter_ciduseranswer_user.py deleted file mode 100644 index 84ee24c6..00000000 --- a/rapids/migrations/0057_alter_ciduseranswer_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 19:51 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('rapids', '0056_exam_user_user_groups'), - ] - - operations = [ - migrations.AlterField( - model_name='ciduseranswer', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_rapid_user_answers', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/rapids/migrations/0058_auto_20220521_1020.py b/rapids/migrations/0058_auto_20220521_1020.py deleted file mode 100644 index 5034f384..00000000 --- a/rapids/migrations/0058_auto_20220521_1020.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-21 09:20 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - ('rapids', '0057_alter_ciduseranswer_user'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='rapid_cid_user_groups', to='generic.CidUserGroup'), - ), - migrations.AlterField( - model_name='exam', - name='user_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='rapid_user_user_groups', to='generic.UserUserGroup'), - ), - ] diff --git a/rapids/migrations/0059_ciduseranswer_callstate.py b/rapids/migrations/0059_ciduseranswer_callstate.py deleted file mode 100644 index c8ba4b6b..00000000 --- a/rapids/migrations/0059_ciduseranswer_callstate.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-20 21:39 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0058_auto_20220521_1020'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='callstate', - field=models.CharField(blank=True, choices=[('C', 'Correct Call'), ('O', 'Overcall'), ('U', 'Undercall'), ('W', 'Incorrect Call'), ('P', 'Partial Call')], max_length=1, null=True), - ), - ] diff --git a/rapids/migrations/0060_exam_exam_results_emailed.py b/rapids/migrations/0060_exam_exam_results_emailed.py deleted file mode 100644 index 0ae6ee52..00000000 --- a/rapids/migrations/0060_exam_exam_results_emailed.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-26 15:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0059_ciduseranswer_callstate'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_results_emailed', - field=models.DateTimeField(default=None, null=True), - ), - ] diff --git a/rapids/migrations/0061_remove_exam_stats_graph.py b/rapids/migrations/0061_remove_exam_stats_graph.py deleted file mode 100644 index 736f6d4d..00000000 --- a/rapids/migrations/0061_remove_exam_stats_graph.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-30 20:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0060_exam_exam_results_emailed'), - ] - - operations = [ - migrations.RemoveField( - model_name='exam', - name='stats_graph', - ), - ] diff --git a/rapids/migrations/0062_alter_ciduseranswer_options.py b/rapids/migrations/0062_alter_ciduseranswer_options.py deleted file mode 100644 index 885fc003..00000000 --- a/rapids/migrations/0062_alter_ciduseranswer_options.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:11 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0061_remove_exam_stats_graph'), - ] - - operations = [ - migrations.AlterModelOptions( - name='ciduseranswer', - options={'ordering': ['cid']}, - ), - ] diff --git a/rapids/migrations/0063_rename_ciduseranswer_useranswer.py b/rapids/migrations/0063_rename_ciduseranswer_useranswer.py deleted file mode 100644 index f75b327b..00000000 --- a/rapids/migrations/0063_rename_ciduseranswer_useranswer.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:14 - -from django.conf import settings -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('rapids', '0062_alter_ciduseranswer_options'), - ] - - operations = [ - migrations.RenameModel( - old_name='CidUserAnswer', - new_name='UserAnswer', - ), - ] diff --git a/rapids/migrations/0064_rapid_authors_only.py b/rapids/migrations/0064_rapid_authors_only.py deleted file mode 100644 index 04907682..00000000 --- a/rapids/migrations/0064_rapid_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0063_rename_ciduseranswer_useranswer'), - ] - - operations = [ - migrations.AddField( - model_name='rapid', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only question authors will be able to view.'), - ), - ] diff --git a/rapids/migrations/0065_remove_rapid_published_date.py b/rapids/migrations/0065_remove_rapid_published_date.py deleted file mode 100644 index dc459333..00000000 --- a/rapids/migrations/0065_remove_rapid_published_date.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:36 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0064_rapid_authors_only'), - ] - - operations = [ - migrations.RemoveField( - model_name='rapid', - name='published_date', - ), - ] diff --git a/rapids/migrations/0066_alter_rapid_feedback.py b/rapids/migrations/0066_alter_rapid_feedback.py deleted file mode 100644 index 80e0081f..00000000 --- a/rapids/migrations/0066_alter_rapid_feedback.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rapids', '0065_remove_rapid_published_date'), - ] - - operations = [ - migrations.AlterField( - model_name='rapid', - name='feedback', - field=models.TextField(blank=True, help_text='Question Feedback', null=True), - ), - ] diff --git a/sbas/migrations/0001_initial.py b/sbas/migrations/0001_initial.py index 814a6b65..83ace72b 100644 --- a/sbas/migrations/0001_initial.py +++ b/sbas/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.5 on 2021-07-28 18:07 +# Generated by Django 4.1.4 on 2023-06-12 10:07 from django.conf import settings from django.db import migrations, models @@ -12,6 +12,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ('generic', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] @@ -23,55 +24,99 @@ class Migration(migrations.Migration): ('category', models.CharField(max_length=200)), ], ), - migrations.CreateModel( - name='Question', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('stem', models.TextField(help_text='Stem of the question')), - ('a_answer', models.TextField(default=True, help_text='Answer text')), - ('a_feedback', models.TextField(blank=True, help_text='Feedback for answer')), - ('b_answer', models.TextField(default=True, help_text='Answer text')), - ('b_feedback', models.TextField(blank=True, help_text='Feedback for answer')), - ('c_answer', models.TextField(default=True, help_text='Answer text')), - ('c_feedback', models.TextField(blank=True, help_text='Feedback for answer')), - ('d_answer', models.TextField(default=True, help_text='Answer text')), - ('d_feedback', models.TextField(blank=True, help_text='Feedback for answer')), - ('e_answer', models.TextField(default=True, help_text='Answer text')), - ('e_feedback', models.TextField(blank=True, help_text='Feedback for answer')), - ('feedback', models.TextField(blank=True, help_text='General question feedback')), - ('best_answer', models.CharField(choices=[('a', 'answer_a'), ('b', 'answer_b'), ('c', 'answer_c'), ('d', 'answer_d'), ('e', 'answer_e')], help_text='The correct answer', max_length=20)), - ('created_date', models.DateTimeField(default=django.utils.timezone.now)), - ('author', models.ManyToManyField(blank=True, help_text='Author(s) of question', related_name='sbas_authored_questions', to=settings.AUTH_USER_MODEL)), - ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='sbas.category')), - ], - ), migrations.CreateModel( name='Exam', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(help_text='Name of the exam', max_length=200)), - ('active', models.BooleanField(default=False, help_text='If an exam should be available')), + ('active', models.BooleanField(default=False, help_text='If an exam should be available to take')), ('exam_mode', models.BooleanField(default=False, help_text='If an exam should be taken in exam mode (users results will be submited to the server for marking)')), + ('include_history', models.BooleanField(default=False, help_text='If an exam should include history when taking')), ('publish_results', models.BooleanField(default=False, help_text='If an exams results should be available')), ('json_creation_time', models.DateTimeField(blank=True, default=None, null=True)), + ('exam_json_id', models.IntegerField(default=1, help_text='auto incrementing field when json recreated')), + ('archive', models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default')), + ('open_access', models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)')), + ('authors_only', models.BooleanField(default=False, help_text='If true only exam authors will be able to view.')), + ('stats_mean', models.FloatField(default=0)), + ('stats_mode', models.CharField(default=0, max_length=25)), + ('stats_median', models.FloatField(default=0)), + ('stats_candidates', models.FloatField(default=0)), + ('stats_min', models.FloatField(default=0)), + ('stats_max', models.FloatField(default=0)), + ('stats_max_possible', models.FloatField(default=0)), + ('user_scores', models.JSONField(default=dict)), + ('exam_results_emailed', models.DateTimeField(default=None, null=True)), ('time_limit', models.IntegerField(blank=True, help_text='Exam time limit (in seconds)', null=True)), ('author', models.ManyToManyField(blank=True, help_text='Author of exam', related_name='sba_exam_author', to=settings.AUTH_USER_MODEL)), - ('exam_questions', sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='sbas.Question')), + ('cid_user_groups', models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='sba_cid_user_groups', to='generic.cidusergroup')), ], options={ 'abstract': False, }, ), migrations.CreateModel( - name='CidUserAnswer', + name='Question', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer', models.CharField(choices=[('a', 'answer_a'), ('b', 'answer_b'), ('c', 'answer_c'), ('d', 'answer_d'), ('e', 'answer_e')], help_text='The correct answer', max_length=20)), - ('cid', models.IntegerField(blank=True, null=True)), + ('authors_only', models.BooleanField(default=False, help_text='If true only question authors will be able to view.')), + ('created_date', models.DateTimeField(default=django.utils.timezone.now)), + ('open_access', models.BooleanField(default=True, help_text='If a question should be freely available to browse')), + ('stem', models.TextField(help_text='Stem of the question')), + ('a_answer', models.TextField(help_text='Answer text')), + ('a_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('b_answer', models.TextField(help_text='Answer text')), + ('b_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('c_answer', models.TextField(help_text='Answer text')), + ('c_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('d_answer', models.TextField(help_text='Answer text')), + ('d_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('e_answer', models.TextField(help_text='Answer text')), + ('e_feedback', models.TextField(blank=True, help_text='Feedback for answer')), + ('feedback', models.TextField(blank=True, help_text='General question feedback')), + ('best_answer', models.CharField(choices=[('a', 'a_answer'), ('b', 'b_answer'), ('c', 'c_answer'), ('d', 'd_answer'), ('e', 'e_answer')], help_text='The correct answer', max_length=20)), + ('author', models.ManyToManyField(blank=True, help_text='Author(s) of question', related_name='sbas_authored_questions', to=settings.AUTH_USER_MODEL)), + ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='sbas.category')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='UserAnswer', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cid', models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), + ('answer', models.CharField(choices=[('a', 'a_answer'), ('b', 'b_answer'), ('c', 'c_answer'), ('d', 'd_answer'), ('e', 'e_answer')], help_text='The correct answer', max_length=20)), ('exam', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='sbas.exam')), ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cid_user_answers', to='sbas.question')), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_sbas_user_answers', to=settings.AUTH_USER_MODEL)), ], + options={ + 'ordering': ['cid'], + 'abstract': False, + }, + ), + migrations.AddField( + model_name='exam', + name='exam_questions', + field=sortedm2m.fields.SortedManyToManyField(blank='true', help_text=None, related_name='exams', to='sbas.question'), + ), + migrations.AddField( + model_name='exam', + name='user_user_groups', + field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='sba_user_user_groups', to='generic.userusergroup'), + ), + migrations.AddField( + model_name='exam', + name='valid_cid_users', + field=models.ManyToManyField(blank=True, related_name='sba_exams', to='generic.ciduser'), + ), + migrations.AddField( + model_name='exam', + name='valid_user_users', + field=models.ManyToManyField(blank=True, related_name='user_sba_exams', to=settings.AUTH_USER_MODEL), ), ] diff --git a/sbas/migrations/0002_auto_20210801_0918.py b/sbas/migrations/0002_auto_20210801_0918.py deleted file mode 100644 index c54dd861..00000000 --- a/sbas/migrations/0002_auto_20210801_0918.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='json_creation_id', - field=models.IntegerField(default=1, help_text='auto incrementing field when json recreated'), - ), - migrations.AlterField( - model_name='ciduseranswer', - name='answer', - field=models.CharField(choices=[('a', 'a_answer'), ('b', 'b_answer'), ('c', 'c_answer'), ('d', 'd_answer'), ('e', 'e_answer')], help_text='The correct answer', max_length=20), - ), - migrations.AlterField( - model_name='question', - name='a_answer', - field=models.TextField(help_text='Answer text'), - ), - migrations.AlterField( - model_name='question', - name='b_answer', - field=models.TextField(help_text='Answer text'), - ), - migrations.AlterField( - model_name='question', - name='best_answer', - field=models.CharField(choices=[('a', 'a_answer'), ('b', 'b_answer'), ('c', 'c_answer'), ('d', 'd_answer'), ('e', 'e_answer')], help_text='The correct answer', max_length=20), - ), - migrations.AlterField( - model_name='question', - name='c_answer', - field=models.TextField(help_text='Answer text'), - ), - migrations.AlterField( - model_name='question', - name='d_answer', - field=models.TextField(help_text='Answer text'), - ), - migrations.AlterField( - model_name='question', - name='e_answer', - field=models.TextField(help_text='Answer text'), - ), - ] diff --git a/sbas/migrations/0003_rename_json_creation_id_exam_exam_json_id.py b/sbas/migrations/0003_rename_json_creation_id_exam_exam_json_id.py deleted file mode 100644 index c79d4f4c..00000000 --- a/sbas/migrations/0003_rename_json_creation_id_exam_exam_json_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.4 on 2021-08-01 08:47 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0002_auto_20210801_0918'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='json_creation_id', - new_name='exam_json_id', - ), - ] diff --git a/sbas/migrations/0004_auto_20210816_1306.py b/sbas/migrations/0004_auto_20210816_1306.py deleted file mode 100644 index e01cbc3c..00000000 --- a/sbas/migrations/0004_auto_20210816_1306.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.6 on 2021-08-16 12:06 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0003_rename_json_creation_id_exam_exam_json_id'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='archive', - field=models.BooleanField(default=False, help_text='Archived exams will remain on the test system but will not be displayed by default'), - ), - migrations.AlterField( - model_name='exam', - name='active', - field=models.BooleanField(default=False, help_text='If an exam should be available to take'), - ), - ] diff --git a/sbas/migrations/0005_exam_open_access.py b/sbas/migrations/0005_exam_open_access.py deleted file mode 100644 index 75c8b3ed..00000000 --- a/sbas/migrations/0005_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:03 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0004_auto_20210816_1306'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible'), - ), - ] diff --git a/sbas/migrations/0006_alter_exam_open_access.py b/sbas/migrations/0006_alter_exam_open_access.py deleted file mode 100644 index bd06f0b9..00000000 --- a/sbas/migrations/0006_alter_exam_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.8 on 2021-10-17 17:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0005_exam_open_access'), - ] - - operations = [ - migrations.AlterField( - model_name='exam', - name='open_access', - field=models.BooleanField(default=False, help_text='If the exam is freely accessible (to view and edit on the test system)'), - ), - ] diff --git a/sbas/migrations/0007_exam_valid_users.py b/sbas/migrations/0007_exam_valid_users.py deleted file mode 100644 index 48a5b16a..00000000 --- a/sbas/migrations/0007_exam_valid_users.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-11 22:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0015_ciduser_ciduserexam'), - ('sbas', '0006_alter_exam_open_access'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_users', - field=models.ManyToManyField(blank=True, related_name='sba_exams', to='generic.CidUser'), - ), - ] diff --git a/sbas/migrations/0008_auto_20211215_2036.py b/sbas/migrations/0008_auto_20211215_2036.py deleted file mode 100644 index 9926752e..00000000 --- a/sbas/migrations/0008_auto_20211215_2036.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 3.2.8 on 2021-12-15 20:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0007_exam_valid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='stats_candidates', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_graph', - field=models.TextField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_max_possible', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mean', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_median', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_min', - field=models.FloatField(default=0), - ), - migrations.AddField( - model_name='exam', - name='stats_mode', - field=models.CharField(default=0, max_length=25), - ), - ] diff --git a/sbas/migrations/0009_exam_user_scores.py b/sbas/migrations/0009_exam_user_scores.py deleted file mode 100644 index 6bea5c66..00000000 --- a/sbas/migrations/0009_exam_user_scores.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2021-12-31 10:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0008_auto_20211215_2036'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='user_scores', - field=models.JSONField(default=dict), - ), - ] diff --git a/sbas/migrations/0010_exam_include_history.py b/sbas/migrations/0010_exam_include_history.py deleted file mode 100644 index 691235dd..00000000 --- a/sbas/migrations/0010_exam_include_history.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.10 on 2022-04-04 21:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0009_exam_user_scores'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='include_history', - field=models.BooleanField(default=False, help_text='If an exam should include history when taking'), - ), - ] diff --git a/sbas/migrations/0011_exam_authors_only.py b/sbas/migrations/0011_exam_authors_only.py deleted file mode 100644 index 9c66193c..00000000 --- a/sbas/migrations/0011_exam_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-03 17:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0010_exam_include_history'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only exam authors will be able to view.'), - ), - ] diff --git a/sbas/migrations/0012_rename_valid_users_exam_valid_cid_users.py b/sbas/migrations/0012_rename_valid_users_exam_valid_cid_users.py deleted file mode 100644 index a68660f1..00000000 --- a/sbas/migrations/0012_rename_valid_users_exam_valid_cid_users.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 10:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0011_exam_authors_only'), - ] - - operations = [ - migrations.RenameField( - model_name='exam', - old_name='valid_users', - new_name='valid_cid_users', - ), - ] diff --git a/sbas/migrations/0013_exam_valid_user_users.py b/sbas/migrations/0013_exam_valid_user_users.py deleted file mode 100644 index 7d134e1e..00000000 --- a/sbas/migrations/0013_exam_valid_user_users.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-20 12:42 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('sbas', '0012_rename_valid_users_exam_valid_cid_users'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='valid_user_users', - field=models.ManyToManyField(blank=True, related_name='user_sba_exams', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/sbas/migrations/0014_auto_20220521_2135.py b/sbas/migrations/0014_auto_20220521_2135.py deleted file mode 100644 index d61656b1..00000000 --- a/sbas/migrations/0014_auto_20220521_2135.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 3.2.13 on 2022-05-21 20:35 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('generic', '0032_userprofile_registration_number'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('sbas', '0013_exam_valid_user_users'), - ] - - operations = [ - migrations.AddField( - model_name='ciduseranswer', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_sbas_user_answers', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='exam', - name='cid_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='sba_cid_user_groups', to='generic.CidUserGroup'), - ), - migrations.AddField( - model_name='exam', - name='user_user_groups', - field=models.ManyToManyField(blank=True, help_text='These groups define which candidates are able to be added to the exams/collection.', related_name='sba_user_user_groups', to='generic.UserUserGroup'), - ), - ] diff --git a/sbas/migrations/0015_exam_exam_results_emailed.py b/sbas/migrations/0015_exam_exam_results_emailed.py deleted file mode 100644 index 34f1c069..00000000 --- a/sbas/migrations/0015_exam_exam_results_emailed.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-26 15:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0014_auto_20220521_2135'), - ] - - operations = [ - migrations.AddField( - model_name='exam', - name='exam_results_emailed', - field=models.DateTimeField(default=None, null=True), - ), - ] diff --git a/sbas/migrations/0016_remove_exam_stats_graph.py b/sbas/migrations/0016_remove_exam_stats_graph.py deleted file mode 100644 index 8b34617a..00000000 --- a/sbas/migrations/0016_remove_exam_stats_graph.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.13 on 2022-06-30 20:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0015_exam_exam_results_emailed'), - ] - - operations = [ - migrations.RemoveField( - model_name='exam', - name='stats_graph', - ), - ] diff --git a/sbas/migrations/0017_alter_ciduseranswer_options_alter_ciduseranswer_cid.py b/sbas/migrations/0017_alter_ciduseranswer_options_alter_ciduseranswer_cid.py deleted file mode 100644 index 4b5c94b4..00000000 --- a/sbas/migrations/0017_alter_ciduseranswer_options_alter_ciduseranswer_cid.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0016_remove_exam_stats_graph'), - ] - - operations = [ - migrations.AlterModelOptions( - name='ciduseranswer', - options={'ordering': ['cid']}, - ), - migrations.AlterField( - model_name='ciduseranswer', - name='cid', - field=models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True), - ), - ] diff --git a/sbas/migrations/0018_rename_ciduseranswer_useranswer.py b/sbas/migrations/0018_rename_ciduseranswer_useranswer.py deleted file mode 100644 index 8ac861cc..00000000 --- a/sbas/migrations/0018_rename_ciduseranswer_useranswer.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-15 10:14 - -from django.conf import settings -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('sbas', '0017_alter_ciduseranswer_options_alter_ciduseranswer_cid'), - ] - - operations = [ - migrations.RenameModel( - old_name='CidUserAnswer', - new_name='UserAnswer', - ), - ] diff --git a/sbas/migrations/0019_question_authors_only.py b/sbas/migrations/0019_question_authors_only.py deleted file mode 100644 index 9e43648b..00000000 --- a/sbas/migrations/0019_question_authors_only.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0018_rename_ciduseranswer_useranswer'), - ] - - operations = [ - migrations.AddField( - model_name='question', - name='authors_only', - field=models.BooleanField(default=False, help_text='If true only question authors will be able to view.'), - ), - ] diff --git a/sbas/migrations/0020_question_open_access.py b/sbas/migrations/0020_question_open_access.py deleted file mode 100644 index 3efcf6a5..00000000 --- a/sbas/migrations/0020_question_open_access.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.4 on 2023-05-22 12:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sbas', '0019_question_authors_only'), - ] - - operations = [ - migrations.AddField( - model_name='question', - name='open_access', - field=models.BooleanField(default=True, help_text='If a question should be freely available to browse'), - ), - ] diff --git a/wally/migrations/0001_initial.py b/wally/migrations/0001_initial.py index 6ec1b4a8..fdfb0ba3 100644 --- a/wally/migrations/0001_initial.py +++ b/wally/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.1.3 on 2021-04-22 11:43 +# Generated by Django 4.1.4 on 2023-06-12 10:07 from django.db import migrations, models import django.db.models.deletion