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.
87 lines
3.6 KiB
87 lines
3.6 KiB
# -*- coding: utf-8 -*-
|
|
from django.db import models
|
|
from django.core.urlresolvers import reverse
|
|
|
|
|
|
class Category(models.Model):
|
|
"""Категория."""
|
|
name = models.CharField(u'название', max_length=255, help_text=u'Название в меню.')
|
|
slug = models.SlugField(unique=True, help_text=u'Уникальная часть названия, используемая в URL.')
|
|
|
|
page_title = models.CharField(u'заголовок страницы', max_length=255, help_text=u'Заголовок страницы.', default='')
|
|
|
|
description = models.TextField(u'описание', max_length=5000)
|
|
|
|
ordering = models.IntegerField(u'сортировка', null=True, blank=True, db_index=True,
|
|
help_text=u'Изменяет порядок сортировки.')
|
|
|
|
meta_description = models.TextField(u'meta description', max_length=255, blank=True)
|
|
meta_keywords = models.CharField(u'meta keywords', max_length=255, blank=True)
|
|
|
|
created_at = models.DateTimeField(u'создан', auto_now_add=True)
|
|
updated_at = models.DateTimeField(u'изменен', auto_now=True)
|
|
|
|
class Meta:
|
|
verbose_name = u'категория'
|
|
verbose_name_plural = u'категории вопросов-ответов'
|
|
ordering = ['ordering', 'name', '-pk']
|
|
|
|
def __unicode__(self):
|
|
return self.name
|
|
|
|
def get_absolute_url(self):
|
|
return reverse('guestbook-category-list', kwargs={'slug': self.slug})
|
|
|
|
def get_menu_title(self):
|
|
return self.name
|
|
|
|
|
|
class Entry(models.Model):
|
|
"""Запись."""
|
|
category = models.ForeignKey(Category, verbose_name=u'категория', blank=True, null=True, default=None)
|
|
|
|
name = models.CharField(u'имя', max_length=100)
|
|
email = models.EmailField(u'email', max_length=50, blank=True, default='')
|
|
message = models.TextField(u'текст сообщения', max_length=2000)
|
|
reply = models.TextField(u'ваш ответ', max_length=2000, blank=True, default='')
|
|
|
|
published = models.BooleanField(u'показывать', blank=True, default=False)
|
|
|
|
pub_date = models.DateTimeField(u'дата публикации', blank=True, null=True, default=None)
|
|
|
|
notified_user = models.BooleanField(u'уведомление пользователю', blank=True, default=False,
|
|
help_text=u'Уведомили пользователя об ответе на его вопрос?')
|
|
|
|
added_origtext = models.BooleanField(u'добавлено в ориг.тексты', blank=True, default=False,
|
|
help_text=u'Добавили в оригинальные тексты Яндекс.Вебмастера?')
|
|
|
|
created_at = models.DateTimeField(u'создан', auto_now_add=True)
|
|
updated_at = models.DateTimeField(u'изменен', auto_now=True)
|
|
|
|
class Meta:
|
|
verbose_name = u'вопрос-ответ'
|
|
verbose_name_plural = u'вопросы-ответы'
|
|
ordering = ['-pub_date', '-created_at']
|
|
|
|
def __unicode__(self):
|
|
return u'%s, %s' % (self.name, self.email)
|
|
|
|
def save(self, *args, **kwargs):
|
|
self.name = self.name.strip()
|
|
self.email = self.email.strip()
|
|
self.message = self.message.strip()
|
|
self.reply = self.reply.strip()
|
|
super(Entry, self).save(*args, **kwargs)
|
|
|
|
|
|
class Recipient(models.Model):
|
|
"""Почучатель уведомлений о новых заявках."""
|
|
email = models.EmailField(u'email', unique=True)
|
|
|
|
class Meta:
|
|
verbose_name = u'получатель'
|
|
verbose_name_plural = u'получатели уведомлений'
|
|
ordering = ['email']
|
|
|
|
def __unicode__(self):
|
|
return self.email
|
|
|