update
This commit is contained in:
176
backEnd/about/models.py
Normal file
176
backEnd/about/models.py
Normal file
@@ -0,0 +1,176 @@
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
|
||||
|
||||
class AboutBanner(models.Model):
|
||||
"""Model for About Us banner section"""
|
||||
title = models.CharField(max_length=200)
|
||||
subtitle = models.CharField(max_length=100, blank=True)
|
||||
description = models.TextField()
|
||||
badge_text = models.CharField(max_length=100, default="Enterprise Software Solutions")
|
||||
badge_icon = models.CharField(max_length=50, default="fa-solid fa-building")
|
||||
cta_text = models.CharField(max_length=100, default="Discover Enterprise Solutions")
|
||||
cta_link = models.CharField(max_length=100, default="services")
|
||||
cta_icon = models.CharField(max_length=50, default="fa-solid fa-arrow-trend-up")
|
||||
image = models.ImageField(upload_to='about/banner/', null=True, blank=True)
|
||||
is_active = models.BooleanField(default=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "About Banner"
|
||||
verbose_name_plural = "About Banners"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class AboutStat(models.Model):
|
||||
"""Model for About Us statistics"""
|
||||
banner = models.ForeignKey(AboutBanner, on_delete=models.CASCADE, related_name='stats')
|
||||
number = models.CharField(max_length=20)
|
||||
label = models.CharField(max_length=100)
|
||||
order = models.PositiveIntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
ordering = ['order']
|
||||
verbose_name = "About Statistic"
|
||||
verbose_name_plural = "About Statistics"
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.number} - {self.label}"
|
||||
|
||||
|
||||
class AboutSocialLink(models.Model):
|
||||
"""Model for About Us social links"""
|
||||
banner = models.ForeignKey(AboutBanner, on_delete=models.CASCADE, related_name='social_links')
|
||||
platform = models.CharField(max_length=50)
|
||||
url = models.URLField()
|
||||
icon = models.CharField(max_length=50)
|
||||
aria_label = models.CharField(max_length=100)
|
||||
order = models.PositiveIntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
ordering = ['order']
|
||||
verbose_name = "About Social Link"
|
||||
verbose_name_plural = "About Social Links"
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.platform} - {self.banner.title}"
|
||||
|
||||
|
||||
class AboutService(models.Model):
|
||||
"""Model for About Us service section"""
|
||||
title = models.CharField(max_length=200)
|
||||
subtitle = models.CharField(max_length=100, blank=True)
|
||||
description = models.TextField()
|
||||
badge_text = models.CharField(max_length=100, default="About Our Company")
|
||||
badge_icon = models.CharField(max_length=50, default="fa-solid fa-users")
|
||||
image = models.ImageField(upload_to='about/services/', null=True, blank=True)
|
||||
cta_text = models.CharField(max_length=100, default="Explore Our Solutions")
|
||||
cta_link = models.CharField(max_length=100, default="service-single")
|
||||
is_active = models.BooleanField(default=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "About Service"
|
||||
verbose_name_plural = "About Services"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class AboutFeature(models.Model):
|
||||
"""Model for About Us features"""
|
||||
service = models.ForeignKey(AboutService, on_delete=models.CASCADE, related_name='features')
|
||||
title = models.CharField(max_length=100)
|
||||
description = models.CharField(max_length=200)
|
||||
icon = models.CharField(max_length=50)
|
||||
order = models.PositiveIntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
ordering = ['order']
|
||||
verbose_name = "About Feature"
|
||||
verbose_name_plural = "About Features"
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.title} - {self.service.title}"
|
||||
|
||||
|
||||
class AboutProcess(models.Model):
|
||||
"""Model for About Us process section"""
|
||||
title = models.CharField(max_length=200)
|
||||
subtitle = models.CharField(max_length=100, blank=True)
|
||||
description = models.TextField()
|
||||
badge_text = models.CharField(max_length=100, default="Our Methodology")
|
||||
badge_icon = models.CharField(max_length=50, default="fa-solid fa-cogs")
|
||||
image = models.ImageField(upload_to='about/process/', null=True, blank=True)
|
||||
cta_text = models.CharField(max_length=100, default="View Our Services")
|
||||
cta_link = models.CharField(max_length=100, default="service-single")
|
||||
is_active = models.BooleanField(default=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "About Process"
|
||||
verbose_name_plural = "About Processes"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class AboutProcessStep(models.Model):
|
||||
"""Model for About Us process steps"""
|
||||
process = models.ForeignKey(AboutProcess, on_delete=models.CASCADE, related_name='steps')
|
||||
step_number = models.CharField(max_length=10)
|
||||
title = models.CharField(max_length=100)
|
||||
description = models.CharField(max_length=200)
|
||||
order = models.PositiveIntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
ordering = ['order']
|
||||
verbose_name = "About Process Step"
|
||||
verbose_name_plural = "About Process Steps"
|
||||
|
||||
def __str__(self):
|
||||
return f"Step {self.step_number}: {self.title}"
|
||||
|
||||
|
||||
class AboutJourney(models.Model):
|
||||
"""Model for About Us journey section"""
|
||||
title = models.CharField(max_length=200)
|
||||
subtitle = models.CharField(max_length=100, blank=True)
|
||||
description = models.TextField()
|
||||
badge_text = models.CharField(max_length=100, default="Our Journey")
|
||||
badge_icon = models.CharField(max_length=50, default="fa-solid fa-rocket")
|
||||
image = models.ImageField(upload_to='about/journey/', null=True, blank=True)
|
||||
cta_text = models.CharField(max_length=100, default="Explore Solutions")
|
||||
cta_link = models.CharField(max_length=100, default="services")
|
||||
is_active = models.BooleanField(default=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "About Journey"
|
||||
verbose_name_plural = "About Journeys"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class AboutMilestone(models.Model):
|
||||
"""Model for About Us milestones"""
|
||||
journey = models.ForeignKey(AboutJourney, on_delete=models.CASCADE, related_name='milestones')
|
||||
year = models.CharField(max_length=10)
|
||||
title = models.CharField(max_length=100)
|
||||
description = models.CharField(max_length=200)
|
||||
order = models.PositiveIntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
ordering = ['order']
|
||||
verbose_name = "About Milestone"
|
||||
verbose_name_plural = "About Milestones"
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.year}: {self.title}"
|
||||
Reference in New Issue
Block a user