diff --git a/access/migrations/0003_auto_20180219_1323.py b/access/migrations/0003_auto_20180219_1323.py new file mode 100644 index 0000000..76329da --- /dev/null +++ b/access/migrations/0003_auto_20180219_1323.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2018-02-19 13:23 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models +import lms.tools + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0002_init_group'), + ] + + operations = [ + migrations.AlterField( + model_name='useractivity', + name='ip_list', + field=django.contrib.postgres.fields.ArrayField(base_field=models.GenericIPAddressField(editable=False, verbose_name='Ip адресс'), default=lms.tools.get_empty_list, size=None), + ), + ] diff --git a/access/models/other.py b/access/models/other.py index bdaa3bb..54681d8 100644 --- a/access/models/other.py +++ b/access/models/other.py @@ -3,6 +3,8 @@ from django.db import models from phonenumber_field.modelfields import PhoneNumberField from django.contrib.postgres.fields import ArrayField +from lms.tools import get_empty_list + class Invite(models.Model): owner = models.OneToOneField(to=settings.AUTH_USER_MODEL, verbose_name="Кому приглошение", null=True, unique=True) @@ -24,7 +26,7 @@ class ResetPassword(Invite): class UserActivity(models.Model): owner = models.OneToOneField(to=settings.AUTH_USER_MODEL) - ip_list = ArrayField(models.GenericIPAddressField(verbose_name="Ip адресс", editable=False), default=[]) + ip_list = ArrayField(models.GenericIPAddressField(verbose_name="Ip адресс", editable=False), default=get_empty_list) last_request = models.DateTimeField(verbose_name="Был в сети", auto_now=True) def __str__(self): diff --git a/courses/models.py b/courses/models.py index 7d52c36..3bfd01a 100755 --- a/courses/models.py +++ b/courses/models.py @@ -7,7 +7,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.db import models from django.template.defaultfilters import slugify -from lms.tools import decode_base64, get_real_name +from lms.tools import decode_base64, get_real_name, get_empty_list COURSE_LEVEL = ( ('B', 'Базовый'), @@ -35,7 +35,7 @@ class Lesson(models.Model): video = models.TextField(verbose_name='Код видео', blank=True, null=True) material_tokens = ArrayField( models.UUIDField(verbose_name="Токен материала", editable=False), - default=[], + default=get_empty_list, verbose_name='Материалы курса', ) free = models.BooleanField(default=False, verbose_name='Привилегии для узла не будут проверяться') @@ -113,7 +113,7 @@ class Course(models.Model): public = models.BooleanField(verbose_name='Опубликовать', default=False) teacher_tokens = ArrayField( models.UUIDField(verbose_name="Токен препода", editable=False), - default=[], + default=get_empty_list, verbose_name='Преподователи курса', ) image = models.URLField(verbose_name='Изображение', blank=True, max_length=255) diff --git a/lms/tools.py b/lms/tools.py index 4a8d259..51b0807 100644 --- a/lms/tools.py +++ b/lms/tools.py @@ -24,6 +24,10 @@ def get_real_name(array, elem): return i +def get_empty_list(): + return [] + + EXAMPLE_BASE64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAANHUlEQVR42u3dXagdd9XH8e8Kh1A" \ "OIYRSQwhFDiWmMTeNELQq2ChCk1rbaIO9eNIXNeJNXxSkvlRaLNQoemGqXmgs1BeQSqux0Scq0saCNpRSWiv1mJRykBJC6EUII" \ "bbHw1le7BFrq/XkdF7+M/P9QK6SzJ7932v99szsWXsHA5KZK4FLqz9vATYB64HVwCrgPKT/7SXgDHAaOA7MAseAI8CRiJgfyhONA" \ diff --git a/progress/migrations/0005_auto_20180219_1317.py b/progress/migrations/0005_auto_20180219_1317.py new file mode 100644 index 0000000..c3a927b --- /dev/null +++ b/progress/migrations/0005_auto_20180219_1317.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2018-02-19 13:17 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models +import progress.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('progress', '0004_progress_is_finish'), + ] + + operations = [ + migrations.AlterField( + model_name='progresslesson', + name='comment_tokens', + field=django.contrib.postgres.fields.ArrayField(base_field=models.UUIDField(editable=False, verbose_name='Токен комента'), default=progress.models.get_empty_list, size=None), + ), + ] diff --git a/progress/models.py b/progress/models.py index 8bf49c5..db2ecec 100644 --- a/progress/models.py +++ b/progress/models.py @@ -3,11 +3,13 @@ from django.contrib.postgres.fields import ArrayField from django.db import models from model_utils import Choices +from lms.tools import get_empty_list + class Progress(models.Model): hidden_lessons = ArrayField( models.UUIDField(verbose_name="Токен урока", unique=True, editable=False), - default=[], + default=get_empty_list, verbose_name='Список скрытых уроков', ) teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name="Преподователь по умолчанию", @@ -55,7 +57,7 @@ class ProgressLesson(models.Model): finish_date = models.DateTimeField(verbose_name='Дата зачтения задания', blank=True, null=True) start_date = models.DateTimeField(verbose_name='Дата начала прохождения задания', auto_now_add=True) status = models.CharField(choices=STATUSES, default=STATUSES.start, max_length=20) - comment_tokens = ArrayField(models.UUIDField(verbose_name="Токен комента", editable=False), default=[]) + comment_tokens = ArrayField(models.UUIDField(verbose_name="Токен комента", editable=False), default=get_empty_list) def __str__(self): return self.progress.user.email