add coming soon feature

This commit is contained in:
Tobias Brunner 2025-02-26 15:27:56 +01:00
parent 5c626b0212
commit bde13d4d95
No known key found for this signature in database
5 changed files with 42 additions and 1 deletions

View file

@ -0,0 +1,18 @@
# Generated by Django 5.1.5 on 2025-02-26 14:17
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("services", "0006_cloudprovider_is_featured_and_more"),
]
operations = [
migrations.AddField(
model_name="service",
name="is_coming_soon",
field=models.BooleanField(default=False),
),
]

View file

@ -107,13 +107,22 @@ class Service(models.Model):
categories = models.ManyToManyField(Category, related_name="services") categories = models.ManyToManyField(Category, related_name="services")
features = ProseEditorField() features = ProseEditorField()
is_featured = models.BooleanField(default=False) is_featured = models.BooleanField(default=False)
is_coming_soon = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True) created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True) updated_at = models.DateTimeField(auto_now=True)
def __str__(self): def __str__(self):
return self.name return self.name
def clean(self):
if self.is_featured and self.is_coming_soon:
raise ValidationError(
"A service cannot be both featured and coming soon simultaneously."
)
super().clean()
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
self.clean() # Ensure validation runs on save
if not self.slug: if not self.slug:
self.slug = slugify(self.name) self.slug = slugify(self.name)
counter = 1 counter = 1

View file

@ -8,7 +8,7 @@
<div class="flex-1 pr-lg-40 mb-40 mb-lg-0"> <div class="flex-1 pr-lg-40 mb-40 mb-lg-0">
<div class="bg-gray-50 rounded-20 p-40"> <div class="bg-gray-50 rounded-20 p-40">
<header> <header>
<h2 class="fs-44 fw-semibold mb-40">Enter your details</h2> <h2 class="fs-44 fw-semibold mb-40">Inquiry for {{ service.name }}</h2>
</header> </header>
<form method="post"> <form method="post">

View file

@ -112,6 +112,16 @@
</div> </div>
</div> </div>
{% endif %} {% endif %}
<!-- CTA -->
{% if service.is_coming_soon %}
<div class="pt-24">
<div class="page-action">
<a class="btn btn-primary btn-lg mr-md-17 mb-17 mb-md-0px mb-lg-17 mb-xl-0 w-100 w-md-auto" href="{% url 'services:create_lead' service.slug %}"
role="button">I'm interested in this service</a>
</div>
</div>
{% endif %}
</div> </div>
</div> </div>
</div> </div>

View file

@ -159,6 +159,10 @@
<div> <div>
<a class="btn btn-primary btn-sm" href="">Featured</a> <a class="btn btn-primary btn-sm" href="">Featured</a>
</div> </div>
{% elif service.is_coming_soon %}
<div>
<a class="btn btn-secondary btn-sm" href="">Coming Soon</a>
</div>
{% endif %} {% endif %}
</div> </div>
{% endif %} {% endif %}