fix: hochgeladene Logos nicht mehr in einem Screen-Ordner ablegen
Hochgeladene Logos landeten unter media/<site>/logos/. admin() behandelt aber jeden Unterordner von media/<site>/ als Screen und schreibt ihn per get_screen_config() dauerhaft in die Konfiguration. Der Logo-Ordner erschien dadurch als Screen in der Oberflaeche, bekam beim Generieren eine eigene welcome.html und liess sich wie ein Screen bespielen - und die darin liegenden Logos wie Screen-Medien loeschen. Genau so ist eines der hochgeladenen Logos verschwunden. Logos liegen jetzt als media/<site>/logo_<slot>.png direkt im Standort-Verzeichnis, so wie das Hintergrundbild als media/<site>/background.* - aus demselben Grund. Die URL bleibt /media/<site>/logos/<datei>, die Route liest aus dem Standort-Verzeichnis; bestehende welcome.html funktionieren damit unveraendert weiter. Zusaetzlich wird der Ordnername "logos" bei der Screen-Erkennung uebersprungen, damit Altbestaende nicht erneut als Screen auftauchen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -161,7 +161,12 @@ def remove_logo_background(image, tolerance=LOGO_TOLERANCE):
|
||||
return img, None
|
||||
|
||||
|
||||
LOGO_DIRNAME = "logos"
|
||||
# Logos liegen als Dateien direkt im Standort-Verzeichnis, nicht in einem
|
||||
# Unterordner: admin() behandelt jeden Unterordner von media/<site>/ als Screen
|
||||
# und legt ihn dauerhaft in der Konfiguration an. Das Hintergrundbild wird aus
|
||||
# demselben Grund als media/<site>/background.* abgelegt.
|
||||
LOGO_URL_PREFIX = "logos" # nur der Pfadbestandteil in der URL
|
||||
LOGO_FILENAME = "logo_{slot}.png"
|
||||
LOGO_EXTENSIONS = (".png", ".jpg", ".jpeg", ".gif", ".webp", ".bmp")
|
||||
|
||||
|
||||
@@ -198,12 +203,12 @@ def save_uploaded_logo(file_storage, site, slot, freistellen=True):
|
||||
if img.size != vorher:
|
||||
print(f"✅ Generate - Logo zugeschnitten: {vorher[0]}x{vorher[1]} → {img.size[0]}x{img.size[1]}")
|
||||
|
||||
logo_dir = os.path.join(MEDIA_DIR, site, LOGO_DIRNAME)
|
||||
os.makedirs(logo_dir, exist_ok=True)
|
||||
dateiname = f"logo_{slot}.png"
|
||||
img.save(os.path.join(logo_dir, dateiname), "PNG")
|
||||
site_dir = os.path.join(MEDIA_DIR, site)
|
||||
os.makedirs(site_dir, exist_ok=True)
|
||||
dateiname = LOGO_FILENAME.format(slot=slot)
|
||||
img.save(os.path.join(site_dir, dateiname), "PNG")
|
||||
|
||||
url = f"/media/{site}/{LOGO_DIRNAME}/{dateiname}?v={int(time.time())}"
|
||||
url = f"/media/{site}/{LOGO_URL_PREFIX}/{dateiname}?v={int(time.time())}"
|
||||
print(f"✅ Generate - Logo hochgeladen: {url}"
|
||||
+ (f" (Hinweis: {hinweis})" if hinweis else ""))
|
||||
return url, hinweis
|
||||
|
||||
Reference in New Issue
Block a user