Skip to content

Commit ef8da52

Browse files
committed
Refactored the code to not use two different functions to get_next_interim_numbers.
- Legacy-Id: 11425
1 parent f083e88 commit ef8da52

3 files changed

Lines changed: 15 additions & 33 deletions

File tree

ietf/meeting/forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ def save(self, *args, **kwargs):
205205
if not meeting.type_id:
206206
meeting.type_id = 'interim'
207207
if not meeting.number:
208-
meeting.number = get_next_interim_number(group, date)
208+
meeting.number = get_next_interim_number(group.acronym, date)
209209
meeting.date = date
210210
if kwargs.get('commit', True):
211211
# create schedule with meeting

ietf/meeting/helpers.py

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ def create_interim_meeting(group, date, city='', country='', timezone='UTC',
385385
"""Helper function to create interim meeting and associated schedule"""
386386
if not person:
387387
person = Person.objects.get(name='(System)')
388-
number = get_next_interim_number(group, date)
388+
number = get_next_interim_number(group.acronym, date)
389389
meeting = Meeting.objects.create(
390390
number=number,
391391
type_id='interim',
@@ -488,24 +488,19 @@ def is_meeting_approved(meeting):
488488
else:
489489
return True
490490

491-
492-
def get_next_interim_number(group, date):
493-
"""Returns a unique string to use for the next interim meeting for
494-
*group*, used for Meeting.number field."""
495-
meetings = Meeting.objects.filter(
496-
number__startswith='interim-{year}-{group}'.format(
497-
year=date.year,
498-
group=group.acronym))
491+
def get_next_interim_number(acronym,date):
492+
'''
493+
This function takes a group acronym and date object and returns the next number
494+
to use for an interim meeting. The format is interim-[year]-[acronym]-[01-99]
495+
'''
496+
base = 'interim-%s-%s-' % (date.year, acronym)
497+
# can't use count() to calculate the next number in case one was deleted
498+
meetings = Meeting.objects.filter(type='interim', number__startswith=base)
499499
if meetings:
500-
sequences = [int(m.number.split('-')[-1]) for m in meetings]
501-
last_sequence = sorted(sequences)[-1]
500+
serial = sorted([ int(x.number.split('-')[-1]) for x in meetings ])[-1]
502501
else:
503-
last_sequence = 0
504-
return 'interim-{year}-{group}-{sequence}'.format(
505-
year=date.year,
506-
group=group.acronym,
507-
sequence=str(last_sequence + 1).zfill(2))
508-
502+
serial = 0
503+
return "%s%02d" % (base, serial+1)
509504

510505
def get_next_agenda_name(meeting):
511506
"""Returns the next name to use for an agenda document for *meeting*"""

ietf/secr/proceedings/views.py

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from ietf.group.models import Group
2828
from ietf.ietfauth.utils import has_role, role_required
2929
from ietf.meeting.models import Meeting, Session, TimeSlot, SchedTimeSessAssignment
30+
from ietf.meeting.helpers import get_next_interim_number
3031
from ietf.secr.proceedings.forms import EditSlideForm, InterimMeetingForm, RecordingForm, RecordingEditForm, ReplaceSlideForm, UnifiedUploadForm
3132
from ietf.secr.proceedings.proc_utils import ( gen_acknowledgement, gen_agenda, gen_areas,
3233
gen_attendees, gen_group_pages, gen_index, gen_irtf, gen_overview, gen_plenaries,
@@ -102,20 +103,6 @@ def get_extras(meeting):
102103
groups.append(session.group)
103104
return groups
104105

105-
def get_next_interim_num(acronym,date):
106-
'''
107-
This function takes a group acronym and date object and returns the next number to use for an
108-
interim meeting. The format is interim-[year]-[acronym]-[1-99]
109-
'''
110-
base = 'interim-%s-%s-' % (date.year, acronym)
111-
# can't use count() to calculate the next number in case one was deleted
112-
meetings = Meeting.objects.filter(type='interim',number__startswith=base)
113-
if meetings:
114-
nums = sorted([ int(x.number.split('-')[-1]) for x in meetings ])
115-
return base + str(nums[-1] + 1)
116-
else:
117-
return base + '1'
118-
119106
def get_next_slide_num(session):
120107
'''
121108
This function takes a session object and returns the
@@ -445,7 +432,7 @@ def interim(request, acronym):
445432
form = InterimMeetingForm(request.POST) # A form bound to the POST data
446433
if form.is_valid():
447434
date = form.cleaned_data['date']
448-
number = get_next_interim_num(acronym,date)
435+
number = get_next_interim_number(acronym,date)
449436
meeting=Meeting.objects.create(type_id='interim',
450437
date=date,
451438
number=number)

0 commit comments

Comments
 (0)