new chnages

This commit is contained in:
Faheedkhan 2025-08-11 13:01:27 +03:00
commit 70807da5fa
3 changed files with 33 additions and 14 deletions

View File

@ -381,7 +381,17 @@ class CarEquipment(models.Model, LocalizedNameMixin):
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.name)
base_slug = slugify(self.name)
self.slug = base_slug
counter = 1
while (
self.__class__.objects.filter(slug=self.slug)
.exclude(pk=self.pk)
.exists()
):
self.slug = f"{base_slug}-{counter}"
counter += 1
super().save(*args, **kwargs)
def __str__(self):
@ -1232,6 +1242,9 @@ class Dealer(models.Model, LocalizedNameMixin):
return None
@property
def customers(self):
return models.Customer.objects.filter(dealer=self)
@property
def user_quota(self):
try:
quota_dict = get_user_quota(self.user)
@ -2294,7 +2307,7 @@ class Opportunity(models.Model):
opportinity_for = self.organization.name
if not self.slug:
base_slug = slugify(f"opportunity for {opportinity_for}")
base_slug = slugify(f"opportinity {opportinity_for}")
self.slug = base_slug
counter = 1

View File

@ -46,7 +46,7 @@ urlpatterns = [
name="manager_dashboard",
),
path("dashboards/sales/", views.SalesDashboard.as_view(), name="sales_dashboard"),
path("test/", views.TestView.as_view(), name="test"),
path("cars/inventory/table/", views.CarListViewTable.as_view(), name="car_table"),
path("export/format/", TableExport.export, name="export"),
# Dealer URLs

View File

@ -106,10 +106,10 @@ from django_ledger.forms.bank_account import (
BankAccountUpdateForm,
)
from django_ledger.views.bill import (
# BillModelCreateView,
# BillModelDetailView,
# BillModelUpdateView,
# BaseBillActionView as BaseBillActionViewBase,
BillModelCreateView,
BillModelDetailView,
BillModelUpdateView,
BaseBillActionView as BaseBillActionViewBase,
BillModelModelBaseView,
)
from django_ledger.forms.bill import (
@ -277,11 +277,6 @@ def switch_language(request):
logger.warning(f"Invalid language code: {language}")
return redirect("/")
def testview(request):
return HttpResponse("test")
def dealer_signup(request):
from django_q.tasks import async_task
"""
@ -356,7 +351,6 @@ def dealer_signup(request):
"account/signup-wizard.html",
)
class HomeView(LoginRequiredMixin, TemplateView):
"""
HomeView class responsible for rendering the home page.
@ -393,6 +387,7 @@ class TestView(TemplateView):
template_name = "inventory/cars_list_api.html"
class ManagerDashboard(LoginRequiredMixin, TemplateView):
"""
ManagerDashboard class is a view handling the dashboard for a manager.
@ -513,7 +508,7 @@ class SalesDashboard(LoginRequiredMixin, TemplateView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
dealer = self.request.dealer
staff = self.request.staff
staff = getattr(self.request, "staff", None)
total_cars = models.Car.objects.filter(dealer=dealer).count()
total_reservations = models.CarReservation.objects.filter(
reserved_by=self.request.user, reserved_until__gte=timezone.now()
@ -715,6 +710,17 @@ class AjaxHandlerView(LoginRequiredMixin, View):
if result := decodevin(vin_no):
manufacturer_name, model_name, year_model = result.values()
car_make = get_make(manufacturer_name)
if not car_make:
logger.info(
f"VIN decoded using {decoding_method}: Make={manufacturer_name}, Model={model_name}, Year={year_model}"
)
return JsonResponse(
{
"success": False,
"error": _("Manufacturer not found in the database"),
},
status=404,
)
car_model = get_model(model_name, car_make)
logger.info(