From d2ddef23bf67c4a03c9963994b8df7d960c43417 Mon Sep 17 00:00:00 2001 From: Chif Gergo <chifgeri97@gmail.com> Date: Fri, 26 Jan 2018 00:14:47 +0100 Subject: [PATCH] settings in new files and validation --- src/account/admin.py | 2 ++ src/account/migrations/0011_deadline.py | 25 +++++++++++++++++++ .../migrations/0012_auto_20180125_1957.py | 20 +++++++++++++++ src/account/models.py | 5 ++++ src/account/serializers.py | 5 ++++ src/kszkepzes/settings/__init__.py | 0 .../{settings.py => settings/base.py} | 1 + src/kszkepzes/settings/local.py | 1 + src/kszkepzes/settings/production.py | 14 +++++++++++ src/kszkepzes/wsgi.py | 2 +- src/manage.py | 2 +- 11 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 src/account/migrations/0011_deadline.py create mode 100644 src/account/migrations/0012_auto_20180125_1957.py create mode 100644 src/kszkepzes/settings/__init__.py rename src/kszkepzes/{settings.py => settings/base.py} (99%) create mode 100644 src/kszkepzes/settings/local.py create mode 100644 src/kszkepzes/settings/production.py diff --git a/src/account/admin.py b/src/account/admin.py index b9e5817..3977099 100644 --- a/src/account/admin.py +++ b/src/account/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin from . import models +from solo.admin import SingletonModelAdmin @admin.register(models.Profile) @@ -14,3 +15,4 @@ class ProfileAdmin(admin.ModelAdmin): # Register your models here. admin.site.register(models.GroupChoice) +admin.site.register(models.Deadline, SingletonModelAdmin) diff --git a/src/account/migrations/0011_deadline.py b/src/account/migrations/0011_deadline.py new file mode 100644 index 0000000..e88ed12 --- /dev/null +++ b/src/account/migrations/0011_deadline.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2018-01-25 18:42 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('account', '0010_auto_20180124_1929'), + ] + + operations = [ + migrations.CreateModel( + name='Deadline', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('deadline', models.DateField()), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/src/account/migrations/0012_auto_20180125_1957.py b/src/account/migrations/0012_auto_20180125_1957.py new file mode 100644 index 0000000..92845d1 --- /dev/null +++ b/src/account/migrations/0012_auto_20180125_1957.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2018-01-25 18:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('account', '0011_deadline'), + ] + + operations = [ + migrations.AlterField( + model_name='deadline', + name='deadline', + field=models.DateField(null=True), + ), + ] diff --git a/src/account/models.py b/src/account/models.py index 9c9f682..08fe3b7 100644 --- a/src/account/models.py +++ b/src/account/models.py @@ -1,5 +1,6 @@ from django.db import models from django.contrib.auth.models import User +from solo.models import SingletonModel class GroupChoice(models.Model): @@ -28,3 +29,7 @@ class Profile(models.Model): def __str__(self): return self.user.username + + +class Deadline(SingletonModel): + deadline = models.DateField(null=True) diff --git a/src/account/serializers.py b/src/account/serializers.py index 92a0828..e04ea58 100644 --- a/src/account/serializers.py +++ b/src/account/serializers.py @@ -14,3 +14,8 @@ class ProfileSerializer(serializers.ModelSerializer): class Meta: model = models.Profile fields = ('id', 'join_date', 'user', 'nick', 'motivation', 'signed', 'groups') + + def validate(self, data): + if data['join_date'] > models.Deadline.get_solo().deadline: + raise serializers.ValidationError("join_date more than deadline") + return data diff --git a/src/kszkepzes/settings/__init__.py b/src/kszkepzes/settings/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/kszkepzes/settings.py b/src/kszkepzes/settings/base.py similarity index 99% rename from src/kszkepzes/settings.py rename to src/kszkepzes/settings/base.py index db85da9..c34b78c 100644 --- a/src/kszkepzes/settings.py +++ b/src/kszkepzes/settings/base.py @@ -40,6 +40,7 @@ INSTALLED_APPS = [ 'django_extensions', 'rest_framework', 'social_django', + 'solo', 'authsch', 'homework', 'account', diff --git a/src/kszkepzes/settings/local.py b/src/kszkepzes/settings/local.py new file mode 100644 index 0000000..9b5ed21 --- /dev/null +++ b/src/kszkepzes/settings/local.py @@ -0,0 +1 @@ +from .base import * diff --git a/src/kszkepzes/settings/production.py b/src/kszkepzes/settings/production.py new file mode 100644 index 0000000..cc1d89f --- /dev/null +++ b/src/kszkepzes/settings/production.py @@ -0,0 +1,14 @@ +from .base import * + +DEBUG = True + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': os.getenv('DB_NAME', 'kszkepzes'), + 'USER': os.getenv('DB_USER'), + 'PASSWORD': os.getenv('DB_PASSWORD'), + 'HOST': os.getenv('DB_HOST', 'localhost'), + 'PORT': os.getenv('DB_PORT', 5432), + } +} diff --git a/src/kszkepzes/wsgi.py b/src/kszkepzes/wsgi.py index 693ce02..12023b6 100644 --- a/src/kszkepzes/wsgi.py +++ b/src/kszkepzes/wsgi.py @@ -11,6 +11,6 @@ import os from django.core.wsgi import get_wsgi_application -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kszkepzes.settings") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kszkepzes.settings.production") application = get_wsgi_application() diff --git a/src/manage.py b/src/manage.py index 68a3162..e4402b7 100755 --- a/src/manage.py +++ b/src/manage.py @@ -3,7 +3,7 @@ import os import sys if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kszkepzes.settings") + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kszkepzes.settings.local") try: from django.core.management import execute_from_command_line except ImportError: -- GitLab