add consulting partners

This commit is contained in:
Tobias Brunner 2025-01-28 08:53:00 +01:00
parent 022f0ad60f
commit ca251218e5
No known key found for this signature in database
8 changed files with 261 additions and 9 deletions

View file

@ -68,6 +68,32 @@ class CloudProvider(models.Model):
return reverse("services:provider_detail", kwargs={"slug": self.slug})
class ConsultingPartner(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
description = ProseEditorField(blank=True)
logo = models.ImageField(
upload_to="partner_logos/",
validators=[validate_image_size],
null=True,
blank=True,
)
website = models.URLField(blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.name)
super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse("services:partner_detail", kwargs={"slug": self.slug})
class Country(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=2)
@ -93,6 +119,9 @@ class Service(models.Model):
slug = models.SlugField(max_length=250, unique=True)
description = ProseEditorField()
cloud_provider = models.ForeignKey(CloudProvider, on_delete=models.CASCADE)
consulting_partners = models.ManyToManyField(
ConsultingPartner, related_name="services", blank=True
)
service_level = models.ForeignKey(ServiceLevel, on_delete=models.CASCADE)
categories = models.ManyToManyField(Category, related_name="services")
countries = models.ManyToManyField(Country)