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()