diff --git a/__pycache__/models.cpython-313.pyc b/__pycache__/models.cpython-313.pyc index 1d0e194..e5b1d99 100644 Binary files a/__pycache__/models.cpython-313.pyc and b/__pycache__/models.cpython-313.pyc differ diff --git a/migrations/versions/__pycache__/f18735338888_add_company_logo_field.cpython-313.pyc b/migrations/versions/__pycache__/f18735338888_add_company_logo_field.cpython-313.pyc new file mode 100644 index 0000000..d8e655a Binary files /dev/null and b/migrations/versions/__pycache__/f18735338888_add_company_logo_field.cpython-313.pyc differ diff --git a/migrations/versions/f18735338888_add_company_logo_field.py b/migrations/versions/f18735338888_add_company_logo_field.py new file mode 100644 index 0000000..64c32e5 --- /dev/null +++ b/migrations/versions/f18735338888_add_company_logo_field.py @@ -0,0 +1,32 @@ +"""add company logo field + +Revision ID: f18735338888 +Revises: 787468cfea77 +Create Date: 2025-05-26 10:52:32.572951 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'f18735338888' +down_revision = '787468cfea77' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('site_settings', schema=None) as batch_op: + batch_op.add_column(sa.Column('company_logo', sa.String(length=255), nullable=True)) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('site_settings', schema=None) as batch_op: + batch_op.drop_column('company_logo') + + # ### end Alembic commands ### diff --git a/models.py b/models.py index ad98069..c711992 100644 --- a/models.py +++ b/models.py @@ -131,6 +131,7 @@ class SiteSettings(db.Model): primary_color = db.Column(db.String(7), default='#16767b') # Default from colors.css secondary_color = db.Column(db.String(7), default='#741b5f') # Default from colors.css company_name = db.Column(db.String(100)) + company_logo = db.Column(db.String(255)) # Store the filename of the logo company_website = db.Column(db.String(200)) company_email = db.Column(db.String(100)) company_phone = db.Column(db.String(20)) diff --git a/routes/__pycache__/main.cpython-313.pyc b/routes/__pycache__/main.cpython-313.pyc index ecfaa24..e316fef 100644 Binary files a/routes/__pycache__/main.cpython-313.pyc and b/routes/__pycache__/main.cpython-313.pyc differ diff --git a/routes/main.py b/routes/main.py index 12ddec7..4032f9e 100644 --- a/routes/main.py +++ b/routes/main.py @@ -7,6 +7,7 @@ from sqlalchemy import func, case, literal_column, text from datetime import datetime, timedelta import logging import sys +import time # Set up logging to show in console logging.basicConfig( @@ -399,6 +400,24 @@ def init_routes(main_bp): site_settings = SiteSettings.get_settings() + # Handle logo upload + if 'company_logo' in request.files: + logo_file = request.files['company_logo'] + if logo_file and logo_file.filename: + # Delete old logo if it exists + if site_settings.company_logo: + old_logo_path = os.path.join('static', 'uploads', 'company_logos', site_settings.company_logo) + if os.path.exists(old_logo_path): + os.remove(old_logo_path) + + # Save new logo + filename = secure_filename(logo_file.filename) + # Add timestamp to filename to prevent caching issues + filename = f"{int(time.time())}_{filename}" + logo_path = os.path.join('static', 'uploads', 'company_logos', filename) + logo_file.save(logo_path) + site_settings.company_logo = filename + # Update all company fields site_settings.company_name = request.form.get('company_name') site_settings.company_website = request.form.get('company_website') diff --git a/static/uploads/company_logos/1748249775_logo-placeholder.png b/static/uploads/company_logos/1748249775_logo-placeholder.png new file mode 100644 index 0000000..2bcaf7d Binary files /dev/null and b/static/uploads/company_logos/1748249775_logo-placeholder.png differ diff --git a/templates/common/base.html b/templates/common/base.html index 33963f6..a461988 100644 --- a/templates/common/base.html +++ b/templates/common/base.html @@ -18,7 +18,12 @@