@ -4,12 +4,12 @@ import datetime
import os
from django . conf import settings
from django . contrib . auth import get_user_model
from django . contrib . contenttypes . fields import GenericForeignKey
from django . contrib . contenttypes . models import ContentType
from django . db import models
from django . db . models import Q
from access . models import User
from courses . models import CourseTheme , Lesson , Homework , Exam , Achievements , Course , CourseMap , \
AchievementsMap , \
Diploma
@ -34,14 +34,14 @@ class TeacherJ(models.Model):
( ' F ' , u ' Завершен ' )
)
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 )
course = models . ForeignKey ( Course , verbose_name = u ' Курс ' )
homework = models . ForeignKey ( Homework , 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 )
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 )
start_date = models . DateTimeField ( verbose_name = u ' Дата начала ' , blank = True , null = True )
opens = models . ManyToManyField ( CourseMap , verbose_name = u ' Насильные открытия ' , blank = True , editable = False ,
@ -184,7 +184,7 @@ class TeacherJ(models.Model):
return self . teacher
else :
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 ( )
if len ( teachers ) == 1 :
return teachers . first ( )
@ -244,7 +244,7 @@ class CourseThemeJ(models.Model):
# Журнал темы
set_open = 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 )
material = models . ForeignKey ( CourseTheme , verbose_name = u ' Тема ' )
date = models . DateTimeField ( verbose_name = u ' Дата начала ' , blank = True , null = True )
@ -461,7 +461,7 @@ class CourseThemeJ(models.Model):
class LessonJ ( models . Model ) :
# Журнал урока
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 )
material = models . ForeignKey ( Lesson , verbose_name = u ' Урок ' )
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 )
success = models . BooleanField ( verbose_name = u ' Закончено ' , default = False )
student = models . ForeignKey ( User , verbose_name = u ' Студент ' , related_name = ' h_student ' , null = True )
teacher = models . ForeignKey ( User , verbose_name = u ' Экзаменатор ' , related_name = ' h_teacher ' , blank = True , null = True )
student = models . ForeignKey ( to = settings . AUTH_USER_MODEL , verbose_name = u ' Студент ' , related_name = ' h_student ' , 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 ' Домашнее задание ' )
parent = models . ForeignKey ( CourseThemeJ , verbose_name = u ' Журнал темы ' , blank = True , null = True , editable = False )
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 )
material = models . ForeignKey ( Homework , verbose_name = u ' Домашнее задание ' )
student = models . ForeignKey ( User , verbose_name = u ' Студент ' , related_name = ' h_t_student ' )
teacher = models . ForeignKey ( User , 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 )
student = models . ForeignKey ( to = settings . AUTH_USER_MODEL , verbose_name = u ' Студент ' , related_name = ' h_t_student ' )
teacher = models . ForeignKey ( to = settings . AUTH_USER_MODEL , verbose_name = u ' Преподаватель ' , related_name = ' h_t_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 )
f_date = models . DateTimeField ( verbose_name = u ' Завершение ' , blank = True , null = True )
success = models . BooleanField ( verbose_name = u ' Одобрено ' , default = False )
@ -1074,8 +1074,8 @@ class ExamJ(models.Model):
success = models . BooleanField ( verbose_name = u ' Пройдено ' , default = False )
material = models . ForeignKey ( Exam , verbose_name = u ' Экзамен ' , null = True )
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 )
teacher = models . ForeignKey ( User , verbose_name = u ' Экзаменатор ' , related_name = ' e_teacher ' , blank = True , null = True )
student = models . ForeignKey ( to = settings . AUTH_USER_MODEL , verbose_name = u ' Экзаменуемый ' , related_name = ' e_student ' , 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 )
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 )
material = models . ForeignKey ( Exam , verbose_name = u ' Экзамен ' )
student = models . ForeignKey ( User , verbose_name = u ' Студент ' , related_name = ' e_t_student ' )
teacher = models . ForeignKey ( User , verbose_name = u ' Преподаватель ' , related_name = ' e_t_teacher ' , blank = True , null = True )
student = models . ForeignKey ( to = settings . AUTH_USER_MODEL , verbose_name = u ' Студент ' , related_name = ' e_t_student ' )
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 )
f_date = models . DateTimeField ( verbose_name = u ' Завершение ' , blank = True , null = True )
success = models . BooleanField ( verbose_name = u ' Успешно ' , default = False )
@ -1402,7 +1402,7 @@ class DiplomaJ(models.Model):
material = models . ForeignKey ( Diploma , verbose_name = u ' Шаблон диплома ' )
date = models . DateField ( verbose_name = u ' Дата выдачи ' , default = datetime . date . today )
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 )
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 = ' ' )
title = models . CharField ( verbose_name = u ' Заголовок ' , max_length = 255 )
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 ' Шаблон достижения ' )
got = models . BooleanField ( verbose_name = u ' Получено ' , default = False )
date = models . DateField ( verbose_name = u ' Дата получения ' , default = datetime . date . today )
@ -1498,8 +1498,8 @@ class ReportDepth(models.Model):
( ' R ' , ' #FF3300 ' )
)
token = models . ForeignKey ( CourseMap , verbose_name = u ' Точка курса ' )
student = models . ForeignKey ( User , verbose_name = u ' Студент ' , related_name = ' depth_report_student ' )
teacher = models . ForeignKey ( User , verbose_name = u ' Преподаватель ' , related_name = ' depth_report_teacher ' , blank = True , null = True )
student = models . ForeignKey ( to = settings . AUTH_USER_MODEL , verbose_name = u ' Студент ' , related_name = ' depth_report_student ' )
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 ' Курс ' )
s_date = models . DateTimeField ( verbose_name = u ' Дата старта ' , default = datetime . datetime . now )
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 )
object_id = models . PositiveIntegerField ( )
content_object = GenericForeignKey ( ' content_type ' , ' object_id ' )
action_type = models . ForeignKey ( to = Action )
action_type = models . ForeignKey ( to = ' Action' )
def __str__ ( self ) :
return ' Пользователь %s %s ' % ( self . user . email , self . action_type . name )