diff --git a/car_inventory/urls.py b/car_inventory/urls.py index 84efa986..0f1085b0 100644 --- a/car_inventory/urls.py +++ b/car_inventory/urls.py @@ -33,6 +33,5 @@ urlpatterns += i18n_patterns( # path('', include(tf_urls)), ) - +# if not settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) -urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) diff --git a/inventory/models.py b/inventory/models.py index e3d70112..7e65f17d 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -61,7 +61,7 @@ from encrypted_model_fields.fields import ( # from simple_history.models import HistoricalRecords from plans.models import Invoice -from django_extensions.db.fields import RandomCharField +from django_extensions.db.fields import RandomCharField,AutoSlugField logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) @@ -74,15 +74,7 @@ class Base(models.Model): primary_key=True, verbose_name=_("Primary Key"), ) - slug = models.SlugField( - null=True, - blank=True, - unique=True, - verbose_name=_("Slug"), - help_text=_( - "Slug for the object. If not provided, it will be generated automatically." - ), - ) + slug = RandomCharField(length=8, unique=True) created_at = models.DateTimeField(auto_now_add=True, verbose_name=_("Created At")) updated_at = models.DateTimeField(auto_now=True, verbose_name=_("Updated At")) @@ -744,7 +736,7 @@ class Car(Base): ) def save(self, *args, **kwargs): - self.slug = slugify(self.vin) + # self.slug = slugify(self.vin) self.hash = self.get_hash super(Car, self).save(*args, **kwargs) @@ -1374,7 +1366,7 @@ class Dealer(models.Model, LocalizedNameMixin): blank=True, null=True, verbose_name=_("Logo"), - default="", + default="default-image/user.jpg", ) thumbnail = ImageSpecField( source="logo", @@ -1516,7 +1508,7 @@ class Staff(models.Model): blank=True, null=True, verbose_name=_("Image"), - default="", + default="default-image/user.jpg", ) thumbnail = ImageSpecField( source="logo", @@ -1744,7 +1736,7 @@ class Customer(models.Model): blank=True, null=True, verbose_name=_("Image"), - default="", + default="default-image/user.jpg", ) thumbnail = ImageSpecField( source="image", @@ -1898,7 +1890,7 @@ class Organization(models.Model, LocalizedNameMixin): blank=True, null=True, verbose_name=_("Logo"), - default="", + default="default-image/user.jpg", ) thumbnail = ImageSpecField( source="logo", @@ -2716,7 +2708,7 @@ class Vendor(models.Model, LocalizedNameMixin): blank=True, null=True, verbose_name=_("Logo"), - default="", + default="default-image/user.jpg", ) thumbnail = ImageSpecField( source="logo", @@ -2742,6 +2734,21 @@ class Vendor(models.Model, LocalizedNameMixin): models.Index(fields=["crn"], name="vendor_crn_idx"), models.Index(fields=["vrn"], name="vendor_vrn_idx"), ] + constraints = [ + models.UniqueConstraint( + fields=["dealer", "crn"], name="unique_crn_per_dealer" + ), + models.UniqueConstraint( + fields=["dealer", "vrn"], name="unique_vrn_per_dealer" + ), + models.UniqueConstraint( + fields=["dealer", "email"], name="unique_email_per_dealer" + ), + models.UniqueConstraint( + fields=["dealer", "phone_number"], name="unique_phone_number_per_dealer" + ), + ] + def __str__(self): return self.name diff --git a/inventory/views.py b/inventory/views.py index 15f16d12..0aeac725 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -3655,7 +3655,7 @@ class UserCreateView( # return self.form_invalid(form) email = form.cleaned_data["email"] - if models.Staff.objects.filter(dealer=dealer,user__email=email).exists() or models.Dealer.objects.filter(user__email=email).exists(): + if models.Staff.objects.filter(user__email=email).exists() or models.Dealer.objects.filter(user__email=email).exists(): messages.error( self.request, _(