From ffb770bfe2dedd5fa508a6694222eaf77d75ac13 Mon Sep 17 00:00:00 2001 From: Marwan Alwali Date: Tue, 17 Jun 2025 20:48:46 +0300 Subject: [PATCH] update --- inventory/templatetags/custom_filters.py | 97 +++++ templates/inventory/car_list_view.html | 437 +++++++++++++++-------- 2 files changed, 377 insertions(+), 157 deletions(-) diff --git a/inventory/templatetags/custom_filters.py b/inventory/templatetags/custom_filters.py index 6813139f..17ce7afe 100644 --- a/inventory/templatetags/custom_filters.py +++ b/inventory/templatetags/custom_filters.py @@ -390,3 +390,100 @@ def bill_item_formset_table(context, item_formset): 'total_amount__sum': context['total_amount__sum'], 'item_formset': item_formset, } + + +@register.filter +def get_vehicle_image(car_serie): + """ + Returns the appropriate car image filename based on car series + """ + if not car_serie: + return 'sedan.png' + + serie_lower = car_serie.name.lower() + + # SUV mapping + if 'suv' in serie_lower: + if 'sport' in serie_lower or '3 doors' in serie_lower: + return 'crossover.png' + else: + return 'suv.png' + + # Pickup mapping + elif 'pickup' in serie_lower: + if 'cabriolet' in serie_lower: + return 'pickup_cabriolet.png' + elif 'double' in serie_lower or 'crew' in serie_lower: + return 'double_pickup.png' + else: + return 'single_pickup.png' + + # Van/Minivan mapping + elif 'minivan' in serie_lower: + return 'minivan.png' + elif 'van' in serie_lower: + if 'cargo' in serie_lower: + return 'van_cargo.png' + else: + return 'van.png' + elif 'compactvan' in serie_lower: + return 'van.png' + + # Hatchback mapping + elif 'hatchback' in serie_lower: + return 'hatchback.png' + + # Wagon mapping + elif 'wagon' in serie_lower: + return 'van.png' # Closest match + + # Coupe/Sports mapping + elif 'cabriolet' in serie_lower: + return 'cabriolet.png' + elif 'coupe' in serie_lower: + return 'coupe.png' + elif 'speedster' in serie_lower: + return 'sport_car.png' + + # Liftback mapping + elif 'liftback' in serie_lower: + return 'hatchback.png' # Closest match + + # Sedan mapping (including 2 doors) + elif 'sedan' in serie_lower: + if '2 doors' in serie_lower: + return 'coupe.png' + else: + return 'sedan.png' + + # Default fallback + else: + return 'sedan.png' + + +@register.filter +def get_vehicle_type_name(car_serie): + """ + Returns the vehicle type name for styling purposes + """ + if not car_serie: + return 'sedan' + + serie_lower = car_serie.name.lower() + + if 'suv' in serie_lower: + return 'suv' + elif 'pickup' in serie_lower: + return 'pickup' + elif any(word in serie_lower for word in ['van', 'minivan']): + return 'van' + elif 'hatchback' in serie_lower: + return 'hatchback' + elif 'wagon' in serie_lower: + return 'wagon' + elif any(word in serie_lower for word in ['coupe', 'cabriolet', 'speedster']): + return 'coupe' + elif 'liftback' in serie_lower: + return 'liftback' + else: + return 'sedan' \ No newline at end of file diff --git a/templates/inventory/car_list_view.html b/templates/inventory/car_list_view.html index 0a71c589..c39ff9cb 100644 --- a/templates/inventory/car_list_view.html +++ b/templates/inventory/car_list_view.html @@ -1,6 +1,6 @@ {% extends "base.html" %} -{% load i18n custom_filters humanize %} -{%block title%} {%trans 'Stocks'%} {%endblock%} +{% load static i18n custom_filters humanize %} +{%block title%} {%trans 'Inventory'%} {%endblock%} {% block customCSS %}