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.
55 lines
2.1 KiB
55 lines
2.1 KiB
from django.core.urlresolvers import reverse
|
|
from django.db import models
|
|
from django.utils import timezone
|
|
|
|
|
|
def photo_filename(instance, filename):
|
|
from slugify import slugify_filename
|
|
|
|
return 'photo_uploads/' + slugify_filename(filename)
|
|
|
|
|
|
class Promo(models.Model):
|
|
created = models.DateTimeField('Дата и время', auto_now_add=True, editable=False)
|
|
act_from = models.DateTimeField('От', editable=True)
|
|
act_to = models.DateTimeField('До', editable=True)
|
|
title = models.CharField('Заголовок', max_length=512, null=False, blank=False, unique=True)
|
|
slug = models.SlugField('Ссылка', max_length=512, null=False, blank=False, unique=True)
|
|
text = models.TextField('Акция', null=False, blank=False)
|
|
is_public = models.BooleanField('Публиковать', default=True)
|
|
image = models.ImageField('Картинка', upload_to=photo_filename)
|
|
|
|
class Meta:
|
|
verbose_name = 'акция'
|
|
verbose_name_plural = 'акции'
|
|
|
|
def __str__(self):
|
|
return self.title
|
|
|
|
def get_absolute_url(self):
|
|
return reverse('promo_detail', args=(self.slug,))
|
|
|
|
def get_status(self):
|
|
from datetime import datetime
|
|
if datetime.now() < self.act_from:
|
|
return 0
|
|
elif self.act_from < datetime.now() < self.act_to:
|
|
return 1
|
|
else:
|
|
return 2
|
|
|
|
|
|
# class NewsComment(models.Model):
|
|
# created = models.DateTimeField('Дата и время', auto_now_add=True, editable=False)
|
|
# name = models.CharField('Имя', max_length=45, null=False, blank=False)
|
|
# email = models.EmailField('Email (не будет опубликован)', null=False, blank=False)
|
|
# text = models.TextField('Комментарий', null=False, blank=False)
|
|
# reply_to = models.ForeignKey('self', null=True, blank=True)
|
|
# news = models.ForeignKey(News, related_name='comments')
|
|
|
|
# class Meta:
|
|
# verbose_name = 'комментарий'
|
|
# verbose_name_plural = 'комментарии'
|
|
|
|
# def __str__(self):
|
|
# return '{}: {}'.format(self.name, self.news.title)
|
|
|