From 499ddc09797f14eabc247f3b6bc0f8d45d99f5a2 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Sun, 2 Sep 2018 22:03:54 +0300 Subject: [PATCH] New kaehmy BaseRole class --- kaehmy/forms.py | 5 +- kaehmy/migrations/0002_auto_20180902_1929.py | 32 ++++++++++ kaehmy/migrations/0003_auto_20180902_1943.py | 63 ++++++++++++++++++++ kaehmy/models.py | 31 ++++++++-- kaehmy/views.py | 2 +- webapp/models.py | 18 ------ 6 files changed, 123 insertions(+), 28 deletions(-) create mode 100644 kaehmy/migrations/0002_auto_20180902_1929.py create mode 100644 kaehmy/migrations/0003_auto_20180902_1943.py diff --git a/kaehmy/forms.py b/kaehmy/forms.py index 8947bd9..7c0a80a 100644 --- a/kaehmy/forms.py +++ b/kaehmy/forms.py @@ -2,8 +2,7 @@ from django import forms from django.utils.translation import ugettext_lazy as _ from django.core.exceptions import ValidationError -from kaehmy.models import PresetRole, CustomRole, Application, Comment -from webapp.models import BaseRole +from kaehmy.models import PresetRole, CustomRole, Application, Comment, KaehmyBaseRole class CheckboxSelectMultiple(forms.widgets.CheckboxSelectMultiple): @@ -42,7 +41,7 @@ class ApplicationForm(forms.ModelForm): self.fields["custom_roles"].label = _('Custom roles') self.fields["custom_roles"].queryset = CustomRole.objects.all() - for cat_id, category in BaseRole.CATEGORIES: + for cat_id, category in KaehmyBaseRole.CATEGORIES: key = 'preset_roles_{}'.format(cat_id) qset = PresetRole.objects.filter(category=cat_id).order_by('category', '-is_board') self.fields[key] = forms.ModelMultipleChoiceField(qset) diff --git a/kaehmy/migrations/0002_auto_20180902_1929.py b/kaehmy/migrations/0002_auto_20180902_1929.py new file mode 100644 index 0000000..4da42b8 --- /dev/null +++ b/kaehmy/migrations/0002_auto_20180902_1929.py @@ -0,0 +1,32 @@ +# Generated by Django 2.0.7 on 2018-09-02 16:29 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('webapp', '0047_auto_20180710_2110'), + ('kaehmy', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='KaehmyBaseRole', + fields=[ + ('baserole_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='webapp.BaseRole')), + ('category', models.CharField(choices=[('corporate', 'Corporate affairs'), ('freshman', 'Freshmen'), ('international', 'International'), ('external', 'External affairs'), ('media', 'Media'), ('tech', 'Technology'), ('wellbeing', 'Wellbeing'), ('elepaja', 'Elepaja'), ('ceremonies', 'Ceremonies'), ('culture', 'Culture'), ('studies', 'Studies'), ('sosso', 'Sössö magazine'), ('alumni', 'Alumni relations'), ('others', 'Others')], default='others', max_length=255, verbose_name='Category')), + ], + bases=('webapp.baserole',), + ), + migrations.DeleteModel( + name='Application', + ), + migrations.DeleteModel( + name='customrole', + ), + migrations.DeleteModel( + name='presetrole', + ), + ] diff --git a/kaehmy/migrations/0003_auto_20180902_1943.py b/kaehmy/migrations/0003_auto_20180902_1943.py new file mode 100644 index 0000000..f94828f --- /dev/null +++ b/kaehmy/migrations/0003_auto_20180902_1943.py @@ -0,0 +1,63 @@ +# Generated by Django 2.0.7 on 2018-09-02 16:43 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('kaehmy', '0002_auto_20180902_1929'), + ] + + operations = [ + migrations.CreateModel( + name='Application', + fields=[ + ('commentparent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='kaehmy.CommentParent')), + ('phone_number', models.CharField(default='', max_length=10, verbose_name='Phone number')), + ('year', models.IntegerField(choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, 'N')], verbose_name='Year')), + ('text', models.TextField(default='', max_length=300, verbose_name='Text')), + ('custom_role_name', models.CharField(blank=True, max_length=255, verbose_name='Custom role name')), + ('custom_role_is_board', models.BooleanField(verbose_name='Board member')), + ], + options={ + 'verbose_name': 'Kaehmylomake', + 'verbose_name_plural': 'Kaehmylomakkeet', + }, + bases=('kaehmy.commentparent',), + ), + migrations.CreateModel( + name='CustomRole', + fields=[ + ('kaehmybaserole_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='kaehmy.KaehmyBaseRole')), + ], + options={ + 'verbose_name': 'Custom kaehmy role', + 'verbose_name_plural': 'Custom kaehmy roles', + }, + bases=('kaehmy.kaehmybaserole',), + ), + migrations.CreateModel( + name='PresetRole', + fields=[ + ('kaehmybaserole_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='kaehmy.KaehmyBaseRole')), + ('description', models.TextField(verbose_name='Description')), + ], + options={ + 'verbose_name': 'Preset kaehmy role', + 'verbose_name_plural': 'Preset kaehmy roles', + }, + bases=('kaehmy.kaehmybaserole',), + ), + migrations.AddField( + model_name='application', + name='custom_roles', + field=models.ManyToManyField(blank=True, related_name='forms', to='kaehmy.CustomRole'), + ), + migrations.AddField( + model_name='application', + name='preset_roles', + field=models.ManyToManyField(blank=True, related_name='forms', to='kaehmy.PresetRole'), + ), + ] diff --git a/kaehmy/models.py b/kaehmy/models.py index 24f8a60..ca591da 100644 --- a/kaehmy/models.py +++ b/kaehmy/models.py @@ -1,12 +1,8 @@ -"""Webapp app models.""" - from django.db import models from django.utils import timezone from datetime import timedelta -from django.contrib.auth.models import User from webapp.utils import month_from_now from django.utils.translation import ugettext_lazy as _ -from django.contrib.auth.models import User from auditlog.registry import auditlog from phonenumber_field.modelfields import PhoneNumberField @@ -17,15 +13,38 @@ import webapp.models VERBOSE_NAME = _('Kaehmy') -class PresetRole(webapp.models.PresetRole): +class KaehmyBaseRole(webapp.models.BaseRole): + + CATEGORIES = ( + ('corporate', _('Corporate affairs')), + ('freshman', _('Freshmen')), + ('international', _('International')), + ('external', _('External affairs')), + ('media', _('Media')), + ('tech', _('Technology')), + ('wellbeing', _('Wellbeing')), + ('elepaja', _('Elepaja')), + ('ceremonies', _('Ceremonies')), + ('culture', _('Culture')), + ('studies', _('Studies')), + ('sosso', _('Sössö magazine')), + ('alumni', _('Alumni relations')), + ('others', _('Others')), + ) + category = models.CharField(_('Category'), choices=CATEGORIES, default='others', max_length=255) + + +class PresetRole(KaehmyBaseRole): """Model for kaehmy role.""" + description = models.TextField(_('Description')) + class Meta: verbose_name = _('Preset kaehmy role') verbose_name_plural = _('Preset kaehmy roles') -class CustomRole(webapp.models.BaseRole): +class CustomRole(KaehmyBaseRole): """Model representing a user-specified custom occupation.""" class Meta: diff --git a/kaehmy/views.py b/kaehmy/views.py index 9ea73a0..04ed3ae 100644 --- a/kaehmy/views.py +++ b/kaehmy/views.py @@ -13,7 +13,7 @@ import requests from dealer.git import git from members.views.utils import * -from kaehmy.models import Application, CustomRole, PresetRole +from kaehmy.models import Application, CustomRole, PresetRole, TelegramChannel from kaehmy.forms import ApplicationForm, CommentForm from webapp.utils import send_email diff --git a/webapp/models.py b/webapp/models.py index d455b0a..4638cab 100644 --- a/webapp/models.py +++ b/webapp/models.py @@ -115,26 +115,8 @@ class Signup(models.Model): class BaseRole(models.Model): """Base model for occupations/roles.""" - # CATEGORIES = ( - # ('corporate', _('Corporate affairs')), - # ('freshman', _('Freshmen')), - # ('international', _('International')), - # ('external', _('External affairs')), - # ('media', _('Media')), - # ('tech', _('Technology')), - # ('wellbeing', _('Wellbeing')), - # ('elepaja', _('Elepaja')), - # ('ceremonies', _('Ceremonies')), - # ('culture', _('Culture')), - # ('studies', _('Studies')), - # ('sosso', _('Sössö magazine')), - # ('alumni', _('Alumni relations')), - # ('others', _('Others')), - # ) - name = models.CharField(_('Name'), max_length=255) is_board = models.BooleanField(_('Board member')) - # category = models.CharField(_('Category'), choices=CATEGORIES, default='others', max_length=255) def __str__(self): n = self.name.capitalize()