From 5f0cf05ea2c51749713d10331847fbe062613bab Mon Sep 17 00:00:00 2001
From: Tue Herlau <tuhe@dtu.dk>
Date: Fri, 19 Jul 2024 14:49:57 +0200
Subject: [PATCH] updates

---
 setup.py                                          |  6 +-----
 .../material/homepage_lectures_exercises.py       | 10 +++++-----
 src/coursebox/material/lecture_questions.py       | 12 ++++++++----
 src/coursebox/student_files/student_files.py      | 15 ++++-----------
 4 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/setup.py b/setup.py
index 453ae6d..18baff2 100644
--- a/setup.py
+++ b/setup.py
@@ -13,11 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
 
 setuptools.setup(
     name="coursebox",
-<<<<<<< HEAD
-    version="0.1.20.2",
-=======
-    version="0.1.20.3",
->>>>>>> 47e544f39ea04a5f82e9d153ffd8bd57a6f553e9
+    version="0.1.20.5",
     author="Tue Herlau",
     author_email="tuhe@dtu.dk",
     description="A course management system currently used at DTU",
diff --git a/src/coursebox/material/homepage_lectures_exercises.py b/src/coursebox/material/homepage_lectures_exercises.py
index 3c6d8a3..e838cdd 100644
--- a/src/coursebox/material/homepage_lectures_exercises.py
+++ b/src/coursebox/material/homepage_lectures_exercises.py
@@ -83,7 +83,7 @@ def get_feedback_groups(): # This is really getting deprecated...
 PRESENTATION = 0
 NOTES = 1
 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:
 
@@ -115,7 +115,7 @@ def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, mak
     if async_pool <= 1:
         all_pdfs = []
         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))
     else:
         # Do the async here.
@@ -205,11 +205,11 @@ def _setup_lecture_info(lecture, mode, dosvg, make_quizzes):
     return lecture_texfile
     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)
     # Fix questions for this lecture
     try:
-        pdf_out = slider.latexmk(lecture_texfile)
+        pdf_out = slider.latexmk(lecture_texfile, compress_pdf=compress_pdf)
     except Exception as e:
         log = lecture_texfile[:-4] + ".log"
         print("loading log", log)
@@ -374,7 +374,7 @@ def fix_shared(paths, output_dir, pdf2png=False,dosvg=True,verbose=False, compil
     '''
     cache_base = output_dir
     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
     # import filecmp
 
diff --git a/src/coursebox/material/lecture_questions.py b/src/coursebox/material/lecture_questions.py
index a341461..07041fe 100644
--- a/src/coursebox/material/lecture_questions.py
+++ b/src/coursebox/material/lecture_questions.py
@@ -7,7 +7,8 @@ from slider import latexmk
 from coursebox.thtools_base import execute_command
 from slider.slide import slide_no_by_text, recursive_tex_apply
 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):
 
@@ -40,8 +41,9 @@ def lecture_question_compiler(paths, info, lecture_texfile):
         data = {'text': qes}
         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)
-        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)
         tex = recursive_tex_apply(lecture_texfile)
         tex = "\n".join([tex[k] for k in tex])
@@ -69,7 +71,7 @@ def lecture_question_compiler(paths, info, lecture_texfile):
         if dex < 0:
             # import subprocess
             # 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)
 
             # execute_command(["pdftocairo", fout_q_pdf, fout_q_pdf[:-4], "-png"])
@@ -102,7 +104,9 @@ def lecture_question_compiler(paths, info, lecture_texfile):
         data = {'text': 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)
-        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Æ
         try:
diff --git a/src/coursebox/student_files/student_files.py b/src/coursebox/student_files/student_files.py
index d9fca2e..48fe9e7 100644
--- a/src/coursebox/student_files/student_files.py
+++ b/src/coursebox/student_files/student_files.py
@@ -33,21 +33,14 @@ def setup_student_files(run_files=True,
     from coursebox.core.info import class_information
     # info = class_information()
     from coursebox.core.info import core_conf
-<<<<<<< HEAD
     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:
         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:
         assert not run_files, "You cannot run files while you are censoring them -- your scripts will crash. Call with run_files=False."
 
-- 
GitLab