Skip to content
Snippets Groups Projects
Commit 5f0cf05e authored by tuhe's avatar tuhe
Browse files

updates

parent f67bd98c
No related branches found
No related tags found
No related merge requests found
...@@ -13,11 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh: ...@@ -13,11 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
setuptools.setup( setuptools.setup(
name="coursebox", name="coursebox",
<<<<<<< HEAD version="0.1.20.5",
version="0.1.20.2",
=======
version="0.1.20.3",
>>>>>>> 47e544f39ea04a5f82e9d153ffd8bd57a6f553e9
author="Tue Herlau", author="Tue Herlau",
author_email="tuhe@dtu.dk", author_email="tuhe@dtu.dk",
description="A course management system currently used at DTU", description="A course management system currently used at DTU",
......
...@@ -83,7 +83,7 @@ def get_feedback_groups(): # This is really getting deprecated... ...@@ -83,7 +83,7 @@ def get_feedback_groups(): # This is really getting deprecated...
PRESENTATION = 0 PRESENTATION = 0
NOTES = 1 NOTES = 1
HANDOUT = 2 HANDOUT = 2
def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, make_quizzes=True, dosvg=False, async_pool=-1): def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, make_quizzes=True, dosvg=False, async_pool=-1, compress_pdf=False):
""" """
Mode determines what is compiled into the pdfs. It can be: Mode determines what is compiled into the pdfs. It can be:
...@@ -115,7 +115,7 @@ def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, mak ...@@ -115,7 +115,7 @@ def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, mak
if async_pool <= 1: if async_pool <= 1:
all_pdfs = [] all_pdfs = []
for lecture in lectures_to_compile: #info['lectures']: for lecture in lectures_to_compile: #info['lectures']:
pdf_out = _compile_single_lecture(dosvg=dosvg, lecture=lecture, make_quizzes=make_quizzes, mode=mode) pdf_out = _compile_single_lecture(dosvg=dosvg, lecture=lecture, make_quizzes=make_quizzes, mode=mode, compress_pdf=compress_pdf)
all_pdfs.append( (lecture['number'], pdf_out)) all_pdfs.append( (lecture['number'], pdf_out))
else: else:
# Do the async here. # Do the async here.
...@@ -205,11 +205,11 @@ def _setup_lecture_info(lecture, mode, dosvg, make_quizzes): ...@@ -205,11 +205,11 @@ def _setup_lecture_info(lecture, mode, dosvg, make_quizzes):
return lecture_texfile return lecture_texfile
pass pass
def _compile_single_lecture(dosvg, lecture, make_quizzes, mode): def _compile_single_lecture(dosvg, lecture, make_quizzes, mode, compress_pdf=False):
lecture_texfile = _setup_lecture_info(lecture, mode, dosvg, make_quizzes) lecture_texfile = _setup_lecture_info(lecture, mode, dosvg, make_quizzes)
# Fix questions for this lecture # Fix questions for this lecture
try: try:
pdf_out = slider.latexmk(lecture_texfile) pdf_out = slider.latexmk(lecture_texfile, compress_pdf=compress_pdf)
except Exception as e: except Exception as e:
log = lecture_texfile[:-4] + ".log" log = lecture_texfile[:-4] + ".log"
print("loading log", log) print("loading log", log)
...@@ -374,7 +374,7 @@ def fix_shared(paths, output_dir, pdf2png=False,dosvg=True,verbose=False, compil ...@@ -374,7 +374,7 @@ def fix_shared(paths, output_dir, pdf2png=False,dosvg=True,verbose=False, compil
''' '''
cache_base = output_dir cache_base = output_dir
from jinjafy.cache import cache_contains_file, cache_update_file from jinjafy.cache import cache_contains_file, cache_update_file
from slider.convert import svg2pdf, pdfcrop from slider.convert import svg2pdf
from slider import convert from slider import convert
# import filecmp # import filecmp
......
...@@ -7,7 +7,8 @@ from slider import latexmk ...@@ -7,7 +7,8 @@ from slider import latexmk
from coursebox.thtools_base import execute_command from coursebox.thtools_base import execute_command
from slider.slide import slide_no_by_text, recursive_tex_apply from slider.slide import slide_no_by_text, recursive_tex_apply
from slider.legacy_importer import slide_to_image from slider.legacy_importer import slide_to_image
from slider.convert import pdfcrop
from slider.convert import pdf2png
def lecture_question_compiler(paths, info, lecture_texfile): def lecture_question_compiler(paths, info, lecture_texfile):
...@@ -40,8 +41,9 @@ def lecture_question_compiler(paths, info, lecture_texfile): ...@@ -40,8 +41,9 @@ def lecture_question_compiler(paths, info, lecture_texfile):
data = {'text': qes} data = {'text': qes}
jinjafy_template(data=data, file_in=lecture_latex_path +"/questions/question_partial.tex", file_out=fout_q) jinjafy_template(data=data, file_in=lecture_latex_path +"/questions/question_partial.tex", file_out=fout_q)
fout_q_pdf = qpath + "/" + latexmk(fout_q, cleanup=True) fout_q_pdf = qpath + "/" + latexmk(fout_q, cleanup=True)
execute_command(["pdfcrop", fout_q_pdf, fout_q_pdf]) # execute_command(["pdfcrop", fout_q_pdf, fout_q_pdf])
pdfcrop(fout_q_pdf, fout_q_pdf)
# get "nice" .png file (or fallback) # get "nice" .png file (or fallback)
tex = recursive_tex_apply(lecture_texfile) tex = recursive_tex_apply(lecture_texfile)
tex = "\n".join([tex[k] for k in tex]) tex = "\n".join([tex[k] for k in tex])
...@@ -69,7 +71,7 @@ def lecture_question_compiler(paths, info, lecture_texfile): ...@@ -69,7 +71,7 @@ def lecture_question_compiler(paths, info, lecture_texfile):
if dex < 0: if dex < 0:
# import subprocess # import subprocess
# out = subprocess.run(["pdftocairo", fout_q_pdf, fout_q_pdf[:-4], "-png"], capture_output=True, encoding='utf-8') # out = subprocess.run(["pdftocairo", fout_q_pdf, fout_q_pdf[:-4], "-png"], capture_output=True, encoding='utf-8')
from slider.convert import pdf2png
fout = pdf2png(fout_q_pdf) fout = pdf2png(fout_q_pdf)
# execute_command(["pdftocairo", fout_q_pdf, fout_q_pdf[:-4], "-png"]) # execute_command(["pdftocairo", fout_q_pdf, fout_q_pdf[:-4], "-png"])
...@@ -102,7 +104,9 @@ def lecture_question_compiler(paths, info, lecture_texfile): ...@@ -102,7 +104,9 @@ def lecture_question_compiler(paths, info, lecture_texfile):
data = {'text': sol} data = {'text': sol}
jinjafy_template(data=data, file_in=lecture_latex_path +"/questions/question_partial.tex", file_out=fout_sol) jinjafy_template(data=data, file_in=lecture_latex_path +"/questions/question_partial.tex", file_out=fout_sol)
fout_sol_pdf = qpath + "/" + latexmk(fout_sol) fout_sol_pdf = qpath + "/" + latexmk(fout_sol)
execute_command(["pdfcrop", fout_sol_pdf, fout_sol_pdf]) # execute_command(["pdfcrop", fout_sol_pdf, fout_sol_pdf])
pdfcrop(fout_sol_pdf, fout_sol_pdf)
# Now make the cvx fileÆ # Now make the cvx fileÆ
try: try:
......
...@@ -33,21 +33,14 @@ def setup_student_files(run_files=True, ...@@ -33,21 +33,14 @@ def setup_student_files(run_files=True,
from coursebox.core.info import class_information from coursebox.core.info import class_information
# info = class_information() # info = class_information()
from coursebox.core.info import core_conf from coursebox.core.info import core_conf
<<<<<<< HEAD
try: try:
PACKAGE = list(core_conf['projects_all'].values()).pop()['module_public'].split(".")[0] if len(core_conf['projects_all']) > 0:
PACKAGE = list(core_conf['projects_all'].values()).pop()['module_public'].split(".")[0]
else:
PACKAGE = list(core_conf['weeks_all'].values()).pop()['module_public'].split(".")[0]
except Exception as e: except Exception as e:
PACKAGE = core_conf['package'] PACKAGE = core_conf['package']
=======
# if 'package' not in core_conf:
if len(core_conf['projects_all']) > 0:
PACKAGE = list(core_conf['projects_all'].values()).pop()['module_public'].split(".")[0]
else:
PACKAGE = list(core_conf['weeks_all'].values()).pop()['module_public'].split(".")[0]
>>>>>>> 47e544f39ea04a5f82e9d153ffd8bd57a6f553e9
if censor_files: if censor_files:
assert not run_files, "You cannot run files while you are censoring them -- your scripts will crash. Call with run_files=False." assert not run_files, "You cannot run files while you are censoring them -- your scripts will crash. Call with run_files=False."
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment