diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 570ff5785..e30d3401b 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -58,7 +58,7 @@ from ietf.meeting.helpers import send_interim_approval_request from ietf.meeting.helpers import send_interim_announcement_request from ietf.meeting.utils import finalize from ietf.secr.proceedings.utils import handle_upload_file -from ietf.secr.proceedings.proc_utils import get_progress_stats +from ietf.secr.proceedings.proc_utils import get_progress_stats, post_process from ietf.utils.mail import send_mail_message from ietf.utils.pipe import pipe from ietf.utils.pdf import pdf_pages @@ -1499,6 +1499,7 @@ def upload_session_slides(request, session_id, num, name): doc.save_with_history([e]) # The way this function builds the filename it will never trigger the file delete in handle_file_upload. handle_upload_file(file, filename, session.meeting, 'slides') + post_process(doc) return redirect('ietf.meeting.views.session_details',num=num,acronym=session.group.acronym) else: initial = {} diff --git a/ietf/secr/proceedings/proc_utils.py b/ietf/secr/proceedings/proc_utils.py index 932ee0c6c..b5107e498 100644 --- a/ietf/secr/proceedings/proc_utils.py +++ b/ietf/secr/proceedings/proc_utils.py @@ -8,6 +8,7 @@ import datetime import glob import os import shutil +import subprocess import debug # pyflakes:ignore @@ -27,7 +28,7 @@ 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_proceedings_path, get_materials, get_session - +from ietf.utils.log import log # ------------------------------------------------- # Helper Functions @@ -574,3 +575,34 @@ def gen_training(context): path = os.path.join(settings.SECR_PROCEEDINGS_DIR,meeting.number,'train-%s.html' % counter ) write_html(path,html.content) +def is_powerpoint(doc): + ''' + Returns true if document is a Powerpoint presentation + ''' + return doc.file_extension() in ('ppt','pptx') + +def post_process(doc): + ''' + Does post processing on uploaded file. + - Convert PPT to PDF + ''' + if is_powerpoint(doc) and hasattr(settings,'SECR_PPT2PDF_COMMAND'): + try: + cmd = settings.SECR_PPT2PDF_COMMAND + cmd.append(doc.get_file_path()) # outdir + cmd.append(os.path.join(doc.get_file_path(),doc.external_url)) # filename + subprocess.check_call(cmd) + except (subprocess.CalledProcessError, OSError) as error: + log("Error converting PPT: %s" % (error)) + return + # change extension + base,ext = os.path.splitext(doc.external_url) + doc.external_url = base + '.pdf' + + e = DocEvent.objects.create( + type='changed_document', + by=Person.objects.get(name="(System)"), + doc=doc, + desc='Converted document to PDF', + ) + doc.save_with_history([e]) \ No newline at end of file diff --git a/ietf/secr/proceedings/views.py b/ietf/secr/proceedings/views.py index f3ddb5229..1054dd0ec 100644 --- a/ietf/secr/proceedings/views.py +++ b/ietf/secr/proceedings/views.py @@ -2,7 +2,6 @@ import datetime import glob import itertools import os -import subprocess import debug # pyflakes:ignore @@ -27,7 +26,6 @@ from ietf.secr.proceedings.forms import RecordingForm, RecordingEditForm from ietf.secr.proceedings.proc_utils import ( gen_acknowledgement, gen_agenda, gen_areas, gen_attendees, gen_group_pages, gen_index, gen_irtf, gen_overview, gen_plenaries, gen_progress, gen_research, gen_training, create_proceedings, create_recording ) -from ietf.utils.log import log # ------------------------------------------------- # Globals @@ -139,39 +137,8 @@ def parsedate(d): This function takes a date object and returns a tuple of year,month,day ''' return (d.strftime('%Y'),d.strftime('%m'),d.strftime('%d')) - -def is_powerpoint(doc): - ''' - Returns true if document is a Powerpoint presentation - ''' - return doc.file_extension() in ('ppt','pptx') - -def post_process(doc): - ''' - Does post processing on uploaded file. - - Convert PPT to PDF - ''' - if is_powerpoint(doc) and hasattr(settings,'SECR_PPT2PDF_COMMAND'): - try: - cmd = settings.SECR_PPT2PDF_COMMAND - cmd.append(doc.get_file_path()) # outdir - cmd.append(os.path.join(doc.get_file_path(),doc.external_url)) # filename - subprocess.check_call(cmd) - except (subprocess.CalledProcessError, OSError) as error: - log("Error converting PPT: %s" % (error)) - return - # change extension - base,ext = os.path.splitext(doc.external_url) - doc.external_url = base + '.pdf' - - e = DocEvent.objects.create( - type='changed_document', - by=Person.objects.get(name="(System)"), - doc=doc, - desc='Converted document to PDF', - ) - doc.save_with_history([e]) + # ------------------------------------------------- # AJAX Functions # -------------------------------------------------