diff --git a/api/v1/serializers/course.py b/api/v1/serializers/course.py index d07e58b5..1a9695bb 100644 --- a/api/v1/serializers/course.py +++ b/api/v1/serializers/course.py @@ -181,6 +181,7 @@ class LessonCreateSerializer(DispatchContentMixin, serializers.ModelSerializer): 'created_at', 'update_at', 'deactivated_at', + 'position', ) read_only_fields = ( @@ -193,6 +194,9 @@ class LessonCreateSerializer(DispatchContentMixin, serializers.ModelSerializer): def create(self, validated_data): content = validated_data.pop('content', []) lesson = super().create(validated_data) + if not validated_data.get('position'): + lesson.set_last_position() + lesson.save() self.dispatch_content(lesson, content) return lesson @@ -223,6 +227,7 @@ class LessonSerializer(serializers.ModelSerializer): 'created_at', 'update_at', 'deactivated_at', + 'position', ) read_only_fields = ( diff --git a/apps/course/migrations/0039_lesson_position.py b/apps/course/migrations/0039_lesson_position.py new file mode 100644 index 00000000..7a26d8e5 --- /dev/null +++ b/apps/course/migrations/0039_lesson_position.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.6 on 2018-07-02 13:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('course', '0038_lesson_author'), + ] + + operations = [ + migrations.AddField( + model_name='lesson', + name='position', + field=models.PositiveSmallIntegerField(default=1, verbose_name='Положение на странице'), + ), + ] diff --git a/apps/course/models.py b/apps/course/models.py index 7d0300c7..942a0593 100644 --- a/apps/course/models.py +++ b/apps/course/models.py @@ -177,10 +177,18 @@ class Lesson(BaseModel, DeactivatedMixin): ) created_at = models.DateTimeField(auto_now_add=True) update_at = models.DateTimeField(auto_now=True) + position = models.PositiveSmallIntegerField( + 'Положение на странице', + default=1, + ) def __str__(self): return self.title + def set_last_position(self): + if self.course: + self.position = self.course.lessons.count() + def save(self, *args, **kwargs): if not self.author and self.course and self.course.author: self.author = self.course.author diff --git a/apps/course/templates/course/course_only_lessons.html b/apps/course/templates/course/course_only_lessons.html index a919e08f..f0217bcf 100644 --- a/apps/course/templates/course/course_only_lessons.html +++ b/apps/course/templates/course/course_only_lessons.html @@ -173,7 +173,7 @@