From 7bd18296ac0f39f59383c3f35b0a12491a6c62e7 Mon Sep 17 00:00:00 2001 From: ismail Date: Sun, 27 Jul 2025 17:15:41 +0300 Subject: [PATCH] add translation and fix small bugs --- inventory/management/commands/seed1.py | 26 +++-- inventory/signals.py | 134 ++++++++++++++++------- inventory/views.py | 3 +- templates/base.html | 2 +- templates/crm/leads/lead_detail.html | 10 +- templates/crm/notifications_history.html | 2 +- templates/header.html | 2 +- 7 files changed, 123 insertions(+), 56 deletions(-) diff --git a/inventory/management/commands/seed1.py b/inventory/management/commands/seed1.py index ee247748..229c2014 100644 --- a/inventory/management/commands/seed1.py +++ b/inventory/management/commands/seed1.py @@ -26,12 +26,13 @@ class Command(BaseCommand): dealers = Dealer.objects.all() for dealer in dealers: - self._create_random_po(dealer) - self._create_random_vendors(dealer) + # self._create_random_po(dealer) + # self._create_random_vendors(dealer) # self._create_random_staff(dealer) # self._create_random_cars(dealer) - self._create_random_customers(dealer) + # self._create_random_customers(dealer) # self._create_randome_services(dealer) + self._create_random_lead(dealer) # dealer = Dealer.objects.get(name="Dealer #6") @@ -66,7 +67,7 @@ class Command(BaseCommand): for i in range(5): name = f"{fake.name()}{i}" email = fake.email() - password = f"{fake.password()}{i}" + password = "Tenhal@123" user = User.objects.create_user(username=email, email=email, password=password) user.is_staff = True user.save() @@ -207,6 +208,8 @@ class Command(BaseCommand): first_name = fake.name() last_name = fake.last_name() email = fake.email() + phone = fake.phone_number() + address = fake.address() staff = random.choice(Staff.objects.filter(dealer=dealer)) make = random.choice(CarMake.objects.all()) @@ -216,7 +219,8 @@ class Command(BaseCommand): first_name=first_name, last_name=last_name, email=email, - address=fake.address(), + phone_number=phone, + address=address, lead_type="customer", id_car_make=make, id_car_model=model, @@ -227,16 +231,18 @@ class Command(BaseCommand): c = Customer( dealer=dealer, title="MR", - first_name=fake.name(), - last_name=fake.last_name(), + first_name=first_name, + last_name=last_name, gender="m", - email=fake.email(), - phone_number=fake.phone_number(), - address=fake.address(), + email=email, + phone_number=phone, + address=address, national_id=random.randint(1000000000, 9999999999), ) c.create_user_model() c.create_customer_model() c.save() + lead.customer = c + lead.save() except Exception as e: pass \ No newline at end of file diff --git a/inventory/signals.py b/inventory/signals.py index 98b124f1..9d8008cc 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -996,10 +996,18 @@ def car_created_notification(sender, instance, created, **kwargs): for accountant in accountants: models.Notification.objects.create( user=accountant, - message=f""" - New Car {instance.id_car_make}-{instance.id_car_model}-{instance.year}-{instance.vin} has been added to the inventory. - View - """, + message=_( + """ + New Car {car_make}-{car_model}-{year}-{vin} has been added to the inventory. + View + """ + ).format( + car_make=instance.id_car_make, + car_model=instance.id_car_model, + year=instance.year, + vin=instance.vin, + url=instance.get_absolute_url(), + ), ) @@ -1014,10 +1022,17 @@ def po_fullfilled_notification(sender, instance, created, **kwargs): for recipient in recipients: models.Notification.objects.create( user=recipient, - message=f""" - New Purchase Order has been added. - View - """, + message=_( + """ + New Purchase Order has been added. + View + """ + ).format( + url=reverse( + "purchase_order_detail", + kwargs={"dealer_slug": dealer.slug, "pk": instance.pk}, + ), + ), ) @@ -1032,9 +1047,11 @@ def vendor_created_notification(sender, instance, created, **kwargs): for recipient in recipients: models.Notification.objects.create( user=recipient, - message=f""" - New Vendor {instance.name} has been added to dealer {instance.dealer.name}. - """, + message=_( + """ + New Vendor {vendor_name} has been added to dealer {dealer_name}. + """ + ).format(vendor_name=instance.name, dealer_name=instance.dealer.name), ) @@ -1051,10 +1068,18 @@ def sale_order_created_notification(sender, instance, created, **kwargs): for recipient in recipients: models.Notification.objects.create( user=recipient, - message=f""" - New Sale Order has been added for estimate:{instance.estimate}. - View - """, + message=_( + """ + New Sale Order has been added for estimate:{estimate_number}. + View + """ + ).format( + estimate_number=instance.estimate.estimate_number, + url=reverse( + "estimate_detail", + kwargs={"dealer_slug": instance.dealer.slug, "pk": instance.estimate.pk}, + ), + ), ) @@ -1064,10 +1089,12 @@ def lead_created_notification(sender, instance, created, **kwargs): if instance.staff: models.Notification.objects.create( user=instance.staff.user, - message=f""" - New Lead has been added. - View - """, + message=_( + """ + New Lead has been added. + View + """ + ).format(url=instance.get_absolute_url()), ) @@ -1084,11 +1111,19 @@ def estimate_in_review_notification(sender, instance, created, **kwargs): for recipient in recipients: models.Notification.objects.create( user=recipient, - message=f""" - Estimate {instance.estimate_number} is in review. - Please review and approve it at your earliest convenience. - View - """, + message=_( + """ + Estimate {estimate_number} is in review. + Please review and approve it at your earliest convenience. + View + """ + ).format( + estimate_number=instance.estimate_number, + url=reverse( + "estimate_detail", + kwargs={"dealer_slug": dealer.slug, "pk": instance.pk}, + ), + ), ) @@ -1106,10 +1141,18 @@ def estimate_in_approve_notification(sender, instance, created, **kwargs): return models.Notification.objects.create( user=recipient.related_object.user, - message=f""" - Estimate {instance.estimate_number} has been approved. - View - """, + message=_( + """ + Estimate {estimate_number} has been approved. + View + """ + ).format( + estimate_number=instance.estimate_number, + url=reverse( + "estimate_detail", + kwargs={"dealer_slug": dealer.slug, "pk": instance.pk}, + ), + ), ) @@ -1127,10 +1170,18 @@ def bill_model_in_approve_notification(sender, instance, created, **kwargs): for recipient in recipients: models.Notification.objects.create( user=recipient, - message=f""" - Bill {instance.bill_number} is in review,please review and approve it - View. - """, + message=_( + """ + Bill {bill_number} is in review,please review and approve it + View. + """ + ).format( + bill_number=instance.bill_number, + url=reverse( + "bill-detail", + kwargs={"dealer_slug": dealer.slug, "entity_slug": dealer.entity.slug, "bill_pk": instance.pk}, + ), + ), ) @@ -1148,15 +1199,22 @@ def bill_model_after_approve_notification(sender, instance, created, **kwargs): for recipient in recipients: models.Notification.objects.create( user=recipient, - message=f""" - Bill {instance.bill_number} has been approved. - View. - please complete the bill payment. - """, + message=_( + """ + Bill {bill_number} has been approved. + View. + please complete the bill payment. + """ + ).format( + bill_number=instance.bill_number, + url=reverse( + "bill-detail", + kwargs={"dealer_slug": dealer.slug, "entity_slug": dealer.entity.slug, "bill_pk": instance.pk}, + ), + ), ) - def handle_upgrade(sender, order, **kwargs): logger.info(f"User {order.user} upgraded to {order.plan}") diff --git a/inventory/views.py b/inventory/views.py index 9d733272..dac11229 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -9531,7 +9531,8 @@ def mark_all_notifications_as_read(request): models.Notification.objects.filter(user=request.user, is_read=False).update( is_read=True ) - return redirect(request.META.get("HTTP_REFERER")) + messages.success(request, _("All notifications marked as read.")) + return redirect("notifications_history") @login_required diff --git a/templates/base.html b/templates/base.html index 91c22188..c6d79f45 100644 --- a/templates/base.html +++ b/templates/base.html @@ -83,7 +83,7 @@ {% include "plans/expiration_messages.html" %} {% block period_navigation %} {% endblock period_navigation %} -
+
diff --git a/templates/crm/leads/lead_detail.html b/templates/crm/leads/lead_detail.html index ff4654d3..39071928 100644 --- a/templates/crm/leads/lead_detail.html +++ b/templates/crm/leads/lead_detail.html @@ -79,11 +79,13 @@
{{ _("Car Requested") }}
+ {% if lead.id_car_make.logo %} Car Make Logo + alt="Car Make Logo" + class="img-fluid rounded mb-2" + style="width: 60px; + height: 60px"> + {% endif %}

{{ lead.id_car_make.get_local_name }} - {{ lead.id_car_model.get_local_name }} {{ lead.year }}

diff --git a/templates/crm/notifications_history.html b/templates/crm/notifications_history.html index b2374191..764226ae 100644 --- a/templates/crm/notifications_history.html +++ b/templates/crm/notifications_history.html @@ -3,7 +3,7 @@

{{ _("Notifications") }}

{% if notifications %}
diff --git a/templates/header.html b/templates/header.html index c6c97c1d..3aa40d5d 100644 --- a/templates/header.html +++ b/templates/header.html @@ -547,7 +547,7 @@ {% trans 'Sign Out' %}
{% else %}