From 060dde78e7ffa27bc4b0f703b42c36f09cab3f1a Mon Sep 17 00:00:00 2001 From: imperosol Date: Fri, 1 May 2026 12:37:02 +0200 Subject: [PATCH] add update date to SithFile model --- com/tests/test_notifications.py | 3 +- .../0050_alter_sithfile_moderator.py | 47 +++++++++++++++++++ core/models.py | 5 +- core/templates/core/file_moderation.jinja | 3 +- core/tests/test_user.py | 3 +- matmat/tests.py | 3 +- sas/models.py | 24 ++++++++-- sas/schemas.py | 10 +++- sas/templates/sas/picture.jinja | 39 ++++++++++----- 9 files changed, 114 insertions(+), 23 deletions(-) create mode 100644 core/migrations/0050_alter_sithfile_moderator.py diff --git a/com/tests/test_notifications.py b/com/tests/test_notifications.py index 8ddbfcb3..fc0e6aee 100644 --- a/com/tests/test_notifications.py +++ b/com/tests/test_notifications.py @@ -7,7 +7,7 @@ from model_bakery import baker from com.models import News, NewsDate from core.baker_recipes import subscriber_user -from core.models import Group, Notification, User +from core.models import Group, Notification, SithFile, User @pytest.mark.django_db @@ -18,6 +18,7 @@ def test_notification_created(): past_news = baker.make(News, is_published=False) baker.make(NewsDate, news=past_news, start_date=now() - timedelta(days=1)) com_admin_group = Group.objects.get(pk=settings.SITH_GROUP_COM_ADMIN_ID) + SithFile.objects.filter(owner__in=com_admin_group.users.all()).delete() com_admin_group.users.all().delete() Notification.objects.all().delete() com_admin = baker.make(User, groups=[com_admin_group]) diff --git a/core/migrations/0050_alter_sithfile_moderator.py b/core/migrations/0050_alter_sithfile_moderator.py new file mode 100644 index 00000000..0b6e9ef1 --- /dev/null +++ b/core/migrations/0050_alter_sithfile_moderator.py @@ -0,0 +1,47 @@ +# Generated by Django 5.2.12 on 2026-05-01 08:59 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models +from django.db.migrations.state import StateApps +from django.db.models import F + + +def set_updated_at(apps: StateApps, schema_editor): + SithFile = apps.get_model("core", "SithFile") + SithFile.objects.update(updated_at=F("date")) + + +class Migration(migrations.Migration): + dependencies = [("core", "0049_user_whitelisted_users")] + + operations = [ + migrations.AlterField( + model_name="sithfile", + name="moderator", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="moderated_files", + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AlterField( + model_name="sithfile", + name="owner", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="owned_files", + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AddField( + model_name="sithfile", + name="updated_at", + field=models.DateTimeField(auto_now=True, verbose_name="updated at"), + ), + migrations.RunPython(set_updated_at, reverse_code=migrations.RunPython.noop), + ] diff --git a/core/models.py b/core/models.py index ffbdebfc..208f1937 100644 --- a/core/models.py +++ b/core/models.py @@ -853,7 +853,7 @@ class SithFile(models.Model): User, related_name="owned_files", verbose_name=_("owner"), - on_delete=models.CASCADE, + on_delete=models.PROTECT, ) edit_groups = models.ManyToManyField( Group, related_name="editable_files", verbose_name=_("edit group"), blank=True @@ -865,6 +865,7 @@ class SithFile(models.Model): mime_type = models.CharField(_("mime type"), max_length=30) size = models.IntegerField(_("size"), default=0) date = models.DateTimeField(_("date"), default=timezone.now) + updated_at = models.DateTimeField(_("updated at"), auto_now=True) is_moderated = models.BooleanField(_("is moderated"), default=False) moderator = models.ForeignKey( User, @@ -872,7 +873,7 @@ class SithFile(models.Model): verbose_name=_("owner"), null=True, blank=True, - on_delete=models.CASCADE, + on_delete=models.SET_NULL, ) asked_for_removal = models.BooleanField(_("asked for removal"), default=False) is_in_sas = models.BooleanField( diff --git a/core/templates/core/file_moderation.jinja b/core/templates/core/file_moderation.jinja index ba9d03d4..fb69ede1 100644 --- a/core/templates/core/file_moderation.jinja +++ b/core/templates/core/file_moderation.jinja @@ -33,7 +33,8 @@ {{ f.name }}
{% trans %}Full name: {% endtrans %}{{ f.get_parent_path()+'/'+f.name }}
{% trans %}Owner: {% endtrans %}{{ f.owner.get_display_name() }}
- {% trans %}Date: {% endtrans %}{{ f.date|date(DATE_FORMAT) }} {{ f.date|time(TIME_FORMAT) }}
+ {% trans %}Date: {% endtrans %} + {{ f.date|date(DATE_FORMAT) }} {{ f.date|time(TIME_FORMAT) }}

+ @@ -146,7 +161,7 @@ @keyup.left.window="currentPicture = previousPicture" @click="currentPicture = previousPicture" > - {% trans %}Previous picture{% endtrans %} + {% trans %}Previous picture{% endtrans %}

@@ -157,7 +172,7 @@ @keyup.right.window="currentPicture = nextPicture" @click="currentPicture = nextPicture" > - {% trans %}Previous picture{% endtrans %} + {% trans %}Previous picture{% endtrans %}