Косвеное обрашение к модели юзера

feature/fix_generate_pass
Andrey 8 years ago
parent 4fca8609f2
commit fa3c42ac35
  1. 10
      courses/models.py
  2. 40
      journals/models.py
  3. 9
      library/models.py
  4. 29
      management/models.py

@ -1,12 +1,12 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import datetime import datetime
from django.conf import settings
from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db import models from django.db import models
from redactor.fields import RedactorField from redactor.fields import RedactorField
from access.models import User
from courses.templates import search_in_collection, LEVELS_COLLECTION, MATERIAL_TYPE_COLLECTION, material_fabric, \ from courses.templates import search_in_collection, LEVELS_COLLECTION, MATERIAL_TYPE_COLLECTION, material_fabric, \
comment_fabric comment_fabric
from library.models import Tags from library.models import Tags
@ -36,7 +36,7 @@ class MaterialDirection(models.Model):
title = models.CharField(verbose_name=u'Заголовок', max_length=255) title = models.CharField(verbose_name=u'Заголовок', max_length=255)
color = models.CharField(verbose_name=u'Цвет', max_length=50) color = models.CharField(verbose_name=u'Цвет', max_length=50)
description = RedactorField(verbose_name=u'Описание', blank=True) description = RedactorField(verbose_name=u'Описание', blank=True)
mentors = models.ManyToManyField(User, verbose_name=u'Кураторы') mentors = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Кураторы')
def __unicode__(self): def __unicode__(self):
return u'%s' % self.title return u'%s' % self.title
@ -78,7 +78,7 @@ class Course(models.Model):
slug = models.SlugField(max_length=255, editable=False, blank=True, default='', unique=True) slug = models.SlugField(max_length=255, editable=False, blank=True, default='', unique=True)
icon = models.ImageField(verbose_name=u'Иконка курса', blank=True, null=True, upload_to='course') icon = models.ImageField(verbose_name=u'Иконка курса', blank=True, null=True, upload_to='course')
direction = models.ForeignKey(MaterialDirection, verbose_name=u'Направление', null=True) direction = models.ForeignKey(MaterialDirection, verbose_name=u'Направление', null=True)
mentors = models.ManyToManyField(User, verbose_name=u'Кураторы', blank=True, related_name='course_mentors') mentors = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Кураторы', blank=True, related_name='course_mentors')
public = models.BooleanField(verbose_name=u'Опубликовать', default=False) public = models.BooleanField(verbose_name=u'Опубликовать', default=False)
title = models.CharField(verbose_name=u"Заголовок", max_length=255) title = models.CharField(verbose_name=u"Заголовок", max_length=255)
description = RedactorField(verbose_name=u'Описание', blank=True) description = RedactorField(verbose_name=u'Описание', blank=True)
@ -88,7 +88,7 @@ class Course(models.Model):
help_text=u'Большая картинка для мобильной версии') help_text=u'Большая картинка для мобильной версии')
page = models.URLField(verbose_name=u'Страничка описания', blank=True, default='') page = models.URLField(verbose_name=u'Страничка описания', blank=True, default='')
preview = models.CharField(verbose_name=u'Трэйл', blank=True, default='', max_length=255) preview = models.CharField(verbose_name=u'Трэйл', blank=True, default='', max_length=255)
teachers = models.ManyToManyField(User, verbose_name=u'Преподаватели', related_name='course_teachers') teachers = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Преподаватели', related_name='course_teachers')
sort = models.IntegerField(verbose_name=u'Порядок сортировки', default=0) sort = models.IntegerField(verbose_name=u'Порядок сортировки', default=0)
use_fail = models.BooleanField(verbose_name=u'Использовать фейковую информацию', default=False) use_fail = models.BooleanField(verbose_name=u'Использовать фейковую информацию', default=False)
basic_len = models.IntegerField(verbose_name=u'Основных модулей', default=0) basic_len = models.IntegerField(verbose_name=u'Основных модулей', default=0)
@ -219,7 +219,7 @@ class Course(models.Model):
class CourseTheme(models.Model): class CourseTheme(models.Model):
on_comment = models.BooleanField(verbose_name=u'Блок комментариев', default=True) on_comment = models.BooleanField(verbose_name=u'Блок комментариев', default=True)
teachers = models.ManyToManyField(User, verbose_name=u'Преподаватели', blank=True) teachers = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Преподаватели', blank=True)
price_type = models.CharField(verbose_name=u'Тип подписки', choices=MATERIALS_TYPE, default='B', max_length=1) price_type = models.CharField(verbose_name=u'Тип подписки', choices=MATERIALS_TYPE, default='B', max_length=1)
_type = models.CharField(verbose_name=u'Тип темы', choices=THEME_TYPE, default='B', max_length=2) _type = models.CharField(verbose_name=u'Тип темы', choices=THEME_TYPE, default='B', max_length=2)
icon = models.ImageField(verbose_name=u'Иконка темы', upload_to='CourseTheme', null=True, blank=True) icon = models.ImageField(verbose_name=u'Иконка темы', upload_to='CourseTheme', null=True, blank=True)

