You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
2.2 KiB

from django.db import models
from django.contrib.auth import get_user_model
from django.contrib.postgres.fields import HStoreField
from django.utils.translation import ugettext_lazy as _
from autoslug import AutoSlugField
# Create your models here.
from core.models import AbstractStatusModel
from products.models import Product
OFFER_STATUS_ACTIVE = 25
OFFER_STATUS_INACTIVE = 50
OFFER_STATUS_CHOICES = (
(OFFER_STATUS_ACTIVE, _('Активный')),
(OFFER_STATUS_INACTIVE, _('Неактивный'))
)
OFFER_DEFAULT_CHOICE = OFFER_STATUS_INACTIVE
class Offer(AbstractStatusModel):
name = models.CharField(max_length=64, blank=True, null=True, default=None)
slug = AutoSlugField(populate_from='name')
price = models.DecimalField(max_digits=8, decimal_places=2, null=True, default=0.00)
product = models.ForeignKey(Product, on_delete=models.CASCADE, blank=True, null=True, default=None,
related_name='variants')
attributes = HStoreField(blank=True, null=True, default={})
status = models.SmallIntegerField(_('статус'), default=OFFER_DEFAULT_CHOICE, choices=OFFER_STATUS_CHOICES)
def __str__(self):
return self.name
class Meta:
verbose_name = _('Позиция')
verbose_name_plural = _('Позиции')
# ------------------------------------------ Buying status --------------------------------------------------- #
BUYING_STATUS_IN_CART = 25
BUYING_STATUS_PENDING = 50
BUYING_STATUS_BOUGHT = 75
BUYING_STATUS_CHOICES = (
(BUYING_STATUS_IN_CART, _('В корзине')),
(BUYING_STATUS_PENDING,_('Обрабатываеться')),
(BUYING_STATUS_BOUGHT, _('Куплен'))
)
BUYING_DEFAULT_CHOICE = BUYING_STATUS_IN_CART
class Buying(AbstractStatusModel):
user = models.ForeignKey(get_user_model(),verbose_name=_('пользователь'), on_delete=models.CASCADE, )
offer = models.ForeignKey(Offer, verbose_name=_('позиция'), on_delete=models.CASCADE)
status = models.SmallIntegerField(_('статус'), default=BUYING_DEFAULT_CHOICE, choices=BUYING_STATUS_CHOICES)
class Meta:
verbose_name = _('Покупка')
verbose_name_plural = _('Покупки')