Skip to content

Commit c8f3760

Browse files
committed
refactor code dealing with interim materials path
- Legacy-Id: 11229
1 parent 81fe596 commit c8f3760

11 files changed

Lines changed: 25 additions & 48 deletions

File tree

ietf/doc/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def href(self):
120120

121121
meeting = None
122122
if meeting_related:
123-
meeting = self.name.split("-")[1]
123+
meeting = self.session_set.first().meeting
124124

125125
return format.format(doc=self,meeting=meeting)
126126

ietf/meeting/forms.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
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
20-
from ietf.secr.utils.meeting import get_upload_root
2120
from ietf.utils.fields import DatepickerDateField
2221

2322
# need to insert empty option for use in ChoiceField
@@ -288,7 +287,8 @@ def save_agenda(self):
288287
type_id='agenda',
289288
group=self.group,
290289
name=filename,
291-
rev='00')
290+
rev='00',
291+
external_url='{}-00.txt'.format(filename))
292292
doc.set_state(State.objects.get(type=doc.type, slug='active'))
293293
DocAlias.objects.create(name=doc.name, document=doc)
294294
self.instance.sessionpresentation_set.create(document=doc, rev=doc.rev)
@@ -299,7 +299,7 @@ def save_agenda(self):
299299
rev=doc.rev,
300300
desc='New revision available')
301301
# write file
302-
path = os.path.join(get_upload_root(self.instance.meeting), 'agenda', doc.filename_with_rev())
302+
path = os.path.join(self.instance.meeting.get_materials_path(), 'agenda', doc.filename_with_rev())
303303
directory = os.path.dirname(path)
304304
if not os.path.exists(directory):
305305
os.makedirs(directory)

ietf/meeting/models.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,7 @@ def get_ietf_monday(cls):
142142
return date + datetime.timedelta(days=-date.weekday(), weeks=1)
143143

144144
def get_materials_path(self):
145-
path = ''
146-
if self.type_id == 'ietf':
147-
path = os.path.join(settings.AGENDA_PATH,self.number)
148-
elif self.type_id == 'interim':
149-
path = os.path.join(settings.AGENDA_PATH,
150-
'interim',
151-
self.date.strftime('%Y'),
152-
self.date.strftime('%m'),
153-
self.date.strftime('%d'),
154-
self.session_set.all()[0].group.acronym)
155-
return path
145+
return os.path.join(settings.AGENDA_PATH,self.number)
156146

157147
# the various dates are currently computed
158148
def get_submission_start_date(self):

ietf/meeting/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1092,7 +1092,8 @@ def interim_request_cancel(request, number):
10921092
form = InterimCancelForm(initial={'group': group.acronym, 'date': meeting.date})
10931093

10941094
return render(request, "meeting/interim_request_cancel.html", {
1095-
"form": form})
1095+
"form": form,
1096+
"meeting": meeting})
10961097

10971098

