Merge branch 'cource_producer' into 'dev'

Cource producer

See merge request !498
remotes/origin/dev
Andrey 8 years ago
commit 89da4fba63
  1. 20
      courses/migrations/0012_course_producer.py
  2. 48
      courses/models.py
  3. 1
      courses/views.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='Производитель'),
),
]

@ -5,6 +5,7 @@ import unidecode
from django.contrib.postgres.fields import ArrayField from django.contrib.postgres.fields import ArrayField
from django.db import models from django.db import models
from django.template.defaultfilters import slugify from django.template.defaultfilters import slugify
from model_utils import Choices
from lms.tools import get_real_name, get_empty_list from lms.tools import get_real_name, get_empty_list
@ -79,47 +80,6 @@ class Topic(models.Model):
unique_together = ('sort', 'course') 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): def upload_image(instance, _filename):
return 'courses/%s/image.png' % instance.slug return 'courses/%s/image.png' % instance.slug
@ -137,6 +97,8 @@ def default_slug():
class Course(models.Model): class Course(models.Model):
PRODUCERS = Choices('skillbox', 'Ingate', 'AIC')
token = models.UUIDField(verbose_name="Токен", default=uuid.uuid4, editable=False) token = models.UUIDField(verbose_name="Токен", default=uuid.uuid4, editable=False)
slug = models.SlugField(unique=True, editable=False, max_length=127, default=default_slug) slug = models.SlugField(unique=True, editable=False, max_length=127, default=default_slug)
title = models.CharField(verbose_name="Заголовок", max_length=255, unique=True) 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, big_mobile_image = models.ImageField(verbose_name='Под мобилку', blank=True, upload_to=upload_mobile_image,
help_text='Большая картинка для мобильной версии', max_length=255) help_text='Большая картинка для мобильной версии', max_length=255)
hidden = models.BooleanField(verbose_name='Видно только оплатившим', default=False) hidden = models.BooleanField(verbose_name='Видно только оплатившим', default=False)
producer = models.CharField(
choices=PRODUCERS, default=PRODUCERS.skillbox, max_length=15, verbose_name="Производитель")
def __str__(self): def __str__(self):
return self.title return self.title
@ -202,8 +166,6 @@ class Course(models.Model):
except IndexError: except IndexError:
pass pass
objects = CourseManager()
class Meta: class Meta:
verbose_name = "Курс" verbose_name = "Курс"
verbose_name_plural = "Курсы" verbose_name_plural = "Курсы"

@ -84,6 +84,7 @@ class CourseListView(APIView):
level = request.POST.get('level') level = request.POST.get('level')
direction = request.POST.get('direction') direction = request.POST.get('direction')
description = request.POST.get('description') description = request.POST.get('description')
course.producer = request.POST.get('producer', 'skillbox')
if description: if description:
course.description = description course.description = description

Loading…
Cancel
Save