Source code for oioioi.contestlogo.models
import os.path
from django.db import models
from django.utils import timezone
from django.utils.text import get_valid_filename
from django.utils.translation import gettext_lazy as _
from oioioi.contests.models import Contest
from oioioi.filetracker.fields import FileField
[docs]def make_logo_filename(instance, filename):
return 'logo/%s/%s' % (
instance.contest.id,
get_valid_filename(os.path.basename(filename)),
)
[docs]class ContestLogo(models.Model):
[docs] contest = models.OneToOneField(
Contest, verbose_name=_("contest"), primary_key=True, on_delete=models.CASCADE
)
[docs] link = models.URLField(
blank=True, null=True, verbose_name=_("external contest webpage url")
)
[docs] def save(self, *args, **kwargs):
self.updated_at = timezone.now()
return super(ContestLogo, self).save(*args, **kwargs)
@property
[docs]def make_icon_filename(instance, filename):
return 'icons/%s/%s' % (
instance.contest.id,
get_valid_filename(os.path.basename(filename)),
)