- Migrate Status.plugin_data for "select_assignment" plugin
- admin...examiners: Split up get_unfiltered_queryset_for_role to speed up the count.
- Milestone 6.6.0
- Translations
- Migrations
- Fix buildstatic error caused by unusable less version.
- Update to cradmin_legacy>=6.2.0,<7.0.0 - removes dependency on future library
- Prepare 6.5.0 release - see 3aa94caf84054e3fd91b5282c5e775994eea40d5 for all the changes.
- Remove TracebackLoggingMiddleware from default MIDDLEWARE setup.
- Make debugging error handling setup easier.
- compressionutil: Make the base action class for compression re-raise after catching exception.
- Add a new error reporting system that can be overridden via settings.
- applicationstate: Fix redis_cls error
- applicationstate: Correct import path for redis Sentinel.
- applicationstate: Update readiness check for Redis to handle sentinel
- migration_guides: add migration guide for upgrading from 6.4.0 to 6.5.0 feat(changelog): add changelog for Devilry 6.5.0 with new features and fixes
- locale: update translations
- rq_handlers: add RQ timeout exception handler for better error reporting feat(tasks): implement simulate_timeout_task for testing timeout scenarios feat(settings): add comment for RQ exception handler configuration closes #1310
- qualification_preview: #1324 add CSV download functionality for qualified students
- examiner_feedback: #1287 update grade editing logic to redirect with warning message
- comment_email: #1323 include course name in comment email subjects and templates
- core: #1303 - applicationstate readyness probe now checks rq redis connections for all rq queues and database healthcheck now also handle other exceptions which might occur as well
- devilry_dbcache: #1328 - New cache field public_student_attempts_with_delivered_files feat(devilry_admin): #1328 - New sheet Number of attempts
- pyrproject: upgrade to django>=5.2.3,<5.3.0
- docker-compose: update minio to work on postgres 16
- tests_datetime_format: Use format module path for test settings
- core: bulk_create_groups adds started_by to batch operation
- settings: #1327 - added blockquote to the HTML_SANITIZERS.devilry used by markdown
- test_dashboard.py: update num queries
- settings: Remove USE_L10N and SHA1PasswordHasher as they are no longer in use
- tests: Remove USE_L10N as it no longer in use.
- Make debugging error handling setup easier.
- compressionutil: Make the base action class for compression re-raise after catching exception.
- Add a new error reporting system that can be overridden via settings.
- Remove RQEmailBackend
- devilry_message: Translation and logging fix.
- message: Make devilry_message send via RQ - thus deprecating RQEmailBackend.
- Update attempt number assertions in student item value tests
- Correct attempt number calculation for Norwegian ordinal formatting
- Update attempt number formatting to use ordinal representation
- Simplify attempt number formatting for Norwegian and English languages #1305
- Enhance attempt number formatting with Norwegian ordinals and English support #1305
- Correct dependencies broken by 6.4 branch merge.
- command: Empty commit to proceed 6.4.0rc2
- deadline_management: Refactor __give_new_attempt method to simplify feedback set creation and improve variable naming
- devilry_dbcache: Simplify attempt number formatting and support Norwegian translations
- devilry_dbcache: Update admin display to use readonly_fields and adjust list_display for AssignmentGroupCachedData
- Enhance attempt number formatting to support Norwegian ordinals based on session language
- devilry_group: Raise exception when feedbackset compress action fails to execute.
- Add redirect view for the email notification URL sent when students add a comment (sent to examiners/admins)
- Add system messages support just like the other "branding" templating.
- Add content-disposition for file downloads.
- devilry.devilry_cradmin.devilry_listfilter.lists: created DevilryVertical listfilter list that useses the custom FiltersHandler DevilryFiltersHandler
- AssignmentBatchMixin: changed feedback_set_path to correct formating
- AssignmentGroupCacheData: fixed weird 4st try problem
- nb/LC_MESSAGES/django.po: fixed 4st error
- ManageDeadlineView: added missing __create_groupcomment to __give_new_attempt
- devilry_account.crapps.account.utils: small fix to make codebase compatible with pycountry > 17
- develop-settings: moved out model bakery class to own file
- devilry_deadlinemanagement.views.manage_deadline_view.ManageDeadlineView: changed __give_new_attempt to update deadline if there is no published feedback in feedbackset instead of always creating a new feedbackset
- devilry_dbcache.customsql_sqlcode.groupcomment.triggers: added ON CONFLICT clause to on_group_comment_text_update
- StreamZipBackend: removed specified file mode from opening files when creating zip
- devilry_dataporten_allauth.views: fixed imports
- GroupCommentDeleteView: moved custom delete logic from delete to form_valid
- devilry_group/views/examiner/feedbackfeed_examiner.py: change from 404 to redirect when last_feedback has been published
- Use local version of Fira Sans instead of googlefonts.
- Make it possible to configure separate storage backend for single file download URLs.
- Make it possible to configure separate storage backend for archive download URLs.
- Add setting to optionally disable CSRF for certain API views.
- Support downloading archives via S3 presigned URL
- compressionutil: Add logging to file downloads (loglevel DEBUG, no not visible by default)
- dataporten_allauth: Fix get_client call.
- Remove .zip from archive download filenames for admins and examiners.
- archive_download_message.django.html: added an informational message about the use of tar.gz files
- psycopg3 update for RawSQL query
- Show configurable message when archive download is complete.
- Change zip backend to TAR format. Because of issues with S3 and zipfile.
- More S3 tuning, including docs.
- compressionutil: Make zip file creation work with S3 storage.
- Move whitenoise into hard dependencies since we have it in MIDDLEWARE.
- settings.py: fix to allow migrations from allauth to run
- devilry_dataporten_allauth.views: fixed imports
- Further dependency and releasenotes cleanup
- Replace dj-static with whitenoise.
- Remove old unused delivery and gradingsystem models.
- Make storage for all the models.FileField fields configurabe via settings.
- Update cradmin_legacy to 5.0.1,<6.0.0
- Change ZIP backend so it uses storage (which can be blob storage) instead of streaming.
- comment_email.py: fixed send_student_comment_email getting unexpected keyword argument
- DevilrySocialAccountAdapter: added 'profilephoto' to extra_data_to_keep
- FileDownloadFeedbackfeedView: change groupcomment visibility check to a more comprehensive check
- download_archive.py: Change from StreamingHttpResponse to FileResponse
- backend_base.py: fixed not closing filedescriptors
- StudentFeedbackFeedView: changed from self.model.... to self.assignment_group.... in before_original_deadline check
- devilry_compressionutil: added if check for save_to_disk if DEVILRY_COMPRESSED_ARCHIVES_DIRECTORY should be used
- devilry_compressionutil: optimization of gathering of files of feedbacksets and assignments for zip generation
- StreamZipBackend: Added missing if test to _create_path_if_not_exists
- devilry_compressionutil: added the ability to stream the creation of zip files
- comment_email.py: added check for if comment is empty and made before first deadline of assignment then it should not send email to examiner
- allauth_adapter.py: removed logging of value, only logs key
- allauth_adapter.py: added removal of unwanted extra_data
- qualification_preview_view.py: re-labeled print buttons and removed order by candidate number
- Added settings to allow spans to have class attribute and to not merge spans when sanitizing input
- for #1281
- Set connecting argument when saving in allauth_adapter.
- devilry_qualifiesforexam.QualificationPreviewView: fixed KeyError causing saving to fail
- devilry_examiner.assignmentgroup: fixed duplicate filters in OrderByDelivery
- devilry_examiner.selfassign.py: fixed added sorting to wrong view
- devilry_examiner.assignment: Added missing sorting on delivery time
- feedbackfeed_examiner.py: fixed defaulting to feedback
- devilry_qualifiesforexam: added listing of required exams on status report
- devilry_examiner: added sorting by delivery time and filter if assignment has an delivery with file attachment to examiner dashboard
- devilry-comment-editor: added button for image markdown
- settings/develop.py: Added mediacopy of files missing to work with whitenoise
- feedbackfeed_examiner.ExaminerPublicDiscussView: set feedback to default open tab instead of discuss
- devilry_admin.asignment.student.overwiev: changed to 'students' to 'groups' to better reflect actual content of view
- devilry_listfilter.user.Search: force encoding of search input to hopefully fix #1077
- devilry_markup: added sanitizer step after markdown conversion
- DevilryOAuth2CallbackView: get_app() to .app
- Translation: added missing translations
- PrintStatusView: hide footer when printing
- pyproject.toml: removed certifi requirement
- PrintStatusView: propper sorting and more data displayed
- pyproject.toml: upped the version of gunicorn to 21
- devilry_authenticate: changed allauthloginview to support allauth version > 0.55
- AssignmentGradingConfigurationUpdateView: corrected changing grading for assignments
- This will be a major release
- Django 4.2 and python 3.10 support - Add health-check endpoints. - Group invitations: Now using the devilry_message backend for storing messages. - WCAG: Contrast-issue with link in "No access" warning-box. - Translations: Various translation errors. - Self-assign: Issue with duplicate rows from query when examiner is self-assigning. - Self-assign: Missing CSRF-token. - Comment-notification to examiners: When examiner posts comments all admins are notified.
- Add endpoints readiness and liveness probing
- Use CSRF-middleware to ensure CSRF-cookie is set everywhere
- If user is admin and examiner, the user should receive a notification as examiner if they post a comment as an admin.
- E-mail sent to admins when comment-poster was the only examiner in the group
- Group invite - email translations
- Group invite - use devilry_message system
- Use distinct to filter out duplicate rows from AssignmentGroup-query
- translation errors
- Contrast level adjustment for "danger"-box anchor-tag
- Update sphinx and related packages
- readthedocs testing
- .readthedocs.yml: Python version 3.8
- .readthedocs.yml: Python version 3.10
- Add pip-tools
- Django 4.2 support