from django import forms from django.utils.translation import get_language class AddClassMixin: """ Mixin for adding classes to a model. """ def add_class_to_fields(self): """ Adds the class to the fields of the model. :return: class names form-control or form-select """ for field_name, field in self.fields.items(): if isinstance(field.widget, forms.Select): existing_classes = field.widget.attrs.get('class', '') field.widget.attrs['class'] = f"{existing_classes} form-select form-select-sm".strip() else: existing_classes = field.widget.attrs.get('class', '') field.widget.attrs['class'] = f"{existing_classes} form-control form-control-sm".strip() class LocalizedNameMixin: """ Mixin to provide a reusable get_localized_name method. """ def get_local_name(self): """ Returns the localized name based on the current language. """ if get_language() == 'ar': return getattr(self, 'arabic_name', None) return getattr(self, 'name', None) class AddDealerInstanceMixin: def form_valid(self, form): if form.is_valid(): form.instance.dealer = self.request.user.dealer.get_root_dealer form.save() return super().form_valid(form) else: return form.errors