In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
This patch provides functionality to allow the
assign activity to have timed attempts for submissions.
It includes the logic, UI and adminstration changes
fot timed submissions.
This class would belong more appropriately within the 'user' API
(core_user) instead of within the 'core' API, since it is
directly related to user data.
Since the class has only just been added to Moodle, now is a good
time to move it.
In all cases changes have been kept to a minimum while not making
the code completely horrible. For example, there are many instances
where it would probably be better to rewrite a query entirely, but
I have not done that (in order to reduce the risk of changes).
Couple of changes:
- The duedate, cutoffdate and allowsubmissionsfromdate are now always
shown for relative dates courses.
- When relative dates mode is enabled, calculate and apply the enrolment
start offset to the due date in SQL. No changes to col_duedate needed.
Sorting is supported.
The 'Status' column is sorted using 'status ASC/DESC, userid ASC',
where status does not contain the due date. Overdue assignments
have additional information displayed, but this is unrelated to
the sort, meaning we don't need to change anything with sorting.
We are simplifying this query so it will return grades if the attempt matches
the submission attempt, or there is no submission. The case where there is a grade
but no submission can happen only for group assignments.
Marking allocation was only ever applied in the view for the grading table. It should
have been added to the list_participants function because that is used by webservices and
the new grading UI.
This fixes the error when viewing the Grading summary with Blind Marking and Team submission is enabled:
ERROR: Incorrect number of query parameters. Expected 32, got 31.
This prevents display of submission time/date when the assignment
submission record is in a new state. It also keeps the display of
overdue assignments identical for those students who have viewed
the assignment yet not submitted, for those students who have
not viewed the assignment, and for those students who have not
viewed the assignment yet the instructor has accessed the grading
page.