This commit is contained in:
Marwan Alwali 2025-02-16 12:56:14 +03:00
parent 813f014c46
commit ec6ca7dfd7
4 changed files with 116 additions and 35 deletions

View File

@ -10,7 +10,7 @@ admin.site.register(models.Vendor)
# admin.site.register(models.SaleQuotation)
# admin.site.register(models.SaleQuotationCar)
# admin.site.register(models.SalesOrder)
admin.site.register(models.Car)
admin.site.register(models.CarFinance)
admin.site.register(models.CarColors)
admin.site.register(models.CarRegistration)
@ -39,6 +39,12 @@ admin.site.register(models.Activity)
admin.site.register(models.Schedule)
admin.site.register(models.Notes)
@admin.register(models.Car)
class CarAdmin(admin.ModelAdmin):
search_fields = ('vin',)
actions = [export_to_pdf_landscape, export_to_pdf_portrait]
@admin.register(models.CarMake)
class CarMakeAdmin(admin.ModelAdmin):
list_display = ('name', 'arabic_name', 'is_sa_import')
@ -54,7 +60,7 @@ class CarMakeAdmin(admin.ModelAdmin):
@admin.register(models.CarModel)
class CarModelAdmin(admin.ModelAdmin):
list_display = ('name', 'arabic_name', 'id_car_make', 'get_is_sa_import')
search_fields = ('name', 'arabic_name')
search_fields = ('id_car_model', 'name', 'arabic_name')
list_filter = ('id_car_make__is_sa_import', 'id_car_make')
sortable_by = ['name', 'arabic_name', 'id_car_make']
@ -71,7 +77,7 @@ class CarModelAdmin(admin.ModelAdmin):
@admin.register(models.CarSerie)
class CarSeriesAdmin(admin.ModelAdmin):
list_display = ('name', 'arabic_name', 'id_car_model', )
search_fields = ('name', 'id_car_model__name')
search_fields = ('id_car_serie', 'name', 'id_car_model__name', 'id_car_model__id_car_make__name')
list_filter = ('id_car_model__id_car_make__is_sa_import',
'id_car_model__id_car_make__name',)

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-16 12:24+0300\n"
"POT-Creation-Date: 2025-02-16 12:55+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -395,11 +395,13 @@ msgid "Cancelled"
msgstr "ملغى"
#: inventory/models.py:277 templates/inventory/car_inventory.html:99
#: templates/inventory/car_list_view.html:85
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:21
msgid "Available"
msgstr "متاح"
#: inventory/models.py:278 templates/inventory/car_inventory.html:101
#: templates/inventory/car_list_view.html:87
msgid "Sold"
msgstr "تم البيع"
@ -413,10 +415,12 @@ msgstr "تالف"
#: inventory/models.py:281 templates/index.html:24
#: templates/inventory/car_inventory.html:105
#: templates/inventory/car_list_view.html:86
msgid "Reserved"
msgstr "محجوزة"
#: inventory/models.py:282 templates/inventory/car_location_form.html:8
#: inventory/models.py:282 templates/inventory/car_list_view.html:88
#: templates/inventory/car_location_form.html:8
#: templates/inventory/transfer_preview.html:213
msgid "Transfer"
msgstr "نقل"
@ -519,6 +523,7 @@ msgid "Vendor"
msgstr "المورد"
#: inventory/models.py:353 inventory/models.py:1131
#: templates/inventory/car_list_view.html:63
#: templates/inventory/car_list_view.html:110
#: templates/sales/estimates/estimate_detail.html:125
#: templates/sales/estimates/sale_order_preview.html:239
@ -528,6 +533,7 @@ msgid "Make"
msgstr "الصانع"
#: inventory/models.py:361 inventory/models.py:1138
#: templates/inventory/car_list_view.html:72
#: templates/inventory/car_list_view.html:111
#: templates/sales/estimates/estimate_detail.html:126
#: templates/sales/estimates/sale_order_preview.html:240
@ -540,6 +546,7 @@ msgstr "الموديل"
#: templates/inventory/car_form.html:56
#: templates/inventory/car_form_qabl alfalsafa.html:61
#: templates/inventory/car_inventory.html:54
#: templates/inventory/car_list_view.html:78
#: templates/inventory/car_list_view.html:112
#: templates/ledger/reports/components/period_navigator.html:21
#: templates/sales/estimates/estimate_detail.html:127
@ -1308,12 +1315,15 @@ msgstr "ملاحظة"
msgid "Notes"
msgstr "ملاحظات"
#: inventory/models.py:1359
msgid "From Email"
msgstr "من البريد الإلكتروني"
#: inventory/models.py:1360
msgid "To Email"
msgstr "إلى البريد الإلكتروني"
#: inventory/models.py:1361
msgid "Subject"
msgstr "الموضوع"
@ -1818,24 +1828,37 @@ msgstr "تم إنشاء المنظمة بنجاح."
msgid "Estimate is not ready for review"
msgstr "التقدير غير جاهز للمراجعة."
#: inventory/views.py:2778
msgid "Estimate is not ready for approval"
msgstr "التقدير غير جاهز للموافقة."
#: inventory/views.py:2781
msgid "Estimate approved successfully."
msgstr "تمت الموافقة على التقدير بنجاح."
#: inventory/views.py:2784
msgid "Estimate is not ready for rejection"
msgstr "التقدير غير جاهز للرفض."
#: inventory/views.py:2787
msgid "Estimate canceled successfully."
msgstr "تم إلغاء التقدير بنجاح."
#: inventory/views.py:2790
msgid "Estimate is not ready for completion"
msgstr "التقدير غير جاهز للإكمال."
#: inventory/views.py:3297
#, fuzzy
#| msgid "User deleted successfully."
msgid "Note deleted successfully."
msgstr "تم حذف المستخدم بنجاح."
#: inventory/views.py:3369
msgid "Email Draft successfully!"
msgstr "تم حفظ مسودة البريد الإلكتروني بنجاح!"
#: inventory/views.py:3394 inventory/views.py:4007
msgid "Email sent successfully!"
msgstr "تم إرسال البريد الإلكتروني بنجاح!"
@ -3793,18 +3816,24 @@ msgstr "وضع علامة مقروء"
msgid "Opportunity details"
msgstr "تفاصيل الفرصة"
#: templates/crm/opportunities/opportunity_detail.html:17
#: templates/sales/estimates/estimate_detail.html:4
msgid "View Quotation"
msgstr "مشاهدة عرض السعر"
#: templates/crm/opportunities/opportunity_detail.html:86
msgid "Other Information"
msgstr "معلومات أخرى"
#: templates/crm/opportunities/opportunity_detail.html:92
msgid "Update Status"
msgstr "تحديث الحالة"
#: templates/crm/opportunities/opportunity_detail.html:99
msgid "Update Stage"
msgstr "تحديث المرحلة"
#: templates/crm/opportunities/opportunity_detail.html:117
msgid "Quotation Amount"
msgstr "مبلغ عرض السعر"
@ -4903,9 +4932,30 @@ msgstr "لا توجد سيارات متاحة."
msgid "Error loading options."
msgstr "خطأ في تحميل الخيارات."
#: templates/inventory/car_list_view.html:41
msgid "Filter"
msgstr "تصفية"
#: templates/inventory/car_list_view.html:84
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:98
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:110
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:76
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:88
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:98
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:110
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:94
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:106
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:100
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:112
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:101
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:113
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:99
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:111
msgid "All"
msgstr "الكل"
#: templates/inventory/car_list_view.html:157
#: templates/sales/sales_list.html:230
msgid "Export"
msgstr "تصدير"
@ -6318,6 +6368,7 @@ msgstr "لم يتم العثور على ممثلين للشركات."
msgid "Quotation"
msgstr "عرض سعر"
#: templates/sales/estimates/estimate_detail.html:42
msgid "Send Quotation"
msgstr "إرسال عرض السعر"
@ -6338,12 +6389,16 @@ msgstr "إنشاء أمر بيع"
msgid "Preview"
msgstr "عرض"
#: templates/sales/estimates/estimate_detail.html:66
#: templates/sales/estimates/estimate_list.html:14
msgid "Quotation Number"
msgstr "رقم عرض السعر"
#: templates/sales/estimates/estimate_detail.html:76
msgid "Quotation Date"
msgstr "تاريخ عرض السعر"
#: templates/sales/estimates/estimate_detail.html:100
msgid "Quotation Status"
msgstr "حالة عرض السعر"
@ -6558,9 +6613,11 @@ msgstr "عرض المعالملات"
msgid "No Payments Found"
msgstr "لم يتم العثور على عملية دفع"
#: templates/sales/sales_list.html:135
msgid "Customer Address"
msgstr "عنوان العميل"
#: templates/sales/sales_list.html:136
msgid "Customer Phone"
msgstr "هاتف العميل"
@ -11223,23 +11280,6 @@ msgstr "أحدث الفواتير"
msgid "Go to month:"
msgstr "الذهاب إلى الشهر:"
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:98
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:110
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:76
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:88
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:98
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:110
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:94
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:106
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:100
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:112
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:101
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:113
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:99
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:111
msgid "All"
msgstr "الكل"
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:107
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:85
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:107
@ -12353,57 +12393,92 @@ msgstr "إنشاء مورد جديد"
msgid "Vendor Update"
msgstr "تحديث المورد"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:17
#, python-format
msgid "%(value)s is not a valid hex color. Format should be #RRGGBB or #RGB"
msgstr "%(value)s ليس لون سداسي عشري صالح. يجب أن يكون التنسيق #RRGGBB أو #RGB"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:53
#, fuzzy
#| msgid "Invoice Configuration"
msgid "Name of this configuration"
msgstr "تكوين الفاتورة"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:57
msgid "Only one configuration can be active at a time"
msgstr "يمكن أن يكون هناك تكوين نشط واحد فقط في كل مرة"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:64
msgid "Number of items to display per page"
msgstr "عدد العناصر التي سيتم عرضها لكل صفحة"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:69
msgid "Page margin in millimeters"
msgstr "هامش الصفحة بالمليمترات"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:77
#, fuzzy
#| msgid "Request next available slot"
msgid "Select font from available system fonts"
msgstr "طلب الفترة الزمنية المتاحة التالية"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:82
msgid "Font size for headers"
msgstr "حجم الخط للعناوين"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:87
msgid "Font size for table content"
msgstr "حجم الخط لمحتوى الجدول"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:93
msgid "Logo to display on PDF"
msgstr "الشعار المعروض في ملف PDF"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:99
msgid "Header background color (hex format, e.g. #F0F0F0)"
msgstr "لون خلفية العنوان (تنسيق سداسي عشري، مثل #F0F0F0)"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:103
msgid "Grid line color (hex format, e.g. #000000)"
msgstr "لون خطوط الشبكة (تنسيق سداسي عشري، مثل #000000)"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:108
msgid "Grid line width in points"
msgstr "عرض خطوط الشبكة بالنقاط"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:114
msgid "Display the header with model name"
msgstr "عرض العنوان مع اسم النموذج"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:118
msgid "Display the logo in the PDF"
msgstr "عرض الشعار في ملف PDF"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:122
msgid "Display export timestamp"
msgstr "عرض الطابع الزمني للتصدير"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:126
msgid "Display page numbers"
msgstr "عرض أرقام الصفحات"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:133
msgid "Spacing between table cells in millimeters"
msgstr "المسافة بين خلايا الجدول بالمليمترات"
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:138
msgid "Maximum characters per line before wrapping"
msgstr "الحد الأقصى لعدد الأحرف في السطر قبل الانتقال إلى سطر جديد"
msgid "There can only be one active configuration. Please deactivate the current active configuration first."
msgstr "يمكن أن يكون هناك تكوين نشط واحد فقط. يرجى إلغاء تنشيط التكوين الحالي أولاً."
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:152
msgid ""
"There can only be one active configuration. Please deactivate the current "
"active configuration first."
msgstr ""
"يمكن أن يكون هناك تكوين نشط واحد فقط. يرجى إلغاء تنشيط التكوين الحالي أولاً."
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:156
#: venv/lib/python3.11/site-packages/django_pdf_actions/models.py:157
msgid "Export PDF Settings"
msgstr "إعدادات تصدير PDF"

