59 lines
1.5 KiB
Python
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('/')
|