Modellarga o'zgartirish kiritildi va filters qo'shildi

This commit is contained in:
2025-09-20 13:06:19 +05:00
parent d160410cd9
commit 7a2ea48a8e
39 changed files with 446 additions and 29 deletions

View File

@@ -1,4 +1,5 @@
from .badge import * # noqa
from .extra_services import * # noqa
from .hotel import * # noqa
from .tariff import * # noqa
from .tickets import * # noqa
from .tickets import * # noqa

View File

@@ -0,0 +1,34 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from django_core.models import AbstractBaseModel
class BadgeModel(AbstractBaseModel):
Color_Choice = (
("red", "red"),
("green", "green"),
("blue", "blue"),
("yellow", "yellow"),
("orange", "orange"),
("purple", "purple"),
("black", "black"),
("white", "white"),
("gray", "gray"),
)
name = models.CharField(max_length=255, verbose_name=_("badge name"))
color = models.CharField(max_length=255, choices=Color_Choice, verbose_name=_("badge color"), default="red")
def __str__(self):
return str(self.pk)
@classmethod
def _create_fake(self):
return self.objects.create(
name="mock",
)
class Meta:
db_table = "badge"
verbose_name = _("BadgeModel")
verbose_name_plural = _("BadgeModels")

View File

@@ -4,7 +4,32 @@ from django_core.models import AbstractBaseModel
from .tickets import TicketsModel
class HotelTypeModel(models.Model):
name = models.CharField(verbose_name=_("name"), max_length=255)
def __str__(self):
return str(self.pk)
@classmethod
def _create_fake(self):
return self.objects.create(
name="mock",
)
class Meta:
db_table = "hotel_types"
verbose_name = _("HotelTypeModel")
verbose_name_plural = _("HotelTypeModels")
class HotelModel(AbstractBaseModel):
MEAL_PLAN_CHOICES = [
("all_inclusive", "All Inclusive"),
("breakfast", "Breakfast Only"),
("half_board", "Half Board"),
("full_board", "Full Board"),
]
ticket = models.ForeignKey(TicketsModel, related_name="ticket_hotel", verbose_name=_("ticket"),
on_delete=models.CASCADE)
name = models.CharField(verbose_name=_("name"), max_length=255)
@@ -15,6 +40,9 @@ class HotelModel(AbstractBaseModel):
phone = models.CharField(verbose_name=_("phone number"), max_length=50, blank=True, null=True)
website = models.URLField(verbose_name=_("hotel website"), blank=True, null=True)
rating = models.FloatField(verbose_name=_("rating"), blank=True, null=True)
meal_plan = models.CharField(verbose_name=_("meal plan"), choices=MEAL_PLAN_CHOICES, max_length=255,
default="breakfast")
hotel_type = models.ManyToManyField(HotelTypeModel, verbose_name=_("hotel type"))
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

View File

@@ -4,7 +4,6 @@ from django_core.models import AbstractBaseModel
from core.apps.accounts.models import User
from core.apps.accounts.models.participant import ParticipantModel
from .tariff import TariffModel
from django.utils.text import slugify
@@ -29,7 +28,9 @@ class TicketsModel(AbstractBaseModel):
duration_days = models.IntegerField(verbose_name=_("duration days"))
hotel_meals = models.TextField(verbose_name=_("hotel meals"), null=True, blank=True)
tariff = models.ManyToManyField(TariffModel, related_name="ticket_tariffs", verbose_name=_("tariff"))
slug = models.SlugField(verbose_name=_("slug"), max_length=255, unique=True)
slug = models.SlugField(verbose_name=_("slug"), max_length=255, unique=True, null=True, blank=True)
badge = models.ManyToManyField("tickets.BadgeModel", verbose_name=_("badge"), null=True, blank=True)
visa_required = models.BooleanField(verbose_name=_("visa required"))
created_at = models.DateTimeField(verbose_name=_("created at"), auto_now_add=True)
updated_at = models.DateTimeField(verbose_name=_("updated at"), auto_now=True)
@@ -43,6 +44,8 @@ class TicketsModel(AbstractBaseModel):
@classmethod
def _create_fake(self):
from core.apps.tickets.models.badge import BadgeModel
return self.objects.create(
name="mock",
price=150000,
@@ -53,6 +56,7 @@ class TicketsModel(AbstractBaseModel):
rating=4.5,
hotel_info="mock",
duration_days=15,
badge=BadgeModel._create_fake(),
)
class Meta:
@@ -301,6 +305,7 @@ class TicketorderModel(AbstractBaseModel):
@classmethod
def _create_fake(self):
from core.apps.tickets.models.extra_services import ExtraServicesModel, PaidServicesModel
return self.objects.create(
user=User._create_fake(),
departure="mock",