diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc index a5c871d..734a7cd 100644 Binary files a/__pycache__/app.cpython-313.pyc and b/__pycache__/app.cpython-313.pyc differ diff --git a/__pycache__/models.cpython-313.pyc b/__pycache__/models.cpython-313.pyc index 9f733d1..1d0e194 100644 Binary files a/__pycache__/models.cpython-313.pyc and b/__pycache__/models.cpython-313.pyc differ diff --git a/migrations/versions/787468cfea77_add_company_information_fields_to_.py b/migrations/versions/787468cfea77_add_company_information_fields_to_.py new file mode 100644 index 0000000..236f5f4 --- /dev/null +++ b/migrations/versions/787468cfea77_add_company_information_fields_to_.py @@ -0,0 +1,50 @@ +"""Add company information fields to SiteSettings + +Revision ID: 787468cfea77 +Revises: 9faab7ef6036 +Create Date: 2025-05-26 10:42:17.287566 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '787468cfea77' +down_revision = '9faab7ef6036' +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_website', sa.String(length=200), nullable=True)) + batch_op.add_column(sa.Column('company_email', sa.String(length=100), nullable=True)) + batch_op.add_column(sa.Column('company_phone', sa.String(length=20), nullable=True)) + batch_op.add_column(sa.Column('company_address', sa.String(length=200), nullable=True)) + batch_op.add_column(sa.Column('company_city', sa.String(length=100), nullable=True)) + batch_op.add_column(sa.Column('company_state', sa.String(length=100), nullable=True)) + batch_op.add_column(sa.Column('company_zip', sa.String(length=20), nullable=True)) + batch_op.add_column(sa.Column('company_country', sa.String(length=100), nullable=True)) + batch_op.add_column(sa.Column('company_description', sa.Text(), nullable=True)) + batch_op.add_column(sa.Column('company_industry', sa.String(length=100), 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_industry') + batch_op.drop_column('company_description') + batch_op.drop_column('company_country') + batch_op.drop_column('company_zip') + batch_op.drop_column('company_state') + batch_op.drop_column('company_city') + batch_op.drop_column('company_address') + batch_op.drop_column('company_phone') + batch_op.drop_column('company_email') + batch_op.drop_column('company_website') + + # ### end Alembic commands ### diff --git a/migrations/versions/__pycache__/787468cfea77_add_company_information_fields_to_.cpython-313.pyc b/migrations/versions/__pycache__/787468cfea77_add_company_information_fields_to_.cpython-313.pyc new file mode 100644 index 0000000..ec6ef61 Binary files /dev/null and b/migrations/versions/__pycache__/787468cfea77_add_company_information_fields_to_.cpython-313.pyc differ diff --git a/models.py b/models.py index 99d45d1..ad98069 100644 --- a/models.py +++ b/models.py @@ -130,6 +130,17 @@ class SiteSettings(db.Model): id = db.Column(db.Integer, primary_key=True) 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_website = db.Column(db.String(200)) + company_email = db.Column(db.String(100)) + company_phone = db.Column(db.String(20)) + company_address = db.Column(db.String(200)) + company_city = db.Column(db.String(100)) + company_state = db.Column(db.String(100)) + company_zip = db.Column(db.String(20)) + company_country = db.Column(db.String(100)) + company_description = db.Column(db.Text) + company_industry = db.Column(db.String(100)) updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) @classmethod diff --git a/routes/__pycache__/main.cpython-313.pyc b/routes/__pycache__/main.cpython-313.pyc index ffb86a1..eb02311 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 42d4fa2..935ac30 100644 --- a/routes/main.py +++ b/routes/main.py @@ -335,7 +335,8 @@ def init_routes(main_bp): return render_template('settings/settings.html', primary_color=site_settings.primary_color, secondary_color=site_settings.secondary_color, - active_tab=active_tab) + active_tab=active_tab, + site_settings=site_settings) @main_bp.route('/settings/colors', methods=['POST']) @login_required @@ -384,6 +385,37 @@ def init_routes(main_bp): return redirect(url_for('main.settings')) + @main_bp.route('/settings/company', methods=['POST']) + @login_required + def update_company_settings(): + if not current_user.is_admin: + flash('Only administrators can update settings.', 'error') + return redirect(url_for('main.dashboard')) + + site_settings = SiteSettings.get_settings() + + # Update all company fields + site_settings.company_name = request.form.get('company_name') + site_settings.company_website = request.form.get('company_website') + site_settings.company_email = request.form.get('company_email') + site_settings.company_phone = request.form.get('company_phone') + site_settings.company_address = request.form.get('company_address') + site_settings.company_city = request.form.get('company_city') + site_settings.company_state = request.form.get('company_state') + site_settings.company_zip = request.form.get('company_zip') + site_settings.company_country = request.form.get('company_country') + site_settings.company_description = request.form.get('company_description') + site_settings.company_industry = request.form.get('company_industry') + + try: + db.session.commit() + flash('Company settings updated successfully!', 'success') + except Exception as e: + db.session.rollback() + flash('An error occurred while updating company settings.', 'error') + + return redirect(url_for('main.settings', tab='general')) + @main_bp.route('/dynamic-colors.css') def dynamic_colors(): site_settings = SiteSettings.get_settings() diff --git a/templates/settings/settings.html b/templates/settings/settings.html index a27b262..7e77df7 100644 --- a/templates/settings/settings.html +++ b/templates/settings/settings.html @@ -51,7 +51,7 @@