From 290e13038f34b5463d9b2dce4be8e4916cf91528 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sat, 24 Jan 2026 09:41:56 +0000 Subject: [PATCH] addin notification in adding trucks --- core/__pycache__/admin.cpython-311.pyc | Bin 15330 -> 15343 bytes core/__pycache__/models.cpython-311.pyc | Bin 38445 -> 38752 bytes core/__pycache__/views.cpython-311.pyc | Bin 42339 -> 43463 bytes core/admin.py | 2 +- ..._phone_homesection_admin_phone_and_more.py | 33 ++ ...0026_remove_banner_admin_phone_and_more.py | 25 ++ ...ction_admin_phone_and_more.cpython-311.pyc | Bin 0 -> 1554 bytes ...anner_admin_phone_and_more.cpython-311.pyc | Bin 0 -> 903 bytes core/models.py | 1 + core/views.py | 18 + locale/ar/LC_MESSAGES/django.mo | Bin 32198 -> 33135 bytes locale/ar/LC_MESSAGES/django.po | 354 ++++++++---------- 12 files changed, 233 insertions(+), 200 deletions(-) create mode 100644 core/migrations/0025_banner_admin_phone_homesection_admin_phone_and_more.py create mode 100644 core/migrations/0026_remove_banner_admin_phone_and_more.py create mode 100644 core/migrations/__pycache__/0025_banner_admin_phone_homesection_admin_phone_and_more.cpython-311.pyc create mode 100644 core/migrations/__pycache__/0026_remove_banner_admin_phone_and_more.cpython-311.pyc diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index a8a34de1be03198af5d4734da8b21d4dacb8fb76..1b306ae0c40f52306305b5910a63adaff08ff7fa 100644 GIT binary patch delta 751 zcmYL{PiPZC6vmzApG^!121+rJ#A?$`+N5biwN*;3H&F{h!IQ(fyVz)wO=q{1f|QDQ zwaNoag+?o=Eof2qRFv5Epf?XutE^~jjd+ZI@S+#zO`z`K$K#vtz4>NlH^*z^{`-Ev zcN_n-t7hiqV}Bshwt>bzrYX$Q;bIoDR(MKEufo z4u_{$lo#x-)wplkK_0+t^dPwhF)OS=lfY zEt{ouk+6AKmJ+VMspH?B@I%@KD+!n7j7<{q94^Nt_X>8d!jt$2S+jPxpCF-GRBj?} zaTpGctyo34($Vg`!zH*V1!G6iHGvQ*o?`Wk!yp_3^^=rPEWzK7PoxCXp1woAK{=n- z*b%%E$;lq^b=##gRby-hYp=pI+0;}jn~M$XHMXOURv1bSd&{UGmSJO00M?RCq|665 z!>?rTDKTw_p($oY&r@@vp#7h~-r^Vs`+x()Ry)ti%7t@GAIqy$(X%>}+#(NKN6S0J zdzkDz=C-l4;ZYPkOm7i~|*pggZCHLy)Ip~$0t#yW)9KrC@cq`pXm@g!W5 zn&3sM#a%%|1!}2YQh{J&GYobW2DXkZdg{sD^?@n$Uq^gI^l;c7re`%OGoIoriZk%D z>kIh?>)kgvbLo(~igFdMrO%M6RZ9<%Zt*bUGR5gc4B^_3)>Z`mihs5r>q{R_kZK Jtqz&dS|qlMd@A< z>4BhNw1OIZlq$3FL5yzPmfET$N@^W(s|%L}z2_F{U3?t=`=9@udw)%TpY}KWe(yGZ zlxt@B#dCkK&+F)TRMjw^?`eR~VK3m!0qgAI65^0j|XceRs+5l(2xo_y9DlgYom=qioT~8u&~O!92c~Q|`p< z*l!oMQoF5PgEIhc@J2$GT4a5Tt;9KaXT_68AaawGTZB6thLdA!mpaZ3CE*^nhUBOi z@``+~$p;*xn;SPtY~uD*7n&Hzgy)oWa*=Btx6Vo$V>PP1MWz)@t)v#rM-KLZT1b~& zY!Oc?$Gyv>5MJW?-XJb1J+Lgo(j&)2*iJ($nq|GBnpdW@{{d{3Qk<+q{bEw!Ordz; zEYmMlN@`J`)R`JJiY_&00APqYuzIIFpcWRq-TJ$D*xYa=%fA@T3x-^5GASQ{tu5%^=x IC z;w*wAC6Ghn$Nm@^gE2#w?Wx3=kR`IX><@zr#--UZ{v??nkj(g((Q{gpEz_HKe(&7h z`FQu9bMO0nN!<8C%=k1t-6Y_M&uGEvwyPO`HiEr6O)O-P<@gdFxUKN=WM;G1mw046dmmKaajw?+~@HH&-i2| z85w#kQk89IgIYlLgrgyi58>PEv&+6Rf0h7{cCoMa8q({(^<#%TvEbbZXa;c)l+tR3!lSF>JN z3XZ_NzMb$v&rueD2R$dU+9}~F0)?OlT9jgQIjMK4f-PX0$uH`pc`t!XWC1}TK?89F zE`3$`nu!eze#p$#=RIwP;zqJL2(0AVgjx%)Bh^Xd@1(gP%U{df;PxLCZ49ncT7w# z)bQd>V)_|y_cy%qyQF^=xh%3Pps0{Nf&~8-lP4rU4@V<>6pY%d(j3x@x?7u&asbtYrG+aYRq@a* zQ~7aFF6@ympYO>o=h{k23mFP2YF`0$pVY;Kk>fuokS=wYZ_zEn|F818%FGF!l*CPe(eB4M_MRg4oQ!&PGzD_|>u6cKE>wUu7eFHUclNd;8C z7DZHEoF7Yw&KS0AVVdh7+_(!sx_wqx7HtCb+JnwVf z-19!?JQ|UH`caxaoSkhlh~I)fO`UL$&VE&izxa*t05_!X!bFt|U#1t~nk`MZx+@p$ z&aY%E7!1qtmh&4}jzL#B*zml|0$KRDJ0G9AmZ5p8MY>?XimeHrSzVZ6`b79QiGO?r zUO7~Z{yGgR@sGMPDCP6EeFmlyQDX!vc|-kK2}<}>gE1{LWef&FF|QW*Qo~GdFE|jr zpUTz3SC99--+~9fXgUdX_@S~E6r9|>7jr_h@Rm{y&6w}2 xf4FpXDUhMT1W!i{7 z6sKi1xbDc}!bVyv1ZENo2$m8!NF#9aSH3X-2Osgr(uy{dTtP60T$O^=vh_r(NPI?Y z3vLYB!G)c{>U5`2@t8Xoe{OYPscM57T$Ie0!$R&rdvZRWQ9abJY}DW3 zql%d-1qAv~n@J-G^FX*#5x$iJl(Pcl6a}b zD(@GyA^um(4-$;vpoVjkLSUCg^OW4oqKO#Wi)D$=<)cDA&pQ*{a@K&LsjOP2MB)nW zP(PA~gm8!3lO72k@S(O@0OxSHy&N9mllFUpk9TZ0(I!SP#ux5m5)9yq&3SzIz#f1K zEa>_kYV`=mgyT>AyXz)A#qn-ucDY!msjpk{*-&@b5;GBwW9V zx_(m_?U{K~H2kjLoRLGu1m5m1E4@yx8Cg<-sSKuQYNYwCV5j3Gzy3xn*NEOAcweS; z3P$jZA2>2kf(ichF*8{8N3B01J#@;LQG$%((Z{QghE3q)z+w@`)W8X;*aRid4e!EH T_h91-(*Jo=oX@WwKLh^*NXA%V diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index e6e8455741400596e17d3b2c24e7e668f214c0c2..655ec403b37c0a07ddb27cddbc55420c873bbd42 100644 GIT binary patch delta 7385 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 X)=XtHjRNDN+*J_WaJbfLhur@H>k!jC diff --git a/core/admin.py b/core/admin.py index fd116b7..364115f 100644 --- a/core/admin.py +++ b/core/admin.py @@ -130,7 +130,7 @@ class MessageAdmin(admin.ModelAdmin): @admin.register(WhatsAppConfig) class WhatsAppConfigAdmin(admin.ModelAdmin): - list_display = ('__str__', 'is_active') + list_display = ('__str__', 'admin_phone', 'is_active') def has_add_permission(self, request): # Only allow one configuration record diff --git a/core/migrations/0025_banner_admin_phone_homesection_admin_phone_and_more.py b/core/migrations/0025_banner_admin_phone_homesection_admin_phone_and_more.py new file mode 100644 index 0000000..7a68684 --- /dev/null +++ b/core/migrations/0025_banner_admin_phone_homesection_admin_phone_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 5.2.7 on 2026-01-24 09:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0024_testimonial'), + ] + + operations = [ + migrations.AddField( + model_name='banner', + name='admin_phone', + field=models.CharField(blank=True, help_text='WhatsApp number to receive admin notifications (with country code, e.g., 96812345678)', max_length=20, null=True, verbose_name='Admin Notification Phone'), + ), + migrations.AddField( + model_name='homesection', + name='admin_phone', + field=models.CharField(blank=True, help_text='WhatsApp number to receive admin notifications (with country code, e.g., 96812345678)', max_length=20, null=True, verbose_name='Admin Notification Phone'), + ), + migrations.AddField( + model_name='testimonial', + name='admin_phone', + field=models.CharField(blank=True, help_text='WhatsApp number to receive admin notifications (with country code, e.g., 96812345678)', max_length=20, null=True, verbose_name='Admin Notification Phone'), + ), + migrations.AddField( + model_name='whatsappconfig', + name='admin_phone', + field=models.CharField(blank=True, help_text='WhatsApp number to receive admin notifications (with country code, e.g., 96812345678)', max_length=20, null=True, verbose_name='Admin Notification Phone'), + ), + ] diff --git a/core/migrations/0026_remove_banner_admin_phone_and_more.py b/core/migrations/0026_remove_banner_admin_phone_and_more.py new file mode 100644 index 0000000..9584e82 --- /dev/null +++ b/core/migrations/0026_remove_banner_admin_phone_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.2.7 on 2026-01-24 09:19 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0025_banner_admin_phone_homesection_admin_phone_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='banner', + name='admin_phone', + ), + migrations.RemoveField( + model_name='homesection', + name='admin_phone', + ), + migrations.RemoveField( + model_name='testimonial', + name='admin_phone', + ), + ] diff --git a/core/migrations/__pycache__/0025_banner_admin_phone_homesection_admin_phone_and_more.cpython-311.pyc b/core/migrations/__pycache__/0025_banner_admin_phone_homesection_admin_phone_and_more.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35430eb6ef64bc099adfa103cdbabd29af52be31 GIT binary patch literal 1554 zcmdT@&rj4q6rTRrvh4y<#At$nN>FJ+b`b&55F;_s#3<1Sn(V>a?L2n7+fHkL0LzJk z2Tz8Z{{d>?kMY2P%+(VIlM*;_a;D4TBAyHvr_FowW?sMdX1=dqdU`a(M)Onb{LCTr zg9q)w;%pquGWQu_gasFQLRs*{vM3-CJwaIffUpEYT{_N1n{2jq5|t$^zd}ZCk8c|y z)jX#fTCwAkh$^0s!Hw+pm)!Rr2L}%YUJ_7Qz^E)@p(>Om5rJH9H^oY0zM|B-+5lL_ zIjk_-wVmH&d0QvB+v@4I{y@^s4XJQ$NZtRARF%tl+{3QDm#WX(_suR}w*3(3h4Jx; zNi&8hc08XrmP?h2MF@nnU}4W8W>E79EUYcQsabI}7X&&?HQX z(uyB8qQJ7D#5pSc{!2=XttqobklDeH*>SK_>lVSR_YjIfGgMf`%6ix6~fRzC0O;=|rGe(-4E3JNMj z7l|Jbgu;)ZND*yIMd#>JrDE52P7V?YG3y=A?0ob7+V8ud=*y=v9vA>WwbD{&E=;$S zunPguN%j`JR9H6^3=_)3 z6s6Vh-a;tZE3qi!RPZ=Vw!J0Ur45u)=~5M!RS7Ej5~VMzFwyQ>W0)al$fFpGT<<{k zo?$9p;lmgcCS8%?eE8pBswaLD_&TXy4J%$&KEA=IDn;(U7Ws=J3nTP(^Zwb=d^Lu9 zG;e}lG>x|FjqGi%H`Xw{+~U1rlhae%;0#D@8Y}kXN$rBO_R&4)t{&c4JG`=5cTC4U z0>zFstGj3B_5U|7_pjQM$NJ>g+KRS4Q#x!M@{!nJ!)8>oa#u8>fn8V9N%#J2)DQBT qN+s$RPZg_8LWpXC-2MT#7QfnFCUy3o45D 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 h^4()I>Q;O8Y{|#3mESBHR--&(;f<>04=lY}=3 " -"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: config/settings.py:198 msgid "English" @@ -116,9 +115,7 @@ msgstr "تم نشر الشحنة بنجاح!" #: core/admin.py:157 msgid "Failed to send test message. Check your API credentials and logs." -msgstr "" -"فشل إرسال رسالة الاختبار. تحقق من بيانات اعتماد واجهة برمجة التطبيقات " -"والسجلات." +msgstr "فشل إرسال رسالة الاختبار. تحقق من بيانات اعتماد واجهة برمجة التطبيقات والسجلات." #: core/admin.py:162 msgid "Send Test WhatsApp Message" @@ -241,9 +238,9 @@ msgstr "اسم الدولة" msgid "Your Email" msgstr "تأكيد البريد الإلكتروني" -#: core/forms.py:199 core/models.py:482 core/templates/core/contact.html:76 +#: core/forms.py:199 core/models.py:483 core/templates/core/contact.html:76 msgid "Subject" -msgstr "رفض" +msgstr "الموضوع" #: core/forms.py:200 #, fuzzy @@ -253,16 +250,12 @@ msgstr "الرسالة" #: core/management/commands/check_subscriptions.py:28 #, python-format -msgid "" -"Hello %(user)s, your MASAR CARGO subscription (%(plan)s) will expire in " -"%(days)s days on %(date)s. Please renew to avoid account suspension." +msgid "Hello %(user)s, your MASAR CARGO subscription (%(plan)s) will expire in %(days)s days on %(date)s. Please renew to avoid account suspension." msgstr "" #: core/management/commands/check_subscriptions.py:49 #, python-format -msgid "" -"Hello %(user)s, your MASAR CARGO subscription has EXPIRED today. Your " -"account is now suspended. Please contact support to renew." +msgid "Hello %(user)s, your MASAR CARGO subscription has EXPIRED today. Your account is now suspended. Please contact support to renew." msgstr "" #: core/models.py:16 @@ -414,11 +407,11 @@ msgstr "مفتوح للعروض" msgid "In Progress" msgstr "قيد التنفيذ" -#: core/models.py:226 core/models.py:445 +#: core/models.py:226 core/models.py:446 msgid "Completed" msgstr "مكتمل" -#: core/models.py:227 core/models.py:447 +#: core/models.py:227 core/models.py:448 msgid "Cancelled" msgstr "ملغي" @@ -430,7 +423,7 @@ msgstr "المصدر (قديم)" msgid "Destination (Legacy)" msgstr "الوجهة" -#: core/models.py:268 core/models.py:444 +#: core/models.py:268 core/models.py:445 #: core/templates/core/shipper_dashboard.html:98 #: core/templates/core/truck_owner_dashboard.html:90 #: core/templates/core/truck_owner_dashboard.html:156 @@ -455,295 +448,303 @@ msgstr "رمز Wablas API" msgid "Wablas Secret Key" msgstr "مفتاح Wablas السري" -#: core/models.py:296 core/models.py:341 core/models.py:379 core/models.py:504 +#: core/models.py:296 core/models.py:342 core/models.py:380 core/models.py:505 msgid "Is Active" msgstr "نشط" -#: core/models.py:299 core/models.py:300 core/models.py:303 +#: core/models.py:297 +msgid "Admin Notification Phone" +msgstr "رقم هاتف إشعارات المسؤول" + +#: core/models.py:297 +msgid "WhatsApp number to receive admin notifications (with country code, e.g., 96812345678)" +msgstr "رقم الواتساب لاستلام إشعارات المسؤول (مع رمز الدولة، مثال: 96812345678)" + +#: core/models.py:300 core/models.py:301 core/models.py:304 msgid "WhatsApp Configuration" msgstr "تكامل واتساب" -#: core/models.py:306 +#: core/models.py:307 msgid "App Name" msgstr "اسم التطبيق" -#: core/models.py:307 +#: core/models.py:308 msgid "Logo" msgstr "الشعار" -#: core/models.py:308 +#: core/models.py:309 msgid "Slogan" msgstr "الشعار اللفظي" -#: core/models.py:309 +#: core/models.py:310 msgid "Registration Number" msgstr "رقم السجل التجاري" -#: core/models.py:310 +#: core/models.py:311 msgid "Tax Number" msgstr "الرقم الضريبي" -#: core/models.py:311 +#: core/models.py:312 msgid "Contact Phone" msgstr "هاتف التواصل" -#: core/models.py:312 +#: core/models.py:313 msgid "Contact Email" msgstr "بريد التواصل" -#: core/models.py:313 +#: core/models.py:314 msgid "Contact Address" msgstr "عنوان التواصل" -#: core/models.py:314 core/templates/base.html:161 -#: core/templates/registration/register.html:67 core/views.py:466 +#: core/models.py:315 core/templates/base.html:161 +#: core/templates/registration/register.html:67 core/views.py:484 msgid "Terms of Service" msgstr "شروط الخدمة" -#: core/models.py:315 core/templates/base.html:160 -#: core/templates/registration/register.html:69 core/views.py:456 +#: core/models.py:316 core/templates/base.html:160 +#: core/templates/registration/register.html:69 core/views.py:474 msgid "Privacy Policy" msgstr "سياسة الخصوصية" -#: core/models.py:316 +#: core/models.py:317 msgid "Enable Subscription Fee" msgstr "تفعيل رسوم الاشتراك" -#: core/models.py:317 +#: core/models.py:318 msgid "Enable Thawani Payment" msgstr "تفعيل دفع ثواني" -#: core/models.py:320 +#: core/models.py:321 msgid "Shipper Monthly Fee" msgstr "رسوم الشاحن الشهرية" -#: core/models.py:321 +#: core/models.py:322 msgid "Shipper Annual Fee" msgstr "رسوم الشاحن السنوية" -#: core/models.py:324 +#: core/models.py:325 msgid "Truck Owner Monthly Fee" msgstr "رسوم صاحب الشاحنة الشهرية" -#: core/models.py:325 +#: core/models.py:326 msgid "Truck Owner Annual Fee" msgstr "رسوم صاحب الشاحنة السنوية" -#: core/models.py:328 +#: core/models.py:329 msgid "App Setting" msgstr "إعداد التطبيق" -#: core/models.py:329 +#: core/models.py:330 msgid "App Settings" msgstr "إعدادات التطبيق" -#: core/models.py:335 core/models.py:371 +#: core/models.py:336 core/models.py:372 msgid "Title (EN)" msgstr "العنوان (بالإنجليزية)" -#: core/models.py:336 core/models.py:372 +#: core/models.py:337 core/models.py:373 msgid "Title (AR)" msgstr "العنوان (بالعربية)" -#: core/models.py:337 core/models.py:373 +#: core/models.py:338 core/models.py:374 msgid "Subtitle (EN)" msgstr "العنوان الفرعي (بالإنجليزية)" -#: core/models.py:338 core/models.py:374 +#: core/models.py:339 core/models.py:375 msgid "Subtitle (AR)" msgstr "العنوان الفرعي (بالعربية)" -#: core/models.py:339 +#: core/models.py:340 msgid "Banner Image" msgstr "صورة البانر" -#: core/models.py:340 +#: core/models.py:341 msgid "Link URL" msgstr "رابط" -#: core/models.py:340 +#: core/models.py:341 msgid "Internal or external URL" msgstr "رابط داخلي أو خارجي" -#: core/models.py:342 core/models.py:378 core/models.py:505 +#: core/models.py:343 core/models.py:379 core/models.py:506 msgid "Order" msgstr "الترتيب" -#: core/models.py:346 +#: core/models.py:347 msgid "Banner" msgstr "بانر" -#: core/models.py:347 +#: core/models.py:348 msgid "Banners" msgstr "البانرات" -#: core/models.py:367 +#: core/models.py:368 msgid "Simple Text & Image" msgstr "نص بسيط وصورة" -#: core/models.py:368 +#: core/models.py:369 msgid "Features List" msgstr "قائمة المميزات" -#: core/models.py:369 +#: core/models.py:370 msgid "Call to Action" msgstr "دعوة لاتخاذ إجراء" -#: core/models.py:375 +#: core/models.py:376 msgid "Content (EN)" msgstr "المحتوى (بالإنجليزية)" -#: core/models.py:376 +#: core/models.py:377 msgid "Content (AR)" msgstr "المحتوى (بالعربية)" -#: core/models.py:377 +#: core/models.py:378 msgid "Image" msgstr "صورة" -#: core/models.py:384 +#: core/models.py:385 msgid "Home Section" msgstr "قسم في الصفحة الرئيسية" -#: core/models.py:385 +#: core/models.py:386 msgid "Home Sections" msgstr "أقسام الصفحة الرئيسية" -#: core/models.py:440 core/templates/core/financial_history.html:37 +#: core/models.py:441 core/templates/core/financial_history.html:37 msgid "Payment" msgstr "دفع" -#: core/models.py:441 core/templates/core/financial_history.html:39 +#: core/models.py:442 core/templates/core/financial_history.html:39 msgid "Refund" msgstr "استرداد" -#: core/models.py:446 +#: core/models.py:447 msgid "Failed" msgstr "فشل" -#: core/models.py:450 core/templates/core/admin_financials.html:30 +#: core/models.py:451 core/templates/core/admin_financials.html:30 #: core/templates/core/financial_history.html:24 #: core/templates/core/shipment_detail.html:73 #: core/templates/core/shipper_dashboard.html:76 msgid "Amount" msgstr "المبلغ" -#: core/models.py:453 core/templates/core/financial_history.html:22 +#: core/models.py:454 core/templates/core/financial_history.html:22 #: core/templates/core/receipt.html:48 #: core/templates/core/shipper_dashboard.html:134 msgid "Description" msgstr "الوصف" -#: core/models.py:454 core/templates/core/receipt.html:39 +#: core/models.py:455 core/templates/core/receipt.html:39 msgid "Payment Method" msgstr "طريقة الدفع" -#: core/models.py:455 +#: core/models.py:456 #, fuzzy #| msgid "Phone Number" msgid "Reference Number" msgstr "رقم الهاتف" -#: core/models.py:456 +#: core/models.py:457 #, fuzzy #| msgid "Registration Number" msgid "Receipt Number" msgstr "رقم السجل التجاري" -#: core/models.py:457 +#: core/models.py:458 msgid "Session ID" msgstr "معرف الجلسة" -#: core/models.py:458 +#: core/models.py:459 #, fuzzy #| msgid "Status" msgid "Payment Status" msgstr "الحالة" -#: core/models.py:464 +#: core/models.py:465 msgid "Transaction" msgstr "معاملة" -#: core/models.py:465 +#: core/models.py:466 #, fuzzy #| msgid "Actions" msgid "Transactions" msgstr "الإجراءات" -#: core/models.py:480 +#: core/models.py:481 #, fuzzy #| msgid "App Name" msgid "Name" msgstr "اسم التطبيق" -#: core/models.py:481 core/templates/core/contact.html:36 +#: core/models.py:482 core/templates/core/contact.html:36 msgid "Email" msgstr "البريد الإلكتروني" -#: core/models.py:483 core/templates/admin/core/whatsapp_test.html:28 +#: core/models.py:484 core/templates/admin/core/whatsapp_test.html:28 #: core/templates/core/contact.html:83 msgid "Message" msgstr "الرسالة" -#: core/models.py:488 +#: core/models.py:489 #, fuzzy #| msgid "Contact Address" msgid "Contact Message" msgstr "عنوان التواصل" -#: core/models.py:489 +#: core/models.py:490 #, fuzzy #| msgid "Contact Address" msgid "Contact Messages" msgstr "عنوان التواصل" -#: core/models.py:496 +#: core/models.py:497 #, fuzzy #| msgid "Name (EN)" msgid "Customer Name (EN)" msgstr "الموديل (بالإنجليزية)" -#: core/models.py:497 +#: core/models.py:498 #, fuzzy #| msgid "Name (AR)" msgid "Customer Name (AR)" msgstr "الموديل" -#: core/models.py:498 +#: core/models.py:499 msgid "Customer Role (EN)" msgstr "وظيفة العميل (EN)" -#: core/models.py:499 +#: core/models.py:500 msgid "Customer Role (AR)" msgstr "وظيفة العميل (AR)" -#: core/models.py:500 +#: core/models.py:501 #, fuzzy #| msgid "Details" msgid "Testimony (EN)" msgstr "التفاصيل" -#: core/models.py:501 +#: core/models.py:502 #, fuzzy #| msgid "Details" msgid "Testimony (AR)" msgstr "التفاصيل" -#: core/models.py:502 +#: core/models.py:503 msgid "Rating (1-5)" msgstr "التقييم (1-5)" -#: core/models.py:503 +#: core/models.py:504 #, fuzzy #| msgid "Banner Image" msgid "Customer Image" msgstr "صورة البانر" -#: core/models.py:509 +#: core/models.py:510 msgid "Testimonial" msgstr "شهادة عميل" -#: core/models.py:510 +#: core/models.py:511 msgid "Testimonials" msgstr "شهادات العملاء" @@ -1174,12 +1175,8 @@ msgid "Get in Touch" msgstr "اتصل بنا" #: core/templates/core/contact.html:13 -msgid "" -"Have questions about our services or need assistance? Fill out the form and " -"our team will get back to you shortly." -msgstr "" -"لديك أسئلة حول خدماتنا أو تحتاج إلى مساعدة؟ املأ النموذج وسيقوم فريقنا بالرد " -"عليك قريباً." +msgid "Have questions about our services or need assistance? Fill out the form and our team will get back to you shortly." +msgstr "لديك أسئلة حول خدماتنا أو تحتاج إلى مساعدة؟ املأ النموذج وسيقوم فريقنا بالرد عليك قريباً." #: core/templates/core/contact.html:24 msgid "Phone" @@ -1224,12 +1221,8 @@ msgid "Locally & Abroad" msgstr "محلياً ودولياً" #: core/templates/core/index.html:64 -msgid "" -"The most reliable platform connecting shippers with truck owners across the " -"region. Transparent, fast, and secure." -msgstr "" -"المنصة الأكثر موثوقية لربط الشاحنين مع أسطول الشاحنات في جميع أنحاء المنطقة. " -"شفافة، سريعة، وآمنة." +msgid "The most reliable platform connecting shippers with truck owners across the region. Transparent, fast, and secure." +msgstr "المنصة الأكثر موثوقية لربط الشاحنين مع أسطول الشاحنات في جميع أنحاء المنطقة. شفافة، سريعة، وآمنة." #: core/templates/core/index.html:67 msgid "Start Shipping" @@ -1248,12 +1241,8 @@ msgid "I am a Shipper" msgstr "أنا شاحن" #: core/templates/core/index.html:140 -msgid "" -"I need to move goods locally or abroad. Post your shipment, receive offers " -"from verified drivers, and track your cargo in real-time." -msgstr "" -"أريد نقل بضائع محلياً أو دولياً. انشر شحنتك، واستقبل عروضاً من سائقين موثقين، " -"وتتبع شحنتك في الوقت الفعلي." +msgid "I need to move goods locally or abroad. Post your shipment, receive offers from verified drivers, and track your cargo in real-time." +msgstr "أريد نقل بضائع محلياً أو دولياً. انشر شحنتك، واستقبل عروضاً من سائقين موثقين، وتتبع شحنتك في الوقت الفعلي." #: core/templates/core/index.html:143 msgid "Post shipments easily" @@ -1277,12 +1266,8 @@ msgid "I am a Truck Owner" msgstr "أنا صاحب شاحنة" #: core/templates/core/index.html:158 -msgid "" -"I have trucks and want to find cargo to transport. Register your fleet, bid " -"on available jobs, and grow your business." -msgstr "" -"لدي شاحنات وأريد العثور على بضائع لنقلها. سجل أسطولك، وقدم عروضك على الوظائف " -"المتاحة، ونمِ عملك." +msgid "I have trucks and want to find cargo to transport. Register your fleet, bid on available jobs, and grow your business." +msgstr "لدي شاحنات وأريد العثور على بضائع لنقلها. سجل أسطولك، وقدم عروضك على الوظائف المتاحة، ونمِ عملك." #: core/templates/core/index.html:161 msgid "Access daily cargo leads" @@ -1355,11 +1340,8 @@ msgid "Truck Marketplace" msgstr "سوق الشاحنات" #: core/templates/core/marketplace.html:28 -msgid "" -"Browse available trucks and send your shipping offers directly to truck " -"owners." -msgstr "" -"تصفح الشاحنات المتاحة وأرسل عروض الشحن الخاصة بك مباشرة إلى أصحاب الشاحنات." +msgid "Browse available trucks and send your shipping offers directly to truck owners." +msgstr "تصفح الشاحنات المتاحة وأرسل عروض الشحن الخاصة بك مباشرة إلى أصحاب الشاحنات." #: core/templates/core/marketplace.html:43 msgid "Available" @@ -1496,9 +1478,7 @@ msgid "Note:" msgstr "ملاحظة:" #: core/templates/core/receipt.html:68 -msgid "" -"This is an electronically generated receipt and does not require a physical " -"signature." +msgid "This is an electronically generated receipt and does not require a physical signature." msgstr "" #: core/templates/core/receipt.html:72 @@ -1689,8 +1669,7 @@ msgstr "انتهى الاشتراك" #| msgid "Hello %(name)s, your subscription to MASAR CARGO has expired." msgid "" "\n" -" Hello %(name)s, your subscription to MASAR CARGO has " -"expired.\n" +" Hello %(name)s, your subscription to MASAR CARGO has expired.\n" " " msgstr "مرحباً %(name)s، لقد انتهى اشتراكك في مسار كارغو." @@ -1721,8 +1700,7 @@ msgid "Renew Now" msgstr "تجديد الآن" #: core/templates/core/subscription_expired.html:52 -msgid "" -"Online payment is currently disabled. Please contact support for renewal." +msgid "Online payment is currently disabled. Please contact support for renewal." msgstr "الدفع عبر الإنترنت معطل حالياً. يرجى الاتصال بالدعم للتجديد." #: core/templates/core/subscription_expired.html:61 @@ -1821,9 +1799,7 @@ msgid "Documents & Photos" msgstr "المستندات والصور" #: core/templates/core/truck_register.html:128 -msgid "" -"Photos will be automatically resized for better performance. PDF files are " -"accepted for documents." +msgid "Photos will be automatically resized for better performance. PDF files are accepted for documents." msgstr "" #: core/templates/core/truck_register.html:151 @@ -1893,19 +1869,12 @@ msgid "Verify Your Account" msgstr "التحقق من حسابك" #: core/templates/registration/verify_otp.html:18 -msgid "" -"We have sent a verification code to your WhatsApp number. Please enter it " -"below to complete your registration." -msgstr "" -"لقد أرسلنا رمز تحقق إلى رقم واتساب الخاص بك. يرجى إدخاله أدناه لإكمال عملية " -"التسجيل." +msgid "We have sent a verification code to your WhatsApp number. Please enter it below to complete your registration." +msgstr "لقد أرسلنا رمز تحقق إلى رقم واتساب الخاص بك. يرجى إدخاله أدناه لإكمال عملية التسجيل." #: core/templates/registration/verify_otp.html:20 -msgid "" -"We have sent a verification code to your WhatsApp number. Please enter it " -"below to log in." -msgstr "" -"لقد أرسلنا رمز تحقق إلى رقم واتساب الخاص بك. يرجى إدخاله أدناه لتسجيل الدخول." +msgid "We have sent a verification code to your WhatsApp number. Please enter it below to log in." +msgstr "لقد أرسلنا رمز تحقق إلى رقم واتساب الخاص بك. يرجى إدخاله أدناه لتسجيل الدخول." #: core/templates/registration/verify_otp.html:37 msgid "Verify" @@ -1961,155 +1930,146 @@ msgstr "اسم المستخدم أو كلمة المرور غير صالحة." msgid "Logged in successfully!" msgstr "تم تسجيل الدخول بنجاح!" -#: core/views.py:267 +#: core/views.py:271 +#, python-format +msgid "New Truck Registration: %(owner)s registered a truck with plate %(plate)s. Please review it in the admin dashboard." +msgstr "تسجيل شاحنة جديدة: قام %(owner)s بتسجيل شاحنة برقم لوحة %(plate)s. يرجى مراجعتها في لوحة تحكم المسؤول." + +#: core/views.py:276 msgid "Truck registered successfully! It will be visible after admin approval." msgstr "تم تسجيل الشاحنة بنجاح! ستكون مرئية بعد اعتماد المسؤول." -#: core/views.py:270 +#: core/views.py:279 msgid "There was an error in your registration. Please check the form." msgstr "حدث خطأ في التسجيل. يرجى التحقق من النموذج." -#: core/views.py:286 +#: core/views.py:299 +#, python-format +msgid "Truck Update: %(owner)s updated truck with plate %(plate)s. Please review it again in the admin dashboard." +msgstr "تحديث شاحنة: قام %(owner)s بتحديث بيانات الشاحنة ذات رقم لوحة %(plate)s. يرجى مراجعتها مرة أخرى في لوحة تحكم المسؤول." + +#: core/views.py:304 msgid "Truck data updated successfully! It will be reviewed by admin again." msgstr "تم تحديث بيانات الشاحنة بنجاح! سيتم مراجعتها من قبل المسؤول مرة أخرى." -#: core/views.py:289 +#: core/views.py:307 msgid "There was an error updating your truck. Please check the form." msgstr "حدث خطأ أثناء تحديث شاحنتك. يرجى التحقق من النموذج." -#: core/views.py:306 +#: core/views.py:324 #, python-format -msgid "" -"Your truck (%(plate)s) has been approved! You can now receive offers for " -"shipments." +msgid "Your truck (%(plate)s) has been approved! You can now receive offers for shipments." msgstr "تمت الموافقة على شاحنتك (%(plate)s)! يمكنك الآن تلقي عروض للشحنات." -#: core/views.py:309 +#: core/views.py:327 msgid "Truck approved successfully!" msgstr "تم اعتماد الشاحنة بنجاح!" -#: core/views.py:320 +#: core/views.py:338 msgid "Truck has been suspended." msgstr "تم تعليق الشاحنة." -#: core/views.py:335 -msgid "" -"Shipment posted successfully! It is now open for bids or you can browse " -"trucks to send it as an offer." -msgstr "" -"تم نشر الشحنة بنجاح! هي الآن مفتوحة للمزايدة أو يمكنك تصفح الشاحنات لإرسالها " -"كعرض.تم نشر الشحنة بنجاح! هي الآن مفتوحة للعروض أو يمكنك تصفح الشاحنات " -"لإرسالها كعرض." +#: core/views.py:353 +msgid "Shipment posted successfully! It is now open for bids or you can browse trucks to send it as an offer." +msgstr "تم نشر الشحنة بنجاح! هي الآن مفتوحة للمزايدة أو يمكنك تصفح الشاحنات لإرسالها كعرض.تم نشر الشحنة بنجاح! هي الآن مفتوحة للعروض أو يمكنك تصفح الشاحنات لإرسالها كعرض." -#: core/views.py:339 +#: core/views.py:357 msgid "Please correct the errors in the form." msgstr "يرجى تصحيح الأخطاء في النموذج." -#: core/views.py:390 +#: core/views.py:408 #, python-format -msgid "" -"New offer received for your truck (%(plate)s)! Route: %(origin)s to " -"%(dest)s. Amount: %(amount)s" -msgstr "" -"تم استلام عرض جديد لشاحنتك (%(plate)s)! المسار: %(origin)s إلى %(dest)s. " -"المبلغ: %(amount)sتم استلام عرض جديد لشاحنتك (%(plate)s)! المسار: %(origin)s " -"إلى %(dest)s. المبلغ: %(amount)s" +msgid "New offer received for your truck (%(plate)s)! Route: %(origin)s to %(dest)s. Amount: %(amount)s" +msgstr "تم استلام عرض جديد لشاحنتك (%(plate)s)! المسار: %(origin)s إلى %(dest)s. المبلغ: %(amount)sتم استلام عرض جديد لشاحنتك (%(plate)s)! المسار: %(origin)s إلى %(dest)s. المبلغ: %(amount)s" -#: core/views.py:393 +#: core/views.py:411 msgid "Offer sent successfully!" msgstr "تم إرسال العرض بنجاح!" -#: core/views.py:397 +#: core/views.py:415 msgid "Error sending offer. Please check the form." msgstr "خطأ في إرسال العرض. يرجى التحقق من النموذج." -#: core/views.py:419 +#: core/views.py:437 msgid "You are not authorized to accept this offer." msgstr "أنت غير مخول لقبول هذا العرض." -#: core/views.py:434 +#: core/views.py:452 #, python-format -msgid "" -"Your offer for truck %(plate)s (%(origin)s to %(dest)s) has been accepted!" +msgid "Your offer for truck %(plate)s (%(origin)s to %(dest)s) has been accepted!" msgstr "تم قبول عرضك للشاحنة %(plate)s (%(origin)s إلى %(dest)s)!" -#: core/views.py:437 +#: core/views.py:455 msgid "Offer accepted! Shipment is now in progress." msgstr "تم قبول العرض! الشحنة قيد التنفيذ الآن." -#: core/views.py:449 +#: core/views.py:467 msgid "Offer rejected." msgstr "تم رفض العرض." -#: core/views.py:457 +#: core/views.py:475 msgid "Privacy policy is coming soon." msgstr "سياسة الخصوصية ستتوفر قريباً." -#: core/views.py:467 +#: core/views.py:485 msgid "Terms of service are soon." msgstr "شروط الخدمة ستتوفر قريباً." -#: core/views.py:514 +#: core/views.py:532 msgid "Online payment is currently disabled. Please contact support." msgstr "الدفع عبر الإنترنت معطل حالياً. يرجى الاتصال بالدعم." -#: core/views.py:563 +#: core/views.py:581 msgid "Failed to initiate payment. Please try again later." msgstr "فشل بدء الدفع. يرجى المحاولة مرة أخرى لاحقاً." -#: core/views.py:592 +#: core/views.py:610 #, fuzzy, python-format -#| msgid "" -#| "Your subscription for MASAR CARGO has been successfully renewed! Your new " -#| "expiry date is %(date)s. Thank you for using our service." -msgid "" -"Your subscription for MASAR CARGO has been successfully renewed! Your new " -"expiry date is %(date)s. You can view your receipt here: %(url)s" -msgstr "" -"تم تجديد اشتراكك في مسار للشحن بنجاح! تاريخ انتهاء اشتراكك الجديد هو " -"%(date)s. شكراً لاستخدامك خدمتنا." +#| msgid "Your subscription for MASAR CARGO has been successfully renewed! Your new expiry date is %(date)s. Thank you for using our service." +msgid "Your subscription for MASAR CARGO has been successfully renewed! Your new expiry date is %(date)s. You can view your receipt here: %(url)s" +msgstr "تم تجديد اشتراكك في مسار للشحن بنجاح! تاريخ انتهاء اشتراكك الجديد هو %(date)s. شكراً لاستخدامك خدمتنا." -#: core/views.py:602 +#: core/views.py:620 #, fuzzy #| msgid "Subscription Renewed - MASAR CARGO" msgid "Subscription Activated - MASAR CARGO" msgstr "تم تجديد الاشتراك - مسار للشحن" -#: core/views.py:632 +#: core/views.py:650 msgid "Payment successful! Your subscription is now active." msgstr "تم الدفع بنجاح! اشتراكك نشط الآن." -#: core/views.py:638 +#: core/views.py:656 #, python-format msgid "Payment was not successful. Status: %(status)s" msgstr "لم يكن الدفع ناجحاً. الحالة: %(status)s" -#: core/views.py:640 +#: core/views.py:658 msgid "Failed to verify payment status." msgstr "فشل التحقق من حالة الدفع." -#: core/views.py:646 +#: core/views.py:664 msgid "Payment was cancelled." msgstr "تم إلغاء الدفع." -#: core/views.py:710 +#: core/views.py:728 msgid "This is already a refund transaction." msgstr "هذا البريد الإلكتروني مستخدم بالفعل." -#: core/views.py:723 +#: core/views.py:741 #, python-format msgid "Refund issued successfully! Receipt: %(receipt)s" msgstr "تم إصدار الاسترداد بنجاح! الإيصال: %(receipt)s" -#: core/views.py:736 +#: core/views.py:754 msgid "Application settings updated successfully." msgstr "تم تحديث إعدادات التطبيق بنجاح." -#: core/views.py:749 +#: core/views.py:767 msgid "Your message has been sent successfully! We will get back to you soon." msgstr "تم إرسال رسالتك بنجاح! سنقوم بالرد عليك قريباً." -#: core/views.py:752 +#: core/views.py:770 msgid "There was an error in your form. Please check the fields below." msgstr "حدث خطأ أثناء تحديث شاحنتك. يرجى التحقق من النموذج." @@ -2128,12 +2088,8 @@ msgstr "حدث خطأ أثناء تحديث شاحنتك. يرجى التحقق #~ msgid "Registered Trucks" #~ msgstr "الشاحنات المسجلة" -#~ msgid "" -#~ "To continue using our services, please renew your subscription. You can " -#~ "contact our support team for renewal details." -#~ msgstr "" -#~ "لمواصلة استخدام خدماتنا، يرجى تجديد اشتراكك. يمكنك الاتصال بفريق الدعم " -#~ "لدينا للحصول على تفاصيل التجديد." +#~ msgid "To continue using our services, please renew your subscription. You can contact our support team for renewal details." +#~ msgstr "لمواصلة استخدام خدماتنا، يرجى تجديد اشتراكك. يمكنك الاتصال بفريق الدعم لدينا للحصول على تفاصيل التجديد." #~ msgid "Contact for Renewal" #~ msgstr "الاتصال للتجديد"