Добавление портфолио в тестовом виде

This commit is contained in:
2023-04-04 23:35:51 +03:00
parent f200ec0bef
commit 9982c3b529
4 changed files with 122 additions and 13 deletions

View File

@@ -300,9 +300,9 @@ class Order(models.Model):
default=CHOICE_UNDEFINED, verbose_name="Тип помещения")
number_of_rooms = models.SmallIntegerField(verbose_name='Количество комнат, -1 = студия', validators=[
MinValueValidator(-1),
MaxValueValidator(100)
])
MinValueValidator(-1),
MaxValueValidator(100)
])
is_balcony = models.BooleanField(default=False, verbose_name="Балкон")
is_loggia = models.BooleanField(default=False, verbose_name="Лоджия")
@@ -402,6 +402,33 @@ class Order(models.Model):
else:
return q[0]
class Portfolio(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE, verbose_name="Аккаунт")
title = models.CharField(max_length=200, verbose_name="Название")
actual_date = models.DateField(verbose_name="Дата выполнения", default=datetime.now)
actual_price = models.DecimalField(max_digits=12, decimal_places=2, blank=False, verbose_name="Цена")
def __str__(self):
return f"{self.id}: \"{self.title}\""
class PortfolioPhoto(models.Model):
portfolio = models.ForeignKey(Portfolio, on_delete=models.CASCADE, verbose_name="Портфолио")
photo = models.ForeignKey(Media, on_delete=models.SET_NULL, null=True, verbose_name="Аватар")
is_preview = models.BooleanField(verbose_name="Это главная фотография")
class Meta:
constraints = [
models.UniqueConstraint(
fields=['portfolio', 'photo'], name='unique_portfoliophoto_photo'
)
]
# TODO добавить проверку того, чтобы нельзя было приложить медиа другого юзера
# def _upload_image_filename(instance, filename):
# name, ext = os.path.splitext(filename)
# fn = sha256((str(datetime.now()) + name).encode('utf-8')).hexdigest() + ext