Seminar | OverwriteFileStorage -> tvorba.py

This commit is contained in:
Tomas "Jethro" Pokorny 2021-11-29 23:14:13 +01:00
parent 038e6b0950
commit f3a4abb4fd
2 changed files with 8 additions and 7 deletions

View file

@ -69,8 +69,3 @@ class Obrazek(SeminarModelBase):
# TODO placement hint - chci ho tady / pred textem / za textem
class OverwriteStorage(FileSystemStorage):
def get_available_name(self,name, max_length=None):
if self.exists(name):
os.remove(os.path.join(self.location,name))
return super().get_available_name(name,max_length)

View file

@ -32,12 +32,18 @@ from django.core.mail import EmailMessage
from seminar.utils import aktivniResitele
from . import personalni as pm
from . import pomocne
from .base import SeminarModelBase
logger = logging.getLogger(__name__)
class OverwriteStorage(FileSystemStorage):
""" Varianta FileSystemStorage, která v případě, že soubor cílového
jména již existuje, ho smaže a místo něj uloží soubor nový"""
def get_available_name(self,name, max_length=None):
if self.exists(name):
os.remove(os.path.join(self.location,name))
return super().get_available_name(name,max_length)
@reversion.register(ignore_duplicates=True)
class Rocnik(SeminarModelBase):
@ -174,7 +180,7 @@ class Cislo(SeminarModelBase):
help_text='Neveřejná poznámka k číslu (plain text)')
pdf = models.FileField('pdf', upload_to=cislo_pdf_filename, null=True, blank=True,
help_text='PDF čísla, které si mohou řešitelé stáhnout', storage=pomocne.OverwriteStorage())
help_text='PDF čísla, které si mohou řešitelé stáhnout', storage=OverwriteStorage())
titulka_nahled = models.ImageField('Obrázek titulní strany', upload_to=cislo_png_filename, null=True, blank=True,
help_text='Obrázek titulní strany, generuje se automaticky')