From 2b1864f5a027541e4f6e644c98581e110289077c Mon Sep 17 00:00:00 2001
From: Jennifer Richards <jennifer@painless-security.com>
Date: Mon, 8 Nov 2021 16:35:23 +0000
Subject: [PATCH] Fix merge errors in preceding commits  - Legacy-Id: 19556

---
 ietf/meeting/forms.py                         | 26 +++++++++++++++++--
 .../migrations/0049_session_on_agenda.py      |  2 +-
 .../migrations/0049_session_purpose.py        |  5 ++--
 3 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/ietf/meeting/forms.py b/ietf/meeting/forms.py
index 68bd8f853..9305e7c0b 100644
--- a/ietf/meeting/forms.py
+++ b/ietf/meeting/forms.py
@@ -257,6 +257,7 @@ class InterimSessionModelForm(forms.ModelForm):
         session = super(InterimSessionModelForm, self).save(commit=False)
         session.group = self.group
         session.type_id = 'regular'
+        session.purpose_id = 'regular'
         if kwargs.get('commit', True) is True:
             super(InterimSessionModelForm, self).save(commit=True)
         return session
@@ -600,13 +601,34 @@ class SessionDetailsForm(forms.ModelForm):
 
     class Meta:
         model = Session
-        fields = ('name', 'short', 'purpose', 'type', 'requested_duration', 'remote_instructions')
+        fields = (
+            'name', 'short', 'purpose', 'type', 'requested_duration',
+            'on_agenda', 'remote_instructions', 'attendees', 'comments',
+        )
         labels = {'requested_duration': 'Length'}
 
+    def clean(self):
+        super().clean()
+        if 'purpose' in self.cleaned_data and (
+        'purpose' in self.changed_data or self.instance.pk is None
+        ):
+            self.cleaned_data['on_agenda'] = self.cleaned_data['purpose'].on_agenda
+
+        return self.cleaned_data
+
     class Media:
         js = ('ietf/js/meeting/session_details_form.js',)
 
 
+class SessionEditForm(SessionDetailsForm):
+    """Form to edit an existing session"""
+    def __init__(self, instance, *args, **kwargs):
+        kw_group = kwargs.pop('group', None)
+        if kw_group is not None and kw_group != instance.group:
+            raise ValueError('Session group does not match group keyword')
+        super().__init__(instance=instance, group=instance.group, *args, **kwargs)
+
+
 class SessionDetailsInlineFormset(forms.BaseInlineFormSet):
     def __init__(self, group, meeting, queryset=None, *args, **kwargs):
         self._meeting = meeting
@@ -654,4 +676,4 @@ def sessiondetailsformset_factory(min_num=1, max_num=3):
         min_num=min_num,
         max_num=max_num,
         extra=max_num,  # only creates up to max_num total
-    )
\ No newline at end of file
+    )
diff --git a/ietf/meeting/migrations/0049_session_on_agenda.py b/ietf/meeting/migrations/0049_session_on_agenda.py
index ee0376a9e..15f1885ae 100644
--- a/ietf/meeting/migrations/0049_session_on_agenda.py
+++ b/ietf/meeting/migrations/0049_session_on_agenda.py
@@ -6,7 +6,7 @@ from django.db import migrations, models
 class Migration(migrations.Migration):
 
     dependencies = [
-        ('meeting', '0048_session_purpose'),
+        ('meeting', '0049_session_purpose'),
     ]
 
     operations = [
diff --git a/ietf/meeting/migrations/0049_session_purpose.py b/ietf/meeting/migrations/0049_session_purpose.py
index be863905b..50e8305bf 100644
--- a/ietf/meeting/migrations/0049_session_purpose.py
+++ b/ietf/meeting/migrations/0049_session_purpose.py
@@ -8,7 +8,7 @@ import ietf.utils.models
 class Migration(migrations.Migration):
 
     dependencies = [
-        ('name', '0036_populate_sessionpurposename'),
+        ('name', '0035_populate_sessionpurposename'),
         ('meeting', '0048_auto_20211008_0907'),
     ]
 
@@ -16,6 +16,7 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='session',
             name='purpose',
-            field=ietf.utils.models.ForeignKey(help_text='Purpose of the session', null=True, on_delete=django.db.models.deletion.CASCADE, to='name.SessionPurposeName'),
+            field=ietf.utils.models.ForeignKey(default='none', help_text='Purpose of the session', on_delete=django.db.models.deletion.CASCADE, to='name.SessionPurposeName'),
+            preserve_default=False,
         ),
     ]