diff --git a/seminar/models/pomocne.py b/seminar/models/pomocne.py index eab52e70..de24ef48 100644 --- a/seminar/models/pomocne.py +++ b/seminar/models/pomocne.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- import logging +import os from django.db import models +from django.core.files.storage import FileSystemStorage from .base import SeminarModelBase @@ -65,3 +67,10 @@ class Obrazek(SeminarModelBase): upload_to='obrazky/%Y/%m/%d/', blank=True, null=True) # 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) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index d123e021..01c09e5e 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -32,6 +32,7 @@ from django.core.mail import EmailMessage from seminar.utils import aktivniResitele from . import personalni as pm +from . import pomocne from .base import SeminarModelBase @@ -173,7 +174,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') + help_text='PDF čísla, které si mohou řešitelé stáhnout', storage=pomocne.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')