diff --git a/courses/migrations/0012_course_producer.py b/courses/migrations/0012_course_producer.py new file mode 100644 index 0000000..08ea656 --- /dev/null +++ b/courses/migrations/0012_course_producer.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2018-05-15 18:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('courses', '0011_auto_20180514_1851'), + ] + + operations = [ + migrations.AddField( + model_name='course', + name='producer', + field=models.CharField(choices=[('skillbox', 'skillbox'), ('Ingate', 'Ingate'), ('AIC', 'AIC')], default='skillbox', max_length=15, verbose_name='Производитель'), + ), + ] diff --git a/courses/models.py b/courses/models.py index fc12316..3faaa18 100755 --- a/courses/models.py +++ b/courses/models.py @@ -5,6 +5,7 @@ import unidecode from django.contrib.postgres.fields import ArrayField from django.db import models from django.template.defaultfilters import slugify +from model_utils import Choices from lms.tools import get_real_name, get_empty_list @@ -79,47 +80,6 @@ class Topic(models.Model): unique_together = ('sort', 'course') -class CourseManager(models.Manager): - - def update_or_create_course(self, image=None, big_image=None, old_slug=None, - big_mobile_image=None, slug=None, teacher_tokens=None, - level=None, direction=None, **kwargs): - - slug = slug if slug else old_slug - - kwargs['teacher_tokens'] = teacher_tokens - - if image: - kwargs['image'] = image - - if big_image: - kwargs['big_image'] = big_image - - if big_mobile_image: - kwargs['big_mobile_image'] = big_mobile_image - - if level: - kwargs['level'] = get_real_name(COURSE_LEVEL, level) - - if direction: - kwargs['direction'] = get_real_name(COURSE_DIRECTION, direction[0]) - - try: - course = self.get(slug=old_slug) - for i in kwargs: - if kwargs[i]: - setattr(course, i, kwargs[i]) - course.slug = slug - course.save() - - except self.DoesNotExist: - if not slug is None: - kwargs['slug'] = slug - course = self.create(**kwargs) - - return course - - def upload_image(instance, _filename): return 'courses/%s/image.png' % instance.slug @@ -137,6 +97,8 @@ def default_slug(): class Course(models.Model): + PRODUCERS = Choices('skillbox', 'Ingate', 'AIC') + token = models.UUIDField(verbose_name="Токен", default=uuid.uuid4, editable=False) slug = models.SlugField(unique=True, editable=False, max_length=127, default=default_slug) title = models.CharField(verbose_name="Заголовок", max_length=255, unique=True) @@ -155,6 +117,8 @@ class Course(models.Model): big_mobile_image = models.ImageField(verbose_name='Под мобилку', blank=True, upload_to=upload_mobile_image, help_text='Большая картинка для мобильной версии', max_length=255) hidden = models.BooleanField(verbose_name='Видно только оплатившим', default=False) + producer = models.CharField( + choices=PRODUCERS, default=PRODUCERS.skillbox, max_length=15, verbose_name="Производитель") def __str__(self): return self.title @@ -202,8 +166,6 @@ class Course(models.Model): except IndexError: pass - objects = CourseManager() - class Meta: verbose_name = "Курс" verbose_name_plural = "Курсы" diff --git a/courses/views.py b/courses/views.py index 96d9083..ba39f02 100644 --- a/courses/views.py +++ b/courses/views.py @@ -84,6 +84,7 @@ class CourseListView(APIView): level = request.POST.get('level') direction = request.POST.get('direction') description = request.POST.get('description') + course.producer = request.POST.get('producer', 'skillbox') if description: course.description = description