addin notification in adding trucks

This commit is contained in:
Flatlogic Bot 2026-01-24 09:41:56 +00:00
parent 049e1849e1
commit 290e13038f
12 changed files with 233 additions and 200 deletions

View File

@ -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

View File

@ -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'),
),
]

View File

@ -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',
),
]

View File

@ -294,6 +294,7 @@ class WhatsAppConfig(models.Model):
api_token = models.CharField(_('Wablas API Token'), max_length=255)
secret_key = models.CharField(_('Wablas Secret Key'), max_length=255, blank=True, null=True)
is_active = models.BooleanField(_('Is Active'), default=True)
admin_phone = models.CharField(_("Admin Notification Phone"), max_length=20, blank=True, null=True, help_text=_("WhatsApp number to receive admin notifications (with country code, e.g., 96812345678)"))
class Meta:
verbose_name = _('WhatsApp Configuration')

View File

@ -264,6 +264,15 @@ def truck_register(request):
truck.owner = request.user
truck.is_approved = False
truck.save()
# Notify Admin via WhatsApp
config = WhatsAppConfig.objects.filter(is_active=True).first()
if config and config.admin_phone:
admin_msg = _("New Truck Registration: %(owner)s registered a truck with plate %(plate)s. Please review it in the admin dashboard.") % {
"owner": truck.owner.username,
"plate": truck.plate_no
}
send_whatsapp_message(config.admin_phone, admin_msg)
messages.success(request, _("Truck registered successfully! It will be visible after admin approval."))
return redirect('dashboard')
else:
@ -283,6 +292,15 @@ def edit_truck(request, truck_id):
truck = form.save(commit=False)
truck.is_approved = False
truck.save()
# Notify Admin via WhatsApp
config = WhatsAppConfig.objects.filter(is_active=True).first()
if config and config.admin_phone:
admin_msg = _("Truck Update: %(owner)s updated truck with plate %(plate)s. Please review it again in the admin dashboard.") % {
"owner": truck.owner.username,
"plate": truck.plate_no
}
send_whatsapp_message(config.admin_phone, admin_msg)
messages.success(request, _("Truck data updated successfully! It will be reviewed by admin again."))
return redirect('dashboard')
else:

Binary file not shown.

View File

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-24 09:10+0000\n"
"POT-Creation-Date: 2026-01-24 09:20+0000\n"
"PO-Revision-Date: 2026-01-23 10:45+0000\n"
"Last-Translator: Gemini\n"
"Language-Team: Arabic\n"
@ -10,8 +10,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
"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 "الاتصال للتجديد"