diff --git a/oioioi/globalmessage/admin.py b/oioioi/globalmessage/admin.py index 4234ca94a..40c6f258f 100644 --- a/oioioi/globalmessage/admin.py +++ b/oioioi/globalmessage/admin.py @@ -1,3 +1,5 @@ +from django.forms import ModelForm +from django.http import HttpRequest from django.urls import re_path, reverse from django.utils.translation import gettext_lazy as _ @@ -5,7 +7,6 @@ from oioioi.base.permissions import is_superuser from oioioi.globalmessage.models import GlobalMessage - class GlobalMessageAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['enabled', 'message']}), @@ -33,6 +34,10 @@ def get_urls(self): return custom_urls + urls + def save_model(self, request: HttpRequest, obj: GlobalMessage, form: ModelForm, change: bool) -> None: + obj.updated = request.timestamp + return super().save_model(request, obj, form, change) + admin.site.register(GlobalMessage, GlobalMessageAdmin) diff --git a/oioioi/globalmessage/migrations/0002_globalmessage_updated.py b/oioioi/globalmessage/migrations/0002_globalmessage_updated.py new file mode 100644 index 000000000..ebbc35c91 --- /dev/null +++ b/oioioi/globalmessage/migrations/0002_globalmessage_updated.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.11 on 2024-10-21 20:48 + +import django +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('globalmessage', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='globalmessage', + name='updated', + field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='updated'), + preserve_default=False, + ), + ] diff --git a/oioioi/globalmessage/models.py b/oioioi/globalmessage/models.py index 8a3523f46..ff3ec5909 100644 --- a/oioioi/globalmessage/models.py +++ b/oioioi/globalmessage/models.py @@ -9,6 +9,7 @@ class GlobalMessage(models.Model): enabled = models.BooleanField(default=False, verbose_name=_("enabled")) start = models.DateTimeField(null=True, blank=True, verbose_name=_("start")) end = models.DateTimeField(null=True, blank=True, verbose_name=_("end")) + updated = models.DateTimeField(null=False, blank=False, verbose_name=_("updated")) def visible(self, timestamp): return ( diff --git a/oioioi/globalmessage/processors.py b/oioioi/globalmessage/processors.py index 813cfd9b4..a36b605e5 100644 --- a/oioioi/globalmessage/processors.py +++ b/oioioi/globalmessage/processors.py @@ -16,10 +16,12 @@ def global_message_processor(request): if message.visible(time): return { 'extra_body_global_message': render_to_string( - 'global-message-user.html', {'global_message': message} + 'global-message-user.html', + {'global_message': message, 'updated': message.updated.strftime('%s')}, ), 'extra_admin_global_message': render_to_string( - 'global-message-admin.html', {'global_message': message} + 'global-message-admin.html', + {'global_message': message, 'updated': message.updated.strftime('%s')}, ), } diff --git a/oioioi/globalmessage/templates/global-message-admin.html b/oioioi/globalmessage/templates/global-message-admin.html index c266a5d5b..7bbe8c581 100644 --- a/oioioi/globalmessage/templates/global-message-admin.html +++ b/oioioi/globalmessage/templates/global-message-admin.html @@ -1,3 +1,3 @@ -