Add possibility to add custom states to an association.
This commit is contained in:
		
							parent
							
								
									0d6482792c
								
							
						
					
					
						commit
						5555992f06
					
				
					 6 changed files with 94 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue