Подготовка проекта к публикации: Docker, чистая установка, разделение папок
- Убраны приватные URL и данные из README и docker-compose.yml
- Добавлен .env.example с примером переменных окружения
- Улучшен Dockerfile: добавлен libcairo2-dev для rlPyCairo
- Убраны fallbacks на общие папки: фото, QR, билеты, логотипы строго внутри event_{id}
- Папка скрин/ и *.txt исключены из git
- Пасхалка о создателе mycloud24.ru сохранена
This commit is contained in:
+5
-5
@@ -118,16 +118,16 @@ class Guest(db.Model):
|
||||
return " ".join(parts) if parts else self.full_name
|
||||
|
||||
def _photo_paths(self):
|
||||
"""Возвращает возможные пути к фото: сначала папка мероприятия, потом корень."""
|
||||
"""Возвращает путь к фото гостя в папке мероприятия."""
|
||||
if not self.photo_filename:
|
||||
return []
|
||||
from pathlib import Path
|
||||
from flask import current_app
|
||||
base = Path(current_app.config["PHOTO_FOLDER"])
|
||||
paths = [base / self.photo_filename]
|
||||
from app.utils.paths import event_photo_folder
|
||||
if self.event_id:
|
||||
paths.insert(0, base / f"event_{self.event_id}" / self.photo_filename)
|
||||
return paths
|
||||
return [event_photo_folder(self.event_id) / self.photo_filename]
|
||||
# fallback только если мероприятие ещё не назначено
|
||||
return [Path(current_app.config["PHOTO_FOLDER"]) / self.photo_filename]
|
||||
|
||||
@property
|
||||
def has_photo_file(self):
|
||||
|
||||
@@ -234,8 +234,6 @@ def send_invitation(guest, event_name=None, additional_text=""):
|
||||
|
||||
# QR-код
|
||||
qr_path = event_qr_folder(guest.event_id) / guest.qr_filename
|
||||
if not qr_path.exists():
|
||||
qr_path = Path(config["QR_FOLDER"]) / guest.qr_filename
|
||||
if qr_path.exists():
|
||||
attachments.append({"path": qr_path, "cid": "qr_code_image", "filename": guest.qr_filename})
|
||||
|
||||
|
||||
@@ -306,9 +306,6 @@ def generate_ticket_image(guest, event, output_path=None):
|
||||
if event.ticket_show_qr:
|
||||
y += 15
|
||||
qr_path = event_qr_folder(guest.event_id) / guest.qr_filename
|
||||
if not qr_path.exists():
|
||||
# fallback на старую корневую папку
|
||||
qr_path = Path(current_app.config["QR_FOLDER"]) / guest.qr_filename
|
||||
if qr_path.exists():
|
||||
qr_size = 200
|
||||
qr_img = Image.open(str(qr_path)).convert("RGB")
|
||||
@@ -321,9 +318,6 @@ def generate_ticket_image(guest, event, output_path=None):
|
||||
# Фото гостя
|
||||
if event.ticket_show_photo and guest.photo_filename:
|
||||
photo_path = event_photo_folder(guest.event_id) / guest.photo_filename
|
||||
if not photo_path.exists():
|
||||
# fallback на старую корневую папку
|
||||
photo_path = Path(current_app.config["PHOTO_FOLDER"]) / guest.photo_filename
|
||||
if photo_path.exists():
|
||||
photo_img = Image.open(str(photo_path)).convert("RGB")
|
||||
photo_img.thumbnail((130, 130))
|
||||
|
||||
Reference in New Issue
Block a user