|
|
|
|
@ -42,9 +42,11 @@ class Course(models.Model): |
|
|
|
|
User, on_delete=models.SET_NULL, null=True, blank=True) |
|
|
|
|
title = models.CharField('Название курса', max_length=100, db_index=True) |
|
|
|
|
short_description = models.TextField( |
|
|
|
|
'Краткое описание курса', db_index=True) |
|
|
|
|
'Краткое описание курса', db_index=True |
|
|
|
|
) |
|
|
|
|
from_author = models.TextField( |
|
|
|
|
'От автора', default='', null=True, blank=True) |
|
|
|
|
'От автора', default='', null=True, blank=True |
|
|
|
|
) |
|
|
|
|
cover = models.ForeignKey( |
|
|
|
|
ImageObject, related_name='course_covers', |
|
|
|
|
verbose_name='Обложка курса', on_delete=models.CASCADE, |
|
|
|
|
@ -63,7 +65,8 @@ class Course(models.Model): |
|
|
|
|
duration = models.IntegerField('Продолжительность курса', default=0) |
|
|
|
|
is_featured = models.BooleanField(default=False) |
|
|
|
|
status = models.PositiveSmallIntegerField( |
|
|
|
|
'Статус', default=0, choices=STATUS_CHOICES) |
|
|
|
|
'Статус', default=0, choices=STATUS_CHOICES |
|
|
|
|
) |
|
|
|
|
likes = models.ManyToManyField(Like, blank=True) |
|
|
|
|
materials = models.ManyToManyField('Material', blank=True) |
|
|
|
|
gallery = models.ForeignKey( |
|
|
|
|
@ -141,7 +144,8 @@ class Lesson(models.Model): |
|
|
|
|
title = models.CharField('Название урока', max_length=100) |
|
|
|
|
short_description = models.TextField('Краткое описание урока') |
|
|
|
|
course = models.ForeignKey( |
|
|
|
|
Course, on_delete=models.CASCADE, related_name='lessons') |
|
|
|
|
Course, on_delete=models.CASCADE, related_name='lessons' |
|
|
|
|
) |
|
|
|
|
cover = models.ForeignKey( |
|
|
|
|
ImageObject, related_name='lesson_covers', |
|
|
|
|
verbose_name='Обложка урока', on_delete=models.CASCADE, |
|
|
|
|
@ -207,7 +211,8 @@ class Comment(PolymorphicMPTTModel): |
|
|
|
|
|
|
|
|
|
class CourseComment(Comment): |
|
|
|
|
course = models.ForeignKey( |
|
|
|
|
Course, on_delete=models.CASCADE, related_name='comments') |
|
|
|
|
Course, on_delete=models.CASCADE, related_name='comments' |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
class Meta(Comment.Meta): |
|
|
|
|
verbose_name = 'Комментарий курса' |
|
|
|
|
@ -216,7 +221,8 @@ class CourseComment(Comment): |
|
|
|
|
|
|
|
|
|
class LessonComment(Comment): |
|
|
|
|
lesson = models.ForeignKey( |
|
|
|
|
Lesson, on_delete=models.CASCADE, related_name='comments') |
|
|
|
|
Lesson, on_delete=models.CASCADE, related_name='comments' |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
class Meta(Comment.Meta): |
|
|
|
|
verbose_name = 'Комментарий урока' |
|
|
|
|
|