10981099
@role_required('Area Director', 'Secretariat', 'IRTF Chair', 'WG Chair',

ietf/secr/proceedings/models.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from django.db import models
55

66
from ietf.meeting.models import Meeting
7-
from ietf.secr.utils.meeting import get_upload_root
87

98

109
class InterimManager(models.Manager):
@@ -43,8 +42,7 @@ def minutes(self):
4342
return None
4443

4544
def get_proceedings_path(self, group=None):
46-
path = os.path.join(get_upload_root(self),'proceedings.html')
47-
return path
45+
return os.path.join(self.get_materials_path(),'proceedings.html')
4846

4947
def get_proceedings_url(self, group=None):
5048
'''

ietf/secr/proceedings/proc_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from ietf.secr.proceedings.models import Registration
2424
from ietf.secr.utils.document import get_rfc_num
2525
from ietf.secr.utils.group import groups_by_session
26-
from ietf.secr.utils.meeting import get_upload_root, get_proceedings_path, get_materials, get_session
26+
from ietf.secr.utils.meeting import get_proceedings_path, get_materials, get_session
2727

2828

2929
# -------------------------------------------------
@@ -264,7 +264,7 @@ def create_proceedings(meeting, group, is_final=False):
264264

265265
docs = Document.objects.filter(group=group,type='draft').order_by('time')
266266

267-
meeting_root = get_upload_root(meeting)
267+
meeting_root = meeting.get_materials_path()
268268
if meeting.type.slug == 'ietf':
269269
url_root = "%sproceedings/%s/" % (settings.MEDIA_URL,meeting.number)
270270
else:

ietf/secr/proceedings/views.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from ietf.secr.utils.decorators import check_permissions, sec_only
2323
from ietf.secr.utils.document import get_full_path
2424
from ietf.secr.utils.group import get_my_groups, groups_by_session
25-
from ietf.secr.utils.meeting import get_upload_root, get_materials, get_timeslot, get_proceedings_path, get_proceedings_url
25+
from ietf.secr.utils.meeting import get_materials, get_timeslot, get_proceedings_path, get_proceedings_url
2626
from ietf.doc.models import Document, DocAlias, DocEvent, State, NewRevisionDocEvent
2727
from ietf.group.models import Group
2828
from ietf.ietfauth.utils import has_role, role_required
@@ -68,9 +68,9 @@ def get_doc_filename(doc):
6868
session = doc.session_set.all()[0]
6969
meeting = session.meeting
7070
if doc.external_url:
71-
return os.path.join(get_upload_root(meeting),doc.type.slug,doc.external_url)
71+
return os.path.join(meeting.get_materials_path(),doc.type.slug,doc.external_url)
7272
else:
73-
path = os.path.join(get_upload_root(meeting),doc.type.slug,doc.name)
73+
path = os.path.join(meeting.get_materials_path(),doc.type.slug,doc.name)
7474
files = glob.glob(path + '.*')
7575
# TODO we might want to choose from among multiple files using some logic
7676
return files[0]
@@ -156,18 +156,18 @@ def get_next_order_num(session):
156156
def handle_upload_file(file,filename,meeting,subdir):
157157
'''
158158
This function takes a file object, a filename and a meeting object and subdir as string.
159-
It saves the file to the appropriate directory, get_upload_root() + subdir.
159+
It saves the file to the appropriate directory, get_materials_path() + subdir.
160160
If the file is a zip file, it creates a new directory in 'slides', which is the basename of the
161161
zip file and unzips the file in the new directory.
162162
'''
163163
base, extension = os.path.splitext(filename)
164164

165165
if extension == '.zip':
166-
path = os.path.join(get_upload_root(meeting),subdir,base)
166+
path = os.path.join(meeting.get_materials_path(),subdir,base)
167167
if not os.path.exists(path):
168168
os.mkdir(path)
169169
else:
170-
path = os.path.join(get_upload_root(meeting),subdir)
170+
path = os.path.join(meeting.get_materials_path(),subdir)
171171
if not os.path.exists(path):
172172
os.makedirs(path)
173173

@@ -191,7 +191,7 @@ def make_directories(meeting):
191191
'''
192192
This function takes a meeting object and creates the appropriate materials directories
193193
'''
194-
path = get_upload_root(meeting)
194+
path = meeting.get_materials_path()
195195
os.umask(0)
196196
for leaf in ('slides','agenda','minutes','id','rfc','bluesheets'):
197197
target = os.path.join(path,leaf)
@@ -401,7 +401,7 @@ def delete_interim_meeting(request, meeting_num):
401401
group = sessions[0].group
402402

403403
# delete directories
404-
path = get_upload_root(meeting)
404+
path = meeting.get_materials_path()
405405

406406
# do a quick sanity check on this path before we go and delete it
407407
parts = path.split('/')

ietf/secr/utils/meeting.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ def get_materials(group,meeting):
2626

2727
def get_proceedings_path(meeting,group):
2828
if meeting.type_id == 'ietf':
29-
path = os.path.join(get_upload_root(meeting),group.acronym + '.html')
29+
path = os.path.join(meeting.get_materials_path(),group.acronym + '.html')
3030
elif meeting.type_id == 'interim':
31-
path = os.path.join(get_upload_root(meeting),'proceedings.html')
31+
path = os.path.join(meeting.get_materials.path(),'proceedings.html')
3232
return path
3333

3434
def get_proceedings_url(meeting,group=None):
@@ -72,15 +72,3 @@ def get_timeslot(session, schedule=None):
7272
else:
7373
return None
7474

75-
def get_upload_root(meeting):
76-
path = ''
77-
if meeting.type.slug == 'ietf':
78-
path = os.path.join(settings.AGENDA_PATH,meeting.number)
79-
elif meeting.type.slug == 'interim':
80-
path = os.path.join(settings.AGENDA_PATH,
81-
'interim',
82-
meeting.date.strftime('%Y'),
83-
meeting.date.strftime('%m'),
84-
meeting.date.strftime('%d'),
85-
meeting.session_set.all()[0].group.acronym)
86-
return path

ietf/settings.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -414,9 +414,9 @@ def skip_unreadable_post(record):
414414
}
415415

416416
MEETING_DOC_HREFS = {
417-
"agenda": "/meeting/{meeting}/agenda/{doc.group.acronym}/",
418-
"minutes": "https://www.ietf.org/proceedings/{meeting}/minutes/{doc.external_url}",
419-
"slides": "https://www.ietf.org/proceedings/{meeting}/slides/{doc.external_url}",
417+
"agenda": "/meeting/{meeting.number}/agenda/{doc.group.acronym}/",
418+
"minutes": "https://www.ietf.org/proceedings/{meeting.number}/minutes/{doc.external_url}",
419+
"slides": "https://www.ietf.org/proceedings/{meeting.number}/slides/{doc.external_url}",
420420
"recording": "{doc.external_url}",
421421
}
422422

ietf/templates/meeting/interim_request_cancel.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ <h1>Cancel Interim Meeting {% if meeting.session_set.first.status.slug != "sched
2323
<div class="form-group"
2424
{% buttons %}
2525
<button type="submit" class="btn btn-primary">Submit</button>
26-
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upcoming' %}">Back</a>
26+
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.interim_request_details' number=meeting.number %}">Back</a>
2727
{% endbuttons %}
2828
</div>
2929

0 commit comments

Comments
 (0)