@@ -1456,12 +1456,19 @@ class UploadSlidesForm(FileUploadForm):
14561456 title = forms .CharField (max_length = 255 )
14571457 apply_to_all = forms .BooleanField (label = 'Apply to all group sessions at this meeting' ,initial = False ,required = False )
14581458
1459- def __init__ (self , show_apply_to_all_checkbox , * args , ** kwargs ):
1459+ def __init__ (self , session , show_apply_to_all_checkbox , * args , ** kwargs ):
1460+ self .session = session
14601461 kwargs ['doc_type' ] = 'slides'
14611462 super (UploadSlidesForm , self ).__init__ (* args , ** kwargs )
14621463 if not show_apply_to_all_checkbox :
14631464 self .fields .pop ('apply_to_all' )
14641465
1466+ def clean_title (self ):
1467+ title = self .cleaned_data ['title' ]
1468+ if self .session .meeting .type_id == 'interim' :
1469+ if re .search (r'-\d{2}$' , title ):
1470+ raise forms .ValidationError ("Interim slides currently may not have a title that ends with something that looks like a revision number (-nn)" )
1471+ return title
14651472
14661473def upload_session_slides (request , session_id , num , name ):
14671474 # num is redundant, but we're dragging it along an artifact of where we are in the current URL structure
@@ -1486,7 +1493,7 @@ def upload_session_slides(request, session_id, num, name):
14861493 slides_sp = session .sessionpresentation_set .filter (document = slides ).first ()
14871494
14881495 if request .method == 'POST' :
1489- form = UploadSlidesForm (show_apply_to_all_checkbox ,request .POST ,request .FILES )
1496+ form = UploadSlidesForm (session , show_apply_to_all_checkbox ,request .POST ,request .FILES )
14901497 if form .is_valid ():
14911498 file = request .FILES ['file' ]
14921499 _ , ext = os .path .splitext (file .name )
@@ -1551,7 +1558,7 @@ def upload_session_slides(request, session_id, num, name):
15511558 initial = {}
15521559 if slides :
15531560 initial = {'title' :slides .title }
1554- form = UploadSlidesForm (show_apply_to_all_checkbox , initial = initial )
1561+ form = UploadSlidesForm (session , show_apply_to_all_checkbox , initial = initial )
15551562
15561563 return render (request , "meeting/upload_session_slides.html" ,
15571564 {'session' : session ,
@@ -1573,7 +1580,7 @@ def propose_session_slides(request, session_id, num):
15731580
15741581
15751582 if request .method == 'POST' :
1576- form = UploadSlidesForm (show_apply_to_all_checkbox ,request .POST ,request .FILES )
1583+ form = UploadSlidesForm (session , show_apply_to_all_checkbox ,request .POST ,request .FILES )
15771584 if form .is_valid ():
15781585 file = request .FILES ['file' ]
15791586 _ , ext = os .path .splitext (file .name )
@@ -1615,7 +1622,7 @@ def propose_session_slides(request, session_id, num):
16151622 return redirect ('ietf.meeting.views.session_details' ,num = num ,acronym = session .group .acronym )
16161623 else :
16171624 initial = {}
1618- form = UploadSlidesForm (show_apply_to_all_checkbox , initial = initial )
1625+ form = UploadSlidesForm (session , show_apply_to_all_checkbox , initial = initial )
16191626
16201627 return render (request , "meeting/propose_session_slides.html" ,
16211628 {'session' : session ,
0 commit comments