Skip to content

Commit 1e50d5d

Browse files
committed
Merged in [11434] from rcross@amsl.com:
Remove legacy secretariat code for adding interim meetings in favor of new ietf.meeting interim features. - Legacy-Id: 11437 Note: SVN reference [11434] has been migrated to Git commit 98afcae
1 parent e6a005d commit 1e50d5d

10 files changed

Lines changed: 23 additions & 253 deletions

File tree

ietf/meeting/forms.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from ietf.group.models import Group
1414
from ietf.ietfauth.utils import has_role
1515
from ietf.meeting.models import Session, Meeting, Schedule, countries, timezones
16-
from ietf.meeting.helpers import get_next_interim_number
16+
from ietf.meeting.helpers import get_next_interim_number, make_directories
1717
from ietf.meeting.helpers import is_meeting_approved, get_next_agenda_name
1818
from ietf.message.models import Message
1919
from ietf.person.models import Person
@@ -215,6 +215,9 @@ def save(self, *args, **kwargs):
215215
meeting=meeting,
216216
owner=Person.objects.get(name='(System)'))
217217
meeting.save() # save with agenda
218+
219+
# create directories
220+
make_directories(meeting)
218221

219222
return meeting
220223

ietf/meeting/helpers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,18 @@ def get_next_agenda_name(meeting):
517517
sequence=str(last_sequence + 1).zfill(2))
518518

519519

