From 04660926d3d33f72dcaa72f432a0ff1be9c5377f Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sat, 24 Jan 2026 03:36:59 +0000 Subject: [PATCH] changing on fee payments --- core/__pycache__/admin.cpython-311.pyc | Bin 8839 -> 9080 bytes core/__pycache__/forms.cpython-311.pyc | Bin 15734 -> 15636 bytes core/__pycache__/models.cpython-311.pyc | Bin 27822 -> 28164 bytes core/__pycache__/views.cpython-311.pyc | Bin 24640 -> 25224 bytes core/admin.py | 4 +- core/forms.py | 5 ++- ...8_remove_appsetting_annual_fee_and_more.py | 41 ++++++++++++++++++ ...etting_annual_fee_and_more.cpython-311.pyc | Bin 0 -> 1676 bytes core/models.py | 10 ++++- core/templates/registration/register.html | 36 ++++++++++++++- core/views.py | 23 +++++++++- 11 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 core/migrations/0018_remove_appsetting_annual_fee_and_more.py create mode 100644 core/migrations/__pycache__/0018_remove_appsetting_annual_fee_and_more.cpython-311.pyc diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index af5adc3af30a7e9d201cf1dcd777a730ef301c76..91bf8044db4a5ee19d01c8c3f0f926b458fbe33f 100644 GIT binary patch delta 598 zcmZp7{o%&DoR^o20SI2$mSn!$$a`Fjivz?3g3o&<-xDhgU}8vRN#S0`$iT1~h#??_ zIfW;aF^vf<$BQAy2a-!;i(>6yNMlUlZ{dhy>tLv0jA9RF&=i=QF8;Q@N;tSQsW`bP zv!En1KTjdJB(bElSd+1+8)$x&WN=1iK|yMf0*V^9)YM{4rdz_r5Xt!5{JfHkoXYsL z)YMx-Fu}yUywb!RkXV&$NKt8Wwt|0o9;Qj!V57uKKq}(%K`Ky;6GN7mTp{tEF@17| zWDMh($wwta{V#AUT;x=|!l}5xZj|;BnhTPQ0}=CqgeG&*(#iLwmADsxL>7XG zMU#1CyttNtm>{Bfa)OKj6l(`V8e=V>w*bps8##hsgBIW@JpaYgnz96H- zJs%{p07NXD{8z?{YcYrkA_^x5${H{(-rOWB&8Px487!p;l2-x|%0S{5hfQvNN@-52 xUD1Zk2j#9aoANRme_+5QCZt{wQ~L;#_yQt6GBYsATw#>{zywk%H~Fm6Y5)UFW*`6n diff --git a/core/__pycache__/forms.cpython-311.pyc b/core/__pycache__/forms.cpython-311.pyc index 4624d9cdb5947c76e0fe5f7cee09722bab4b0018..4aade19ea032b403dffd5577fa82b6ef67db5aba 100644 GIT binary patch delta 1721 zcmZ{kZA@EL7{~9qrL`{_GXL=^>Ty#3^0vmrH*44%P&NEhV%mmdn&l)$aw@LB9lsV=^HxAkdr|p$b zkBYKQ_va*}Z2z1H!ZQ2i#;ABsoDyP|{9Jaxs=ekJM|oZlq~g4paLa|8*KS+|#1r%!Q4ls&Fuw(4*SL-9uV9K^xfOv?Gv6OoTPAfaI(qWpK$k4z{AZmH_(w@TsQ+ zR*IbD9{g1Fc)!)wH9N58JDe4mm9+?N?_6LuvFdAD^EIuwnt#|)K6hX?wCZhG^ERxw z8V#%KXVTQmBGEoX5Mg4-6c2|rRSxTFGSNqAlG1*r?i1-T@VbwX1BT=_2noSXPh;yT z+;kdYMQjs|ofJp>zbkF0Cbl@Js2Qvmq3^88U^v$t0e6 zR8=&Y4sabq$@O@qS!CA6@j&;XAv(T@RW>Gk|J6-m5L~uCP_<#4ja+3hhnAI z+()v)|L~B}?QJKHC`RF_sc_lnwQ0*YgNFk^-={OTT@C#!Bt-eEw$~nJdTEo z;|wXn(32~wjv`_JrfU;K=h>auGa*`DN6#DZ=&6G)6-}P)6||;dM_rkDhM6xK&2_g( z*E^_QN4$%8k0G@sAtt3uPDa(SxRTJ1CTYA`lGKE%OVUd$%l@kOapTtHuA+#D!G-!s za@EMzhlphk)lcALW4(*#^cK!d*YiN3H(+b!A(9mV3DD3vjnd z73-V{5C&;={D~Of6qry|CL&g>i>q_obT|x0<6bpk& zM2&~FoX+oK8J%}oqwKUlKofDzsA+%GL>|EMp(yDGPsh-6_%1TG!KAEcST){>{Kk1% z_%7^8y5sc81LK# ImplLX2W6p#asU7T delta 1899 zcmZ{kZ%kWN6u|E-w9TC(J*l) zCK~2MFN-(@na)jcD&*}0gnd#IKNw9(FfmOu?u!Y2!sz^BG~RQ&TEOil{5a>_bIv>W z+;ck>`7>g?ZZzr;Tdy~SebY^!x0Ta11eD$wkK=|iTZ08p-mr!i@xh)p!2$-y@uR`0SV@W z7|0Zj+kLls(essAs<}*hJMH0SH|l%poF-h7h(u^i0*WtZ$BMI7dk}LjhrUsM|}mZG9L*B!h`atqjXp4fFwCX&R7cj zPs&-Uh{+WQ4146{9xXK%U@JXnJe?cU55*$|<{r~|xF^VT#dt&04B>X_G1xUwUg&Fj zG5z+F4`>^w53kz}Y$7K8Y_`t0qWQbmYHLEgway+jJYCNe~&-7K+c#^5WKP{6!J>4EC}Y zR#f>`bt~RP_u*s8_tr4KHOSOrv+D@xfP=Krb_NqVS^S)0v|mZlbi$5IZ#vxS zQ6?T%{&u)keGw+ks|mD;@Y;B;I#6Ny=TqbD=>|g&fOjU9Ny*0WnaS)S!`_o^K{8Y& z2)=+XEC>>vEfR`()*ytQVhF)=ZHhN^1dM<~w6HjUN0iCpZ&jLC!TK8Ymh7vPLF9E` z0O=yY1}FsZOQ{9vZ3e&cRmoLcGzt1;z?*=#7(zR$r4vpoKF4Y+rQbOV3n=*QEbS5) z0X~{uHi9qlHvUwm#+o_Uxk5L}%PM(g6QExQ+_$_NZ1-iQsUly6Kczxd!+5gWFk)M# z8u}hfJ3TCs(U24-t*{Fh64MS!@+l!Koeewh4s7y9Zi3gn2A1E8so5uPyOjw_`r`CoGZp{ep|3V_-lc4%bj{I1t{@G1G>Mfh+=+7@Vnm2xGb-&sjnAo$%3H zwTG<9k>_on25&wo@6f`!yzv&$-2i?+d=|8zz6;O;-UG}4W*K5ys4M8;S^xk5 diff --git a/core/__pycache__/models.cpython-311.pyc b/core/__pycache__/models.cpython-311.pyc index 9f1466b581bf39c77c04a25add60fb600dab01ca..8fa5624f5a20c37fcbcf5a8b436f4a5ca8dbbeed 100644 GIT binary patch delta 1128 zcmZuuO>7fK6y90?K%yohF|p%Kc4Gq$q_LAYX(d`PD#T7moDhs%C^kuI>~)gj*kQeP zN^w(Fii89lkRAtf;83Z82m~@(!721uPN-vbk!avR#i55*0wlzNQ|H-2KwzZ#^v(CZ zdGF1en}3nz$E5LULqk2s)+3)f_qp#@<10U}8sP7*hPCm)CB9iUeAj|DE}oN3NfCY< zcD1xJzTT10*>2~#VJ_LR%q1OHc#gZyc5Ow4q;r{zwk5ZOxvs5HzyC>{B|JN~uplcA z_;-Kbm(6cZdo!7QJna~gC=i1rRvJbvBdr=c)S$~2p!cC}(xb-PN9R+hD+zm(D?Z`oOP($B^#{Ri~^ z12i^CGg*4-M=C8&Umqmzknce?;D4z-aEXb3+bE_fO~ zx(N-%h43jt7mP)Ei3G)nxV007ZUm8ixgsHSAXrdC_(WTc+#$S$z<>T$?fl^*2G?fv zS`ZpB)XG>y*^LzYQdW_*!p7)cBEV=gWVACCZW*m`J6d3M-7(3ulSw|9h!uzfevf&~ z`|#ox_;zy9rffs*Vo7q0aE@9(op9!uL;~zpMVqqYV-el(#iY|5M9a+*-6tXFnMw_; ze?0p4vBPHwK0IDS=0SE9nFRNyd^_GwW)C{+#^Xf|p<8oL2YKR!@8f@(hM90gJ9ykc zng$u|GOulzjpyR3swg9nOgPMbyfy@96WdH*`D`+umiH(L%`tbHcMC*(&V2|MtQXr~ Op#Ji$xfAZ4_~(E43_c40 delta 869 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 TBsjMc`1)LiVeQt5H^_egB|>>4 delta 3611 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 B`x^iN diff --git a/core/admin.py b/core/admin.py index 2c70ecf..ba958ef 100644 --- a/core/admin.py +++ b/core/admin.py @@ -95,7 +95,9 @@ class AppSettingAdmin(admin.ModelAdmin): (None, {'fields': ('app_name', 'logo', 'slogan')}), (_('Contact Information'), {'fields': ('contact_phone', 'contact_email', 'contact_address')}), (_('Legal'), {'fields': ('registration_number', 'tax_number', 'terms_of_service', 'privacy_policy')}), - (_('Subscription'), {'fields': ('subscription_enabled', 'monthly_fee', 'annual_fee')}), + (_('Subscription Status'), {'fields': ('subscription_enabled',)}), + (_('Shipper Subscription Fees'), {'fields': ('shipper_monthly_fee', 'shipper_annual_fee')}), + (_('Truck Owner Subscription Fees'), {'fields': ('truck_owner_monthly_fee', 'truck_owner_annual_fee')}), ) def has_add_permission(self, request): diff --git a/core/forms.py b/core/forms.py index 7ee09ed..8fec155 100644 --- a/core/forms.py +++ b/core/forms.py @@ -33,9 +33,10 @@ class UserRegistrationForm(UserCreationForm): app_settings = AppSetting.objects.first() if app_settings and app_settings.subscription_enabled: + # We will update these labels via JS based on selected role to show the correct fee self.fields['subscription_plan'].choices = [ - ('MONTHLY', _('Monthly (%(fee)s)') % {'fee': app_settings.monthly_fee}), - ('ANNUAL', _('Annual (%(fee)s)') % {'fee': app_settings.annual_fee}), + ('MONTHLY', _('Monthly Plan')), + ('ANNUAL', _('Annual Plan')), ] self.fields['subscription_plan'].required = True else: diff --git a/core/migrations/0018_remove_appsetting_annual_fee_and_more.py b/core/migrations/0018_remove_appsetting_annual_fee_and_more.py new file mode 100644 index 0000000..26a687d --- /dev/null +++ b/core/migrations/0018_remove_appsetting_annual_fee_and_more.py @@ -0,0 +1,41 @@ +# Generated by Django 5.2.7 on 2026-01-24 03:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0017_appsetting_annual_fee_appsetting_monthly_fee_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='appsetting', + name='annual_fee', + ), + migrations.RemoveField( + model_name='appsetting', + name='monthly_fee', + ), + migrations.AddField( + model_name='appsetting', + name='shipper_annual_fee', + field=models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='Shipper Annual Fee'), + ), + migrations.AddField( + model_name='appsetting', + name='shipper_monthly_fee', + field=models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='Shipper Monthly Fee'), + ), + migrations.AddField( + model_name='appsetting', + name='truck_owner_annual_fee', + field=models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='Truck Owner Annual Fee'), + ), + migrations.AddField( + model_name='appsetting', + name='truck_owner_monthly_fee', + field=models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='Truck Owner Monthly Fee'), + ), + ] diff --git a/core/migrations/__pycache__/0018_remove_appsetting_annual_fee_and_more.cpython-311.pyc b/core/migrations/__pycache__/0018_remove_appsetting_annual_fee_and_more.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c07b71a2e0affc6a45db9f88c41b51af6af76dc5 GIT binary patch literal 1676 zcmb7DKTq306hGUENlf^6AQ)OGEd@0l2u!UiS_!G5RaKycszap8GPxrdVmtMp1VRUf z4jtM04XCPS=tt;B2vP=gLzhl$Mldn;osENOA}Y@I^WDAo`@MJXz5CYFqaYZ+pSpTI ziO?Uuhz6{KaXJUTuZSQbl#n6h1w+h>0us>+M8waCNL1LAE^N^O%zm_1d5I)eQ8szZ z)mf1#hF-KaSGP=u$%aK}$tgrg{_ne3oPH9xON#OWL3xn~MIkSVh$c3ppujbe>WKpp z+`$))Hj89O3pug}4jC|Ao2k}L7fF#cQR>|X31EgV9QDlAg9V=AJUtzGdT-3r*O90H z#ykTZdGP;uigG?p2BBm_EWH@j3JRAfSTST1P=>aZ?C*EO%?LMLk5D$$F&>#$6P+H00WgAlTk-3@$p z1_Vp4>$F7JU=%_uuG(Paa4|eC_sE7_+be9TR@J-`aBcV<-ydJ*`>_bwNZdZoJ`xAS zJS=4umQsUARh20!B$s$43iFJreuQH11o9Q3Woi;?7If;^{6ezs6>3-&x)2;GHBU$| zvw4rR%=0i$p;ECR-{Cd=j!r?3&OhWfEQ98}HP3Xt9Nne`&$aAa)v~voGNd-g8zgsm zy>rkik5xPH81IeC%0oTF)|f8u*!(I5f=`^6aQpXKk1wP2vfxYNki7TWS5W%S7p0jR zI~tid8W{DHQd&7dAkMh(Q&-eu9n`lu`c{CRJi?RvQ%yYi^X)IG@n)r=c@11S#FZwl z_+1H34C0In?l*>

{% trans "Create your account" %}

-
+ {% csrf_token %} {% if form.non_field_errors %} @@ -101,4 +101,38 @@ + +{% if subscription_enabled %} + +{% endif %} + {% endblock %} \ No newline at end of file diff --git a/core/views.py b/core/views.py index d0ab69f..2ac4392 100644 --- a/core/views.py +++ b/core/views.py @@ -10,6 +10,7 @@ from django.db.models import Q from django.contrib.auth.models import User from .whatsapp import send_whatsapp_message from django.contrib.auth.forms import AuthenticationForm +import json def home(request): """Render the landing screen for MASAR CARGO.""" @@ -25,6 +26,19 @@ def home(request): def register(request): app_settings = AppSetting.objects.first() subscription_enabled = app_settings.subscription_enabled if app_settings else False + + # Fees for JS + fees = { + 'SHIPPER': { + 'MONTHLY': str(app_settings.shipper_monthly_fee) if app_settings else "0.00", + 'ANNUAL': str(app_settings.shipper_annual_fee) if app_settings else "0.00", + }, + 'TRUCK_OWNER': { + 'MONTHLY': str(app_settings.truck_owner_monthly_fee) if app_settings else "0.00", + 'ANNUAL': str(app_settings.truck_owner_annual_fee) if app_settings else "0.00", + } + } + if request.method == 'POST': form = UserRegistrationForm(request.POST) if form.is_valid(): @@ -53,7 +67,12 @@ def register(request): messages.error(request, _("Please correct the errors below.")) else: form = UserRegistrationForm() - return render(request, 'registration/register.html', {'form': form, 'subscription_enabled': subscription_enabled}) + + return render(request, 'registration/register.html', { + 'form': form, + 'subscription_enabled': subscription_enabled, + 'fees_json': json.dumps(fees) + }) def verify_otp_registration(request): registration_data = request.session.get('registration_data') @@ -407,4 +426,4 @@ def terms_of_service(request): 'content': app_settings.terms_of_service if app_settings else _("Terms of service are coming soon.") } } - return render(request, 'core/article_detail.html', context) + return render(request, 'core/article_detail.html', context) \ No newline at end of file