Enhance task numbers, enable late submissions with badges, and fix overdue badges

This commit is contained in:
Dmitry Belan
2026-09-28 21:13:19 +03:00
parent aa8894df59
commit 6371b3202f
5 changed files with 44 additions and 18 deletions
+8 -5
View File
@@ -68,9 +68,11 @@ def assignment_detail(request, pk):
can_submit = True
time_left_seconds = None
needs_start = False
is_late = False
if assignment.deadline and now > assignment.deadline:
can_submit = False
is_late = True
# can_submit = False # Allow late submissions
if assignment.time_limit:
if not submission:
@@ -85,11 +87,10 @@ def assignment_detail(request, pk):
if request.method == 'POST':
# Allow saving this final POST, but mark it as expired
submission.is_time_expired = True
# We don't set can_submit = False here so the POST is processed
else:
can_submit = False
submission.is_time_expired = True
submission.status = 'PENDING' # Or graded with 0
submission.status = 'PENDING'
submission.save()
else:
time_left_seconds = int(allowed - elapsed)
@@ -104,7 +105,8 @@ def assignment_detail(request, pk):
assignment=assignment,
student=request.user,
status='IN_PROGRESS',
started_at=now
started_at=now,
is_late=is_late
)
return redirect('lms:assignment_detail', pk=pk)
@@ -115,7 +117,7 @@ def assignment_detail(request, pk):
form = AnswersForm(request.POST, request.FILES, questions=questions)
if form.is_valid():
if not submission:
submission = Submission.objects.create(assignment=assignment, student=request.user)
submission = Submission.objects.create(assignment=assignment, student=request.user, is_late=is_late)
all_auto = True
total_points = 0
@@ -211,4 +213,5 @@ def assignment_detail(request, pk):
'can_submit': can_submit,
'needs_start': needs_start,
'time_left_seconds': time_left_seconds,
'is_late': is_late,
})