diff --git a/inventory/forms.py b/inventory/forms.py index faa9fd72..be9e8797 100644 --- a/inventory/forms.py +++ b/inventory/forms.py @@ -550,7 +550,7 @@ class CarColorsForm(forms.ModelForm): model = CarColors fields = ["exterior", "interior"] - def __init__(self, *args, **kwargs): + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["exterior"].queryset = ExteriorColors.objects.all() diff --git a/inventory/views.py b/inventory/views.py index d299b22f..a31dd432 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -941,6 +941,37 @@ class CarColorCreate(LoginRequiredMixin, PermissionRequiredMixin, CreateView): context["car"] = get_object_or_404(models.Car, slug=self.kwargs["slug"]) return context +class CarColorsUpdateView( LoginRequiredMixin, PermissionRequiredMixin, SuccessMessageMixin, UpdateView): + model = models.CarColors + form_class = forms.CarColorsForm + template_name = "inventory/add_colors.html" + success_message = _("Car finance details updated successfully") + permission_required = ["inventory.change_carfinance"] + + def get_success_url(self): + return reverse("car_detail", kwargs={"slug": self.object.car.slug}) + + def get_form_kwargs(self): + kwargs = super().get_form_kwargs() + kwargs["instance"] = self.get_object() + return kwargs + + def get_initial(self): + initial = super().get_initial() + instance = self.get_object() + dealer = get_user_type(self.request) + selected_items = instance.additional_services.filter(dealer=dealer) + initial["additional_finances"] = selected_items + return initial + + def get_form(self, form_class=None): + form = super().get_form(form_class) + dealer = get_user_type(self.request) + form.fields[ + "additional_finances" + ].queryset = models.AdditionalServices.objects.filter(dealer=dealer) + return form + class CarListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): """ diff --git a/templates/inventory/car_detail.html b/templates/inventory/car_detail.html index 3637fe11..261dfcd9 100644 --- a/templates/inventory/car_detail.html +++ b/templates/inventory/car_detail.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} + {% extends 'base.html' %} {% load i18n static custom_filters %} {% block title %}{{ _("Car Details") }}{% endblock %} {% block customCSS %} @@ -14,7 +14,8 @@ transform: translate(-50%, -50%); } -{% endblock customCSS %} +{% endblock customCSS %} + {% block content %} {% if not car.ready %}
- {% else %} +{% trans "No finance details available." %}
+ {% if perms.inventory.add_carfinance %} + {% trans "Add" %} + {% endif %} {% endcomment %} +