apres tests logos
This commit is contained in:
parent
3576847fb8
commit
2859b2caa4
|
@ -51,14 +51,13 @@ Chaque semestre peut si nécessaire utiliser un type de bulletin différent.
|
|||
|
||||
"""
|
||||
import io
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
import traceback
|
||||
|
||||
from reportlab.platypus.doctemplate import PageTemplate, BaseDocTemplate
|
||||
|
||||
from flask import g, url_for, request
|
||||
from flask import g, request
|
||||
|
||||
import app.scodoc.sco_utils as scu
|
||||
from app import log
|
||||
|
@ -68,7 +67,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_logos import replace_logo
|
||||
|
||||
|
||||
def pdfassemblebulletins(
|
||||
|
@ -146,14 +145,16 @@ def process_field(field, cdict, style, suppress_empty_pars=False, format="pdf"):
|
|||
text = re.sub(
|
||||
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'<img\1src="%s"/>' % image.filepath,
|
||||
)
|
||||
|
||||
# log('field: %s' % (text))
|
||||
text = re.sub(
|
||||
r'<\s*logo(.*?)name\s*=\s*"(\w*?)"(.*?)/?>',
|
||||
lambda m: r'<img %s src="%s"%s/>'
|
||||
% (
|
||||
m.group(1),
|
||||
replace_logo(name=m.group(2), dept_id=g.scodoc_dept_id),
|
||||
m.group(3),
|
||||
),
|
||||
text,
|
||||
) # log('field: %s' % (text))
|
||||
return sco_pdf.makeParas(text, style, suppress_empty=suppress_empty_pars)
|
||||
|
||||
|
||||
|
|
|
@ -73,6 +73,12 @@ def write_logo(stream, name, dept_id=None):
|
|||
Logo(logoname=name, dept_id=dept_id).create(stream)
|
||||
|
||||
|
||||
def replace_logo(name, dept_id):
|
||||
logo = find_logo(logoname=name, dept_id=dept_id)
|
||||
if logo is not None:
|
||||
return logo.filepath
|
||||
|
||||
|
||||
def list_logos():
|
||||
inventory = {GLOBAL: _list_dept_logos()} # logos globaux (header / footer)
|
||||
for dept in Departement.query.filter_by(visible=True).all():
|
||||
|
|
|
@ -216,6 +216,7 @@ class ScolarsPageTemplate(PageTemplate):
|
|||
)
|
||||
PageTemplate.__init__(self, "ScolarsPageTemplate", [content])
|
||||
self.logo = None
|
||||
breakpoint()
|
||||
logo = find_logo(
|
||||
logoname="bul_pdf_background", dept_id=g.scodoc_dept_id, prefix=None
|
||||
)
|
||||
|
|
|
@ -36,12 +36,12 @@
|
|||
<div class="configuration_logo">
|
||||
<h3>Logo en-tête</h3>
|
||||
<p class="help">image placée en haut de certains documents documents PDF. Image actuelle:</p>
|
||||
<div class="img-container"><img src="{{ url_for('scodoc.get_logo_global', name="header") }}"
|
||||
<div class="img-container"><img src="{{ url_for('scodoc.get_logo_small', name="header") }}"
|
||||
alt="pas de logo chargé" /></div>
|
||||
{{ render_field(form.logo_header) }}
|
||||
<h3>Logo pied de page</h3>
|
||||
<p class="help">image placée en pied de page de certains documents documents PDF. Image actuelle:</p>
|
||||
<div class="img-container"><img src="{{ url_for('scodoc.get_logo_global', name="footer") }}"
|
||||
<div class="img-container"><img src="{{ url_for('scodoc.get_logo_small', name="footer") }}"
|
||||
alt="pas de logo chargé" /></div>
|
||||
{{ render_field(form.logo_footer) }}
|
||||
</div>
|
||||
|
|
|
@ -264,9 +264,7 @@ def configuration():
|
|||
SMALL_SIZE = (300, 300)
|
||||
|
||||
|
||||
def _return_logo(
|
||||
name="header", dept_id="", small=False, global_if_not_found: bool = True
|
||||
):
|
||||
def _return_logo(name="header", dept_id="", small=False, strict: bool = True):
|
||||
# stockée dans /opt/scodoc-data/config/logos donc servie manuellement ici
|
||||
# génération d'une url
|
||||
# url = url_for(
|
||||
|
@ -275,7 +273,7 @@ def _return_logo(
|
|||
# dept_id=dept_id,
|
||||
# global_if_not_found=global_if_not_found,
|
||||
# )
|
||||
logo = sco_logos.find_logo(name, dept_id, global_if_not_found)
|
||||
logo = sco_logos.find_logo(name, dept_id, strict)
|
||||
if logo is not None:
|
||||
suffix = logo.suffix
|
||||
if small:
|
||||
|
@ -302,12 +300,12 @@ def _return_logo(
|
|||
@bp.route("/ScoDoc/<int:dept_id>/logos/<name>/small")
|
||||
@admin_required
|
||||
def get_logo_small(name: str, dept_id: int):
|
||||
global_if_not_found = request.args.get("global_if_not_found", "True")
|
||||
strict = request.args.get("strict", "False")
|
||||
return _return_logo(
|
||||
name,
|
||||
dept_id=dept_id,
|
||||
small=True,
|
||||
global_if_not_found=global_if_not_found.upper() not in ["0", "FALSE"],
|
||||
strict=strict.upper() not in ["0", "FALSE"],
|
||||
)
|
||||
|
||||
|
||||
|
@ -317,12 +315,12 @@ def get_logo_small(name: str, dept_id: int):
|
|||
@bp.route("/ScoDoc/<int:dept_id>/logos/<name>")
|
||||
@admin_required
|
||||
def get_logo(name: str, dept_id: int):
|
||||
global_if_not_found = request.args.get("global_if_not_found", "True")
|
||||
strict = request.args.get("strict", "False")
|
||||
return _return_logo(
|
||||
name,
|
||||
dept_id=dept_id,
|
||||
small=False,
|
||||
global_if_not_found=global_if_not_found.upper() not in ["0", "FALSE"],
|
||||
strict=strict.upper() not in ["0", "FALSE"],
|
||||
)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue