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