diff --git a/hub/services/migrations/0015_cloudprovider_address_cloudprovider_email_and_more.py b/hub/services/migrations/0015_cloudprovider_address_cloudprovider_email_and_more.py new file mode 100644 index 0000000..bf75811 --- /dev/null +++ b/hub/services/migrations/0015_cloudprovider_address_cloudprovider_email_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 5.1.5 on 2025-03-03 08:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("services", "0014_plan_pricing"), + ] + + operations = [ + migrations.AddField( + model_name="cloudprovider", + name="address", + field=models.TextField(blank=True, max_length=250, null=True), + ), + migrations.AddField( + model_name="cloudprovider", + name="email", + field=models.EmailField(blank=True, max_length=254, null=True), + ), + migrations.AddField( + model_name="cloudprovider", + name="linkedin", + field=models.URLField(blank=True), + ), + migrations.AddField( + model_name="cloudprovider", + name="phone", + field=models.CharField(blank=True, max_length=25, null=True), + ), + ] diff --git a/hub/services/models.py b/hub/services/models.py index 8c24bb7..4b818df 100644 --- a/hub/services/models.py +++ b/hub/services/models.py @@ -87,6 +87,10 @@ class CloudProvider(models.Model): slug = models.SlugField(unique=True) description = ProseEditorField() website = models.URLField() + linkedin = models.URLField(blank=True) + phone = models.CharField(max_length=25, blank=True, null=True) + email = models.EmailField(max_length=254, blank=True, null=True) + address = models.TextField(max_length=250, blank=True, null=True) logo = models.ImageField( upload_to="cloud_provider_logos/", validators=[validate_image_size], diff --git a/hub/services/templates/services/partner_detail.html b/hub/services/templates/services/partner_detail.html index 44ce531..da5be3e 100644 --- a/hub/services/templates/services/partner_detail.html +++ b/hub/services/templates/services/partner_detail.html @@ -143,29 +143,32 @@ {% if services %}
+ {% for category in service.categories.all %} + {{ category.full_path }} + {% endfor %} +
+{{ service.description|safe|truncatewords:30 }}
+ {% for category in offering.service.categories.all %} + {{ category.full_path }} + {% endfor %} +
+{{ offering.service.description|safe|truncatewords:30 }}
+The following services are available on {{ provider.name }} through Servala
-