devilry 6.2.3__tar.gz → 6.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devilry-6.2.3 → devilry-6.3.0}/PKG-INFO +6 -3
- devilry-6.3.0/devilry/__init__.py +1 -0
- devilry-6.3.0/devilry/devilry_admin/views/assignment/download_files/backends.py +21 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/download_files/batch_download_api.py +7 -2
- devilry-6.3.0/devilry/devilry_admin/views/assignment/download_files/download_archive.py +84 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/allauth_adapter.py +14 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/abstract_batch_action.py +1 -17
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/backend_registry.py +20 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/backends/backend_mock.py +11 -2
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/backends/backends_base.py +134 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/batchjob_mixins/assignment_mixin.py +13 -2
- devilry-6.3.0/devilry/devilry_compressionutil/batchjob_mixins/feedbackset_mixin.py +104 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/tests/test_backend.py +36 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/cradmin_legacy/standalone-base.django.html +3 -1
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/comment_email/comment_email.py +6 -3
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/tests/test_comment_email.py +55 -3
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/download_files/backends.py +2 -1
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/download_files/batch_download_api.py +8 -0
- devilry-6.3.0/devilry/devilry_examiner/views/assignment/download_files/download_archive.py +83 -0
- devilry-6.3.0/devilry/devilry_group/management/commands/mock_data.py +166 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/models.py +14 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/batch_download_archive_script.django.html +28 -6
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/download_files/backends.py +11 -8
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/download_files/batch_download_api.py +4 -1
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/download_files/batch_download_files.py +50 -22
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/student/feedbackfeed_student.py +4 -1
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/print_view.html +10 -13
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/status_show.html +3 -6
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/views/qualification_preview_view.py +3 -7
- {devilry-6.2.3 → devilry-6.3.0}/devilry/locale/en/LC_MESSAGES/django.po +24 -27
- devilry-6.3.0/devilry/locale/nb/LC_MESSAGES/django.mo +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/locale/nb/LC_MESSAGES/django.po +32 -28
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/settings.py +2 -1
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/dev_urls.py +1 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/settings/develop.py +12 -2
- devilry-6.3.0/devilry/utils/demodb/__init__.py +0 -0
- devilry-6.3.0/devilry/utils/graphviz/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/pyproject.toml +6 -2
- devilry-6.2.3/devilry/__init__.py +0 -1
- devilry-6.2.3/devilry/devilry_admin/views/assignment/download_files/backends.py +0 -17
- devilry-6.2.3/devilry/devilry_admin/views/assignment/download_files/download_archive.py +0 -53
- devilry-6.2.3/devilry/devilry_compressionutil/batchjob_mixins/feedbackset_mixin.py +0 -84
- devilry-6.2.3/devilry/devilry_examiner/views/assignment/download_files/download_archive.py +0 -53
- devilry-6.2.3/devilry/locale/nb/LC_MESSAGES/django.mo +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/.gitignore +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/LICENSE +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/README.md +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/.coveragerc +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/api/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/api/applicationstate.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/baker_recipes.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/deliverystore.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/devilry_core_baker_factories.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/group_user_lookup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0002_auto_20150915_1127.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0003_auto_20150917_1537.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0004_examiner_relatedexaminer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0005_relatedexaminer_automatic_anonymous_id.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0006_auto_20151112_1851.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0007_assignment_gradeform_setup_json.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0008_auto_20151222_1955.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0009_assignmentgroup_batchoperation.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0010_assignment_anonymizationmode.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0011_datamigrate_anonymous_to_anonymizationmode.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0012_auto_20160111_2019.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0013_auto_20160111_2021.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0014_auto_20160112_1052.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0015_assignment_uses_custom_candidate_ids.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0016_auto_20160112_1831.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0017_candidate_relatedstudent_replaces_student_field.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0018_auto_20160112_1923.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0019_auto_20160113_2037.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0020_relatedexaminer_active.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0021_examiner_relatedexaminer_replaces_user_field.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0022_auto_20160114_1520.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0023_auto_20160114_1522.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0024_auto_20160114_1524.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0025_auto_20160114_1525.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0026_auto_20160114_1528.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0027_auto_20160116_1843.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0028_auto_20160119_0337.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0029_assignmentgrouphistory.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0030_auto_20170124_1504.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0031_auto_20170125_1601.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0032_datamigrate_update_for_no_none_values_in_assignment_firstdeadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0033_auto_20170220_1330.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0034_auto_20170303_1308.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0035_auto_20170523_1747.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0036_auto_20170523_1748.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0037_auto_20170620_1515.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0038_auto_20170621_1720.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0039_assignmentgroup_internal_is_being_deleted.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0040_auto_20180214_1654.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0041_auto_20180220_0651.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0042_candidateassignmentgrouphistory_examinerassignmentgrouphistory.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0043_auto_20180302_1139.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0044_auto_20190624_1238.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0045_auto_20210427_1350.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/0046_auto_20220519_1043.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/abstract_applicationkeyvalue.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/abstract_is_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/abstract_is_candidate.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/abstract_is_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/administrators.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/assignment_group.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/assignment_group_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/basenode.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/candidate.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/custom_db_fields.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/delivery.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/deliverytypes.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/devilryuserprofile.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/examiner_candidate_group_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/filemeta.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/groupinvite.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/model_utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/period_tag.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/pointrange_to_grade.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/relateduser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/save_interface.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/static_feedback.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/models/subject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/comment-summary.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/grade-base-plain.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/grade-base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/grade-full-plain.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/grade-full.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/grade-short.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/groupstatus.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/multiple-candidates-long-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/multiple-candidates-short-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/multiple-examiners-long-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/multiple-examiners-short-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/period-tags-on-period.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/relatedexaminers-on-period-tag.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/relatedstudents-on-period-tag.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/relatedusers-on-period-tag.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/single-candidate-long-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/single-candidate-short-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/single-examiner-long-displayname-plain.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/single-examiner-long-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/devilry_core/templatetags/single-examiner-short-displayname.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/assignment_text.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/assignmentgroup_candidates.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/assignmentgroup_examiners.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/assignmentgroup_tags.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/assignmentgroup_text.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/basenode_text.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/format_user.django.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/node_text.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/period_text.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templates/search/indexes/core/subject_text.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templatetags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/templatetags/devilry_core_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/testhelper.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/testhelpers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_assignment_group.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_assignment_group_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_candidate.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_devilry_core_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_group_user_lookup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_groupinvite.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_period_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_pointrange_to_grade.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_relateduser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/tests/test_subject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/apps/core/views/download_staticfeedbackfileattachment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/coreutils/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/coreutils/utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/defaults/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/defaults/encoding.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/authbackend/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/authbackend/default.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/authbackend/ldap.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/baker_recipes.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/cradminextensions/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/cradminextensions/devilry_crmenu_account.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/crapps/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/crapps/account/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/crapps/account/index.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/crapps/account/select_language.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/crapps/account/utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/crinstance_account.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/exceptions.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/middleware.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0002_auto_20150917_1731.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0003_datamigrate-admins-into-permissiongroups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0004_auto_20151222_1955.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0005_auto_20160113_2037.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0006_auto_20160120_0424.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0007_auto_20210427_1350.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0008_auto_20220510_1307.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/0009_mergeduser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/templates/devilry_account/crapps/account/index.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/templates/devilry_account/crapps/account/select_language.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/templates/devilry_account/templatetags/multiple-users-verbose-inline.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/templates/devilry_account/templatetags/user-verbose-inline-plain.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/templates/devilry_account/templatetags/user-verbose-inline.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/templatetags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/templatetags/devilry_account_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/authbackend/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/authbackend/test_default.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_crapps/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_crapps/test_account/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_crapps/test_account/test_index.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_crapps/test_account/test_select_language.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_devilry_account_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_middleware.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/tests/test_user_merger.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_account/user_merger.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/devilry_crinstance_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/devilry_crmenu_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listbuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listbuilder/listbuilder_assignmentgroup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listbuilder/listbuilder_relatedexaminer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listbuilder/listbuilder_relatedstudent.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listfilter/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listfilter/listfilter_assignmentgroup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listfilter/listfilter_relateduser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/listfilter/listfilter_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/multiselect2/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/cradminextensions/multiselect2/multiselect2_relatedstudent.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/listbuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/listbuilder/admindashboard_subject_listbuilder.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tasks.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/add_groups_to_examiner.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/bulk_organize/manual-add.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/bulk_organize/manual-replace.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/bulk_organize/organize-by-tag-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/bulk_organize/organize-by-tag.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/bulk_organize/random.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/bulk_organize/select_method.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/examinerdetails.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/examiners/remove_groups_from_examiner.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/gradingconfiguration-update/custom-table.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/gradingconfiguration-update/gradingconfiguration-update.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/include/examiners.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/include/gradingconfiguration.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/include/published.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/include/settings.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/include/statistics.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/include/students.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/include/utilities.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/includes/batchdownload_assignment.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/passed_previous_period/assignment-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/passed_previous_period/assignment-overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/passed_previous_period/candidate-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/passed_previous_period/confirm-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/passed_previous_period/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/passed_previous_period/select-period-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/passed_previous_period/select_groups_to_pass.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/statistics/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/choose-accumulated-score.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/choose-assignment-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/choose-method.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/choose-period-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/confirm.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/grading_points_based/includes/select-assignment-item-value-description.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/grading_points_based/preview-relatedstudent-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/grading_points_based/preview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/grading_points_based/select-assignments.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/grading_points_based/selectable-assignment-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/grading_points_based/selected-assignment-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/create_groups/manual-select-students.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/delete_groups/choose-assignment-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/delete_groups/choose-method.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/delete_groups/choose-period-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/delete_groups/confirm.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/delete_groups.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/groupdetails/details-renderable.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/groupdetails/view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/groupview_base/base-info-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/groupview_base/base-multiselect-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/groupview_base/include/no-items-message.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/merge_groups.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/assignment/students/split_groups.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/common/abstract-type-in-users.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/common/admin-list-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/common/admins-explained.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/dashboard/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/dashboard/student_feedbackfeed_wizard/group_by_assignment.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/dashboard/student_feedbackfeed_wizard/student_feedbackfeed_list_groups.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/dashboard/student_feedbackfeed_wizard/student_feedbackfeed_list_users.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/listbuilder/admindashboard_subject_listbuilder/value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/listbuilder/assignmentgroup_listbuilder/value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/listbuilder/listbuilder_relatedexaminer/onassignment-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/listbuilder/listbuilder_relatedstudent/readonly-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/multiselect2/multiselect2_relatedstudent/itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/multiselect2/multiselect2_relatedstudent/selecteditem.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/admins/add.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/admins/overview-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/admins/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/all_results_overview/column_header_item.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/all_results_overview/devilry_admin_all_results_overview_table.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/all_results_overview/devilry_all_results_overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/all_results_overview/result_cell_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/all_results_overview/student_cell_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/createassignment/createassignment.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/createassignment/helpbox.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/createassignment/success_message.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/createassignment/suggested_deadlines.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/edit/updateview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/examiners/add.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/examiners/overview-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/examiners/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/manage_tags/add-tag.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/manage_tags/base-multiselect-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/manage_tags/crud.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/manage_tags/delete.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/manage_tags/manage-tags-list-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/manage_tags/relatedusers/select-method.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/manage_tags/tag-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/qualifiedforfinalexams/statuslistview-info-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/qualifiedforfinalexams/userlistview-info-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/students/add.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/students/overview-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/students/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/students/students-not-added-to-assignments-warning.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/period/students/userselectview-no-searchresults-message.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/subject/admins/add.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/subject/admins/overview-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/subject/admins/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/subject/edit/updateview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/subject/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/templates/devilry_admin/subject/overview_for_period_admins.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/examiners/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/examiners/test_add_groups_to_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/examiners/test_bulk_organize.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/examiners/test_examinerdetails.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/examiners/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/examiners/test_remove_groups_from_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/passed_previous_semester/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/passed_previous_semester/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/passed_previous_semester/test_passed_previous_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/passed_previous_semester/test_passed_previous_period_manual.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_create_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_create_groups_accumulated_score.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_delete_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_groupdetails.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_groupview_base/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_groupview_base/test_baseinforview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_groupview_base/test_basemultiselectview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_groupview_base/test_groupviewmixin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_merge_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_replace_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/students/test_split_group.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_anonymizationmode.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_batchframework_tasks.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_crinstance_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_deadline_handling.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_download_files/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_download_files/test_batchdownload_api.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_examiner_selfassign.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_examiner_statistics.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_first_deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_grading_configuration.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_long_and_shortname.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_projectgroups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/assignment/test_publishing_time.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/common/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/common/admins_common_testmixins.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/common/test_bulkimport_users_common.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/cradminextensions/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/cradminextensions/test_devilry_crmenu_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/cradminextensions/test_listbuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/cradminextensions/test_listbuilder/test_listbuilder_relatedexaminer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/cradminextensions/test_listbuilder/test_listbuilder_relatedstudent.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/cradminextensions/test_multiselect2/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/cradminextensions/test_multiselect2/test_multiselect2_relatedstudent.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/dashboard/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/dashboard/test_createsubject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/dashboard/test_crinstance_dashboard.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/dashboard/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/dashboard/test_student_feedbackfeed_wizard/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/dashboard/test_student_feedbackfeed_wizard/test_assignment_listview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/dashboard/test_student_feedbackfeed_wizard/test_student_listview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_admins.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_createassignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_crinstance_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_edit.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_examiners.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_manage_tags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_manage_tags/test_manage_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_manage_tags/test_manage_tags_relatedusers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_overview_all_results.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_period_all_results_collector.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_report/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_report/test_all_results_generator.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/period/test_students.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject/test_admins.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject/test_createperiod.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject/test_crinstance_subject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject/test_edit.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject_for_period_admin/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject_for_period_admin/test_crinstance_for_periodadmin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject_for_period_admin/test_overview_for_periodadmin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/tests/subject_for_period_admin/test_subject_redirect.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/anonymizationmode.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/crinstance_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/deadline_handling.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/download_files/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiner_selfassign.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiners/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiners/add_groups_to_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiners/base_single_examinerview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiners/bulk_organize.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiners/examinerdetails.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiners/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/examiners/remove_groups_from_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/first_deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/gradingconfiguration.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/long_and_shortname.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/passed_previous_period/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/passed_previous_period/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/passed_previous_period/passed_previous_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/passed_previous_period/passed_previous_semester_manual.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/projectgroups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/publishing_time.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/statistics/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/statistics/statistics_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/create_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/create_groups_accumulated_score.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/delete_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/groupdetails.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/groupview_base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/manage_deadlines.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/merge_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/replace_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/assignment/students/split_group.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/common/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/common/bulkimport_users_common.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/createsubject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/crinstance_dashboard.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/student_feedbackfeed_wizard/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/student_feedbackfeed_wizard/assignment_list.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/student_feedbackfeed_wizard/filters.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/dashboard/student_feedbackfeed_wizard/student_list.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/admins.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/all_results_generator.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/createassignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/crinstance_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/edit.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/examiners.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/manage_tags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/manage_tags/manage_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/overview_all_results.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/overview_all_results_collector.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/period/students.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject/admins.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject/createperiod.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject/crinstance_subject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject/edit.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject_for_period_admin/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject_for_period_admin/crinstance_subject_for_periodadmin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject_for_period_admin/overview_for_periodadmin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_admin/views/subject_for_period_admin/subject_redirect.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/socialaccount_user_updaters.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/templates/devilry_authenticate/allauth/login.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/templates/devilry_authenticate/allauth/logout.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/views/allauth_views.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_authenticate/views/custom_login_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/create_users.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/templates/devilry_bulkcreate_users/confirm_bulkcreated_users.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/templates/devilry_bulkcreate_users/show_bulkcreated_users.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/templates/devilry_bulkcreate_users/submit_bulkcreate_users.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_bulkcreate_users/views/submit_bulk_users.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_changelog/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_changelog/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/api/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/api/preview_markdown.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/editor_widget.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0002_auto_20160109_1210.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0003_auto_20160109_1239.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0004_commentfile_created_datetime.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0005_auto_20160122_1709.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0006_auto_20170621_1720.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0007_auto_20170630_0309.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0008_commentfile_v2_id.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0009_auto_20180509_1528.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0010_commentedithistory.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/0011_auto_20220421_1242.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/templates/devilry_comment/devilry_markdown_editor.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/templates/devilry_comment/markdown_help.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/tests/test_models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_comment/views/markdown_help.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/backends/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/batchjob_mixins/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/0002_auto_20170119_1202.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/0003_auto_20170119_1648.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/0004_auto_20170120_1733.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/0005_compressedarchivemeta_created_by.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/0006_compressedarchivemeta_created_by_role.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/0007_auto_20181002_1053.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/tests/test_model.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/tests/test_registry.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_acemarkdown.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_crinstance.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_crmenu.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_css_icon_map.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/assignmentgroup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/common.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/feedbackfeed_sidebar.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/feedbackfeed_timeline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/permissiongroup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/permissiongroupuser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/subject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listbuilder/user.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listfilter/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listfilter/assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listfilter/assignmentgroup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listfilter/user.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_listfilter/utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_multiselect2/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_multiselect2/user.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_tablebuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_tablebuilder/base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/devilry_tablebuilder/base_new.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/common/goforwardlinkitemframe.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_acemarkdown.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_crmenu/account-menuitem.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_crmenu/breadcrumb-menuitem.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_crmenu/menu.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignment/description.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/examiner-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/fully-anonymous-subjectadmin-group-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/include/groupdetails.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/include/grouptitle.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/minimal-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/minimal-unanonymized-selected-item.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/multiselect-examiner-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/multiselect-fully-anonymous-subjectadmin-group-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/multiselect-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/selected-item-full.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/assignmentgroup/student-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/period/admin-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/period/student-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/permissiongroup/subjectorperiodpermissiongroup-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listbuilder/subject/admin-itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_listfilter/utils/devilry_with_result_value_renderable.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_tablebuilder/header_itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_tablebuilder/itemframe.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_tablebuilder/itemvalue.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_tablebuilder/row.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/devilry_tablebuilder/table.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/new_devilry_tablebuilder/base_cell.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/new_devilry_tablebuilder/base_row.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/new_devilry_tablebuilder/base_tablebuilder.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/viewhelpers/devilry_confirmview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/viewhelpers/devilry_createview_with_backlink.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/templates/devilry_cradmin/viewhelpers/devilry_updateview_with_backlink.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_assignmentgroup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_feedbackfeed_sidebar.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_feedbackfeed_timeline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_permissiongroup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_permissiongroupuser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listbuilder/test_user.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listfilter/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_listfilter/test_assignmentgroup_listfilter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_multiselect2/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_devilry_multiselect2/test_user.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_tablebuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/tests/test_tablebuilder/test_table.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/viewhelpers/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_cradmin/viewhelpers/devilry_confirmview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dataporten_allauth/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dataporten_allauth/callback.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dataporten_allauth/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dataporten_allauth/provider.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dataporten_allauth/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dataporten_allauth/views.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/bulk_create_queryset_mixin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/assignment/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/assignment_group/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/assignment_group_cached_data/rebuild.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/candidate/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/comment/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/commentfile/helperfunctions.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/commentfile/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/examiner/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/feedbackset/helperfunctions.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/feedbackset/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/feedbackset/validate.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/general_purpose_functions.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/groupcomment/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/customsql_sqlcode/imageannotationcomment/triggers.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/devilry_dbcache_testapp/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/devilry_dbcache_testapp/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/migrations/0002_auto_20170108_0948.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/migrations/0003_auto_20170108_1341.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/migrations/0004_auto_20170108_1453.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/migrations/0005_auto_20170124_1504.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_assignment_group_cached_data_triggers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_assignment_group_triggers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_benchmarks.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_bulk_create_queryset_mixin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_candidate_triggers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_comment_triggers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_examiner_triggers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_feedbackset_triggers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_dbcache/tests/test_groupcomment_triggers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/cradmin_app.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/deadline-bulk-multiselect-filterlistview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/includes/info-box-base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/includes/info-box-excluded-groups-move-deadline.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/includes/info-box-excluded-groups-new-attempt.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/manage-deadline.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/select-deadline-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/select-deadline.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/templates/devilry_deadlinemanagement/suggested-deadlines.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/tests/test_deadline_listview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/tests/test_manage_deadline_view_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/tests/test_manage_deadline_view_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/tests/test_multiselect_groups.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/views/deadline_listview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/views/manage_deadline_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/views/multiselect_groups_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_deadlinemanagement/views/viewutils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_detektor/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_detektor/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_detektor/migrations/0002_auto_20180119_1137.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_detektor/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_detektor/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_developemail/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_developemail/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_developemail/email_backend.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_developemail/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_developemail/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_developemail/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/comment_email/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/deadline_email/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/deadline_email/deadline_email.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/feedback_email/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/feedback_email/feedback_email.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/groupinvite_email/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/groupinvite_email/groupinvite_email.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/management/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/management/commands/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/management/commands/devilry_send_testemail.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/rq_backend.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/rq_jobs.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templates/devilry_email/comment_email/comment.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templates/devilry_email/deadline_email/deadline_moved.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templates/devilry_email/deadline_email/new_attempt.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templates/devilry_email/feedback_email/assignment_feedback_student.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templates/devilry_email/groupinvite_email/accepted.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templates/devilry_email/groupinvite_email/invite.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templates/devilry_email/groupinvite_email/rejected.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templatetags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/templatetags/comment_email_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/tests/test_bulk_feedback.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/tests/test_deadline_email.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/tests/test_feedback_email.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_email/utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_errortemplates/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_errortemplates/static/devilry_errortemplates/style.css +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_errortemplates/templates/devilry_errortemplates/404.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_errortemplates/templates/devilry_errortemplates/500.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_errortemplates/views.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/cradminextensions/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/cradminextensions/devilry_crinstance_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/cradminextensions/devilry_crmenu_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tasks.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/bulk_create_feedback.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/bulk_new_attempt.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/grouplist.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/includes/batchdownload_assignment.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/simple_group_bulk_feedback/column_header_item.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/simple_group_bulk_feedback/grade_cell_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/simple_group_bulk_feedback/group_cell_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/simple_group_bulk_feedback/simple_group_bulk_feedbackview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/assignment/simple_group_bulk_feedback/text_cell_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/dashboard/assignmentlist.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/selfassign/selfassign-group-item-value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templates/devilry_examiner/selfassign/selfassign.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templatetags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/templatetags/devilry_examiner_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_assignment/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_assignment/test_batchdownload_api.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_assignment/test_batchframework_tasks.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_assignment/test_bulkcreate_feedback.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_assignment/test_bulkcreate_feedback_simple.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_assignment/test_crinstance_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_assignment/test_grouplist.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_cradminextensions/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_cradminextensions/test_devilry_crmenu_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_dashboard/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_dashboard/test_assignmentlist.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_dashboard/test_crinstance_dashboard.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_selfassign/test_api.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_selfassign/test_crinstance_selfassign.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_selfassign/test_selfassign_grouplist.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/tests/test_selfassign/test_selfassign_utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/bulkoperations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/bulkoperations/bulk_feedback.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/bulkoperations/bulk_feedback_simple.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/bulkoperations/bulk_manage_deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/bulkoperations/bulk_operations_grouplist.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/crinstance_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/download_files/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/assignment/grouplist.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/dashboard/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/dashboard/assignmentlist.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/dashboard/crinstance_dashboard.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/selfassign/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/selfassign/api.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/selfassign/crinstance_selfassign.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/selfassign/selfassign.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_examiner/views/selfassign/utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/cradminextensions/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/cradminextensions/devilry_crmenu_frontpage.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/cradminextensions/listbuilder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/cradminextensions/listbuilder/listbuilder_role.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/crinstance_frontpage.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/templates/devilry_frontpage/base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/templates/devilry_frontpage/frontpage.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/tests/test_cradminextensions/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/tests/test_cradminextensions/test_listbuilder_role.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/tests/test_frontpage.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_frontpage/views/frontpage.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/templates/devilry_gradeform/advanced.editable.gradeform.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/templates/devilry_gradeform/advanced.gradeform.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/templates/devilry_gradeform/base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/templates/devilry_gradeform/create.gradeform.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/templates/devilry_gradeform/setup.gradeform.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/templatetags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/templatetags/devilry_gradeform_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/views/editable_gradeform.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/views/grade_form.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/views/points_grade_form.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/views/setup_create_gradeform.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/views/setup_gradeform.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradeform/views/viewable_gradeform.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/migrations/0002_auto_20170108_0948.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/migrations/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/pluginregistry.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/backandforward-bar.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/backbutton-bar.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/backward-button.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/currentprogress.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/forward-button.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/reconfigurebase.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/select_points_to_grade_mapper.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/selectplugin.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/setmaxpoints.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/setpassing_grade_min_points.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/setup_custom_table.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/summary.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/admin/use-this-button.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/bulkeditfeedbackbuttonbar.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/editfeedbackbuttonbar.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/editfeedbackbuttonbar_savedraftonly.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/feedbackbulkeditorbase.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/feedbackdraft_bulkpreview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/feedbackdraft_preview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/feedbackeditorbase.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/widgets/editmarkdown.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/templates/devilry_gradingsystem/widgets/feedbackeditorfilewidget.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/helpers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/test_models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/test_select_points_to_grade_mapper.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/test_selectplugin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/test_setmaxpoints.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/test_setpassing_grade_min_points.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/test_setup_custom_table.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/admin/test_summary.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/test_download_feedbackdraftfile.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/tests/views/test_feedbackdraft_preview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/select_points_to_grade_mapper.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/selectplugin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/setmaxpoints.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/setpassing_grade_min_points.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/setup_custom_table.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/admin/summary.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/download_feedbackdraftfile.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/feedbackbulkeditorbase.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/feedbackdraft_bulkpreview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/feedbackdraft_preview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/views/feedbackeditorbase.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/widgets/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/widgets/editfeedbackbuttonbar.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/widgets/editmarkdown.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystem/widgets/filewidget.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/templates/devilry_gradingsystemplugin_approved/feedbackbulkeditor.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/templates/devilry_gradingsystemplugin_approved/feedbackeditor.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_approved/views/feedbackeditor.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/templates/devilry_gradingsystemplugin_points/feedbackbulkeditor.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/templates/devilry_gradingsystemplugin_points/feedbackeditor.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/views/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_gradingsystemplugin_points/views/feedbackeditor.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/cradmin_instances/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/cradmin_instances/crinstance_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/cradmin_instances/crinstance_base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/cradmin_instances/crinstance_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/cradmin_instances/crinstance_student.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/devilry_group_baker_factories.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/feedbackfeed_builder/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/feedbackfeed_builder/builder_base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/feedbackfeed_builder/feedbackfeed_sidebarbuilder.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/feedbackfeed_builder/feedbackfeed_timelinebuilder.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/migrations → devilry-6.3.0/devilry/devilry_group/management}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/templatetags → devilry-6.3.0/devilry/devilry_group/management/commands}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0002_feedbackset_gradeform_json.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0003_auto_20160106_1418.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0004_auto_20160107_0918.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0005_auto_20160107_0958.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0006_auto_20160107_1000.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0007_auto_20160107_1031.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0008_auto_20160107_1053.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0009_auto_20160107_1100.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0010_auto_20160107_1106.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0011_auto_20160107_1111.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0012_auto_20160107_1129.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0013_auto_20160110_1621.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0014_feedbackset_grading_status.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0015_auto_20160111_1245.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0016_auto_20160114_2202.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0017_auto_20160122_1518.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0018_auto_20160122_1712.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0019_auto_20160822_1945.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0019_auto_20160912_1649.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0020_feedbackset_ignored_datetime.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0021_merge.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0022_auto_20170103_2308.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0023_auto_20170104_0551.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0024_auto_20170107_1838.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0025_auto_20170124_1504.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0026_datamigrate_update_for_no_none_values_in_feedbackset_deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0027_auto_20170206_1146.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0027_auto_20170207_1951.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0028_auto_20170208_1344.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0029_merge.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0030_auto_20170621_1734.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0031_groupcomment_v2_id.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0032_auto_20180214_1654.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0033_feedbacksetgradingupdatehistory.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0034_feedbackset_last_updated_by.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/migrations/0035_groupcommentedithistory.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests → devilry-6.3.0/devilry/devilry_group/migrations}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tasks.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_admin/feedbackfeed_admin_base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_admin/feedbackfeed_admin_discuss.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_admin/feedbackfeed_admin_examiner_admin_discuss.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_examiner/feedbackfeed_examiner_base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_examiner/feedbackfeed_examiner_delete_groupcomment.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_examiner/feedbackfeed_examiner_discuss.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_examiner/feedbackfeed_examiner_edit_grade.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_examiner/feedbackfeed_examiner_examiner_admin_discuss.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_examiner/feedbackfeed_examiner_feedback.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/feedbackfeed_guidelines.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/group_comment_edit_base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/group_comment_history/comment_history.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/group_comment_history/history_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/admin_commentform_discuss_examiner_headingtext.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/admin_commentform_discuss_public_headingtext.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/buttonbar.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/comments_disabled.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/examiner.editlastdelivery.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/examiner_commentform_discuss_examiner_headingtext.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/examiner_commentform_discuss_public_headingtext.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/fileupload.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/groupcomment_edit_delete_option.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/include/student_commentform_headingtext.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/admin_groupcomment_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/base_event_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/base_groupcomment_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/deadline_expired_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/deadline_moved_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/examiner_groupcomment_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/feedbackset_info_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/grading_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/grading_updated_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_feedbackfeed/student_groupcomment_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_sidebar/base_sidebar_file_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_sidebar/sidebar_comment_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_sidebar/sidebar_feedbackset_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_sidebar/sidebar_file_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/listbuilder_sidebar/sidebar_list.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templates/devilry_group/template_tags/devilry_group_comment_user_is_none.django.html +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_crinstance → devilry-6.3.0/devilry/devilry_group/templatetags}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/templatetags/devilry_group_tags.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_download → devilry-6.3.0/devilry/devilry_group/tests}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_feedbackfeed → devilry-6.3.0/devilry/devilry_group/tests/test_crinstance}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_crinstance/test_crinstance_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_crinstance/test_crinstance_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_crinstance/test_crinstance_student.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_devilry_group_mommy_factories.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_feedbackfeed/admin → devilry-6.3.0/devilry/devilry_group/tests/test_download}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_download/test_batchdownload_api.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_download/test_batchframework_compression.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_download/test_feedbackfeed_bulkfiledownload.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_download/test_feedbackfeed_filedownload.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_feedbackfeed/examiner → devilry-6.3.0/devilry/devilry_group/tests/test_feedbackfeed}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_feedbackfeed/mixins → devilry-6.3.0/devilry/devilry_group/tests/test_feedbackfeed/admin}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/admin/test_comment_edit_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/admin/test_feedbackfeed_admin.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_feedbackfeed/student → devilry-6.3.0/devilry/devilry_group/tests/test_feedbackfeed/examiner}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/examiner/test_comment_edit_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/examiner/test_feedbackfeed_examiner_delete_comment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/examiner/test_feedbackfeed_examiner_discuss.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/examiner/test_feedbackfeed_examiner_edit_comment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/examiner/test_feedbackfeed_examiner_edit_grade.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/examiner/test_feedbackfeed_examiner_feedback.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_feedbackfeed_builders → devilry-6.3.0/devilry/devilry_group/tests/test_feedbackfeed/mixins}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/mixins/mixin_feedbackfeed_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/mixins/mixin_feedbackfeed_common.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/mixins/mixin_feedbackfeed_examiner.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/tests/test_models → devilry-6.3.0/devilry/devilry_group/tests/test_feedbackfeed/student}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/student/test_comment_edit_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed/student/test_feedbackfeed_student.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/utils → devilry-6.3.0/devilry/devilry_group/tests/test_feedbackfeed_builders}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed_builders/test_feedbackfeed_sidebarbuilder.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_feedbackfeed_builders/test_feedbackfeed_timeline_builder.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/views → devilry-6.3.0/devilry/devilry_group/tests/test_models}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_models/test_feedback_set.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_models/test_feedbackfeed_model.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_models/test_feedbackset_passed_pervious_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_models/test_group_comment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/tests/test_templatetags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/urls.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/views/admin → devilry-6.3.0/devilry/devilry_group/utils}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/utils/download_response.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/views/download_files → devilry-6.3.0/devilry/devilry_group/views}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/views/examiner → devilry-6.3.0/devilry/devilry_group/views/admin}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/admin/feedbackfeed_admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/admin/group_comment_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/admin/manage_deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/cradmin_comment_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/cradmin_feedbackfeed_base.py +0 -0
- {devilry-6.2.3/devilry/devilry_group/views/student → devilry-6.3.0/devilry/devilry_group/views/download_files}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/download_files/feedbackfeed_bulkfiledownload.py +0 -0
- {devilry-6.2.3/devilry/devilry_header → devilry-6.3.0/devilry/devilry_group/views/examiner}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/examiner/feedbackfeed_examiner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/examiner/group_comment_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/examiner/manage_deadline.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/group_comment_edit_base.py +0 -0
- {devilry-6.2.3/devilry/devilry_header/views → devilry-6.3.0/devilry/devilry_group/views/student}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_group/views/student/group_comment_history.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/README.rst +0 -0
- {devilry-6.2.3/devilry/devilry_help → devilry-6.3.0/devilry/devilry_header}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/templates/devilry_header/about_me.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/templates/devilry_header/app.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/templates/devilry_header/header2_extjsinclude.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/templates/devilry_header/header2include.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/templates/devilry_header/includes/change_language.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/tests/test_aboutme.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/tests/test_change_language.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/urls.py +0 -0
- {devilry-6.2.3/devilry/devilry_i18n → devilry-6.3.0/devilry/devilry_header/views}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/views/about_me.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_header/views/change_language.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database → devilry-6.3.0/devilry/devilry_help}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_help/templates/devilry_help/help.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_help/tests.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_help/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_help/views.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database/management → devilry-6.3.0/devilry/devilry_i18n}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_i18n/middleware.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_i18n/models.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database/management/commands → devilry-6.3.0/devilry/devilry_import_v2database}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database/migrations → devilry-6.3.0/devilry/devilry_import_v2database/management}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database/scripts → devilry-6.3.0/devilry/devilry_import_v2database/management/commands}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/management/commands/devilry_import_v2_database.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/migrations/0002_auto_20190624_1238.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/migrations/0003_auto_20210427_1350.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database/tests → devilry-6.3.0/devilry/devilry_import_v2database/migrations}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/assignment_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/assignmentgroup_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/candidate_examiner_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/delivery_feedback_importers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/feedbackset_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/modelimporter_utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/node_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/period_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/pointrange_to_grade_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/qualifiesforexam_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/relateduser_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/subject_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/modelimporters/user_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/models.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database/tests/test_modelimporters → devilry-6.3.0/devilry/devilry_import_v2database/scripts}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/scripts/user_add_missing_data_from_json.py +0 -0
- {devilry-6.2.3/devilry/devilry_import_v2database/tests/test_scripts → devilry-6.3.0/devilry/devilry_import_v2database/tests}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_markup → devilry-6.3.0/devilry/devilry_import_v2database/tests/test_modelimporters}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/importer_testcase_mixin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_assignmentgroupimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_assignmentimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_candidateimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_commentfilecontentimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_deliveryimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_examinerimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_feedbacksetimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_filemetaimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_nodeimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_periodimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_pointrangetogradeimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_pointtogrademapimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_qualifiesforexam_importer.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_relatedexaminerimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_relatedstudentimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_staticfeedbackimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_subjectimporter.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_modelimporters/test_userimporter.py +0 -0
- {devilry-6.2.3/devilry/devilry_markup/markdown_extensions → devilry-6.3.0/devilry/devilry_import_v2database/tests/test_scripts}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/tests/test_scripts/test_user_add_missing_data_from_json.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2assignment_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2assignmentgroup_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2candidate_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2deadline_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2delivery_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2examiner_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2filemeta_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2node_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2period_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2pointrangetograde_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2pointtogrademap_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2qualifiesforexam_finalexam_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2qualifiesforexam_status_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2relatedexaminer_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2relatedstudent_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2staticfeedback_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2subject_directoryparser.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_import_v2database/v2dump_directoryparsers/v2user_directoryparser.py +0 -0
- {devilry-6.2.3/devilry/devilry_message → devilry-6.3.0/devilry/devilry_markup}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_message/migrations → devilry-6.3.0/devilry/devilry_markup/markdown_extensions}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/markdown_extensions/code_diff.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/markdown_extensions/latex_math.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/parse_markdown.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/templates/devilry_markup/code_diff.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/templates/devilry_markup/latex_math.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/templates/markup/load_latex_support.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_markup/views.py +0 -0
- {devilry-6.2.3/devilry/devilry_message/tests → devilry-6.3.0/devilry/devilry_message}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/migrations/0002_auto_20210427_1350.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/migrations/0003_alter_message_context_type.py +0 -0
- {devilry-6.2.3/devilry/devilry_message/utils → devilry-6.3.0/devilry/devilry_message/migrations}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/models/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/models/base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/templates/devilry_message/for_test.django.html +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam → devilry-6.3.0/devilry/devilry_message/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/tests/test_message.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/tests/test_message_receiver.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/tests/test_utils.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam/listbuilder → devilry-6.3.0/devilry/devilry_message/utils}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_message/utils/subject_generator.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam/migrations → devilry-6.3.0/devilry/devilry_qualifiesforexam}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/cradmin_app.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam/tablebuilder → devilry-6.3.0/devilry/devilry_qualifiesforexam/listbuilder}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/listbuilder/assignment_listbuilder_list.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/listbuilder/plugin_listbuilder_list.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/migrations/0002_auto_20170223_1112.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/migrations/0003_auto_20170629_1914.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/migrations/0004_auto_20210427_1350.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/migrations/0005_deletedqualifiesforfinalexam.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/migrations/0006_status_plugin_data.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam/tests → devilry-6.3.0/devilry/devilry_qualifiesforexam/migrations}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/pluginhelpers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/plugintyperegistry.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam/utils → devilry-6.3.0/devilry/devilry_qualifiesforexam/tablebuilder}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tablebuilder/tablebuilder.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/includes/qualification_table.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/list_statuses.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/listbuilder/assignment_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/listbuilder/description.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/listbuilder/plugin_item_value.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/retract_status.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/selectplugin.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/status_preview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/tablebuilder/qualificationstatus_valueitem.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/tablebuilder/relatedstudent_valueitem.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/templates/devilry_qualifiesforexam/tablebuilder/tableheader_valueitem.django.html +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam/views → devilry-6.3.0/devilry/devilry_qualifiesforexam/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_list_statuses_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_plugin_listbuilder_list.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_pluginhelpers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_pluginselection_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_plugintyperegistry.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_preview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/tests/test_showstatus.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam/views/plugin_base_views → devilry-6.3.0/devilry/devilry_qualifiesforexam/utils}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/utils/groups_groupedby_relatedstudent_and_assignments.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_approved → devilry-6.3.0/devilry/devilry_qualifiesforexam/views}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/views/list_statuses_view.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_approved/tests → devilry-6.3.0/devilry/devilry_qualifiesforexam/views/plugin_base_views}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/views/plugin_base_views/base_multiselect_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/views/plugin_mixin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/views/pluginselection_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam/views/proxyview.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_approved/views → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_approved}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_approved/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_approved/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_approved/plugin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_approved/resultscollector.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_points → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_approved/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_approved/tests/test_resultscollector.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_points/tests → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_approved/views}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_approved/views/select_assignment.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_points/views → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_points}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_points/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_points/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_points/plugin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_points/resultscollector.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_students → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_points/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_points/tests/test_resultscollector.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_students/tests → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_points/views}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_points/views/select_assignment_and_points.py +0 -0
- {devilry-6.2.3/devilry/devilry_qualifiesforexam_plugin_students/views → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_students}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_students/apps.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_students/plugin.py +0 -0
- {devilry-6.2.3/devilry/devilry_report → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_students/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_students/tests/test_student_selection_view.py +0 -0
- {devilry-6.2.3/devilry/devilry_report/migrations → devilry-6.3.0/devilry/devilry_qualifiesforexam_plugin_students/views}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_qualifiesforexam_plugin_students/views/select_students.py +0 -0
- {devilry-6.2.3/devilry/devilry_report/tests → devilry-6.3.0/devilry/devilry_report}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/abstract_generator.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/admin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/generator_registry.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/migrations/0001_initial.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/migrations/0002_auto_20210427_1350.py +0 -0
- {devilry-6.2.3/devilry/devilry_report/views → devilry-6.3.0/devilry/devilry_report/migrations}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/rq_task.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/templates/devilry_report/download_report.django.html +0 -0
- {devilry-6.2.3/devilry/devilry_rest → devilry-6.3.0/devilry/devilry_report/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/tests/test_download_report_view.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/tests/test_generator_registry.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/tests/test_report_model.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/urls.py +0 -0
- {devilry-6.2.3/devilry/devilry_rest/tests → devilry-6.3.0/devilry/devilry_report/views}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_report/views/download_report.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_resetpassword/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_resetpassword/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_rest/README.rst +0 -0
- {devilry-6.2.3/devilry/devilry_sandbox → devilry-6.3.0/devilry/devilry_rest}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_rest/auth.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_rest/formfields.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_rest/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_rest/serializehelpers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_rest/testclient.py +0 -0
- {devilry-6.2.3/devilry/devilry_sandbox/management → devilry-6.3.0/devilry/devilry_rest/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_rest/tests/test_serializehelpers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_sandbox/README.rst +0 -0
- {devilry-6.2.3/devilry/devilry_sandbox/management/commands → devilry-6.3.0/devilry/devilry_sandbox}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_settings → devilry-6.3.0/devilry/devilry_sandbox/management}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_statistics → devilry-6.3.0/devilry/devilry_sandbox/management/commands}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_sandbox/management/commands/devilry_sandboxcreate.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_sandbox/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_sandbox/sandbox.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_sandbox/templates/devilry_sandbox/createsubject.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_sandbox/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_sandbox/views.py +0 -0
- {devilry-6.2.3/devilry/devilry_statistics/api → devilry-6.3.0/devilry/devilry_settings}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_settings/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_settings/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_settings/views.py +0 -0
- {devilry-6.2.3/devilry/devilry_statistics/api/assignment → devilry-6.3.0/devilry/devilry_statistics}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_statistics/management → devilry-6.3.0/devilry/devilry_statistics/api}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_statistics/management/commands → devilry-6.3.0/devilry/devilry_statistics/api/assignment}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/api/assignment/api_utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/api/assignment/examiner_average_grading_points.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/api/assignment/examiner_details.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/api/assignment/examiner_group_results.py +0 -0
- {devilry-6.2.3/devilry/devilry_statistics/tests → devilry-6.3.0/devilry/devilry_statistics/management}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_student → devilry-6.3.0/devilry/devilry_statistics/management/commands}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/management/commands/devilry_create_test_course.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/management/commands/devilry_statistics_make_assignment_with_graded_groups.py +0 -0
- {devilry-6.2.3/devilry/devilry_statistics/static/devilry_statistics/6.2.3 → devilry-6.3.0/devilry/devilry_statistics/static/devilry_statistics/6.3.0}/devilry_statistics_all.js +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/.babelrc +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/.editorconfig +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/package-lock.json +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/package.json +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/scripts/javascript/devilry_statistics_all.js +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/scripts/javascript/widgets/ExaminerAverageGradingPointsWidget.js +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/scripts/javascript/widgets/ExaminerDetailsWidget.js +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/scripts/javascript/widgets/ExaminerGroupResultWidget.js +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/scripts/javascript/widgets/registerAllWidgets.js +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/staticsources/devilry_statistics/webpack.config.js +0 -0
- {devilry-6.2.3/devilry/devilry_student/cradminextensions → devilry-6.3.0/devilry/devilry_statistics/tests}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/tests/test_api_examiner_average_grading_points.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/tests/test_api_examiner_details.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/tests/test_api_examiner_group_result.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_statistics/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/README.rst +0 -0
- {devilry-6.2.3/devilry/devilry_student/migrations → devilry-6.3.0/devilry/devilry_student}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/templatetags → devilry-6.3.0/devilry/devilry_student/cradminextensions}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/cradminextensions/columntypes.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/cradminextensions/devilry_crinstance_student.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/cradminextensions/devilry_crmenu_student.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/cradminextensions/studentobjecttable.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/migrations/0001_initial.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/tests → devilry-6.3.0/devilry/devilry_student/migrations}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/add_delivery.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/contactapp/contact.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/deliveriesapp/delivery-number-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/deliveriesapp/delivery-status-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/deliveriesapp/delivery_details.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/deliveriesapp/delivery_list.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/overviewapp/overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/projectgroupapp/groupinvite_delete.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/projectgroupapp/groupinvite_respond.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/projectgroupapp/groupinvite_respond_standalone.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_group/projectgroupapp/projectgroup_overview.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_period/assignmentsapp/assignmentgroup-list.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_period/assignmentsapp/statuscolumn.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_student/allperiods/allperiods.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_student/recentdeliveriesapp/delivery-summary-with-assignment-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_student/waitingfordeliveriesapp/last-deadline.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradmin_student/waitingfordeliveriesapp/waiting-for-deliveries-list.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradminextensions/columntypes/delivery-summary-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradminextensions/columntypes/naturaltime-and-datetime-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/cradminextensions/columntypes/naturaltime-column.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/dashboard/dashboard.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/devilry_student_shortgrade_tag.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/include/feedback-rendered-view.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/include/group_breadcrumb.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templates/devilry_student/period/overview.django.html +0 -0
- {devilry-6.2.3/devilry/devilry_student/tests/test_cradminextensions → devilry-6.3.0/devilry/devilry_student/templatetags}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/templatetags/devilry_student_tags.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/tests/test_dashboard → devilry-6.3.0/devilry/devilry_student/tests}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/tests/test_group → devilry-6.3.0/devilry/devilry_student/tests/test_cradminextensions}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/test_cradminextensions/test_devilry_crmenu_student.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/tests/test_period → devilry-6.3.0/devilry/devilry_student/tests/test_dashboard}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/test_dashboard/test_allperiods.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/test_dashboard/test_dashboard.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/views → devilry-6.3.0/devilry/devilry_student/tests/test_group}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/test_group/test_projectgroupapp.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/test_models.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/views/dashboard → devilry-6.3.0/devilry/devilry_student/tests/test_period}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/test_period/test_overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/test_templatetags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/tests/upload_testfile1.txt +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/urls.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/views/group → devilry-6.3.0/devilry/devilry_student/views}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_student/views/period → devilry-6.3.0/devilry/devilry_student/views/dashboard}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/views/dashboard/allperiods.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/views/dashboard/crinstance_dashboard.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/views/dashboard/dashboard.py +0 -0
- {devilry-6.2.3/devilry/devilry_superadmin → devilry-6.3.0/devilry/devilry_student/views/group}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/views/group/projectgroupapp.py +0 -0
- {devilry-6.2.3/devilry/devilry_superadmin/delete_periods → devilry-6.3.0/devilry/devilry_student/views/period}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/views/period/crinstance_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/views/period/overview.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_student/views/show_delivery.py +0 -0
- {devilry-6.2.3/devilry/devilry_superadmin/management → devilry-6.3.0/devilry/devilry_superadmin}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_superadmin/management/commands → devilry-6.3.0/devilry/devilry_superadmin/delete_periods}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/delete_periods/period_delete.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/examples/relatedexaminers.json +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/examples/relatedstudents.json +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/examples/relatedstudents_email_instead_of_username.json +0 -0
- {devilry-6.2.3/devilry/devilry_superadmin/tests → devilry-6.3.0/devilry/devilry_superadmin/management}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_superadmin/tests/test_management_commands → devilry-6.3.0/devilry/devilry_superadmin/management/commands}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_anonymize_database.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_clear_allauth_account_tables.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_delete_compressed_archives.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_delete_inactive_users.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_delete_message_receivers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_delete_messages_without_receivers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_delete_periods.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_fix_missing_first_feedbackset.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_mark_as_passed_in_previous_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_periodadd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_periodadminadd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_periodadminclear.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_periodsearch.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_periodsetrelatedexaminers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_periodsetrelatedstudents.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_permissiongroup_add_subject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_qualifiedforfinalexam_delete_duplicates.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_rename_periodtag_prefix.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_resend_failed_messages.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_setup_dataporten_provider.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_setup_primary_domain.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_show_assignment_guidelines.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_subjectadd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_subjectadminadd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_subjectadminclear.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_subjectsearch.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_test_rq_task.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_useradd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_useraddbulk.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_usermerge.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/management/commands/devilry_usermod.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tasks.py +0 -0
- {devilry-6.2.3/devilry/devilry_theme3 → devilry-6.3.0/devilry/devilry_superadmin/tests}/__init__.py +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/templatetags → devilry-6.3.0/devilry/devilry_superadmin/tests/test_management_commands}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_delete_inactive_users.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_delete_periods.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_periodadminadd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_periodadminclear.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_permissiongroup_add_subject.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_qualifiedforfinalexam_delete_duplicates.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_subjectadd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_subjectadminadd.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_subjectadminclear.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_useraddbulk.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_devilry_usermod.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_superadmin/tests/test_management_commands/test_resend_failed_messages.py +0 -0
- {devilry-6.2.3/devilry/django_decoupled_docs → devilry-6.3.0/devilry/devilry_theme3}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/models.py +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/media/images/favicons/apple-touch-icon.png +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/media/images/favicons/favicon.ico +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/media/images/groovepaper.png +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/devilry_all.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/devilry_all.js.map +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/LICENSE +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/auto-render.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/auto-render.min.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/auto-render.mjs +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/copy-tex.css +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/copy-tex.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/copy-tex.min.css +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/copy-tex.min.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/copy-tex.mjs +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/mathtex-script-type.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/mathtex-script-type.min.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/mathtex-script-type.mjs +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/mhchem.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/mhchem.min.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/mhchem.mjs +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/render-a11y-string.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/render-a11y-string.min.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/contrib/render-a11y-string.mjs +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Bold.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Italic.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Math-Italic.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Script-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/katex.min.css +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/katex/katex.mjs +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/commentEditor.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/cookie.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/examinerSelfAssignButton.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/feedbackfeedNavigationHandler.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/fileupload.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/helloWorld.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/latex_math.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/scripts/plain_es6/webcomponent_utils.js +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/styles/cradmin_theme_devilry_mainpages/theme.css +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/styles/cradmin_theme_devilry_superuserui/theme.css +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/vendor/fonts/glyphicons/glyphicons-halflings-regular.eot +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/vendor/fonts/glyphicons/glyphicons-halflings-regular.svg +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/vendor/fonts/glyphicons/glyphicons-halflings-regular.ttf +0 -0
- {devilry-6.2.3/devilry/devilry_theme3/static/devilry_theme3/6.2.3 → devilry-6.3.0/devilry/devilry_theme3/static/devilry_theme3/6.3.0}/vendor/fonts/glyphicons/glyphicons-halflings-regular.woff +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_deploy/custom_css.django.css +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_deploy/custom_css_base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_deploy/footer.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_deploy/footer_base.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_deploy/frontpage_footer.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_deploy/login_footer.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_theme3/favicons.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_theme3/include/devilry_all_js.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_theme3/include/includetest.django.html +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templates/devilry_theme3/wcag-debug.django.html +0 -0
- {devilry-6.2.3/devilry/django_decoupled_docs → devilry-6.3.0/devilry/devilry_theme3}/templatetags/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/templatetags/devilry_theme3_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_theme3/views.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/django_decoupled_docs/README.rst +0 -0
- {devilry-6.2.3/devilry/project → devilry-6.3.0/devilry/django_decoupled_docs}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/django_decoupled_docs/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/django_decoupled_docs/registry.py +0 -0
- {devilry-6.2.3/devilry/project/common → devilry-6.3.0/devilry/django_decoupled_docs/templatetags}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/django_decoupled_docs/templatetags/django_decoupled_docs_tags.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/locale/en/LC_MESSAGES/django.mo +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/locale/en/LC_MESSAGES/djangojs.mo +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/locale/en/LC_MESSAGES/djangojs.po +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/locale/nb/LC_MESSAGES/djangojs.mo +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/locale/nb/LC_MESSAGES/djangojs.po +0 -0
- {devilry-6.2.3/devilry/project/common/formats → devilry-6.3.0/devilry/project}/__init__.py +0 -0
- {devilry-6.2.3/devilry/project/common/formats/en → devilry-6.3.0/devilry/project/common}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/cradmin_legacy_settings.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/default_urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/devilry_test_runner.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/docproxies.py +0 -0
- {devilry-6.2.3/devilry/project/common/formats/nb → devilry-6.3.0/devilry/project/common/formats}/__init__.py +0 -0
- {devilry-6.2.3/devilry/project/develop → devilry-6.3.0/devilry/project/common/formats/en}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/formats/en/formats.py +0 -0
- {devilry-6.2.3/devilry/project/develop/management → devilry-6.3.0/devilry/project/common/formats/nb}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/formats/nb/formats.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/http_error_handlers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/i18n.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/management/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/management/commands/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/management/commands/devilry_common_merge_candidates.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/projectspecific_settings.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/common/templatecontext.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/README.rst +0 -0
- {devilry-6.2.3/devilry/project/develop/management/commands → devilry-6.3.0/devilry/project/develop}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/dumps/old_default.sql +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/fabrictasks.py +0 -0
- {devilry-6.2.3/devilry/project/develop/settings → devilry-6.3.0/devilry/project/develop/management}/__init__.py +0 -0
- {devilry-6.2.3/devilry/project/develop/testhelpers → devilry-6.3.0/devilry/project/develop/management/commands}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/management/commands/devilry_developer_create_deliveries_from_filesystemtree.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/management/commands/devilry_developer_delete_all_except_users.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/management/commands/devilry_developer_performance_test_db.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/management/commands/devilry_developer_set_all_passwords_to_test.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/middleware.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/models.py +0 -0
- {devilry-6.2.3/devilry/project/production → devilry-6.3.0/devilry/project/develop/settings}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/settings/base.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/settings/codeship_test.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/settings/docs.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/settings/test.py +0 -0
- {devilry-6.2.3/devilry/utils/api → devilry-6.3.0/devilry/project/develop/testhelpers}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/testhelpers/corebuilder.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/testhelpers/datebuilder.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/testhelpers/login.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/testhelpers/skip_rq_tests.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/develop/testhelpers/soupselect.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/log.py +0 -0
- {devilry-6.2.3/devilry/utils/demodb → devilry-6.3.0/devilry/project/production}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/production/settings.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/production/urls.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/production/wsgi.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/project/settingsproxy.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/GroupAssignments.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/GroupNodes.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/OrderedDictFallback.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/anonymize_database.py +0 -0
- {devilry-6.2.3/devilry/utils/graphviz → devilry-6.3.0/devilry/utils/api}/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/api/api_test_mixin.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/command.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/create_absolute_url.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/custom_templates.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/datetimeutils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/delay_middleware.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/delivery_collection.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/demodb/demousers.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/devilry_djangoaggregate_functions.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/devilry_email.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/dictutils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/filewrapperwithexplicitclose.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/graphviz/djangomodels.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/graphviz/dot.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/graphviz/sphinx.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/groups_groupedby_relatedstudent_and_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/importutils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/logexceptionsmiddleware.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/management.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/migrationutils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/models.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/module.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/nodenamesuggestor.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/passed_in_previous_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/profile.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/rq_setup.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/setting_utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/stream_archives.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/__init__.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/delivery_collection_tests.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/importutils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/streamable_archive_tests.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/test_anonymize_db.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/test_datetimeutils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/test_groups_groupedby_relatedstudent_and_assignment.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/test_nodenamesuggestor.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/test_passed_in_previous_period.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/test_setting_utils.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/tests/test_url_datetime.py +0 -0
- {devilry-6.2.3 → devilry-6.3.0}/devilry/utils/verify_unique_entries.py +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devilry
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.3.0
|
|
4
4
|
Summary: A system for handling electronic deliveries. See https://github.com/devilry/devilry-django.
|
|
5
|
-
Author: Tor Johansen, Bendik Opstad, Vegard Angell, Magne Westlie, Ilya Kostolomov, Christian Tryti, Rebekka Mørken, Stian Julseth
|
|
5
|
+
Author: Tor Johansen, Bendik Opstad, Vegard Angell, Magne Westlie, Ilya Kostolomov, Christian Tryti, Rebekka Mørken, Stian Julseth, Åsmund J. Rosendahl
|
|
6
6
|
Author-email: Espen Angell Kristiansen <post@appresso.no>
|
|
7
7
|
License: Copyright (c) 2010, Devilry contributors
|
|
8
8
|
All rights reserved.
|
|
@@ -55,7 +55,7 @@ Requires-Dist: html-sanitizer
|
|
|
55
55
|
Requires-Dist: html2text<2018.2.0,>=2018.1.0
|
|
56
56
|
Requires-Dist: html5lib
|
|
57
57
|
Requires-Dist: httplib2<0.20.0,>=0.19.0
|
|
58
|
-
Requires-Dist: idna
|
|
58
|
+
Requires-Dist: idna>=3.7.0
|
|
59
59
|
Requires-Dist: ievv-opensource<10.0.0,>=9.2.2
|
|
60
60
|
Requires-Dist: markdown<3.4.0,>=3.3.0
|
|
61
61
|
Requires-Dist: mimeparse<0.2.0,>=0.1.0
|
|
@@ -74,6 +74,8 @@ Requires-Dist: requests
|
|
|
74
74
|
Requires-Dist: requests-oauthlib<0.9.0,>=0.8.0
|
|
75
75
|
Requires-Dist: rq<1.9.0,>=1.8.0
|
|
76
76
|
Requires-Dist: six<1.16.0,>=1.15.0
|
|
77
|
+
Requires-Dist: stream-zip>=0.0.70
|
|
78
|
+
Requires-Dist: to-file-like-obj>=0.0.5
|
|
77
79
|
Requires-Dist: urllib3>=1.26.0
|
|
78
80
|
Requires-Dist: urlobject<2.5.0,>=2.4.0
|
|
79
81
|
Requires-Dist: xlsxwriter<1.2.0,>=1.1.0
|
|
@@ -82,6 +84,7 @@ Requires-Dist: beautifulsoup4==4.7.1; extra == 'dev'
|
|
|
82
84
|
Requires-Dist: boto==2.32.1; extra == 'dev'
|
|
83
85
|
Requires-Dist: django-auth-ldap; extra == 'dev'
|
|
84
86
|
Requires-Dist: django-debug-toolbar; extra == 'dev'
|
|
87
|
+
Requires-Dist: django-silk; extra == 'dev'
|
|
85
88
|
Requires-Dist: django-storages==1.1.5; extra == 'dev'
|
|
86
89
|
Requires-Dist: doc2dash==3.0.0; extra == 'dev'
|
|
87
90
|
Requires-Dist: fabric3==1.14.post1; extra == 'dev'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '6.3.0'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
from devilry.devilry_compressionutil.backends import backends_base
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DevilryAdminZipBackend(backends_base.StreamZipBackend):
|
|
7
|
+
backend_id = 'devilry_admin_local'
|
|
8
|
+
save_to_disk = False
|
|
9
|
+
|
|
10
|
+
@classmethod
|
|
11
|
+
def delete_archive(cls, full_path):
|
|
12
|
+
if cls.save_to_disk:
|
|
13
|
+
if not os.path.exists(full_path):
|
|
14
|
+
return False
|
|
15
|
+
try:
|
|
16
|
+
os.remove(full_path)
|
|
17
|
+
except OSError:
|
|
18
|
+
return False
|
|
19
|
+
return True
|
|
20
|
+
else:
|
|
21
|
+
return False
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from ievv_opensource.ievv_batchframework import batchregistry
|
|
5
|
+
from django.http.response import JsonResponse
|
|
5
6
|
|
|
6
7
|
from devilry.apps.core import models as core_models
|
|
7
8
|
from devilry.devilry_compressionutil.models import CompressedArchiveMeta
|
|
@@ -16,11 +17,11 @@ class BatchCompressionAPIAssignmentView(AbstractBatchCompressionAPIView):
|
|
|
16
17
|
"""
|
|
17
18
|
model_class = core_models.Assignment
|
|
18
19
|
batchoperation_type = 'batchframework_admin_compress_assignment'
|
|
19
|
-
|
|
20
|
+
|
|
20
21
|
@property
|
|
21
22
|
def created_by_role(self):
|
|
22
23
|
return CompressedArchiveMeta.CREATED_BY_ROLE_ADMIN
|
|
23
|
-
|
|
24
|
+
|
|
24
25
|
def get_assignment_group_ids(self):
|
|
25
26
|
assignment_group_ids = core_models.AssignmentGroup.objects \
|
|
26
27
|
.filter(parentnode=self.content_object) \
|
|
@@ -58,6 +59,10 @@ class BatchCompressionAPIAssignmentView(AbstractBatchCompressionAPIView):
|
|
|
58
59
|
def should_filter_by_created_by_user(self):
|
|
59
60
|
return True
|
|
60
61
|
|
|
62
|
+
def get(self, request, *args, **kwargs):
|
|
63
|
+
content_object_id = kwargs.get('content_object_id')
|
|
64
|
+
return JsonResponse(self.get_ready_for_download_status(content_object_id=content_object_id))
|
|
65
|
+
|
|
61
66
|
def start_compression_task(self, content_object_id):
|
|
62
67
|
batchregistry.Registry.get_instance().run(
|
|
63
68
|
actiongroup_name=self.batchoperation_type,
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
from django.http import Http404
|
|
5
|
+
from django import http
|
|
6
|
+
from django.shortcuts import get_object_or_404
|
|
7
|
+
from django.views import generic
|
|
8
|
+
|
|
9
|
+
from cradmin_legacy import crapp
|
|
10
|
+
|
|
11
|
+
from devilry.apps.core import models as core_models
|
|
12
|
+
from devilry.devilry_admin.views.assignment.download_files import batch_download_api
|
|
13
|
+
from devilry.devilry_compressionutil import backend_registry
|
|
14
|
+
from devilry.devilry_compressionutil.batchjob_mixins.assignment_mixin import AssignmentBatchMixin
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CompressedAssignmentFileDownloadView(AssignmentBatchMixin, generic.TemplateView):
|
|
18
|
+
backend_id = 'devilry_admin_local'
|
|
19
|
+
|
|
20
|
+
def get_assignment_group_queryset(self, assignment, user):
|
|
21
|
+
return assignment.assignmentgroups.filter_user_is_admin(user=user)
|
|
22
|
+
|
|
23
|
+
def get(self, request, *args, **kwargs):
|
|
24
|
+
assignment_id = kwargs.get('assignment_id')
|
|
25
|
+
assignment = get_object_or_404(core_models.Assignment, id=assignment_id)
|
|
26
|
+
|
|
27
|
+
if assignment != self.request.cradmin_role:
|
|
28
|
+
raise Http404()
|
|
29
|
+
|
|
30
|
+
from django.utils import timezone
|
|
31
|
+
archive_name = '{}.{}.{}.{}.zip'.format(
|
|
32
|
+
assignment.subject.short_name,
|
|
33
|
+
assignment.period.short_name,
|
|
34
|
+
assignment.short_name,
|
|
35
|
+
timezone.now().strftime('%Y-%m-%d-%H%M'))
|
|
36
|
+
|
|
37
|
+
archive_path = os.path.join(
|
|
38
|
+
'admin',
|
|
39
|
+
str(assignment.parentnode.id),
|
|
40
|
+
str(assignment.id),
|
|
41
|
+
str(self.request.user),
|
|
42
|
+
archive_name
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
zip_backend = backend_registry.Registry.get_backend_instance(
|
|
46
|
+
backend_id=self.backend_id,
|
|
47
|
+
zipfile_path=archive_path,
|
|
48
|
+
archive_name=archive_name
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
if not zip_backend:
|
|
52
|
+
raise Http404()
|
|
53
|
+
|
|
54
|
+
self.add_assignment_groups(self.request.user, zip_backend, assignment)
|
|
55
|
+
zip_backend.close()
|
|
56
|
+
|
|
57
|
+
filewrapper = zip_backend.get_archive()
|
|
58
|
+
|
|
59
|
+
response = http.FileResponse(
|
|
60
|
+
filewrapper
|
|
61
|
+
)
|
|
62
|
+
response.set_cookie('zipdownload', 'start', max_age=1)
|
|
63
|
+
|
|
64
|
+
response['content-disposition'] = 'attachment; filename={}'.format(
|
|
65
|
+
archive_name.encode('ascii', 'replace').decode()
|
|
66
|
+
)
|
|
67
|
+
if zip_backend.archive_size() > 0:
|
|
68
|
+
response['content-length'] = zip_backend.archive_size()
|
|
69
|
+
|
|
70
|
+
return response
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class App(crapp.App):
|
|
74
|
+
appurls = [
|
|
75
|
+
crapp.Url(
|
|
76
|
+
r'^assignment-file-download/(?P<assignment_id>[0-9]+)$',
|
|
77
|
+
CompressedAssignmentFileDownloadView.as_view(),
|
|
78
|
+
name='assignment-file-download'),
|
|
79
|
+
crapp.Url(
|
|
80
|
+
r'assignment-download-api/(?P<content_object_id>[0-9]+)$',
|
|
81
|
+
batch_download_api.BatchCompressionAPIAssignmentView.as_view(),
|
|
82
|
+
name='assignment-file-download-api'
|
|
83
|
+
)
|
|
84
|
+
]
|
|
@@ -9,6 +9,18 @@ logger = logging.getLogger(__name__)
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class DevilrySocialAccountAdapter(DefaultSocialAccountAdapter):
|
|
12
|
+
extra_data_to_keep = ['userid_sec', 'userid', 'email', 'name', 'profilephoto']
|
|
13
|
+
|
|
14
|
+
def clean_extra_date(self, extra_data):
|
|
15
|
+
out = {}
|
|
16
|
+
for k, v in extra_data.items():
|
|
17
|
+
if k in self.extra_data_to_keep:
|
|
18
|
+
out[k] = v
|
|
19
|
+
else:
|
|
20
|
+
logger.error(msg='{} value was removed from socialacount extra_data of userid {}'
|
|
21
|
+
.format(k, extra_data['userid']))
|
|
22
|
+
return out
|
|
23
|
+
|
|
12
24
|
def save_user(self, request, sociallogin, form=None):
|
|
13
25
|
# Debug log
|
|
14
26
|
logger.debug(msg='DevilrySocialAccountAdapter.save_user:')
|
|
@@ -19,6 +31,8 @@ class DevilrySocialAccountAdapter(DefaultSocialAccountAdapter):
|
|
|
19
31
|
# Debug log
|
|
20
32
|
logger.debug(msg='Fetching updater (type): {}'.format(type(updater)))
|
|
21
33
|
|
|
34
|
+
sociallogin.account.extra_data = self.clean_extra_date(sociallogin.account.extra_data)
|
|
35
|
+
|
|
22
36
|
shortname = updater.make_shortname(
|
|
23
37
|
socialaccount=sociallogin.account)
|
|
24
38
|
|
|
@@ -31,23 +31,7 @@ class AbstractBaseBatchAction(batchregistry.Action):
|
|
|
31
31
|
readmode=False
|
|
32
32
|
)
|
|
33
33
|
|
|
34
|
-
def add_file(self, zipfile_backend, sub_path, comment_file, is_duplicate=False):
|
|
35
|
-
"""
|
|
36
|
-
Add file to ZIP archive.
|
|
37
|
-
|
|
38
|
-
Args:
|
|
39
|
-
zipfile_backend: A subclass of ``PythonZipFileBackend``.
|
|
40
|
-
sub_path: The path to write to inside the archive.
|
|
41
|
-
comment_file: The `CommentFile` file to write.
|
|
42
|
-
is_duplicate: Is the file a duplicate? Defaults to ``False``.
|
|
43
|
-
"""
|
|
44
|
-
file_name = comment_file.filename
|
|
45
|
-
if is_duplicate:
|
|
46
|
-
file_name = comment_file.get_filename_as_unique_string()
|
|
47
34
|
|
|
48
|
-
zipfile_backend.add_file(
|
|
49
|
-
os.path.join(sub_path, file_name),
|
|
50
|
-
comment_file.file.file)
|
|
51
35
|
|
|
52
36
|
def execute(self):
|
|
53
|
-
raise NotImplementedError()
|
|
37
|
+
raise NotImplementedError()
|
|
@@ -55,6 +55,26 @@ class Registry(Singleton):
|
|
|
55
55
|
return None
|
|
56
56
|
return backend_class
|
|
57
57
|
|
|
58
|
+
@classmethod
|
|
59
|
+
def get_backend_instance(cls, backend_id, zipfile_path, archive_name):
|
|
60
|
+
"""
|
|
61
|
+
Get an instance of the backend to use.
|
|
62
|
+
|
|
63
|
+
Args:
|
|
64
|
+
backend_id: ID of backend class.
|
|
65
|
+
zipfile_path: Path to the archive.
|
|
66
|
+
archive_name: Name of the archive.
|
|
67
|
+
|
|
68
|
+
Returns:
|
|
69
|
+
PythonZipFileBackend: Backend for `self.backend_id`
|
|
70
|
+
"""
|
|
71
|
+
zipfile_backend_class = cls.get_instance().get(backend_id)
|
|
72
|
+
return zipfile_backend_class(
|
|
73
|
+
archive_path=zipfile_path,
|
|
74
|
+
archive_name=archive_name,
|
|
75
|
+
readmode=False
|
|
76
|
+
)
|
|
77
|
+
|
|
58
78
|
|
|
59
79
|
class MockableRegistry(Registry):
|
|
60
80
|
"""
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import os
|
|
2
2
|
|
|
3
|
-
from devilry.devilry_compressionutil.backends.backends_base import PythonZipFileBackend
|
|
4
|
-
|
|
3
|
+
from devilry.devilry_compressionutil.backends.backends_base import PythonZipFileBackend, PythonTarFileBackend, StreamZipBackend
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class MockDevilryStreamZipBackend(StreamZipBackend):
|
|
7
|
+
"""
|
|
8
|
+
Used for testing.
|
|
9
|
+
"""
|
|
10
|
+
backend_id = 'stream'
|
|
11
|
+
|
|
12
|
+
def __init__(self, **kwargs):
|
|
13
|
+
super(MockDevilryStreamZipBackend, self).__init__(**kwargs)
|
|
5
14
|
|
|
6
15
|
|
|
7
16
|
class MockDevilryZipBackend(PythonZipFileBackend):
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
# Python imports
|
|
2
2
|
import os
|
|
3
|
+
import io
|
|
3
4
|
import zipfile
|
|
4
5
|
import tarfile
|
|
5
6
|
import shutil
|
|
7
|
+
from stat import S_IFREG
|
|
8
|
+
from stream_zip import ZIP_AUTO, stream_zip
|
|
9
|
+
from to_file_like_obj import to_file_like_obj
|
|
6
10
|
|
|
7
11
|
# Django imports
|
|
8
12
|
from django.conf import settings
|
|
13
|
+
from django.utils import timezone
|
|
14
|
+
|
|
9
15
|
|
|
10
16
|
|
|
11
17
|
class BaseArchiveBackend(object):
|
|
@@ -17,6 +23,7 @@ class BaseArchiveBackend(object):
|
|
|
17
23
|
|
|
18
24
|
#: A unique string ID for the subclasses to use that describes what kind of backend it is.
|
|
19
25
|
backend_id = None
|
|
26
|
+
save_to_disk = True
|
|
20
27
|
|
|
21
28
|
class Meta:
|
|
22
29
|
abstract = True
|
|
@@ -129,6 +136,15 @@ class BaseArchiveBackend(object):
|
|
|
129
136
|
"""
|
|
130
137
|
raise NotImplementedError()
|
|
131
138
|
|
|
139
|
+
def get_chunk_size(self):
|
|
140
|
+
"""
|
|
141
|
+
Get the archive chunk size.
|
|
142
|
+
|
|
143
|
+
Returns:
|
|
144
|
+
(int): result of archive_size if not implemented
|
|
145
|
+
"""
|
|
146
|
+
return self.archive_size()
|
|
147
|
+
|
|
132
148
|
@classmethod
|
|
133
149
|
def delete_archive(cls, full_path):
|
|
134
150
|
"""
|
|
@@ -146,6 +162,124 @@ class BaseArchiveBackend(object):
|
|
|
146
162
|
raise NotImplementedError()
|
|
147
163
|
|
|
148
164
|
|
|
165
|
+
class StreamZipBackend(BaseArchiveBackend):
|
|
166
|
+
def __init__(self, save_to_disk=False, chunk_size=None, **kwargs):
|
|
167
|
+
super(StreamZipBackend, self).__init__(**kwargs)
|
|
168
|
+
self.files = []
|
|
169
|
+
self.zipped_chunks = None
|
|
170
|
+
self.save_to_disk = save_to_disk
|
|
171
|
+
self.__add_path_extension()
|
|
172
|
+
self._create_path_if_not_exists()
|
|
173
|
+
if chunk_size:
|
|
174
|
+
self.chunk_size = chunk_size
|
|
175
|
+
else:
|
|
176
|
+
self.chunk_size = int(0x8000)
|
|
177
|
+
|
|
178
|
+
def __add_path_extension(self):
|
|
179
|
+
"""
|
|
180
|
+
Sets :obj:`~.PythonZipFileBackend.archive_path` to full path by prepending the backend storage location
|
|
181
|
+
to the archive_path. Also adds .zip extension
|
|
182
|
+
"""
|
|
183
|
+
if self.save_to_disk:
|
|
184
|
+
self.archive_path = os.path.join(self.get_storage_location(), self.archive_path)
|
|
185
|
+
if not self.archive_path.endswith('.zip'):
|
|
186
|
+
self.archive_name += '.zip'
|
|
187
|
+
self.archive_path += '.zip'
|
|
188
|
+
|
|
189
|
+
def archive_size(self):
|
|
190
|
+
"""
|
|
191
|
+
Get size of archive. Uses ``os.stat``.
|
|
192
|
+
|
|
193
|
+
Returns:
|
|
194
|
+
int: size of archive.
|
|
195
|
+
|
|
196
|
+
Raises:
|
|
197
|
+
ValueError: If not in ``readmode``.
|
|
198
|
+
"""
|
|
199
|
+
if not self.readmode:
|
|
200
|
+
raise ValueError('Must be in readmode')
|
|
201
|
+
return 0
|
|
202
|
+
|
|
203
|
+
def add_file(self, path, filelike_obj):
|
|
204
|
+
"""
|
|
205
|
+
Prep a file to be written to the archive on the given ``path``.
|
|
206
|
+
|
|
207
|
+
Args:
|
|
208
|
+
path: Path to file inside the archive.
|
|
209
|
+
filelike_obj: An object that behaves like a File(read, write..).
|
|
210
|
+
|
|
211
|
+
"""
|
|
212
|
+
if self.readmode is True:
|
|
213
|
+
raise ValueError('readmode must be False to add files.')
|
|
214
|
+
|
|
215
|
+
self.files.append((path, filelike_obj))
|
|
216
|
+
|
|
217
|
+
def read_archive(self):
|
|
218
|
+
"""
|
|
219
|
+
Get the zipped archive as :obj:`~ZipFile` in readmode.
|
|
220
|
+
|
|
221
|
+
Returns:
|
|
222
|
+
ZipFile: The zipped archive.
|
|
223
|
+
"""
|
|
224
|
+
if not self.readmode:
|
|
225
|
+
raise ValueError('Must be in readmode')
|
|
226
|
+
if not self.zipped_chunks:
|
|
227
|
+
raise ValueError('Archive has not been created yet')
|
|
228
|
+
return zipfile.ZipFile(io.BytesIO(b''.join(self.zipped_chunks)))
|
|
229
|
+
|
|
230
|
+
def get_archive(self):
|
|
231
|
+
"""
|
|
232
|
+
Get the filelike object of the archive for compressed files.
|
|
233
|
+
|
|
234
|
+
"""
|
|
235
|
+
return to_file_like_obj(self.zipped_chunks)
|
|
236
|
+
|
|
237
|
+
def _prep_files(self):
|
|
238
|
+
"""
|
|
239
|
+
Prepares the files for Zip creation
|
|
240
|
+
"""
|
|
241
|
+
now = timezone.now()
|
|
242
|
+
mode = S_IFREG | 0o600
|
|
243
|
+
|
|
244
|
+
def contents(file_object):
|
|
245
|
+
with file_object.file.open('r') as f:
|
|
246
|
+
while chunk := f.read(self.chunk_size):
|
|
247
|
+
yield chunk
|
|
248
|
+
|
|
249
|
+
for (path, filelike_obj) in self.files:
|
|
250
|
+
yield (path, now, mode, ZIP_AUTO(filelike_obj.file.size), contents(filelike_obj))
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def close(self):
|
|
254
|
+
"""
|
|
255
|
+
Must be invoked in order to process the files into an iterable yielding the bytes of the ZIP file.
|
|
256
|
+
|
|
257
|
+
Readmode is set to True
|
|
258
|
+
"""
|
|
259
|
+
prepped_files = self._prep_files()
|
|
260
|
+
self.zipped_chunks = stream_zip(prepped_files, chunk_size=self.chunk_size)
|
|
261
|
+
self.readmode = True
|
|
262
|
+
|
|
263
|
+
if self.save_to_disk:
|
|
264
|
+
self.archive = open(self.archive_path, 'wb')
|
|
265
|
+
for chunk in self.zipped_chunks:
|
|
266
|
+
self.archive.write(chunk)
|
|
267
|
+
|
|
268
|
+
super(StreamZipBackend, self).close()
|
|
269
|
+
|
|
270
|
+
def get_chunk_size(self):
|
|
271
|
+
return self.chunk_size
|
|
272
|
+
|
|
273
|
+
def _create_path_if_not_exists(self):
|
|
274
|
+
"""
|
|
275
|
+
Create path if given path does not exist.
|
|
276
|
+
"""
|
|
277
|
+
archivedirname = os.path.dirname(self.archive_path)
|
|
278
|
+
if self.save_to_disk:
|
|
279
|
+
if not os.path.exists(archivedirname):
|
|
280
|
+
os.makedirs(archivedirname)
|
|
281
|
+
|
|
282
|
+
|
|
149
283
|
class PythonZipFileBackend(BaseArchiveBackend):
|
|
150
284
|
"""
|
|
151
285
|
Defines a baseclass backend using :class:`~ZipFile`
|
{devilry-6.2.3 → devilry-6.3.0}/devilry/devilry_compressionutil/batchjob_mixins/assignment_mixin.py
RENAMED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import os
|
|
5
5
|
|
|
6
6
|
from django.template import defaultfilters
|
|
7
|
+
from django.db.models import Prefetch
|
|
7
8
|
|
|
8
9
|
from devilry.devilry_compressionutil.batchjob_mixins import feedbackset_mixin
|
|
9
10
|
|
|
@@ -32,10 +33,20 @@ class AssignmentBatchMixin(feedbackset_mixin.FeedbackSetBatchMixin):
|
|
|
32
33
|
raise NotImplementedError()
|
|
33
34
|
|
|
34
35
|
def add_assignment_groups(self, user, zipfile_backend, assignment):
|
|
35
|
-
|
|
36
|
+
group_queryset = self.get_assignment_group_queryset(assignment=assignment, user=user)
|
|
37
|
+
group_queryset = group_queryset.prefetch_related(
|
|
38
|
+
Prefetch(
|
|
39
|
+
'feedbackset_set',
|
|
40
|
+
queryset=self.get_feedbackset_queryset()
|
|
41
|
+
),
|
|
42
|
+
'candidates__relatedstudent__user',
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
for group in group_queryset:
|
|
36
46
|
group_path = '{}'.format(group.get_short_displayname())
|
|
37
47
|
for feedback_set in group.feedbackset_set.all():
|
|
38
|
-
feedback_set_path = 'deadline-{}'
|
|
48
|
+
feedback_set_path = 'deadline-{}' \
|
|
49
|
+
.format(defaultfilters.date(feedback_set.deadline_datetime, 'Y-m-d-Hi'))
|
|
39
50
|
self.zipfile_add_feedbackset(
|
|
40
51
|
zipfile_backend=zipfile_backend,
|
|
41
52
|
feedback_set=feedback_set,
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import os
|
|
5
|
+
|
|
6
|
+
from django.db.models import Prefetch, F
|
|
7
|
+
|
|
8
|
+
from devilry.devilry_group.models import GroupComment, FeedbackSet
|
|
9
|
+
from devilry.devilry_comment.models import CommentFile
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class FeedbackSetBatchMixin(object):
|
|
13
|
+
"""
|
|
14
|
+
Mixin for adding FeedbackSet files to zipfile.
|
|
15
|
+
|
|
16
|
+
Must be included in class together with
|
|
17
|
+
:class:`devilry.devilry_compressionutil.abstract_batch_action.AbstractBaseBatchAction`.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
def add_file(self, zipfile_backend, sub_path, comment_file, is_duplicate=False):
|
|
21
|
+
"""
|
|
22
|
+
Add file to ZIP archive.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
zipfile_backend: A subclass of ``PythonZipFileBackend``.
|
|
26
|
+
sub_path: The path to write to inside the archive.
|
|
27
|
+
comment_file: The `CommentFile` file to write.
|
|
28
|
+
is_duplicate: Is the file a duplicate? Defaults to ``False``.
|
|
29
|
+
"""
|
|
30
|
+
file_name = comment_file.filename
|
|
31
|
+
if is_duplicate:
|
|
32
|
+
file_name = comment_file.get_filename_as_unique_string()
|
|
33
|
+
|
|
34
|
+
zipfile_backend.add_file(
|
|
35
|
+
os.path.join(sub_path, file_name),
|
|
36
|
+
comment_file.file)
|
|
37
|
+
|
|
38
|
+
def get_feedbackset_queryset(self):
|
|
39
|
+
commentfile_queryset = CommentFile.objects.all().order_by('-created_datetime') \
|
|
40
|
+
.only('filename', 'file', 'created_datetime', 'comment_id')
|
|
41
|
+
|
|
42
|
+
groupcomment_queryset = GroupComment.objects \
|
|
43
|
+
.filter(
|
|
44
|
+
visibility=GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE,
|
|
45
|
+
user_role=GroupComment.USER_ROLE_STUDENT
|
|
46
|
+
) \
|
|
47
|
+
.only('comment_ptr_id', 'feedback_set_id', 'published_datetime') \
|
|
48
|
+
.order_by('-created_datetime') \
|
|
49
|
+
.prefetch_related(
|
|
50
|
+
Prefetch(
|
|
51
|
+
'commentfile_set',
|
|
52
|
+
queryset=commentfile_queryset,
|
|
53
|
+
)
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
return FeedbackSet.objects.all().only('deadline_datetime', 'group_id') \
|
|
57
|
+
.prefetch_related(
|
|
58
|
+
Prefetch(
|
|
59
|
+
'groupcomment_set',
|
|
60
|
+
queryset=groupcomment_queryset,
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
def zipfile_add_feedbackset(self, zipfile_backend, feedback_set, sub_path=''):
|
|
65
|
+
duplicates_sub_path = os.path.join(sub_path, 'old_duplicates')
|
|
66
|
+
after_deadline_sub_path = os.path.join(sub_path, 'after_deadline_not_part_of_delivery')
|
|
67
|
+
after_deadline_duplicates_sub_path = os.path.join(after_deadline_sub_path, 'old_duplicates')
|
|
68
|
+
comment_file_tree = {}
|
|
69
|
+
for group_comment in feedback_set.groupcomment_set.all():
|
|
70
|
+
for comment_file in group_comment.commentfile_set.all():
|
|
71
|
+
filename = comment_file.filename
|
|
72
|
+
if filename not in comment_file_tree:
|
|
73
|
+
comment_file_tree[filename] = {
|
|
74
|
+
'before_deadline': {
|
|
75
|
+
'last': False,
|
|
76
|
+
},
|
|
77
|
+
'after_deadline': {
|
|
78
|
+
'last': False,
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
# Before the deadline expired
|
|
82
|
+
# Set initial last delivery before deadline, and duplicates.
|
|
83
|
+
if group_comment.published_datetime <= feedback_set.deadline_datetime:
|
|
84
|
+
if comment_file_tree[filename]['before_deadline']['last'] is False:
|
|
85
|
+
comment_file_tree[filename]['before_deadline']['last'] = True
|
|
86
|
+
self.add_file(zipfile_backend=zipfile_backend,
|
|
87
|
+
sub_path=sub_path,
|
|
88
|
+
comment_file=comment_file)
|
|
89
|
+
else:
|
|
90
|
+
self.add_file(zipfile_backend=zipfile_backend,
|
|
91
|
+
sub_path=duplicates_sub_path,
|
|
92
|
+
comment_file=comment_file,
|
|
93
|
+
is_duplicate=True)
|
|
94
|
+
else:
|
|
95
|
+
if comment_file_tree[filename]['after_deadline']['last'] is False:
|
|
96
|
+
comment_file_tree[filename]['after_deadline']['last'] = True
|
|
97
|
+
self.add_file(zipfile_backend=zipfile_backend,
|
|
98
|
+
sub_path=after_deadline_sub_path,
|
|
99
|
+
comment_file=comment_file)
|
|
100
|
+
else:
|
|
101
|
+
self.add_file(zipfile_backend=zipfile_backend,
|
|
102
|
+
sub_path=after_deadline_duplicates_sub_path,
|
|
103
|
+
comment_file=comment_file,
|
|
104
|
+
is_duplicate=True)
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import io
|
|
3
3
|
import os
|
|
4
4
|
import shutil
|
|
5
|
+
import zipfile
|
|
5
6
|
|
|
6
7
|
# Django imports
|
|
7
8
|
from unittest import skip
|
|
@@ -24,6 +25,41 @@ lorem_ipsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In facil
|
|
|
24
25
|
'Quisque at pellentesque magna. Morbi sagittis magna in sollicitudin viverra. ' \
|
|
25
26
|
'Donec quis velit suscipit, mollis leo ut.'
|
|
26
27
|
|
|
28
|
+
class TestStreamZipBackend(TestCase):
|
|
29
|
+
|
|
30
|
+
def setUp(self):
|
|
31
|
+
# Set up a backend path for testing which can be removed after each test.
|
|
32
|
+
self.backend_path = os.path.join('devilry_testfiles', 'devilry_compressed_archives', '')
|
|
33
|
+
|
|
34
|
+
def tearDown(self):
|
|
35
|
+
shutil.rmtree(self.backend_path, ignore_errors=False)
|
|
36
|
+
|
|
37
|
+
def _create_test_file(self, content=b'testcontent'):
|
|
38
|
+
testfile = io.BytesIO()
|
|
39
|
+
testfile.write(content)
|
|
40
|
+
testfile.seek(0)
|
|
41
|
+
|
|
42
|
+
return testfile
|
|
43
|
+
|
|
44
|
+
def test_add_file(self):
|
|
45
|
+
with self.settings(DEVILRY_COMPRESSED_ARCHIVES_DIRECTORY=self.backend_path):
|
|
46
|
+
mockregistry = backend_registry.MockableRegistry.make_mockregistry(
|
|
47
|
+
backend_mock.MockDevilryStreamZipBackend
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
backend_class = mockregistry.get('stream')
|
|
51
|
+
backend = backend_class(archive_path='testfile1', readmode=False)
|
|
52
|
+
|
|
53
|
+
file_1 = self._create_test_file()
|
|
54
|
+
|
|
55
|
+
backend.add_file('testfile.txt', file_1)
|
|
56
|
+
self.assertEqual(backend.files[0], ('testfile.txt', file_1))
|
|
57
|
+
|
|
58
|
+
backend.close()
|
|
59
|
+
|
|
60
|
+
archive = backend.read_archive()
|
|
61
|
+
self.assertEqual(b'testcontent', archive.read(archive.namelist()[0]))
|
|
62
|
+
|
|
27
63
|
|
|
28
64
|
class TestZipBackend(TestCase):
|
|
29
65
|
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
{% block html-element-lang %}{{ DEVILRY_LANGUAGE_CODE }}{% endblock %}
|
|
6
6
|
|
|
7
7
|
{% block jsimports %}
|
|
8
|
-
<script
|
|
8
|
+
<script type='module'>
|
|
9
|
+
import '{% devilry_theme3_dist_path %}/scripts/plain_es6/latex_math.js';
|
|
10
|
+
</script>
|
|
9
11
|
{% endblock %}
|
|
10
12
|
|
|
11
13
|
{% block styles %}
|
|
@@ -163,7 +163,7 @@ def send_comment_email(comment, user_list, feedbackfeed_url, crinstance_id, doma
|
|
|
163
163
|
)
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
def send_examiner_comment_email(comment_id, domain_url_start):
|
|
166
|
+
def send_examiner_comment_email(comment_id, domain_url_start, before_original_deadline=True):
|
|
167
167
|
"""
|
|
168
168
|
Send email to examiner users.
|
|
169
169
|
|
|
@@ -192,6 +192,9 @@ def send_examiner_comment_email(comment_id, domain_url_start):
|
|
|
192
192
|
``An admin added a new comment for <assignment name>``
|
|
193
193
|
"""
|
|
194
194
|
comment = get_comment(comment_id=comment_id)
|
|
195
|
+
if before_original_deadline and comment.text == '':
|
|
196
|
+
return
|
|
197
|
+
|
|
195
198
|
absolute_url = build_feedbackfeed_absolute_url(
|
|
196
199
|
domain_scheme=domain_url_start, group_id=comment.feedback_set.group.id, instance_id='devilry_group_examiner')
|
|
197
200
|
|
|
@@ -201,8 +204,8 @@ def send_examiner_comment_email(comment_id, domain_url_start):
|
|
|
201
204
|
|
|
202
205
|
if not recipients:
|
|
203
206
|
if not has_examiner:
|
|
204
|
-
# No examiners assigned to the group. Set recipients to the subject-
|
|
205
|
-
# and period-admin users so they receive an e-mail informing that the
|
|
207
|
+
# No examiners assigned to the group. Set recipients to the subject-
|
|
208
|
+
# and period-admin users so they receive an e-mail informing that the
|
|
206
209
|
# group has no examiners assigned.
|
|
207
210
|
if comment.text.strip() == '':
|
|
208
211
|
# Do not spam admins with notifications for comments without any text.
|