from django.db import models from django.utils.translation import gettext_lazy as _ from aleksis.core.mixins import ExtensibleModel from aleksis.core.util.core_helpers import path_and_rename def path_and_rename_poster(instance, filename: str) -> str: return path_and_rename(instance, filename, upload_to="poster") class Poster(ExtensibleModel): calendar_week = models.IntegerField(verbose_name=_("CW")) year = models.IntegerField(verbose_name=_("Year")) pdf = models.FileField(upload_to=path_and_rename_poster, verbose_name=_("PDF")) class Meta: unique_together = ("calendar_week", "year") verbose_name = _("Poster") verbose_name_plural = _("Posters") def __str__(self): return "{} {}/{}".format(_("CW"), self.calendar_week, self.year)