520+
def make_directories(meeting):
521+
'''
522+
This function takes a meeting object and creates the appropriate materials directories
523+
'''
524+
path = meeting.get_materials_path()
525+
os.umask(0)
526+
for leaf in ('slides','agenda','minutes','id','rfc','bluesheets'):
527+
target = os.path.join(path,leaf)
528+
if not os.path.exists(target):
529+
os.makedirs(target)
530+
531+
520532
def send_interim_approval_request(meetings):
521533
"""Sends an email to the secretariat, group chairs, and resposnible area
522534
director or the IRTF chair noting that approval has been requested for a

ietf/secr/meetings/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616

1717
from ietf.ietfauth.utils import role_required
1818
from ietf.utils.mail import send_mail
19-
from ietf.meeting.helpers import get_meeting
19+
from ietf.meeting.helpers import get_meeting, make_directories
2020
from ietf.meeting.models import Meeting, Session, Room, TimeSlot, SchedTimeSessAssignment, Schedule
2121
from ietf.group.models import Group, GroupEvent
2222
from ietf.person.models import Person
2323
from ietf.secr.meetings.blue_sheets import create_blue_sheets
2424
from ietf.secr.meetings.forms import ( BaseMeetingRoomFormSet, MeetingModelForm,
2525
MeetingRoomForm, NewSessionForm, NonSessionEditForm, NonSessionForm, TimeSlotForm,
2626
UploadBlueSheetForm, get_next_slot )
27-
from ietf.secr.proceedings.views import build_choices, handle_upload_file, make_directories
27+
from ietf.secr.proceedings.views import build_choices, handle_upload_file
2828
from ietf.secr.sreq.forms import GroupSelectForm
2929
from ietf.secr.sreq.views import get_initial_session
3030
from ietf.secr.utils.meeting import get_session, get_timeslot

ietf/secr/proceedings/forms.py

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from ietf.doc.models import Document
88
from ietf.name.models import DocTypeName
9-
from ietf.meeting.models import Meeting, Session
9+
from ietf.meeting.models import Session
1010

1111

1212
# ---------------------------------------------
@@ -27,21 +27,6 @@ class Meta:
2727
model = Document
2828
fields = ('title',)
2929

30-
class InterimMeetingForm(forms.Form):
31-
date = forms.DateField(help_text="(YYYY-MM-DD Format, please)")
32-
group_acronym_id = forms.CharField(widget=forms.HiddenInput())
33-
34-
def clean(self):
35-
super(InterimMeetingForm, self).clean()
36-
cleaned_data = self.cleaned_data
37-
# need to use get() here, if the date field isn't valid it won't exist
38-
date = cleaned_data.get('date','')
39-
group_acronym_id = cleaned_data["group_acronym_id"]
40-
qs = Meeting.objects.filter(type='interim',date=date,session__group__acronym=group_acronym_id)
41-
if qs:
42-
raise forms.ValidationError('A meeting already exists for this date.')
43-
return cleaned_data
44-
4530
class RecordingForm(forms.Form):
4631
external_url = forms.URLField(label='Url')
4732
session = forms.ModelChoiceField(queryset=Session.objects,empty_label='')

ietf/secr/proceedings/urls.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,4 @@
2222
'upload_unified', name='proceedings_upload_unified'),
2323
url(r'^(?P<meeting_num>\d{1,3}|interim-\d{4}-[A-Za-z0-9_\-\+]+)/(?P<acronym>[A-Za-z0-9_\-\+]+)/$',
2424
'upload_unified', name='proceedings_upload_unified'),
25-
# interim stuff
26-
url(r'^interim/$', 'select_interim', name='proceedings_select_interim'),
27-
url(r'^interim/(?P<meeting_num>interim-\d{4}-[A-Za-z0-9_\-\+]+)/delete/$', 'delete_interim_meeting',
28-
name='proceedings_delete_interim_meeting'),
29-
url(r'^interim/(?P<acronym>[A-Za-z0-9_\-\+]+)/$', 'interim', name='proceedings_interim'),
3025
)

ietf/secr/proceedings/views.py

Lines changed: 3 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import glob
33
import itertools
44
import os
5-
import shutil
65
import subprocess
76

87
import debug # pyflakes:ignore
@@ -27,12 +26,11 @@
2726
from ietf.group.models import Group
2827
from ietf.ietfauth.utils import has_role, role_required
2928
from ietf.meeting.models import Meeting, Session, TimeSlot, SchedTimeSessAssignment
30-
from ietf.meeting.helpers import get_next_interim_number
31-
from ietf.secr.proceedings.forms import EditSlideForm, InterimMeetingForm, RecordingForm, RecordingEditForm, ReplaceSlideForm, UnifiedUploadForm
29+
30+
from ietf.secr.proceedings.forms import EditSlideForm, RecordingForm, RecordingEditForm, ReplaceSlideForm, UnifiedUploadForm
3231
from ietf.secr.proceedings.proc_utils import ( gen_acknowledgement, gen_agenda, gen_areas,
3332
gen_attendees, gen_group_pages, gen_index, gen_irtf, gen_overview, gen_plenaries,
34-
gen_progress, gen_research, gen_training, create_proceedings, create_interim_directory,
35-
create_recording )
33+
gen_progress, gen_research, gen_training, create_proceedings, create_recording )
3634
from ietf.utils.log import log
3735

3836
# -------------------------------------------------
@@ -174,17 +172,6 @@ def handle_upload_file(file,filename,meeting,subdir):
174172
os.chdir(path)
175173
os.system('unzip %s' % filename)
176174

177-
def make_directories(meeting):
178-
'''
179-
This function takes a meeting object and creates the appropriate materials directories
180-
'''
181-
path = meeting.get_materials_path()
182-
os.umask(0)
183-
for leaf in ('slides','agenda','minutes','id','rfc','bluesheets'):
184-
target = os.path.join(path,leaf)
185-
if not os.path.exists(target):
186-
os.makedirs(target)
187-
188175
def parsedate(d):
189176
'''
190177
This function takes a date object and returns a tuple of year,month,day
@@ -349,33 +336,6 @@ def delete_material(request,slide_id):
349336

350337
return HttpResponseRedirect(url)
351338

352-
@role_required('Secretariat')
353-
def delete_interim_meeting(request, meeting_num):
354-
'''
355-
This view deletes the specified Interim Meeting and any material that has been
356-
uploaded for it. The pattern in urls.py ensures we don't call this with a regular
357-
meeting number.
358-
'''
359-
meeting = get_object_or_404(Meeting, number=meeting_num)
360-
sessions = Session.objects.filter(meeting=meeting)
361-
group = sessions[0].group
362-
363-
# delete directories
364-
path = meeting.get_materials_path()
365-
366-
# do a quick sanity check on this path before we go and delete it
367-
parts = path.split('/')
368-
assert parts[-1] == group.acronym
369-
370-
if os.path.exists(path):
371-
shutil.rmtree(path)
372-
373-
meeting.delete()
374-
sessions.delete()
375-
376-
url = reverse('proceedings_interim', kwargs={'acronym':group.acronym})
377-
return HttpResponseRedirect(url)
378-
379339
@check_permissions
380340
def edit_slide(request, slide_id):
381341
'''
@@ -415,55 +375,6 @@ def edit_slide(request, slide_id):
415375
RequestContext(request, {}),
416376
)
417377

418-
@role_required(*AUTHORIZED_ROLES)
419-
def interim(request, acronym):
420-
'''
421-
This view presents the user with a list of interim meetings for the specified group.
422-
The user can select a meeting to manage or create a new interim meeting by entering
423-
a date.
424-
'''
425-
group = get_object_or_404(Group, acronym=acronym)
426-
if request.method == 'POST': # If the form has been submitted...
427-
button_text = request.POST.get('submit', '')
428-
if button_text == 'Back':
429-
url = reverse('proceedings_select_interim')
430-
return HttpResponseRedirect(url)
431-
432-
form = InterimMeetingForm(request.POST) # A form bound to the POST data
433-
if form.is_valid():
434-
date = form.cleaned_data['date']
435-
number = get_next_interim_number(acronym,date)
436-
meeting=Meeting.objects.create(type_id='interim',
437-
date=date,
438-
number=number)
439-
440-
# create session to associate this meeting with a group and hold material
441-
Session.objects.create(meeting=meeting,
442-
group=group,
443-
requested_by=request.user.person,
444-
status_id='sched',
445-
type_id='session',
446-
)
447-
448-
create_interim_directory()
449-
make_directories(meeting)
450-
451-
messages.success(request, 'Meeting created')
452-
url = reverse('proceedings_interim', kwargs={'acronym':acronym})
453-
return HttpResponseRedirect(url)
454-
else:
455-
form = InterimMeetingForm(initial={'group_acronym_id':acronym}) # An unbound form
456-
457-
meetings = Meeting.objects.filter(type='interim',session__group__acronym=acronym).order_by('date')
458-
459-
return render_to_response('proceedings/interim_meeting.html',{
460-
'group': group,
461-
'meetings':meetings,
462-
'form':form},
463-
RequestContext(request, {}),
464-
)
465-
466-
467378
@role_required(*AUTHORIZED_ROLES)
468379
def main(request):
469380
'''
@@ -797,38 +708,6 @@ def select(request, meeting_num):
797708
RequestContext(request,{}),
798709
)
799710

800-
@role_required(*AUTHORIZED_ROLES)
801-
def select_interim(request):
802-
'''
803-
A screen to select which group you want to upload Interim material for. Works for Secretariat staff
804-
and external (ADs, chairs, etc)
805-
'''
806-
if request.method == 'POST':
807-
redirect_url = reverse('proceedings_interim', kwargs={'acronym':request.POST['group']})
808-
return HttpResponseRedirect(redirect_url)
809-
810-
if has_role(request.user, "Secretariat"):
811-
# initialize working groups form
812-
choices = build_choices(Group.objects.active_wgs())
813-
group_form = GroupSelectForm(choices=choices)
814-
815-
# per Alexa, not supporting Interim IRTF meetings at this time
816-
# intialize IRTF form
817-
#choices = build_choices(Group.objects.filter(type='wg', state='active')
818-
#irtf_form = GroupSelectForm(choices=choices)
819-
820-
else:
821-
# these forms aren't used for non-secretariat
822-
groups = get_my_groups(request.user)
823-
choices = build_choices(groups)
824-
group_form = GroupSelectForm(choices=choices)
825-
826-
return render_to_response('proceedings/interim_select.html', {
827-
'group_form': group_form},
828-
#'irtf_form': irtf_form,
829-
RequestContext(request,{}),
830-
)
831-
832711
@check_permissions
833712
def upload_unified(request, meeting_num, acronym=None, session_id=None):
834713
'''

ietf/secr/templates/proceedings/interim_meeting.html

Lines changed: 0 additions & 48 deletions
This file was deleted.

ietf/secr/templates/proceedings/interim_select.html

Lines changed: 0 additions & 54 deletions
This file was deleted.

ietf/secr/templates/proceedings/main.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ <h2>Proceedings</h2>
6161
</div> <!-- scroll -->
6262
<div class="button-group">
6363
<ul id="proceedings-interim-buttons">
64-
<li><button onclick="window.location='{% url "proceedings_select_interim" %}'">Create Interim Meeting</button></li>
64+
<li><button onclick="window.location='{% url "ietf.meeting.views.interim_request" %}'">Request Interim Meeting</button></li>
6565
</ul>
6666
</div> <!-- button-group -->
6767
</div>

ietf/secr/templates/proceedings/upload_unified.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
{% if meeting.type_id == "interim" %}
1818
&raquo; <a href="{% url "proceedings" %}">Proceedings</a>
19-
&raquo; <a href="{% url "proceedings_select_interim" %}">Interim Select Group</a>
20-
&raquo; <a href="{% url "proceedings_interim" acronym=group.acronym%}">{{ group.acronym }}</a>
2119
&raquo; {{ meeting }}
2220
{% else %}
2321
&raquo; <a href="{% url "proceedings" %}">Proceedings</a>

0 commit comments

Comments
 (0)