refactor code dealing with interim materials path
- Legacy-Id: 11229
This commit is contained in:
parent
81fe596c95
commit
c8f3760dbe
|
@ -120,7 +120,7 @@ class DocumentInfo(models.Model):
|
|||
|
||||
meeting = None
|
||||
if meeting_related:
|
||||
meeting = self.name.split("-")[1]
|
||||
meeting = self.session_set.first().meeting
|
||||
|
||||
return format.format(doc=self,meeting=meeting)
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@ from ietf.meeting.helpers import get_next_interim_number
|
|||
from ietf.meeting.helpers import is_meeting_approved, get_next_agenda_name
|
||||
from ietf.message.models import Message
|
||||
from ietf.person.models import Person
|
||||
from ietf.secr.utils.meeting import get_upload_root
|
||||
from ietf.utils.fields import DatepickerDateField
|
||||
|
||||
# need to insert empty option for use in ChoiceField
|
||||
|
@ -288,7 +287,8 @@ class InterimSessionModelForm(forms.ModelForm):
|
|||
type_id='agenda',
|
||||
group=self.group,
|
||||
name=filename,
|
||||
rev='00')
|
||||
rev='00',
|
||||
external_url='{}-00.txt'.format(filename))
|
||||
doc.set_state(State.objects.get(type=doc.type, slug='active'))
|
||||
DocAlias.objects.create(name=doc.name, document=doc)
|
||||
self.instance.sessionpresentation_set.create(document=doc, rev=doc.rev)
|
||||
|
@ -299,7 +299,7 @@ class InterimSessionModelForm(forms.ModelForm):
|
|||
rev=doc.rev,
|
||||
desc='New revision available')
|
||||
# write file
|
||||
path = os.path.join(get_upload_root(self.instance.meeting), 'agenda', doc.filename_with_rev())
|
||||
path = os.path.join(self.instance.meeting.get_materials_path(), 'agenda', doc.filename_with_rev())
|
||||
directory = os.path.dirname(path)
|
||||
if not os.path.exists(directory):
|
||||
os.makedirs(directory)
|
||||
|
|
|
@ -142,17 +142,7 @@ class Meeting(models.Model):
|
|||
return date + datetime.timedelta(days=-date.weekday(), weeks=1)
|
||||
|
||||
def get_materials_path(self):
|
||||
path = ''
|
||||
if self.type_id == 'ietf':
|
||||
path = os.path.join(settings.AGENDA_PATH,self.number)
|
||||
elif self.type_id == 'interim':
|
||||
path = os.path.join(settings.AGENDA_PATH,
|
||||
'interim',
|
||||
self.date.strftime('%Y'),
|
||||
self.date.strftime('%m'),
|
||||
self.date.strftime('%d'),
|
||||
self.session_set.all()[0].group.acronym)
|
||||
return path
|
||||
return os.path.join(settings.AGENDA_PATH,self.number)
|
||||
|
||||
# the various dates are currently computed
|
||||
def get_submission_start_date(self):
|
||||
|
|
|
@ -1092,7 +1092,8 @@ def interim_request_cancel(request, number):
|
|||
form = InterimCancelForm(initial={'group': group.acronym, 'date': meeting.date})
|
||||
|
||||
return render(request, "meeting/interim_request_cancel.html", {
|
||||
"form": form})
|
||||
"form": form,
|
||||
"meeting": meeting})
|
||||
|
||||
|
||||
@role_required('Area Director', 'Secretariat', 'IRTF Chair', 'WG Chair',
|
||||
|
|
|
@ -4,7 +4,6 @@ from django.conf import settings
|
|||
from django.db import models
|
||||
|
||||
from ietf.meeting.models import Meeting
|
||||
from ietf.secr.utils.meeting import get_upload_root
|
||||
|
||||
|
||||
class InterimManager(models.Manager):
|
||||
|
@ -43,8 +42,7 @@ class InterimMeeting(Meeting):
|
|||
return None
|
||||
|
||||
def get_proceedings_path(self, group=None):
|
||||
path = os.path.join(get_upload_root(self),'proceedings.html')
|
||||
return path
|
||||
return os.path.join(self.get_materials_path(),'proceedings.html')
|
||||
|
||||
def get_proceedings_url(self, group=None):
|
||||
'''
|
||||
|
|
|
@ -23,7 +23,7 @@ from ietf.secr.proceedings.models import InterimMeeting # proxy model
|
|||
from ietf.secr.proceedings.models import Registration
|
||||
from ietf.secr.utils.document import get_rfc_num
|
||||
from ietf.secr.utils.group import groups_by_session
|
||||
from ietf.secr.utils.meeting import get_upload_root, get_proceedings_path, get_materials, get_session
|
||||
from ietf.secr.utils.meeting import get_proceedings_path, get_materials, get_session
|
||||
|
||||
|
||||
# -------------------------------------------------
|
||||
|
@ -264,7 +264,7 @@ def create_proceedings(meeting, group, is_final=False):
|
|||
|
||||
docs = Document.objects.filter(group=group,type='draft').order_by('time')
|
||||
|
||||
meeting_root = get_upload_root(meeting)
|
||||
meeting_root = meeting.get_materials_path()
|
||||
if meeting.type.slug == 'ietf':
|
||||
url_root = "%sproceedings/%s/" % (settings.MEDIA_URL,meeting.number)
|
||||
else:
|
||||
|
|
|
@ -22,7 +22,7 @@ from ietf.secr.sreq.forms import GroupSelectForm
|
|||
from ietf.secr.utils.decorators import check_permissions, sec_only
|
||||
from ietf.secr.utils.document import get_full_path
|
||||
from ietf.secr.utils.group import get_my_groups, groups_by_session
|
||||
from ietf.secr.utils.meeting import get_upload_root, get_materials, get_timeslot, get_proceedings_path, get_proceedings_url
|
||||
from ietf.secr.utils.meeting import get_materials, get_timeslot, get_proceedings_path, get_proceedings_url
|
||||
from ietf.doc.models import Document, DocAlias, DocEvent, State, NewRevisionDocEvent
|
||||
from ietf.group.models import Group
|
||||
from ietf.ietfauth.utils import has_role, role_required
|
||||
|
@ -68,9 +68,9 @@ def get_doc_filename(doc):
|
|||
session = doc.session_set.all()[0]
|
||||
meeting = session.meeting
|
||||
if doc.external_url:
|
||||
return os.path.join(get_upload_root(meeting),doc.type.slug,doc.external_url)
|
||||
return os.path.join(meeting.get_materials_path(),doc.type.slug,doc.external_url)
|
||||
else:
|
||||
path = os.path.join(get_upload_root(meeting),doc.type.slug,doc.name)
|
||||
path = os.path.join(meeting.get_materials_path(),doc.type.slug,doc.name)
|
||||
files = glob.glob(path + '.*')
|
||||
# TODO we might want to choose from among multiple files using some logic
|
||||
return files[0]
|
||||
|
@ -156,18 +156,18 @@ def get_next_order_num(session):
|
|||
def handle_upload_file(file,filename,meeting,subdir):
|
||||
'''
|
||||
This function takes a file object, a filename and a meeting object and subdir as string.
|
||||
It saves the file to the appropriate directory, get_upload_root() + subdir.
|
||||
It saves the file to the appropriate directory, get_materials_path() + subdir.
|
||||
If the file is a zip file, it creates a new directory in 'slides', which is the basename of the
|
||||
zip file and unzips the file in the new directory.
|
||||
'''
|
||||
base, extension = os.path.splitext(filename)
|
||||
|
||||
if extension == '.zip':
|
||||
path = os.path.join(get_upload_root(meeting),subdir,base)
|
||||
path = os.path.join(meeting.get_materials_path(),subdir,base)
|
||||
if not os.path.exists(path):
|
||||
os.mkdir(path)
|
||||
else:
|
||||
path = os.path.join(get_upload_root(meeting),subdir)
|
||||
path = os.path.join(meeting.get_materials_path(),subdir)
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
|
||||
|
@ -191,7 +191,7 @@ def make_directories(meeting):
|
|||
'''
|
||||
This function takes a meeting object and creates the appropriate materials directories
|
||||
'''
|
||||
path = get_upload_root(meeting)
|
||||
path = meeting.get_materials_path()
|
||||
os.umask(0)
|
||||
for leaf in ('slides','agenda','minutes','id','rfc','bluesheets'):
|
||||
target = os.path.join(path,leaf)
|
||||
|
@ -401,7 +401,7 @@ def delete_interim_meeting(request, meeting_num):
|
|||
group = sessions[0].group
|
||||
|
||||
# delete directories
|
||||
path = get_upload_root(meeting)
|
||||
path = meeting.get_materials_path()
|
||||
|
||||
# do a quick sanity check on this path before we go and delete it
|
||||
parts = path.split('/')
|
||||
|
|
|
@ -26,9 +26,9 @@ def get_materials(group,meeting):
|
|||
|
||||
def get_proceedings_path(meeting,group):
|
||||
if meeting.type_id == 'ietf':
|
||||
path = os.path.join(get_upload_root(meeting),group.acronym + '.html')
|
||||
path = os.path.join(meeting.get_materials_path(),group.acronym + '.html')
|
||||
elif meeting.type_id == 'interim':
|
||||
path = os.path.join(get_upload_root(meeting),'proceedings.html')
|
||||
path = os.path.join(meeting.get_materials.path(),'proceedings.html')
|
||||
return path
|
||||
|
||||
def get_proceedings_url(meeting,group=None):
|
||||
|
@ -72,15 +72,3 @@ def get_timeslot(session, schedule=None):
|
|||
else:
|
||||
return None
|
||||
|
||||
def get_upload_root(meeting):
|
||||
path = ''
|
||||
if meeting.type.slug == 'ietf':
|
||||
path = os.path.join(settings.AGENDA_PATH,meeting.number)
|
||||
elif meeting.type.slug == 'interim':
|
||||
path = os.path.join(settings.AGENDA_PATH,
|
||||
'interim',
|
||||
meeting.date.strftime('%Y'),
|
||||
meeting.date.strftime('%m'),
|
||||
meeting.date.strftime('%d'),
|
||||
meeting.session_set.all()[0].group.acronym)
|
||||
return path
|
||||
|
|
|
@ -414,9 +414,9 @@ DOC_HREFS = {
|
|||
}
|
||||
|
||||
MEETING_DOC_HREFS = {
|
||||
"agenda": "/meeting/{meeting}/agenda/{doc.group.acronym}/",
|
||||
"minutes": "https://www.ietf.org/proceedings/{meeting}/minutes/{doc.external_url}",
|
||||
"slides": "https://www.ietf.org/proceedings/{meeting}/slides/{doc.external_url}",
|
||||
"agenda": "/meeting/{meeting.number}/agenda/{doc.group.acronym}/",
|
||||
"minutes": "https://www.ietf.org/proceedings/{meeting.number}/minutes/{doc.external_url}",
|
||||
"slides": "https://www.ietf.org/proceedings/{meeting.number}/slides/{doc.external_url}",
|
||||
"recording": "{doc.external_url}",
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<div class="form-group"
|
||||
{% buttons %}
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upcoming' %}">Back</a>
|
||||
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.interim_request_details' number=meeting.number %}">Back</a>
|
||||
{% endbuttons %}
|
||||
</div>
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
</div> <!-- fieldset -->
|
||||
|
||||
<input class="btn btn-default" type="submit" value="Send" name='send' />
|
||||
<a class="btn btn-danger pull-right" href="{% url 'ietf.meeting.views.interim_announce' %}">Cancel</a>
|
||||
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.interim_request_details' number=meeting.number %}">Back</a>
|
||||
|
||||
</form>
|
||||
|
||||
|
|
Loading…
Reference in a new issue