Skip to content
Snippets Groups Projects
Commit 52d0fc4f authored by Nadja Geisler's avatar Nadja Geisler :sunny:
Browse files

add event dependencies

associate AKTrack with an Event
associate AKCategory with an Event
restrict AK requirements to those associated with the same event
restrict AK categories to those associated with the same event
parent 170c17ef
No related branches found
No related tags found
No related merge requests found
# 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'),
),
]
......@@ -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')
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment