Add possibility to add custom states to an association.
This commit is contained in:
parent
0d6482792c
commit
5555992f06
|
@ -3,3 +3,4 @@ from dronken.models import *
|
|||
|
||||
admin.site.register(City)
|
||||
admin.site.register(Association)
|
||||
admin.site.register(ExtraState)
|
||||
|
|
26
dronken/migrations/0005_auto_20180913_1129.py
Normal file
26
dronken/migrations/0005_auto_20180913_1129.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Generated by Django 2.0 on 2018-09-13 11:29
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('dronken', '0004_auto_20180306_1341'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ExtraState',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255)),
|
||||
('value', models.CharField(max_length=255)),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='association',
|
||||
name='extra_states',
|
||||
field=models.ManyToManyField(to='dronken.ExtraState'),
|
||||
),
|
||||
]
|
18
dronken/migrations/0006_auto_20180913_1135.py
Normal file
18
dronken/migrations/0006_auto_20180913_1135.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.0 on 2018-09-13 11:35
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('dronken', '0005_auto_20180913_1129'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='association',
|
||||
name='state',
|
||||
field=models.CharField(max_length=255),
|
||||
),
|
||||
]
|
18
dronken/migrations/0007_auto_20180913_1141.py
Normal file
18
dronken/migrations/0007_auto_20180913_1141.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.0 on 2018-09-13 11:41
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('dronken', '0006_auto_20180913_1135'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='association',
|
||||
name='extra_states',
|
||||
field=models.ManyToManyField(blank=True, null=True, to='dronken.ExtraState'),
|
||||
),
|
||||
]
|
|
@ -21,10 +21,28 @@ class Association(models.Model):
|
|||
short_name = models.CharField(max_length=255)
|
||||
slug = models.CharField(max_length=255)
|
||||
intern = models.CharField(max_length=255, blank=True, null=True)
|
||||
state = models.CharField(choices=STATES, max_length=255)
|
||||
state = models.CharField(max_length=255)
|
||||
city = models.ForeignKey(to=City, on_delete=models.SET_NULL, blank=True, null=True)
|
||||
has_intern = models.BooleanField()
|
||||
enabled = models.BooleanField()
|
||||
extra_states = models.ManyToManyField(to='ExtraState', blank=True, null=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def get_state_display(self):
|
||||
values = dict(list(Association.STATES))
|
||||
values.update(dict([(x.value, x.name) for x in self.extra_states.all()]))
|
||||
|
||||
try:
|
||||
return values[self.state]
|
||||
except KeyError:
|
||||
return "Onbekend"
|
||||
|
||||
|
||||
class ExtraState(models.Model):
|
||||
name = models.CharField(max_length=255)
|
||||
value = models.CharField(max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
|
|
@ -2,7 +2,7 @@ from django import forms
|
|||
from django.urls import reverse_lazy
|
||||
from django.views.generic import ListView, UpdateView
|
||||
|
||||
from dronken.models import City, Association
|
||||
from dronken.models import City, Association, ExtraState
|
||||
|
||||
|
||||
class CityList(ListView):
|
||||
|
@ -36,6 +36,17 @@ class DrunkUpdateForm(forms.ModelForm):
|
|||
model = Association
|
||||
fields = ['state']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(DrunkUpdateForm, self).__init__(*args, **kwargs)
|
||||
|
||||
self.fields['state'] = forms.ChoiceField(
|
||||
choices=list(Association.STATES) + [(o.value, o.name) for o in self.instance.extra_states.all()]
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
print(self.instance.state)
|
||||
return super(DrunkUpdateForm, self).clean()
|
||||
|
||||
|
||||
class AssociationDetail(UpdateView):
|
||||
template_name = 'association.html'
|
||||
|
|
Loading…
Reference in a new issue