From 34ee54d58fa4b256ff82b9781bc2db8d057451fc Mon Sep 17 00:00:00 2001 From: Kobe Date: Mon, 26 May 2025 10:42:45 +0200 Subject: [PATCH] Add company info to the settings --- __pycache__/app.cpython-313.pyc | Bin 3820 -> 3820 bytes __pycache__/models.cpython-313.pyc | Bin 12303 -> 13433 bytes ...ea77_add_company_information_fields_to_.py | 50 ++++++ ...any_information_fields_to_.cpython-313.pyc | Bin 0 -> 3346 bytes models.py | 11 ++ routes/__pycache__/main.cpython-313.pyc | Bin 29370 -> 31725 bytes routes/main.py | 34 +++- templates/settings/settings.html | 2 +- templates/settings/tabs/general.html | 145 +++++++++++++++++- 9 files changed, 236 insertions(+), 6 deletions(-) create mode 100644 migrations/versions/787468cfea77_add_company_information_fields_to_.py create mode 100644 migrations/versions/__pycache__/787468cfea77_add_company_information_fields_to_.cpython-313.pyc diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc index a5c871d7da527a68ba13039cd84c7421a2aeb950..734a7cd463608aeb6b2f66c3e4434d5cf7218fbd 100644 GIT binary patch delta 20 acmaDO`$m@gGcPX}0}zyGm~7;J$OiyH$px?g delta 20 acmaDO`$m@gGcPX}0}!0xH{QtokPiSudIjnL diff --git a/__pycache__/models.cpython-313.pyc b/__pycache__/models.cpython-313.pyc index 9f733d16cf81d1072f78762626419a100202e8aa..1d0e19418ced7f20aa67b2f7964d7820a11a8abb 100644 GIT binary patch delta 834 zcmeBA_?f}?nU|M~0SKHlO)|vfHu62xWO~6o`J?8|$$YFL%p9hSll6HuLF~zCEIJ@s z7$^qPz`y{bi+Cq9YDt3SxL{&1x`+=Z2h=ab$PeRTF+~86oFH5d(*_}!93#hMWmauQ zjmZnOg(t6JRl?y~F_3yjy~!I{gqbCRjNo*jxQL7;bCFbxbTE$;gDJ$13`H`*yhXC< ze46}|)wNCei==_#FHZo8A}JuTIYzsXk#W-Gb2_1na+BBa>rM{TRj9wklboMhkeF8) zpO=`MdW#>%D^E=-&MZm2#S0Ti%}vbAL2wH)^7D|CC#Iwnr4|<>OiRuzsYIwQE=dHM z#SJs7DzgA;lNr$Br_o9;Q$b4Jqq%$b=hm}lo*7SV0+MHOY5oqJhC2Plf&1Pt5i z!Pa3nSV&~L=0wdIPV+rydM-$s?R!~BtHB$G!BR5wHD_ura9ZxZ(EYNM&IK0n8{(4F zD<@Vi5Lzy|P;!OwV!6xW1{YXFZU_obmz*d$!)U(sOzRCClNI#7FrJz$s{dSAf>C0E S(R7Q67GD{F%pzT2$N~VXU;Bgr delta 154 zcmeyF(VxKgnU|M~0SGEJOfvXoHu62xWHMr${897fTrWl^d6Inzcl&CC+C36v9 z41X}E6oV;94-gay1alP$rgLlZOunmYx>-@Lkdd){@?`x`Mxn`T_;n|X87NGCZJ^1x xX|kxH8dDv^WLrc3$&a(UG(O1hb~a89*#%apP@GBhIDmL%&ol96re z<}wk*S#(1u3@|mBloF$fk@#pPi_}D->Omwajb&9eoj}?6;BZ`=z(}=`G)YBL8X6pm z^$*7ShvL%3!Q{wL@?v6OXfzRv$3=0QJyDc%eO7+P4K+u0L(LI0wI{Fqu>$e*-nr*z zWmwwv&DIOFYXP8-l?BMYF`o~ZU=GZ-H92d;r9j;_OH020q7nEeMCJAD#ZZJ_ZX4s| zfGmvhF|O*B4w?;mW(&43o9LOXy@lCAp4nPi$*^a(R#x)R|C;TvXSP4HL?)3aQcSUCs@V%nHh>?%^6KD>qS^VYWADEJ}|71DVVA$`v|s}3!4A%3kYq%YCqi$*iLSaz>Gk$iDq*Xh!qNs+AuwqvhEz(6O8Otc-OxH(L zH!x8h2V@)5UgP?&pj$Sr2&_)E@`SOe!JenVo;%h(?P+lQ$6H&lV-uco;Hhsfe>e5bROw9O(b31<>)jh~IAb%Vg={_MkrwS^~XCpJ~O@`)2!D8t1AEvj^8{L$>=`Stmq7D^w_IgzVnIR9Lr z(MNrcqwCR)VJG=vY4N%fQOfYsf4YEpX)`$fYjFHu!ieGP_s&iU{4aty)g|mXBe0HM zIU_uvudfwn1lhB%%YLuUFSmIj0-gxL69GLDK~IF}iD>skgc^tgF=coL3-mQ&b|%9o zm^jYFYfN-8!RQUMO^S~)(ZR$aCK!iD`3ec)ZaQ|`HEiW;yn}nGrAjOKG;;!w-V z^>0!AP3HcAikI&Chyx>~o(p9-Sov(L>QEUDH>m?O z0>rg5z8hxcP#S6)t0rY}+H{aXTv0=LWNJjQ%nC_het)=PGD6-(BS37L2s3h>! z%N|jGh~n%$dDIATzAAm6`JmgR!!|SiE!gk|_;A1pA9v{BX7621AH{3E3|!hfglMn_ zJe7GAMZv=2^PJSDw*`qJz^pr}v0O4RKio==UH=fEyIY;A2Y&0Gc$45$s zDWMh*#gfm`|10^VSw3_h6)pbVq^gJawpbX2U|0-A1lYu~25dGeIEz+cHYo+2LMT%T ztU@SP3VMZ5p%e@Xp;95hBwZ|Mm6GeNEpp_@axx9K#7$!}WH_3!B z8j3`hm+`|fQDF~-!;+9lEJquOB*zDr?TKUv2Q$dQCL;0WR3ou5F)5Ab&9WL65+hP1 zo{YrAe1%L##PC=G+a}yQORWZP?sK6nkm{~$SoApMZrmhYCP&jA5=21?ML8s;@tU)f zd*COpQMyQg^rv*3z%c^X2+R<;PT&gyHwb)5;41<*34BdpmOuu${u+<;8J;J|Wp_HI zb$H0H9*c+Zd57fM<+}17_%vXJ*ZWy(@wO~o(U;pj23j zJyo@F*Nir2?9CW^|0yt-Lw_f1`0u}FTmOWWnz8D;%<37(`mQqd^)jZ*oSqn1!=N*8 zJk(x$3)}ADj}pbH@|q}aE8LGvax5MdaIf5k`4EpzL+9{mbPIkP4xzK@-jQ`k_dVI5 zmgeC3aE;~%yvXk%=laX%YK`IcqOW-F0_h7d$h^Et1 zLWHg>w&8g~e?(w_0E>Y$7r)ff@9E|vO-Qr2@yO9W^j`YP(LHKpgtFMi>Z`<`C7{6# zB%Q{y1o=cdp(j?WH)768sH^E`W97(VV0;T|N@F45EYNsau)|yNkjtH_O6gu4oMpUo zjCo$QhUq{{Mqhy@>w+&mAFoFa5>u)p8P^ghcDt@^G!`C<3Xe#3XpvrE16s7DDE|kh CPZP8N delta 582 zcmX|;PiPZC6vpT6Y&Oltq(ag(*3edar~#|kB#27ULlq3R(!>&^(a^&Zw@tQXb_=yZ z5WI*8RUY-EUPQ=2q%tTa2NlFa=^qb@=$?uo;-5eypqCt+p~VODoA-V5K6o(ozfk)M z!Db+!6H(Oz$t#8NXTjHsSEGbn)|aqHjbdGS2|8}H_23!}i*Adi1S9HE(D|s!pgRRJ zO-Q!0i=?(&V)=?B9vyYzFfJMqp41+v{a*1F5~mpfY~C+dF65a+yBn}g$0*o__#-Ev!!0=b@5MIm<>A$^ncd|jKFUcQe-%?mXGnarG zKFFPg3;bK|{0A=gAP>yNugm6dj`ne8Vc7k}v z>co%b5ZuKd<>A;&D*Kb;;Q(!Z5j$yNwa607Z xJzkk_hp_HRHYw4<61@#o$VL<&UY+Cv3wuFn5lmNN;`57@Yd)sIAlomp{{VEIu8;r# 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 @@
- {{ general_tab() }} + {{ general_tab(site_settings, csrf_token) }}
diff --git a/templates/settings/tabs/general.html b/templates/settings/tabs/general.html index 834a988..51826eb 100644 --- a/templates/settings/tabs/general.html +++ b/templates/settings/tabs/general.html @@ -1,6 +1,143 @@ -{% macro general_tab() %} -
- - General settings will be available soon. +{% macro general_tab(site_settings, csrf_token) %} +
+
+ +
+
+
+ Company Settings +
+
+
+
+ + +
+ +
+
Basic Information
+
+ + +
This name will be displayed in the website title and navigation bar.
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
Address Information
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
Additional Information
+
+ + +
+
+ + +
+
+
+ +
+ +
+
+
+
+
{% endmacro %} \ No newline at end of file