Skip to content
Snippets Groups Projects
Commit 2fec1402 authored by Benjamin Hättasch's avatar Benjamin Hättasch
Browse files

Add event reference to AKOrgaMessage

Add a new mandatory event reference to the model
Add a migration that makes sure all existing messages are updated accordingly
Adapt the frontend view that sends the message to fill the event field
parent 26cc3f0f
No related branches found
No related tags found
No related merge requests found
# 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'),
),
]
...@@ -443,6 +443,8 @@ class AKOrgaMessage(models.Model): ...@@ -443,6 +443,8 @@ class AKOrgaMessage(models.Model):
text = models.TextField(verbose_name=_("Message text"), text = models.TextField(verbose_name=_("Message text"),
help_text=_("Message to the organizers. This is not publicly visible.")) help_text=_("Message to the organizers. This is not publicly visible."))
timestamp = models.DateTimeField(auto_now_add=True) 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: class Meta:
verbose_name = _('AK Orga Message') verbose_name = _('AK Orga Message')
......
...@@ -175,8 +175,9 @@ class AKDurationForm(forms.ModelForm): ...@@ -175,8 +175,9 @@ class AKDurationForm(forms.ModelForm):
class AKOrgaMessageForm(forms.ModelForm): class AKOrgaMessageForm(forms.ModelForm):
class Meta: class Meta:
model = AKOrgaMessage model = AKOrgaMessage
fields = ['ak', 'text'] fields = ['ak', 'text', 'event']
widgets = { widgets = {
'ak': forms.HiddenInput, 'ak': forms.HiddenInput,
'event': forms.HiddenInput,
'text': forms.Textarea, 'text': forms.Textarea,
} }
...@@ -437,6 +437,7 @@ class AKAddOrgaMessageView(EventSlugMixin, CreateView): ...@@ -437,6 +437,7 @@ class AKAddOrgaMessageView(EventSlugMixin, CreateView):
def get_initial(self): def get_initial(self):
initials = super(AKAddOrgaMessageView, self).get_initial() initials = super(AKAddOrgaMessageView, self).get_initial()
initials['ak'] = get_object_or_404(AK, pk=self.kwargs['pk']) initials['ak'] = get_object_or_404(AK, pk=self.kwargs['pk'])
initials['event'] = initials['ak'].event
return initials return initials
def get_context_data(self, *, object_list=None, **kwargs): def get_context_data(self, *, object_list=None, **kwargs):
......
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