@ -4,12 +4,12 @@ import datetime
import os import os
from django.conf import settings from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db import models from django.db import models
from django.db.models import Q from django.db.models import Q
from access.models import User
from courses.models import CourseTheme, Lesson, Homework, Exam, Achievements, Course, CourseMap, \ from courses.models import CourseTheme, Lesson, Homework, Exam, Achievements, Course, CourseMap, \
AchievementsMap, \ AchievementsMap, \
Diploma Diploma
@ -34,14 +34,14 @@ class TeacherJ(models.Model):
('F', u'Завершен') ('F', u'Завершен')
) )
status = models.CharField(verbose_name=u'Статус', choices=TJSTATUS, default='O', max_length=1) status = models.CharField(verbose_name=u'Статус', choices=TJSTATUS, default='O', max_length=1)
student = models.ForeignKey(User, verbose_name=u'Студент', related_name=u'teacherJ_student', null=True, blank=True) student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', related_name=u'teacherJ_student', null=True, blank=True)
full = models.BooleanField(verbose_name=u'Журнал создан', default=False) full = models.BooleanField(verbose_name=u'Журнал создан', default=False)
course = models.ForeignKey(Course, verbose_name=u'Курс') course = models.ForeignKey(Course, verbose_name=u'Курс')
homework = models.ForeignKey(Homework, verbose_name=u'ДЗ', blank=True, null=True) homework = models.ForeignKey(Homework, verbose_name=u'ДЗ', blank=True, null=True)
lesson = models.ForeignKey(Lesson, verbose_name=u'Урок', blank=True, null=True) lesson = models.ForeignKey(Lesson, verbose_name=u'Урок', blank=True, null=True)
progress = models.IntegerField(verbose_name=u'Прогресс', default=0) progress = models.IntegerField(verbose_name=u'Прогресс', default=0)
current_token = models.CharField(verbose_name=u'Текущий ключ', blank=True, default='', max_length=100) current_token = models.CharField(verbose_name=u'Текущий ключ', blank=True, default='', max_length=100)
teacher = models.ForeignKey(User, verbose_name=u'Преподаватель', related_name=u'teacherJ_teacher', blank=True, teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Преподаватель', related_name=u'teacherJ_teacher', blank=True,
null=True) null=True)
start_date = models.DateTimeField(verbose_name=u'Дата начала', blank=True, null=True) start_date = models.DateTimeField(verbose_name=u'Дата начала', blank=True, null=True)
opens = models.ManyToManyField(CourseMap, verbose_name=u'Насильные открытия', blank=True, editable=False, opens = models.ManyToManyField(CourseMap, verbose_name=u'Насильные открытия', blank=True, editable=False,
@ -184,7 +184,7 @@ class TeacherJ(models.Model):
return self.teacher return self.teacher
else: else:
if self.student and self.student.in_role != 'U': if self.student and self.student.in_role != 'U':
return User.objects.get(email=TEACHER) return get_user_model().objects.get(email=TEACHER)
teachers = self.course.teachers.all() teachers = self.course.teachers.all()
if len(teachers) == 1: if len(teachers) == 1:
return teachers.first() return teachers.first()
@ -244,7 +244,7 @@ class CourseThemeJ(models.Model):
# Журнал темы # Журнал темы
set_open = models.BooleanField(verbose_name=u'Насильно открыть доступ', default=False) set_open = models.BooleanField(verbose_name=u'Насильно открыть доступ', default=False)
success = models.BooleanField(verbose_name=u'Закончено', default=False) success = models.BooleanField(verbose_name=u'Закончено', default=False)
student = models.ForeignKey(User, verbose_name=u'Студент', null=True) student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', null=True)
parent = models.ForeignKey(TeacherJ, verbose_name=u'Журнал преподавания', blank=True, null=True, editable=False) parent = models.ForeignKey(TeacherJ, verbose_name=u'Журнал преподавания', blank=True, null=True, editable=False)
material = models.ForeignKey(CourseTheme, verbose_name=u'Тема') material = models.ForeignKey(CourseTheme, verbose_name=u'Тема')
date = models.DateTimeField(verbose_name=u'Дата начала', blank=True, null=True) date = models.DateTimeField(verbose_name=u'Дата начала', blank=True, null=True)
@ -461,7 +461,7 @@ class CourseThemeJ(models.Model):
class LessonJ(models.Model): class LessonJ(models.Model):
# Журнал урока # Журнал урока
set_open = models.BooleanField(verbose_name=u'Насильно открыть доступ', default=False) set_open = models.BooleanField(verbose_name=u'Насильно открыть доступ', default=False)
student = models.ForeignKey(User, verbose_name=u'Студент', null=True) student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', null=True)
success = models.BooleanField(verbose_name=u'Пройдено', default=False) success = models.BooleanField(verbose_name=u'Пройдено', default=False)
material = models.ForeignKey(Lesson, verbose_name=u'Урок') material = models.ForeignKey(Lesson, verbose_name=u'Урок')
parent = models.ForeignKey(CourseThemeJ, verbose_name=u'Журнал темы', blank=True, null=True, editable=False) parent = models.ForeignKey(CourseThemeJ, verbose_name=u'Журнал темы', blank=True, null=True, editable=False)
@ -691,8 +691,8 @@ class HomeworkJ(models.Model):
# Журнал сдачи работы # Журнал сдачи работы
set_open = models.BooleanField(verbose_name=u'Насильно открыть доступ', default=False) set_open = models.BooleanField(verbose_name=u'Насильно открыть доступ', default=False)
success = models.BooleanField(verbose_name=u'Закончено', default=False) success = models.BooleanField(verbose_name=u'Закончено', default=False)
student = models.ForeignKey(User, verbose_name=u'Студент', related_name='h_student', null=True) student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', related_name='h_student', null=True)
teacher = models.ForeignKey(User, verbose_name=u'Экзаменатор', related_name='h_teacher', blank=True, null=True) teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Экзаменатор', related_name='h_teacher', blank=True, null=True)
material = models.ForeignKey(Homework, verbose_name=u'Домашнее задание') material = models.ForeignKey(Homework, verbose_name=u'Домашнее задание')
parent = models.ForeignKey(CourseThemeJ, verbose_name=u'Журнал темы', blank=True, null=True, editable=False) parent = models.ForeignKey(CourseThemeJ, verbose_name=u'Журнал темы', blank=True, null=True, editable=False)
date = models.DateTimeField(verbose_name=u'Дата предоставления доступа', null=True, blank=True) date = models.DateTimeField(verbose_name=u'Дата предоставления доступа', null=True, blank=True)
@ -935,9 +935,9 @@ class HomeworkTry(models.Model):
# Попытка сдачи экзамена # Попытка сдачи экзамена
parent = models.ForeignKey(HomeworkJ, verbose_name=u'Журнал', blank=True, null=True, editable=False) parent = models.ForeignKey(HomeworkJ, verbose_name=u'Журнал', blank=True, null=True, editable=False)
material = models.ForeignKey(Homework, verbose_name=u'Домашнее задание') material = models.ForeignKey(Homework, verbose_name=u'Домашнее задание')
student = models.ForeignKey(User, verbose_name=u'Студент', related_name='h_t_student') student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', related_name='h_t_student')
teacher = models.ForeignKey(User, verbose_name=u'Преподаватель', related_name='h_t_teacher', blank=True, null=True) teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Преподаватель', related_name='h_t_teacher', blank=True, null=True)
new_teach = models.ForeignKey(User, verbose_name=u'Новый преподаватель', related_name='h_t_new_teacher', blank=True, null=True) new_teach = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Новый преподаватель', related_name='h_t_new_teacher', blank=True, null=True)
date = models.DateTimeField(verbose_name=u'Начало', default=datetime.datetime.now) date = models.DateTimeField(verbose_name=u'Начало', default=datetime.datetime.now)
f_date = models.DateTimeField(verbose_name=u'Завершение', blank=True, null=True) f_date = models.DateTimeField(verbose_name=u'Завершение', blank=True, null=True)
success = models.BooleanField(verbose_name=u'Одобрено', default=False) success = models.BooleanField(verbose_name=u'Одобрено', default=False)
@ -1074,8 +1074,8 @@ class ExamJ(models.Model):
success = models.BooleanField(verbose_name=u'Пройдено', default=False) success = models.BooleanField(verbose_name=u'Пройдено', default=False)
material = models.ForeignKey(Exam, verbose_name=u'Экзамен', null=True) material = models.ForeignKey(Exam, verbose_name=u'Экзамен', null=True)
parent = models.ForeignKey(CourseThemeJ, verbose_name=u'Журнал', blank=True, null=True, editable=False) parent = models.ForeignKey(CourseThemeJ, verbose_name=u'Журнал', blank=True, null=True, editable=False)
student = models.ForeignKey(User, verbose_name=u'Экзаменуемый', related_name='e_student', null=True) student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Экзаменуемый', related_name='e_student', null=True)
teacher = models.ForeignKey(User, verbose_name=u'Экзаменатор', related_name='e_teacher', blank=True, null=True) teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Экзаменатор', related_name='e_teacher', blank=True, null=True)
date = models.DateTimeField(verbose_name=u'Дата', null=True, blank=True) date = models.DateTimeField(verbose_name=u'Дата', null=True, blank=True)
f_date = models.DateTimeField(verbose_name=u'Дата завершения', blank=True, null=True) f_date = models.DateTimeField(verbose_name=u'Дата завершения', blank=True, null=True)
@ -1285,8 +1285,8 @@ class ExamTry(models.Model):
# Попытка сдачи экзамена # Попытка сдачи экзамена
parent = models.ForeignKey(ExamJ, verbose_name=u'Журнал', blank=True, null=True, editable=False) parent = models.ForeignKey(ExamJ, verbose_name=u'Журнал', blank=True, null=True, editable=False)
material = models.ForeignKey(Exam, verbose_name=u'Экзамен') material = models.ForeignKey(Exam, verbose_name=u'Экзамен')
student = models.ForeignKey(User, verbose_name=u'Студент', related_name='e_t_student') student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', related_name='e_t_student')
teacher = models.ForeignKey(User, verbose_name=u'Преподаватель', related_name='e_t_teacher', blank=True, null=True) teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Преподаватель', related_name='e_t_teacher', blank=True, null=True)
date = models.DateTimeField(verbose_name=u'Начало', default=datetime.datetime.now) date = models.DateTimeField(verbose_name=u'Начало', default=datetime.datetime.now)
f_date = models.DateTimeField(verbose_name=u'Завершение', blank=True, null=True) f_date = models.DateTimeField(verbose_name=u'Завершение', blank=True, null=True)
success = models.BooleanField(verbose_name=u'Успешно', default=False) success = models.BooleanField(verbose_name=u'Успешно', default=False)
@ -1402,7 +1402,7 @@ class DiplomaJ(models.Model):
material = models.ForeignKey(Diploma, verbose_name=u'Шаблон диплома') material = models.ForeignKey(Diploma, verbose_name=u'Шаблон диплома')
date = models.DateField(verbose_name=u'Дата выдачи', default=datetime.date.today) date = models.DateField(verbose_name=u'Дата выдачи', default=datetime.date.today)
key = models.IntegerField(verbose_name=u'Ключ', blank=True, null=True) key = models.IntegerField(verbose_name=u'Ключ', blank=True, null=True)
student = models.ForeignKey(User, verbose_name=u'Студент', null=True) student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', null=True)
out_image = models.ImageField(verbose_name=u'Картинка без печати', upload_to='diploms', blank=True) out_image = models.ImageField(verbose_name=u'Картинка без печати', upload_to='diploms', blank=True)
in_image = models.ImageField(verbose_name=u'Картинка c печатью', upload_to='diploms', blank=True) in_image = models.ImageField(verbose_name=u'Картинка c печатью', upload_to='diploms', blank=True)
@ -1475,7 +1475,7 @@ class AchievementJ(models.Model):
group = models.CharField(verbose_name=u'Раздел', max_length=100, default='') group = models.CharField(verbose_name=u'Раздел', max_length=100, default='')
title = models.CharField(verbose_name=u'Заголовок', max_length=255) title = models.CharField(verbose_name=u'Заголовок', max_length=255)
text = models.TextField(verbose_name=u'Текст достижения', blank=True) text = models.TextField(verbose_name=u'Текст достижения', blank=True)
student = models.ForeignKey(User, verbose_name=u'Студент') student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент')
achievement = models.ForeignKey(Achievements, verbose_name=u'Шаблон достижения') achievement = models.ForeignKey(Achievements, verbose_name=u'Шаблон достижения')
got = models.BooleanField(verbose_name=u'Получено', default=False) got = models.BooleanField(verbose_name=u'Получено', default=False)
date = models.DateField(verbose_name=u'Дата получения', default=datetime.date.today) date = models.DateField(verbose_name=u'Дата получения', default=datetime.date.today)
@ -1498,8 +1498,8 @@ class ReportDepth(models.Model):
('R', '#FF3300') ('R', '#FF3300')
) )
token = models.ForeignKey(CourseMap, verbose_name=u'Точка курса') token = models.ForeignKey(CourseMap, verbose_name=u'Точка курса')
student = models.ForeignKey(User, verbose_name=u'Студент', related_name='depth_report_student') student = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Студент', related_name='depth_report_student')
teacher = models.ForeignKey(User, verbose_name=u'Преподаватель', related_name='depth_report_teacher', blank=True, null=True) teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Преподаватель', related_name='depth_report_teacher', blank=True, null=True)
course = models.ForeignKey(Course, verbose_name=u'Курс') course = models.ForeignKey(Course, verbose_name=u'Курс')
s_date = models.DateTimeField(verbose_name=u'Дата старта', default=datetime.datetime.now) s_date = models.DateTimeField(verbose_name=u'Дата старта', default=datetime.datetime.now)
f_date = models.DateTimeField(verbose_name=u'Дата завершения', blank=True, null=True) f_date = models.DateTimeField(verbose_name=u'Дата завершения', blank=True, null=True)
@ -1689,7 +1689,7 @@ class Journal(models.Model):
content_type = models.ForeignKey(to=ContentType) content_type = models.ForeignKey(to=ContentType)
object_id = models.PositiveIntegerField() object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id') content_object = GenericForeignKey('content_type', 'object_id')
action_type = models.ForeignKey(to=Action) action_type = models.ForeignKey(to='Action')
def __str__(self): def __str__(self):
return 'Пользователь %s %s' % (self.user.email, self.action_type.name) return 'Пользователь %s %s' % (self.user.email, self.action_type.name)

