diff --git a/lmsege/lms/admin.py b/lmsege/lms/admin.py index 34ef588..4ea4fe5 100644 --- a/lmsege/lms/admin.py +++ b/lmsege/lms/admin.py @@ -18,9 +18,9 @@ class QuestionInline(StackedInline): @admin.register(Assignment) class AssignmentAdmin(ModelAdmin): - list_display = ('title', 'subject', 'is_published', 'time_limit', 'deadline', 'created_at') + list_display = ('title', 'subject', 'is_published', 'time_limit', 'deadline', 'allow_late_submissions', 'created_at') list_display_links = ('title',) - list_filter = ('subject', 'is_published') + list_filter = ('subject', 'is_published', 'allow_late_submissions') search_fields = ('title', 'description') exclude = ('created_by',) filter_horizontal = ('assigned_students',) diff --git a/lmsege/lms/models.py b/lmsege/lms/models.py index ab1114e..5b36d57 100644 --- a/lmsege/lms/models.py +++ b/lmsege/lms/models.py @@ -24,6 +24,7 @@ class Assignment(models.Model): created_at = models.DateTimeField('Дата создания', auto_now_add=True) deadline = models.DateTimeField('Дедлайн', blank=True, null=True, help_text='После этого времени ответы не принимаются.') time_limit = models.PositiveIntegerField('Лимит времени (минуты)', blank=True, null=True, help_text='Например, 235 для 3ч 55м. Оставьте пустым, если без таймера.') + allow_late_submissions = models.BooleanField('Разрешить дорешивание', default=True, help_text='Если включено, ученики смогут сдавать задание после дедлайна с пометкой "После дедлайна".') class Meta: verbose_name = 'Задание' diff --git a/lmsege/lms/templates/lms/dashboard.html b/lmsege/lms/templates/lms/dashboard.html index 49b2518..9f96c4c 100644 --- a/lmsege/lms/templates/lms/dashboard.html +++ b/lmsege/lms/templates/lms/dashboard.html @@ -47,9 +47,16 @@ {% endif %} {% else %} {% if assignment.deadline and now > assignment.deadline %} - - Дедлайн прошел - + {% if assignment.allow_late_submissions %} + + Дедлайн прошел + + {% else %} + + + Прием закрыт + + {% endif %} {% else %} diff --git a/lmsege/lms/views.py b/lmsege/lms/views.py index 229023f..c16f2b6 100644 --- a/lmsege/lms/views.py +++ b/lmsege/lms/views.py @@ -72,7 +72,8 @@ def assignment_detail(request, pk): if assignment.deadline and now > assignment.deadline: is_late = True - # can_submit = False # Allow late submissions + if not assignment.allow_late_submissions: + can_submit = False if assignment.time_limit: if not submission: