76 lines
2.6 KiB
Python
76 lines
2.6 KiB
Python
from django.utils.html import format_html
|
|
|
|
from django.conf import settings
|
|
from django.utils.timesince import timesince
|
|
|
|
from . import models
|
|
from django_tables2.utils import A
|
|
from django import forms
|
|
import django_tables2 as tables
|
|
from django.utils.translation import gettext_lazy as _
|
|
from .models import Car, CarFinance, ExteriorColors, InteriorColors, CarColors
|
|
from .utils import get_local_name
|
|
|
|
|
|
|
|
class ImageColumn(tables.Column):
|
|
def render(self, value):
|
|
return format_html('<img src="{}{}" width="100" height="50" />', settings.MEDIA_URL, value)
|
|
|
|
|
|
class CarTable(tables.Table):
|
|
stock_type = tables.Column(verbose_name=_("Stock Type"))
|
|
vin = tables.LinkColumn("car_detail", args=[tables.A("pk")], verbose_name=_("VIN"), attrs={"td": {"class": "fw-bold"}, "span": {"class": "fas fa-bars"}})
|
|
id_car_make = tables.Column(verbose_name=_("Make"))
|
|
id_car_model = tables.Column(verbose_name=_("Model"))
|
|
year = tables.Column(verbose_name=_("Year"))
|
|
id_car_serie = tables.Column(verbose_name=_("Series"))
|
|
id_car_trim = tables.Column(verbose_name=_("Trim"))
|
|
mileage = tables.Column(verbose_name=_("Mileage"))
|
|
selling_price = tables.Column(accessor="finances.selling_price", verbose_name=_("Price"))
|
|
exterior_color = tables.Column(accessor="colors.exterior.name", verbose_name=_("Exterior Color"))
|
|
interior_color = tables.Column(accessor="colors.interior.name", verbose_name=_("Interior Color"))
|
|
receiving_date = tables.Column(verbose_name=_("Age"))
|
|
status = tables.Column(verbose_name=_("Status"))
|
|
|
|
class Meta:
|
|
model = Car
|
|
template_name = settings.DJANGO_TABLES2_TEMPLATE
|
|
export_formats = ["xlsx", ]
|
|
fields = (
|
|
"stock_type",
|
|
"vin",
|
|
"id_car_make",
|
|
"id_car_model",
|
|
"year",
|
|
"id_car_serie",
|
|
"id_car_trim",
|
|
"mileage",
|
|
"selling_price",
|
|
"exterior_color",
|
|
"interior_color",
|
|
"receiving_date",
|
|
"status",
|
|
)
|
|
attrs = {"class": "table table-hover fs-9 mb-0"}
|
|
|
|
def render_id_car_make(self, value):
|
|
return get_local_name(value)
|
|
|
|
def render_id_car_model(self, value):
|
|
return get_local_name(value)
|
|
|
|
def render_id_car_serie(self, value):
|
|
return get_local_name(value)
|
|
|
|
def render_id_car_trim(self, value):
|
|
return str(value)
|
|
|
|
def render_exterior_color(self, value):
|
|
return str(value)
|
|
|
|
def render_interior_color(self, value):
|
|
return str(value)
|
|
|
|
def render_receiving_date(self, value):
|
|
return timesince(value) if value else "-" |