diff --git a/AKModel/migrations/0050_message_event_reference.py b/AKModel/migrations/0050_message_event_reference.py new file mode 100644 index 0000000000000000000000000000000000000000..704d91a73e4a481b03fa729e77c71495029e3b91 --- /dev/null +++ b/AKModel/migrations/0050_message_event_reference.py @@ -0,0 +1,41 @@ +# Generated by Django 3.1.8 on 2022-05-12 16:57 + +from django.db import migrations, models +import django.db.models.deletion + + +def forwards_func(apps, schema_editor): + # Set event to the corresponding even (from the AK) each + AKOrgaMessage = apps.get_model("AKModel", "AKOrgaMessage") + for message in AKOrgaMessage.objects.all(): + message.event = message.ak.event + message.save() + + +def reverse_func(apps, schema_editor): + # No need to do something here, field will be deleted anyway + pass + + +class Migration(migrations.Migration): + + dependencies = [ + ('AKModel', '0049_interest_window'), + ] + + operations = [ + migrations.AddField( + model_name='akorgamessage', + name='event', + field=models.ForeignKey(blank=True, help_text='Associated event', null=True, + on_delete=django.db.models.deletion.CASCADE, to='AKModel.event', + verbose_name='Event'), + ), + migrations.RunPython(forwards_func, reverse_func), + migrations.AlterField( + model_name='akorgamessage', + 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 2767effb2817e1710ed967119b8dbe306d3fce5b..979f005f70ed48e2bd73daad4d21dbe2160b9aff 100644 --- a/AKModel/models.py +++ b/AKModel/models.py @@ -443,6 +443,8 @@ class AKOrgaMessage(models.Model): text = models.TextField(verbose_name=_("Message text"), help_text=_("Message to the organizers. This is not publicly visible.")) timestamp = models.DateTimeField(auto_now_add=True) + event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'), + help_text=_('Associated event')) class Meta: verbose_name = _('AK Orga Message') diff --git a/AKSubmission/forms.py b/AKSubmission/forms.py index b75f88038880a595581707df1f0c93861bee2ebc..41cebfca9567f82ec7d3537f9d49fd22e2096ac5 100644 --- a/AKSubmission/forms.py +++ b/AKSubmission/forms.py @@ -175,8 +175,9 @@ class AKDurationForm(forms.ModelForm): class AKOrgaMessageForm(forms.ModelForm): class Meta: model = AKOrgaMessage - fields = ['ak', 'text'] + fields = ['ak', 'text', 'event'] widgets = { 'ak': forms.HiddenInput, + 'event': forms.HiddenInput, 'text': forms.Textarea, } diff --git a/AKSubmission/views.py b/AKSubmission/views.py index 077005e2b591daa9230c175367672520064bb540..3f43854608835480385f3236d3bea276b03d67f2 100644 --- a/AKSubmission/views.py +++ b/AKSubmission/views.py @@ -437,6 +437,7 @@ class AKAddOrgaMessageView(EventSlugMixin, CreateView): def get_initial(self): initials = super(AKAddOrgaMessageView, self).get_initial() initials['ak'] = get_object_or_404(AK, pk=self.kwargs['pk']) + initials['event'] = initials['ak'].event return initials def get_context_data(self, *, object_list=None, **kwargs):