import os from django.conf import settings from django.contrib.auth import get_user_model from django.core.validators import RegexValidator from django.db import models from django.utils.translation import ugettext_lazy as _ # Create your models here. from core.models import AbstractStatusModel, STATUS_DELETED # --------------------- REQUEST STATUS LIST -------------------- STATUS_NEW = 0 from core.models import AbstractStatusModel, STATUS_NEW, STATUS_CHOICES # --------------------- REQUEST STATUS LIST ------------------- STATUS_IN_PROCESSING = 10 STATUS_PROCESSED = 20 REQUEST_STATUS_CHOICES = ( STATUS_CHOICES[0], (STATUS_IN_PROCESSING, _('Обрабатывается')), (STATUS_PROCESSED, _('Обработан')), STATUS_CHOICES[-1] ) REQUEST_DEFAULT_STATUS = STATUS_NEW class Request(AbstractStatusModel): name = models.CharField(_('Name'), max_length=255) email = models.EmailField(_('Email')) subject = models.CharField(_('Subject'), max_length=500) message = models.TextField(blank=True, null=True) phone_regex = RegexValidator( regex=r'^((\+7)|8)?\d{10}$', message=_("Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.") ) phone = models.CharField(validators=(phone_regex,), max_length=12, blank=True, null=True) status = models.SmallIntegerField(_('статус'), default=REQUEST_DEFAULT_STATUS, choices=REQUEST_STATUS_CHOICES) @property def is_status_processed(self): return self.status == STATUS_PROCESSED @property def is_status_processing(self): return self.status == STATUS_IN_PROCESSING def __str__(self): return self.subject class Meta: verbose_name = _('Запрос') verbose_name_plural = _('Запросы')