@ -1,12 +1,11 @@
# coding=utf-8 # coding=utf-8
from __future__ import unicode_literals from __future__ import unicode_literals
import datetime import datetime
import re
from django.db import models from django.db import models
from management.models import Comment from management.models import Comment
from lms.tools import out_date_format, translit from lms.tools import out_date_format, translit
from lms.settings import DOMAIN from lms.settings import DOMAIN
from access.models import User from django.conf import settings
from courses.templates import comment_fabric from courses.templates import comment_fabric
@ -37,11 +36,11 @@ class Article(models.Model):
js = models.TextField(verbose_name=u'JS', blank=True, default='', help_text=u'Удалить bootstrap, jquery и заменить http на https') js = models.TextField(verbose_name=u'JS', blank=True, default='', help_text=u'Удалить bootstrap, jquery и заменить http на https')
date = models.DateTimeField(verbose_name=u'Дата публикации', default=datetime.datetime.now, editable=False) date = models.DateTimeField(verbose_name=u'Дата публикации', default=datetime.datetime.now, editable=False)
tags = models.ManyToManyField('Tags', verbose_name=u'Теги', blank=True) tags = models.ManyToManyField('Tags', verbose_name=u'Теги', blank=True)
likes = models.ManyToManyField(User, verbose_name=u'Лайки', max_length=255, blank=True, editable=False, related_name=u'acticle_likes') likes = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Лайки', max_length=255, blank=True, editable=False, related_name=u'acticle_likes')
views = models.ManyToManyField(User, verbose_name=u'Просмотры', max_length=255, default=0, related_name='article_views', editable=False) views = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Просмотры', max_length=255, default=0, related_name='article_views', editable=False)
all_views = models.IntegerField(verbose_name=u'Всего просмотров', default=0, blank=True) all_views = models.IntegerField(verbose_name=u'Всего просмотров', default=0, blank=True)
comments = models.ManyToManyField(Comment, verbose_name=u'Комментарии', blank=True, editable=False) comments = models.ManyToManyField(Comment, verbose_name=u'Комментарии', blank=True, editable=False)
favorite = models.ManyToManyField(User, verbose_name=u'В фаворитах', blank=True, related_name='article_as_favorites', editable=False) favorite = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'В фаворитах', blank=True, related_name='article_as_favorites', editable=False)
def __str__(self): return '%s' % self.title def __str__(self): return '%s' % self.title

