Merged in code from rcross@amsl.com to bring back the automatic conversion of slides from powerpoint to pdf.
- Legacy-Id: 12379
This commit is contained in:
parent
4d59b4d0b5
commit
216ed80529
|
@ -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 = {}
|
||||
|
|
|
@ -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])
|
|
@ -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
|
||||
# -------------------------------------------------
|
||||
|
|
Loading…
Reference in a new issue