diff --git a/lmsege/lms/admin.py b/lmsege/lms/admin.py index c569d08..a12fa88 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', 'created_at') + list_display = ('title', 'subject', 'is_published', 'is_closed', 'deadline', 'created_at') list_display_links = ('title',) - list_filter = ('subject', 'is_published') + list_filter = ('subject', 'is_published', 'is_closed') search_fields = ('title', 'description') exclude = ('created_by',) filter_horizontal = ('assigned_students',) diff --git a/lmsege/lms/models.py b/lmsege/lms/models.py index f65d264..f7593b3 100644 --- a/lmsege/lms/models.py +++ b/lmsege/lms/models.py @@ -22,6 +22,8 @@ class Assignment(models.Model): assigned_students = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='assigned_assignments', verbose_name='Назначенные ученики', blank=True, limit_choices_to={'role': 'STUDENT'}, help_text='Выберите учеников, если задание не для всех.') created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, limit_choices_to={'role__in': ['TEACHER', 'ADMIN']}, verbose_name='Кем создано') created_at = models.DateTimeField('Дата создания', auto_now_add=True) + deadline = models.DateTimeField('Дедлайн', blank=True, null=True, help_text='После этого времени ответы не принимаются.') + is_closed = models.BooleanField('Прием ответов закрыт', default=False, help_text='Включите, чтобы вручную закрыть прием ответов на задание.') class Meta: verbose_name = 'Задание' diff --git a/lmsege/lms/templates/lms/assignment_detail.html b/lmsege/lms/templates/lms/assignment_detail.html index c4991aa..be7c4e9 100644 --- a/lmsege/lms/templates/lms/assignment_detail.html +++ b/lmsege/lms/templates/lms/assignment_detail.html @@ -94,6 +94,11 @@ {% endfor %} + {% elif not can_submit %} +
Вы больше не можете отправлять ответы, так как дедлайн истек или преподаватель закрыл задание.
+