View File

@ -60,32 +60,32 @@
<select hx-get="{% url 'car_list' %}" name="make" hx-target='.model-select' hx-select='.model-select' hx-swap="outerHTML show:window:top" hx-indicator=".htmx-indicator" class="form-select form-control-sm me-1 make" aria-label="Default select example"
hx-on::before-request="filter_before_request()"
hx-on::after-request="filter_after_request()">
<option selected="" value="" disabled>Select Make</option>
<option selected="" value="" disabled>{{ _("Make")}}</option>
{% for m in make %}
<option value="{{ m.pk }}">{{ m.name }}</option>
<option value="{{ m.pk }}">{{ m.get_local_name|default:m.name }}</option>
{% endfor %}
</select>
<select hx-get="{% url 'car_list' %}" hx-include=".make" name="model" hx-target='.year' hx-select='.year' hx-swap="outerHTML show:window:top" hx-indicator=".htmx-indicator" class="form-select form-control-sm me-1 model-select" aria-label="Default select example"
hx-on::before-request="filter_before_request()"
hx-on::after-request="filter_after_request()"
>
<option selected="" value="" disabled>Select Model</option>
<option selected="" value="" disabled>{{ _("Model")}}</option>
{% for m in model %}
<option value="{{ m.pk }}">{{ m.name }}</option>
<option value="{{ m.pk }}">{{ m.get_local_name|default:m.name }}</option>
{% endfor %}
</select>
<select class="form-select form-control-sm me-1 year" name="year" aria-label="Default select example">
<option selected="" value="" disabled>Select Year</option>
<option selected="" value="" disabled>{{ _("Year")}}</option>
{% for y in year %}
<option value="{{ y.0 }}">{{ y.0 }}</option>
{% endfor %}
</select>
<select class="form-select form-control-sm me-1 car_status" name="car_status" aria-label="Default select example">
<option selected="" value="">All</option>
<option value="available">Available</option>
<option value="reserved">Reserved</option>
<option value="sold">Sold</option>
<option value="transfer">Transfer</option>
<option selected="" value="">{{ _("All") }}</option>
<option value="available">{{ _("Available") }}</option>
<option value="reserved">{{ _("Reserved") }}</option>
<option value="sold">{{ _("Sold") }}</option>
<option value="transfer">{{ _("Transfer") }}</option>
</select>
<button id="search" hx-get="{% url 'car_list' %}" hx-include=".make,.model,.year,.car_status" hx-indicator=".htmx-indicator" hx-target='.table-responsive' hx-select='.table-responsive' hx-swap="outerHTML show:window:top" class="btn btn-sm btn-phoenix-primary ms-1"
hx-on::before-request="filter_before_request()"
@ -129,7 +129,7 @@
<p class="mb-0 fs-9 text-body">{{car.year}}</p>
</td>
<td class="align-middle white-space-nowrap task">
<p class="fw-bo text-body fs-9 mb-0">{{car.id_car_trim.get_local_name|default:car.id_ca_trim.name }}</p>
<p class="fw-bo text-body fs-9 mb-0">{{car.id_car_trim }}</p>
</td>
<td class="align-middle white-space-nowrap task">
<p class="fw-bo text-body fs-9 mb-0">{{car.vin}}</p>