@ -1,7 +1,8 @@
# coding=utf-8 # coding=utf-8
from django.db import models from django.db import models
import locale, datetime import locale, datetime
from access.models import User from django.conf import settings
from django.contrib.auth import get_user_model
from redactor.fields import RedactorField from redactor.fields import RedactorField
from lms.tools import out_date_format, random_int, random_string from lms.tools import out_date_format, random_int, random_string
from courses.templates import comment_fabric from courses.templates import comment_fabric
@ -60,12 +61,12 @@ class Newsletter(models.Model):
) )
status = models.CharField(verbose_name=u'Статус', max_length=1, choices=STATUS, default='Q') status = models.CharField(verbose_name=u'Статус', max_length=1, choices=STATUS, default='Q')
shell = models.ForeignKey(NewsletterShell, verbose_name=u'Оболочка', null=True) shell = models.ForeignKey(NewsletterShell, verbose_name=u'Оболочка', null=True)
author = models.ForeignKey(User, verbose_name=u'Инициатор', related_name='newsletter_owner') author = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Инициатор', related_name='newsletter_owner')
text = models.TextField(verbose_name=u'Текст сообщения') text = models.TextField(verbose_name=u'Текст сообщения')
recipient = models.ManyToManyField(User, verbose_name=u'Получатели', related_name='newsletter_request') recipient = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Получатели', related_name='newsletter_request')
date = models.DateTimeField(verbose_name=u'Дата постановки задачи', default=datetime.datetime.now) date = models.DateTimeField(verbose_name=u'Дата постановки задачи', default=datetime.datetime.now)
sent_date = models.DateTimeField(verbose_name=u'Дата отправки', default=datetime.datetime.now) sent_date = models.DateTimeField(verbose_name=u'Дата отправки', default=datetime.datetime.now)
f_recipient = models.ManyToManyField(User, verbose_name=u'Отправлено', related_name='newsletter_response') f_recipient = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Отправлено', related_name='newsletter_response')
def __unicode__(self): def __unicode__(self):
return u'%s %s %s:%s' % (self.author.get_short_name(), self.get_status_display(), self.date, self.sent_date) return u'%s %s %s:%s' % (self.author.get_short_name(), self.get_status_display(), self.date, self.sent_date)
@ -84,7 +85,7 @@ class News(models.Model):
icon = models.ImageField(verbose_name=u'Иконка', upload_to='news', blank=True) icon = models.ImageField(verbose_name=u'Иконка', upload_to='news', blank=True)
image = models.ImageField(verbose_name='Заголовочное изображение', upload_to='news', blank=True) image = models.ImageField(verbose_name='Заголовочное изображение', upload_to='news', blank=True)
content = RedactorField(verbose_name='Текст') content = RedactorField(verbose_name='Текст')
author = models.ForeignKey(User, verbose_name='Автор', related_name='author_user') author = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name='Автор', related_name='author_user')
public_date = models.DateTimeField(verbose_name='Дата публикации', blank=True) public_date = models.DateTimeField(verbose_name='Дата публикации', blank=True)
create_date = models.DateTimeField(verbose_name='Дата создания', default=django.utils.timezone.now) create_date = models.DateTimeField(verbose_name='Дата создания', default=django.utils.timezone.now)
@ -110,7 +111,7 @@ class News(models.Model):
class CommentSawTable(models.Model): class CommentSawTable(models.Model):
comment = models.ForeignKey('Comment', verbose_name=u'Комментарий') comment = models.ForeignKey('Comment', verbose_name=u'Комментарий')
user = models.ForeignKey(User, verbose_name=u'Просмотревший') user = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Просмотревший')
date = models.DateTimeField(verbose_name=u'Время просмотра просмотра', default=datetime.datetime.now) date = models.DateTimeField(verbose_name=u'Время просмотра просмотра', default=datetime.datetime.now)
def __unicode__(self): def __unicode__(self):
@ -138,15 +139,15 @@ class Comment(models.Model):
token = models.CharField(verbose_name=u'Ключь доступа', max_length=100, default='', editable=False) token = models.CharField(verbose_name=u'Ключь доступа', max_length=100, default='', editable=False)
best = models.BooleanField(verbose_name=u'Лучший ответ', default=False) best = models.BooleanField(verbose_name=u'Лучший ответ', default=False)
rating = models.IntegerField(verbose_name=u'Рейтинг', default=0) rating = models.IntegerField(verbose_name=u'Рейтинг', default=0)
minus_rating = models.ManyToManyField(User, verbose_name=u'Хейтеры', editable=False, null=True) minus_rating = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Хейтеры', editable=False, null=True)
plus_rating = models.ManyToManyField(User, verbose_name=u'Гудеры', editable=False, null=True) plus_rating = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Гудеры', editable=False, null=True)
status = models.CharField(verbose_name=u'Статус сообщения', max_length=2, choices=STATUSES, default='S') status = models.CharField(verbose_name=u'Статус сообщения', max_length=2, choices=STATUSES, default='S')
saw = models.ManyToManyField(User, verbose_name=u'Прочитавшие', blank=True, editable=False) saw = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Прочитавшие', blank=True, editable=False)
response = models.BooleanField(verbose_name=u'Есть ответ от админа', default=False, editable=False) response = models.BooleanField(verbose_name=u'Есть ответ от админа', default=False, editable=False)
response_comment = models.ForeignKey('self', verbose_name=u'Комментарий ответа от админа', blank=True, null=True, related_name='admin_text_response', editable=False) response_comment = models.ForeignKey('self', verbose_name=u'Комментарий ответа от админа', blank=True, null=True, related_name='admin_text_response', editable=False)
closed = models.BooleanField(verbose_name=u'Закрыт', default=False, editable=False) closed = models.BooleanField(verbose_name=u'Закрыт', default=False, editable=False)
parent_id = models.IntegerField(verbose_name=u'ID исходника', default=0, blank=True, editable=False) parent_id = models.IntegerField(verbose_name=u'ID исходника', default=0, blank=True, editable=False)
owner = models.ForeignKey(User, verbose_name=u'Автор', related_name='comment_owner') owner = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Автор', related_name='comment_owner')
text = RedactorField(verbose_name=u'Текст', default='') text = RedactorField(verbose_name=u'Текст', default='')
bbtext = BBCodeTextField(verbose_name=u'BB Текст', default='', blank=True) bbtext = BBCodeTextField(verbose_name=u'BB Текст', default='', blank=True)
markdown = models.TextField(blank=True, default='') markdown = models.TextField(blank=True, default='')
@ -280,7 +281,7 @@ class Feedback(models.Model):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.send: if not self.send:
for eye in User.objects.filter(in_role='S2'): for eye in get_user_model().objects.filter(in_role='S2'):
sent_new_feedback(self, eye.email) sent_new_feedback(self, eye.email)
super(Feedback, self).save(*args, **kwargs) super(Feedback, self).save(*args, **kwargs)
@ -423,11 +424,11 @@ class Modal(models.Model):
class ModalTask(models.Model): class ModalTask(models.Model):
user = models.ManyToManyField(User, verbose_name=u'Пользователи', user = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Пользователи',
help_text=u'Как пользователь зайдет на сайт - отсюда он будет удален и ' help_text=u'Как пользователь зайдет на сайт - отсюда он будет удален и '
u'будет создан журнал. ', related_name='task_user', blank=True, editable=False) u'будет создан журнал. ', related_name='task_user', blank=True, editable=False)
modal = models.ForeignKey(Modal, verbose_name=u'Окно') modal = models.ForeignKey(Modal, verbose_name=u'Окно')
manager = models.ForeignKey(User, verbose_name=u'Поставивший задачу', related_name='task_manager') manager = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Поставивший задачу', related_name='task_manager')
date = models.DateTimeField(verbose_name=u'Постановка задачи', default=datetime.datetime.now) date = models.DateTimeField(verbose_name=u'Постановка задачи', default=datetime.datetime.now)
status = models.CharField(verbose_name=u'Статус', choices=MODAL_STATUS, default='C', max_length=1) status = models.CharField(verbose_name=u'Статус', choices=MODAL_STATUS, default='C', max_length=1)
@ -458,7 +459,7 @@ class ModalJournal(models.Model):
) )
key = models.CharField(verbose_name=u'Ключ', max_length=255, default=gen_modal_journal_key) key = models.CharField(verbose_name=u'Ключ', max_length=255, default=gen_modal_journal_key)
status = models.CharField(verbose_name=u'Статус', choices=STATUS, default='O', editable=False, max_length=1) status = models.CharField(verbose_name=u'Статус', choices=STATUS, default='O', editable=False, max_length=1)
user = models.ForeignKey(User, verbose_name=u'Пользователь') user = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Пользователь')
date = models.DateTimeField(verbose_name=u'Дата показа', default=datetime.datetime.now, editable=False) date = models.DateTimeField(verbose_name=u'Дата показа', default=datetime.datetime.now, editable=False)
task = models.ForeignKey(ModalTask, verbose_name=u'Задача') task = models.ForeignKey(ModalTask, verbose_name=u'Задача')
views = models.IntegerField(verbose_name=u'Необходимое количество просмотров', default=0) views = models.IntegerField(verbose_name=u'Необходимое количество просмотров', default=0)

Loading…
Cancel
Save