mamweb/odevzdavatko/models/priloha_reseni.py

59 lines
1.5 KiB
Python

import os
import reversion
from django.conf import settings
from django.db import models
from django.utils import timezone
from various.utils import aux_generate_filename
from mamweb.models.base import SeminarModelBase
from .reseni import Reseni
def generate_filename(self, filename):
return os.path.join(
settings.SEMINAR_RESENI_DIR,
aux_generate_filename(self, filename)
)
@reversion.register(ignore_duplicates=True)
class PrilohaReseni(SeminarModelBase):
class Meta:
db_table = 'seminar_priloha_reseni'
verbose_name = 'Příloha řešení'
verbose_name_plural = 'Přílohy řešení'
ordering = ['reseni', 'vytvoreno']
# Interní ID
id = models.AutoField(primary_key=True)
reseni = models.ForeignKey(
Reseni, verbose_name='řešení', related_name='prilohy',
on_delete=models.CASCADE,
)
vytvoreno = models.DateTimeField(
'vytvořeno', default=timezone.now, blank=True, editable=False,
)
soubor = models.FileField('soubor', upload_to=generate_filename)
poznamka = models.TextField(
'neveřejná poznámka', blank=True,
help_text='Neveřejná poznámka k příloze řešení (plain text), např. o původu',
)
res_poznamka = models.TextField(
'poznámka řešitele', blank=True,
help_text='Poznámka k příloze řešení, např. co daný soubor obsahuje',
)
def __str__(self):
return str(self.soubor)
def split(self):
"""Vrátí cestu rozsekanou po složkách. To se hodí v templatech"""
# Věřím, že tohle funguje, případně použít os.path nebo pathlib.
return self.soubor.url.split('/')