diff --git a/app/scodoc/sco_bulletins_pdf.py b/app/scodoc/sco_bulletins_pdf.py
index 438ec236..885b5a53 100644
--- a/app/scodoc/sco_bulletins_pdf.py
+++ b/app/scodoc/sco_bulletins_pdf.py
@@ -145,12 +145,14 @@ def process_field(field, cdict, style, suppress_empty_pars=False, format="pdf"):
breakpoint()
# la protection contre des noms malveillants est assuré par l'utilisation de secure_filename dans la classe Logo
text = re.sub(
- r"<(\s*)logo(.*?)src\s*=\s*(.*?)>", r"<\1logo\2\3>", text) # remove forbidden src attribute
+ r"<(\s*)logo(.*?)src\s*=\s*(.*?)>", r"<\1logo\2\3>", text
+ ) # remove forbidden src attribute
image = find_logo(logoname=text, dept_id=g.scodoc_dept_id)
if image is not None:
text = re.sub(
r'<\s*logo(.*?)name\s*=\s*"(\w*?)"(.*?)/?>',
- r'' % image.filepath,)
+ r'' % image.filepath,
+ )
# log('field: %s' % (text))
return sco_pdf.makeParas(text, style, suppress_empty=suppress_empty_pars)
diff --git a/app/scodoc/sco_logos.py b/app/scodoc/sco_logos.py
index 982d268d..73edabb6 100644
--- a/app/scodoc/sco_logos.py
+++ b/app/scodoc/sco_logos.py
@@ -48,7 +48,9 @@ from PIL import Image as PILImage
GLOBAL = "_SERVER" # category for server level logos
-def find_logo(logoname, dept_id=None, global_if_not_found=True, prefix=scu.LOGO_FILE_PREFIX):
+def find_logo(
+ logoname, dept_id=None, global_if_not_found=True, prefix=scu.LOGO_FILE_PREFIX
+):
"""
"Recherche un logo 'name' existant.
Deux strategies:
@@ -105,7 +107,9 @@ def _list_dept_logos(dept_id=None, prefix=scu.LOGO_FILE_PREFIX):
path_dir = Path(scu.SCODOC_LOGOS_DIR)
if dept_id:
path_dir = Path(
- os.path.sep.join([scu.SCODOC_LOGOS_DIR, LOGOS_DIR_PREFIX + str(dept_id)])
+ os.path.sep.join(
+ [scu.SCODOC_LOGOS_DIR, scu.LOGOS_DIR_PREFIX + str(dept_id)]
+ )
)
if path_dir.exists():
for entry in path_dir.iterdir():
@@ -133,13 +137,16 @@ class Logo:
Le format est renseigné au moment de la lecture (read) ou de la création (create) de l'objet
"""
self.logoname = secure_filename(logoname)
- self.scodoc_dept = dept_id
+ self.scodoc_dept_id = dept_id
self.prefix = prefix or ""
self.suffix = None
self.dimensions = None
- if self.scodoc_dept:
+ if self.scodoc_dept_id:
self.dirpath = os.path.sep.join(
- [scu.SCODOC_LOGOS_DIR, scu.LOGOS_DIR_PREFIX + secure_filename(str(dept_id))]
+ [
+ scu.SCODOC_LOGOS_DIR,
+ scu.LOGOS_DIR_PREFIX + secure_filename(str(dept_id)),
+ ]
)
else:
self.dirpath = scu.SCODOC_LOGOS_DIR
@@ -194,13 +201,12 @@ class Logo:
return self
# if no file found, raise exception
raise ScoValueError(
- "Logo %s not found for dept %s" % (self.logoname, self.scodoc_dept)
+ "Logo %s not found for dept %s" % (self.logoname, self.scodoc_dept_id)
)
def get_url(self):
- if self.scodoc_dept
return url_for(
- "scodoc.logo_custom", scodoc_dept=self.scodoc_dept, name=self.logoname
+ "scodoc.logo_custom", scodoc_dept=self.scodoc_dept_id, name=self.logoname
)
diff --git a/app/scodoc/sco_pdf.py b/app/scodoc/sco_pdf.py
index 856d954f..9b0a0b09 100755
--- a/app/scodoc/sco_pdf.py
+++ b/app/scodoc/sco_pdf.py
@@ -220,12 +220,14 @@ class ScolarsPageTemplate(PageTemplate):
)
PageTemplate.__init__(self, "ScolarsPageTemplate", [content])
self.logo = None
- # XXX COPIED from sco_pvpdf, to be refactored (no time now)
- # Search background in dept specific dir, then in global config dir
- logo = find_logo(logoname="bul_pdf_background", dept_id=g.scodoc_dept_id, global_if_not_found=, prefix=None)
+ logo = find_logo(
+ logoname="bul_pdf_background", dept_id=g.scodoc_dept_id, prefix=None
+ )
if logo is None:
# Also try to use PV background
- logo = find_logo(logoname="letter_background", dept_id=g.scodoc_dept_id, global_if_not_found=, prefix=None)
+ logo = find_logo(
+ logoname="letter_background", dept_id=g.scodoc_dept_id, prefix=None
+ )
if logo is not None:
self.background_image_filename = logo.filepath
diff --git a/app/scodoc/sco_pvpdf.py b/app/scodoc/sco_pvpdf.py
index 41dce9ba..ce9cc583 100644
--- a/app/scodoc/sco_pvpdf.py
+++ b/app/scodoc/sco_pvpdf.py
@@ -52,6 +52,7 @@ from app.scodoc import sco_pdf
from app.scodoc import sco_preferences
from app.scodoc import sco_etud
import sco_version
+from app.scodoc.sco_logos import find_logo
from app.scodoc.sco_pdf import PDFLOCK
from app.scodoc.sco_pdf import SU
@@ -207,24 +208,34 @@ class CourrierIndividuelTemplate(PageTemplate):
):
for suffix in scu.LOGOS_IMAGES_ALLOWED_TYPES:
if template_name == "PVJuryTemplate":
- fn = image_dir + "/pvjury_background" + "." + suffix
+ background = find_logo(
+ logoname="pvjury_background",
+ dept_id=g.scodoc_dept_id,
+ prefix="",
+ global_if_not_found=True,
+ )
else:
- fn = image_dir + "/letter_background" + "." + suffix
- if not self.background_image_filename and os.path.exists(fn):
- self.background_image_filename = fn
+ background = find_logo(
+ logoname="letter_background",
+ dept_id=g.scodoc_dept_id,
+ prefix="",
+ global_if_not_found=True,
+ )
+ if not self.background_image_filename and background is not None:
+ self.background_image_filename = background.filepath
- fn = image_dir + "/logo_footer" + "." + suffix
- if not self.logo_footer and os.path.exists(fn):
+ footer = find_logo(logoname="footer", dept_id=g.scodoc_dept_id)
+ if footer is not None:
self.logo_footer = Image(
- fn,
+ footer.filepath,
height=LOGO_FOOTER_HEIGHT,
width=LOGO_FOOTER_WIDTH,
)
- fn = image_dir + "/logo_header" + "." + suffix
- if not self.logo_header and os.path.exists(fn):
+ header = find_logo(logoname="header", dept_id=g.scodoc_dept_id)
+ if header is not None:
self.logo_header = Image(
- fn,
+ header.filepath,
height=LOGO_HEADER_HEIGHT,
width=LOGO_HEADER_WIDTH,
)