gealogiuya
This commit is contained in:
4
apps/geology/models/__init__.py
Normal file
4
apps/geology/models/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from .category import * # noqa
|
||||
from .gallery import * # noqa
|
||||
from .geology import * # noqa
|
||||
from .photo import * # noqa
|
||||
16
apps/geology/models/category.py
Normal file
16
apps/geology/models/category.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from apps.shared.models import AbstractBaseModel
|
||||
|
||||
|
||||
class Category(AbstractBaseModel):
|
||||
name = models.CharField(max_length=255, verbose_name=_("Nomi"))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Kategoriya")
|
||||
verbose_name_plural = _("Kategoriyalar")
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.name
|
||||
20
apps/geology/models/gallery.py
Normal file
20
apps/geology/models/gallery.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from apps.shared.models import AbstractBaseModel
|
||||
|
||||
|
||||
class GalleryCategory(AbstractBaseModel):
|
||||
name = models.CharField(max_length=255, verbose_name=_("Nomi"))
|
||||
count = models.BigIntegerField(default=0, verbose_name=_("Soni"))
|
||||
gallery = models.ManyToManyField(
|
||||
"Gallery", related_name="gallery_category", verbose_name=_("Galereya")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Galereya kategoriya")
|
||||
verbose_name_plural = _("Galereya kategoriyalar")
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.name
|
||||
47
apps/geology/models/geology.py
Normal file
47
apps/geology/models/geology.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from apps.shared.models import AbstractBaseModel
|
||||
|
||||
|
||||
class Geology(AbstractBaseModel):
|
||||
category = models.ForeignKey(
|
||||
"Category",
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cultures",
|
||||
verbose_name=_("Kategoriya"),
|
||||
)
|
||||
banner_title = models.CharField(
|
||||
max_length=255, verbose_name=_("Banner sarlavhasi"), null=True, blank=True
|
||||
)
|
||||
banner = models.ImageField(
|
||||
upload_to="banners/", verbose_name=_("Banner"), null=True, blank=True
|
||||
)
|
||||
name = models.CharField(max_length=255, verbose_name=_("Тог жинси номи"))
|
||||
title = models.CharField(max_length=255, verbose_name=_("Тог жинсининг геологик раками"))
|
||||
body1 = models.TextField(verbose_name=_("Тог жинсининг макроскопик таснифи"), null=True, blank=True)
|
||||
address = models.CharField(max_length=255, verbose_name=_("Олинган жойи"), null=True, blank=True)
|
||||
image = models.ImageField(upload_to="images/", verbose_name=_("Олинган жойи сурати"), null=True, blank=True)
|
||||
location = models.CharField(max_length=255, verbose_name=_("Кординаталар"), null=True, blank=True)
|
||||
composition = models.TextField(verbose_name=_("Тог жинсининг кимёвий таркиби (%)"), null=True, blank=True)
|
||||
isp = models.TextField(verbose_name=_("Тоғ жинсининг ISP - масс-спектрометрик тахлил натижаси (г/т)"), null=True,
|
||||
blank=True)
|
||||
analysis = models.TextField(
|
||||
verbose_name=_("Тоғ жинсининг спектрал тахлил натижаси (%)"), null=True, blank=True
|
||||
)
|
||||
body2 = models.TextField(verbose_name=_("Тоғ жинсининг шаффоф шлифда кўриниши"), null=True, blank=True)
|
||||
photos1 = models.ManyToManyField(
|
||||
"Photo", verbose_name=_("Барча кўрнишлар"), related_name="geology_photos1", blank=True
|
||||
)
|
||||
body3 = models.TextField(verbose_name=_("Тоғ жинсининг аншлифда кўриниши"), null=True, blank=True)
|
||||
photos2 = models.ManyToManyField(
|
||||
"Photo", verbose_name=_("Барча кўрнишлар"), related_name="geology_photos2", blank=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Madan")
|
||||
verbose_name_plural = _("Madanlar")
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.name
|
||||
66
apps/geology/models/photo.py
Normal file
66
apps/geology/models/photo.py
Normal file
@@ -0,0 +1,66 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from apps.shared.models import AbstractBaseModel
|
||||
|
||||
|
||||
class Photo(AbstractBaseModel):
|
||||
name = models.CharField(
|
||||
max_length=255, blank=True, null=True, verbose_name=_("Nomi")
|
||||
)
|
||||
description = models.TextField(blank=True, null=True, verbose_name=_("Tavsif"))
|
||||
image = models.ImageField(upload_to="media/", verbose_name=_("Fayl"))
|
||||
type = models.CharField(
|
||||
max_length=255, blank=True, null=True, verbose_name=_("Fayl turi")
|
||||
)
|
||||
size = models.BigIntegerField(
|
||||
blank=True, null=True, default=0, verbose_name=_("Hajmi")
|
||||
)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.type = self.image.name.split(".")[-1]
|
||||
self.size = self.image.size
|
||||
if self.name is None:
|
||||
self.name = (
|
||||
self.image.name if self.image.name is not None else f"Media {self.id}"
|
||||
)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Барча кўрнишлар")
|
||||
verbose_name_plural = _("Барча кўрнишлар")
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return str(self.description) if str(self.description) else f"Photo {self.id}"
|
||||
|
||||
|
||||
class Gallery(AbstractBaseModel):
|
||||
name = models.CharField(
|
||||
max_length=255, blank=True, null=True, verbose_name=_("Nomi")
|
||||
)
|
||||
description = models.TextField(blank=True, null=True, verbose_name=_("Tavsif"))
|
||||
image = models.ImageField(upload_to="media/", verbose_name=_("Fayl"))
|
||||
type = models.CharField(
|
||||
max_length=255, blank=True, null=True, verbose_name=_("Fayl turi")
|
||||
)
|
||||
size = models.BigIntegerField(
|
||||
blank=True, null=True, default=0, verbose_name=_("Hajmi")
|
||||
)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.type = self.image.name.split(".")[-1]
|
||||
self.size = self.image.size
|
||||
if self.name is None:
|
||||
self.name = (
|
||||
self.image.name if self.image.name is not None else f"Media {self.id}"
|
||||
)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Galereya")
|
||||
verbose_name_plural = _("Galereya")
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return str(self.description) if str(self.description) else f"Gallery {self.id}"
|
||||
Reference in New Issue
Block a user