From 80caafc73820cfc6bf79ed15b241225866601b67 Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 15 May 2018 18:57:23 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- courses/models.py | 48 +++++------------------------------------------ 1 file changed, 5 insertions(+), 43 deletions(-) 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 = "Курсы" From 0e4780db0c237c4f891770989b106a81cd788448 Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 15 May 2018 18:57:47 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- courses/migrations/0012_course_producer.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 courses/migrations/0012_course_producer.py 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='Производитель'), + ), + ] From 387844f3859ecebe06c395e2d12a22c81e1d8afa Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 15 May 2018 19:00:12 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- courses/views.py | 1 + 1 file changed, 1 insertion(+) 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