diff --git a/blueprints/public/routes_company_edit.py b/blueprints/public/routes_company_edit.py index 49ee76c..c33c815 100644 --- a/blueprints/public/routes_company_edit.py +++ b/blueprints/public/routes_company_edit.py @@ -242,7 +242,6 @@ def _save_description(db, company): if logo_file and logo_file.filename: import os from PIL import Image - import io allowed = {'png', 'jpg', 'jpeg', 'svg', 'webp'} ext = logo_file.filename.rsplit('.', 1)[-1].lower() if '.' in logo_file.filename else '' @@ -254,15 +253,22 @@ def _save_description(db, company): old_path = os.path.join(logo_dir, f"{company.slug}.{old_ext}") if os.path.exists(old_path): os.remove(old_path) - filepath = os.path.join(logo_dir, f"{company.slug}.webp") - if ext == 'svg': - # SVG stays as-is (can't convert to webp) - filepath = os.path.join(logo_dir, f"{company.slug}.svg") - logo_file.save(filepath) - else: - img = Image.open(logo_file) - img.save(filepath, 'WEBP', quality=85) - logger.info(f"Logo uploaded for company {company.id}: {filepath}") + try: + if ext == 'svg': + filepath = os.path.join(logo_dir, f"{company.slug}.svg") + logo_file.save(filepath) + flash('Logo zostało zapisane (format SVG).', 'success') + else: + filepath = os.path.join(logo_dir, f"{company.slug}.webp") + img = Image.open(logo_file) + img.save(filepath, 'WEBP', quality=85) + flash(f'Logo zostało przekonwertowane z {ext.upper()} do WebP i zapisane.', 'success') + logger.info(f"Logo uploaded for company {company.id}: {filepath}") + except Exception as e: + logger.error(f"Logo conversion failed for company {company.id}: {e}") + flash('Nie udało się przetworzyć pliku logo. Spróbuj inny plik (PNG, JPG lub WebP).', 'error') + else: + flash(f'Nieobsługiwany format pliku (.{ext}). Dozwolone: PNG, JPG, SVG, WebP.', 'warning') def _save_services(company): diff --git a/templates/company_edit.html b/templates/company_edit.html index 558c5d3..3e6fad5 100644 --- a/templates/company_edit.html +++ b/templates/company_edit.html @@ -848,7 +848,7 @@
PNG, JPG, SVG lub WebP. Zalecany rozmiar: min. 200x200px.
+PNG, JPG, SVG lub WebP. Pliki graficzne zostaną automatycznie przekonwertowane do formatu WebP. Zalecany rozmiar: min. 200x200px.