add unique slug to opportunity
This commit is contained in:
parent
22b87d17f6
commit
b752b4ed9b
@ -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):
|
||||
@ -1208,7 +1218,17 @@ class Dealer(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)
|
||||
|
||||
@property
|
||||
@ -2284,7 +2304,17 @@ class Opportunity(models.Model):
|
||||
opportinity_for = self.organization.name
|
||||
|
||||
if not self.slug:
|
||||
self.slug = slugify(f"opportunity {opportinity_for}")
|
||||
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)
|
||||
|
||||
class Meta:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
@ -512,7 +507,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()
|
||||
@ -714,6 +709,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(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user