diff --git a/AKModel/migrations/0024_event_dependencies.py b/AKModel/migrations/0024_event_dependencies.py new file mode 100644 index 0000000000000000000000000000000000000000..1fed7e230867fb0cd4345bf750db36a15580f4ae --- /dev/null +++ b/AKModel/migrations/0024_event_dependencies.py @@ -0,0 +1,61 @@ +# Generated by Django 2.2.6 on 2019-10-25 13:44 + +import django.db.models.deletion +from django.db import migrations, models + +from AKModel.models import AKCategory, Event, AKTrack + + +def migrate_data_forward(apps, schema_editor): + for instance in AKCategory.objects.all(): + if not instance.event: + instance.event = Event.objects.filter(active=True).last() + instance.save() + + for instance in AKTrack.objects.all(): + if not instance.event: + instance.event = Event.objects.filter(active=True).last() + instance.save() + + +class Migration(migrations.Migration): + dependencies = [ + ('AKModel', '0023_event_default_slot'), + ] + + operations = [ + migrations.AddField( + model_name='akcategory', + name='event', + field=models.ForeignKey(help_text='Associated event', null=True, + on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', + verbose_name='Event'), + ), + migrations.AddField( + model_name='aktrack', + name='event', + field=models.ForeignKey(help_text='Associated event', null=True, + on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', + verbose_name='Event'), + ), + + migrations.RunPython( + migrate_data_forward, + reverse_code=migrations.RunPython.noop, + ), + + migrations.AlterField( + model_name='akcategory', + name='event', + field=models.ForeignKey(help_text='Associated event', + on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', + verbose_name='Event'), + ), + migrations.AlterField( + model_name='aktrack', + name='event', + field=models.ForeignKey(help_text='Associated event', + on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', + verbose_name='Event'), + ), + ] diff --git a/AKModel/models.py b/AKModel/models.py index 285334794f74c89e2a8155803efe73b1dc2c571e..a78c35005320cf496bcc650f834397415745f54c 100644 --- a/AKModel/models.py +++ b/AKModel/models.py @@ -97,6 +97,9 @@ class AKCategory(models.Model): description = models.TextField(blank=True, verbose_name=_("Description"), help_text=_("Short description of this AK Category")) + event = models.ForeignKey(to=Event, null=True, on_delete=models.CASCADE, verbose_name=_('Event'), + help_text=_('Associated event')) + class Meta: verbose_name = _('AK Category') verbose_name_plural = _('AK Categories') @@ -112,6 +115,9 @@ class AKTrack(models.Model): name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'), help_text=_('Name of the AK Track')) color = models.CharField(max_length=7, blank=True, verbose_name=_('Color'), help_text=_('Color for displaying')) + event = models.ForeignKey(to=Event, null=True, on_delete=models.CASCADE, verbose_name=_('Event'), + help_text=_('Associated event')) + class Meta: verbose_name = _('AK Track') verbose_name_plural = _('AK Tracks') diff --git a/AKSubmission/forms.py b/AKSubmission/forms.py index bddf28578bb02ac0ce92768c07f2508d8b4d3650..fdb8f1943553b0d2a866f2207c3f464585ebc58c 100644 --- a/AKSubmission/forms.py +++ b/AKSubmission/forms.py @@ -4,7 +4,7 @@ from django import forms from django.core.exceptions import ValidationError from django.utils.translation import ugettext_lazy as _ -from AKModel.models import AK, AKOwner +from AKModel.models import AK, AKOwner, AKCategory, AKRequirement class AKForm(forms.ModelForm): @@ -48,6 +48,9 @@ class AKForm(forms.ModelForm): label=AK.tags.field.verbose_name, help_text=f"{AK.tags.field.help_text} ({help_tags_addition})") + self.fields['category'].queryset = AKCategory.objects.filter(event=self.initial.get('event')) + self.fields['requirements'].queryset = AKRequirement.objects.filter(event=self.initial.get('event')) + @staticmethod def _clean_duration(duration): # Handle different duration formats (h:mm and decimal comma instead of point)