diff --git a/src/account/admin.py b/src/account/admin.py index b9e5817dfac078d71887a8d90fdda504257bb88a..3977099f0b803d0214933039309e11ae5162b5bf 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 0000000000000000000000000000000000000000..e88ed12d346eefbc0226895bd725d1bc49541928 --- /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 0000000000000000000000000000000000000000..92845d1c75bcd23abaf68710d8c4bf93162fc7dd --- /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 9c9f6825eabda79f1ca0363ced2c56c691959299..08fe3b72af54ba8e9eaa5fbee8dd8e38f31e4e79 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 92a0828d55c5b8cd3a575ba0d16cb9f4711f87c8..e04ea5808d8183f6be4c64d23ec826497cfe6ba5 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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 db85da936cb6bb127570816efbae7d436ec7eaa1..c34b78ca760e4db8ae614b18dc5351a563776aae 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 0000000000000000000000000000000000000000..9b5ed21c9e3f65438f966db7f1913bc34b7ffa97 --- /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 0000000000000000000000000000000000000000..cc1d89fb470285c194edbd313e525730b9221aa5 --- /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 693ce0202c598857f3c85898ceb1494ad735381e..12023b6a78e7c9bbb5cc7e48d9d4f63b9eba7b3e 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 68a31626ba48090be7d4cf5607bc718c974c6aff..e4402b7b44c4dde5fabcac097975a806d90b055f 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: