LIL-430. Add validator to Course deferred_start_at field

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 03ee4f8dbc
commit b33b415c9f
  1. 19
      apps/course/migrations/0036_auto_20180426_1256.py
  2. 10
      apps/course/models.py

@ -0,0 +1,19 @@
# Generated by Django 2.0.4 on 2018-04-26 09:56
import apps.course.models
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('course', '0035_comment_deactivated_at'),
]
operations = [
migrations.AlterField(
model_name='course',
name='deferred_start_at',
field=models.DateTimeField(blank=True, help_text='Заполнить если курс отложенный', null=True, validators=[apps.course.models.deferred_start_at_validator], verbose_name='Отложенный запуск курса'),
),
]

@ -3,6 +3,7 @@ from uuid import uuid4
from django.db import models from django.db import models
from django.utils import timezone from django.utils import timezone
from django.utils.text import slugify from django.utils.text import slugify
from django.utils.timezone import now
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.urls import reverse_lazy from django.urls import reverse_lazy
from polymorphic_tree.models import PolymorphicMPTTModel, PolymorphicTreeForeignKey from polymorphic_tree.models import PolymorphicMPTTModel, PolymorphicTreeForeignKey
@ -27,6 +28,13 @@ def default_slug():
return str(uuid4()) return str(uuid4())
def deferred_start_at_validator(value):
if value < now():
raise ValidationError(
'Дата и время начала курса не может быть меньше текущих.',
)
class Course(BaseModel, DeactivatedMixin): class Course(BaseModel, DeactivatedMixin):
DRAFT = 0 DRAFT = 0
PENDING = 1 PENDING = 1
@ -66,7 +74,7 @@ class Course(BaseModel, DeactivatedMixin):
is_infinite = models.BooleanField(default=False) is_infinite = models.BooleanField(default=False)
deferred_start_at = models.DateTimeField( deferred_start_at = models.DateTimeField(
'Отложенный запуск курса', help_text='Заполнить если курс отложенный', 'Отложенный запуск курса', help_text='Заполнить если курс отложенный',
null=True, blank=True null=True, blank=True, validators=[deferred_start_at_validator],
) )
category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.PROTECT) category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.PROTECT)
duration = models.IntegerField('Продолжительность курса', default=0) duration = models.IntegerField('Продолжительность курса', default=0)

Loading…
Cancel
Save