11import datetime
2+ import os
23import re
34
45from django import forms
78from django .utils .encoding import force_text
89from django .utils import six
910
11+ from ietf .doc .models import Document , DocAlias , DocEvent , State , NewRevisionDocEvent
1012from ietf .group .models import Group
1113from ietf .ietfauth .utils import has_role
1214from ietf .meeting .models import Session , countries , timezones
1315from ietf .meeting .helpers import assign_interim_session
1416from ietf .message .models import Message
17+ from ietf .secr .utils .meeting import get_upload_root
1518from ietf .utils .fields import DatepickerDateField
1619
1720# need to insert empty option for use in ChoiceField
@@ -189,7 +192,7 @@ def __init__(self, *args, **kwargs):
189192 super (InterimSessionForm , self ).__init__ (* args , ** kwargs )
190193 self .fields ['timezone' ].initial = 'UTC'
191194
192- def _save_agenda (self , text ):
195+ def _save_agenda (self , session ):
193196 pass
194197
195198 def save (self , request , group , meeting , is_approved ):
@@ -216,7 +219,26 @@ def save(self, request, group, meeting, is_approved):
216219 assign_interim_session (session ,time )
217220
218221 if agenda :
219- self ._save_agenda (agenda )
222+ # create objects
223+ filename = 'agenda-interim-%s-%s' % (group .acronym ,time .strftime ("%Y-%m-%d-%H%M" ))
224+ doc = Document .objects .create (type_id = 'agenda' ,group = group ,name = filename ,rev = '00' )
225+ doc .set_state (State .objects .get (type = doc .type ,slug = 'active' ))
226+ DocAlias .objects .create (name = doc .name , document = doc )
227+ session .sessionpresentation_set .create (document = doc ,rev = doc .rev )
228+ NewRevisionDocEvent .objects .create (type = 'new_revision' ,
229+ by = request .user .person ,
230+ doc = doc ,
231+ rev = doc .rev ,
232+ desc = 'New revision available' )
233+ # write file
234+ path = os .path .join (get_upload_root (meeting ),'agenda' ,doc .filename_with_rev ())
235+ directory = os .path .dirname (path )
236+ if not os .path .exists (directory ):
237+ os .makedirs (directory )
238+ with open (path , "w" ) as file :
239+ file .write (agenda )
240+
241+ return session
220242
221243class InterimAnnounceForm (forms .ModelForm ):
222244
0 commit comments