From cd8cf00c52dfa65a99f326f5e3924734770b4b32 Mon Sep 17 00:00:00 2001
From: Ryan Cross <rcross@amsl.com>
Date: Thu, 8 Jan 2015 21:42:32 +0000
Subject: [PATCH] fixes ability to replace minutes and agendas.  Commit ready
 for merge.  - Legacy-Id: 8852

---
 ietf/secr/proceedings/views.py | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/ietf/secr/proceedings/views.py b/ietf/secr/proceedings/views.py
index 1803507e9..768d9a969 100644
--- a/ietf/secr/proceedings/views.py
+++ b/ietf/secr/proceedings/views.py
@@ -25,7 +25,7 @@ from ietf.secr.utils.meeting import get_upload_root, get_materials, get_timeslot
 from ietf.doc.models import Document, DocAlias, DocEvent, State, NewRevisionDocEvent
 from ietf.group.models import Group
 from ietf.ietfauth.utils import has_role, role_required
-from ietf.meeting.models import Meeting, Session, TimeSlot, ScheduledSession, SessionPresentation
+from ietf.meeting.models import Meeting, Session, TimeSlot, ScheduledSession
 from ietf.secr.proceedings.forms import EditSlideForm, InterimMeetingForm, RecordingForm, RecordingEditForm, ReplaceSlideForm, UnifiedUploadForm
 from ietf.secr.proceedings.proc_utils import ( gen_acknowledgement, gen_agenda, gen_areas, gen_attendees,
     gen_group_pages, gen_index, gen_irtf, gen_overview, gen_plenaries, gen_progress, gen_research,
@@ -877,8 +877,8 @@ def upload_unified(request, meeting_num, acronym=None, session_id=None):
         session = sessions[0]
         session_name = ''
     elif session_id:
-        sessions = None
         session = get_object_or_404(Session, id=int(session_id))
+        sessions = [session]
         group = session.group
         session_name = session.name
 
@@ -945,11 +945,13 @@ def upload_unified(request, meeting_num, acronym=None, session_id=None):
 
             # create session relationship, per Henrik we should associate documents to all sessions
             # for the current meeting (until tools support different materials for diff sessions)
-            if sessions:
-                for s in sessions:
-                    s.sessionpresentation_set.add(SessionPresentation(session=s,document=doc,rev=doc.rev))
-            else:
-                session.sessionpresentation_set.add(SessionPresentation(session=session,document=doc,rev=doc.rev))
+            for s in sessions:
+                try:
+                    sp = s.sessionpresentation_set.get(document=doc)
+                    sp.rev = doc.rev
+                    sp.save()
+                except ObjectDoesNotExist:
+                    s.sessionpresentation_set.create(document=doc,rev=doc.rev)
 
             # create NewRevisionDocEvent instead of uploaded, per Ole
             NewRevisionDocEvent.objects.create(type='new_revision',