forked from ScoDoc/ScoDoc
Fix: bytes I/O (zips and pdfs)
This commit is contained in:
parent
c3e3f45370
commit
0252bf4df4
@ -28,7 +28,7 @@
|
|||||||
"""Photos: trombinoscopes
|
"""Photos: trombinoscopes
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from io import StringIO
|
import io
|
||||||
from zipfile import ZipFile, BadZipfile
|
from zipfile import ZipFile, BadZipfile
|
||||||
import reportlab
|
import reportlab
|
||||||
from reportlab.lib.units import cm, mm
|
from reportlab.lib.units import cm, mm
|
||||||
@ -221,7 +221,7 @@ def check_local_photos_availability(context, groups_infos, REQUEST, format=""):
|
|||||||
|
|
||||||
def _trombino_zip(context, groups_infos, REQUEST):
|
def _trombino_zip(context, groups_infos, REQUEST):
|
||||||
"Send photos as zip archive"
|
"Send photos as zip archive"
|
||||||
data = StringIO()
|
data = io.BytesIO()
|
||||||
Z = ZipFile(data, "w")
|
Z = ZipFile(data, "w")
|
||||||
# assume we have the photos (or the user acknowledged the fact)
|
# assume we have the photos (or the user acknowledged the fact)
|
||||||
# Archive originals (not reduced) images, in JPEG
|
# Archive originals (not reduced) images, in JPEG
|
||||||
@ -229,7 +229,7 @@ def _trombino_zip(context, groups_infos, REQUEST):
|
|||||||
im_path = sco_photos.photo_pathname(context, t, size="orig")
|
im_path = sco_photos.photo_pathname(context, t, size="orig")
|
||||||
if not im_path:
|
if not im_path:
|
||||||
continue
|
continue
|
||||||
img = open(im_path).read()
|
img = open(im_path, "rb").read()
|
||||||
code_nip = t["code_nip"]
|
code_nip = t["code_nip"]
|
||||||
if code_nip:
|
if code_nip:
|
||||||
filename = code_nip + ".jpg"
|
filename = code_nip + ".jpg"
|
||||||
@ -337,7 +337,7 @@ def _trombino_pdf(context, groups_infos, REQUEST):
|
|||||||
N_PER_ROW = 5 # XXX should be in ScoDoc preferences
|
N_PER_ROW = 5 # XXX should be in ScoDoc preferences
|
||||||
|
|
||||||
StyleSheet = styles.getSampleStyleSheet()
|
StyleSheet = styles.getSampleStyleSheet()
|
||||||
report = StringIO() # in-memory document, no disk file
|
report = io.BytesIO() # in-memory document, no disk file
|
||||||
objects = [
|
objects = [
|
||||||
Paragraph(
|
Paragraph(
|
||||||
SU("Trombinoscope " + sem["titreannee"] + " " + groups_infos.groups_titles),
|
SU("Trombinoscope " + sem["titreannee"] + " " + groups_infos.groups_titles),
|
||||||
@ -411,7 +411,7 @@ def _listeappel_photos_pdf(context, groups_infos, REQUEST):
|
|||||||
# ROWS_PER_PAGE = 26 # XXX should be in ScoDoc preferences
|
# ROWS_PER_PAGE = 26 # XXX should be in ScoDoc preferences
|
||||||
|
|
||||||
StyleSheet = styles.getSampleStyleSheet()
|
StyleSheet = styles.getSampleStyleSheet()
|
||||||
report = StringIO() # in-memory document, no disk file
|
report = io.BytesIO() # in-memory document, no disk file
|
||||||
objects = [
|
objects = [
|
||||||
Paragraph(
|
Paragraph(
|
||||||
SU(
|
SU(
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
Modification Jérome Billoue,Vincent Grimaud, IUT de Tours, 2017
|
Modification Jérome Billoue,Vincent Grimaud, IUT de Tours, 2017
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from io import StringIO
|
import io
|
||||||
|
|
||||||
from reportlab.lib import colors
|
from reportlab.lib import colors
|
||||||
from reportlab.lib import pagesizes
|
from reportlab.lib import pagesizes
|
||||||
@ -265,7 +265,7 @@ def pdf_trombino_tours(
|
|||||||
# Réduit sur une page
|
# Réduit sur une page
|
||||||
objects = [KeepInFrame(0, 0, objects, mode="shrink")]
|
objects = [KeepInFrame(0, 0, objects, mode="shrink")]
|
||||||
# Build document
|
# Build document
|
||||||
report = StringIO() # in-memory document, no disk file
|
report = io.BytesIO() # in-memory document, no disk file
|
||||||
filename = "trombino-%s-%s.pdf" % (DeptName, groups_infos.groups_filename)
|
filename = "trombino-%s-%s.pdf" % (DeptName, groups_infos.groups_filename)
|
||||||
document = BaseDocTemplate(report)
|
document = BaseDocTemplate(report)
|
||||||
document.addPageTemplates(
|
document.addPageTemplates(
|
||||||
@ -456,7 +456,7 @@ def pdf_feuille_releve_absences(
|
|||||||
# Réduit sur une page
|
# Réduit sur une page
|
||||||
objects = [KeepInFrame(0, 0, objects, mode="shrink")]
|
objects = [KeepInFrame(0, 0, objects, mode="shrink")]
|
||||||
# Build document
|
# Build document
|
||||||
report = StringIO() # in-memory document, no disk file
|
report = io.BytesIO() # in-memory document, no disk file
|
||||||
filename = "absences-%s-%s.pdf" % (DeptName, groups_infos.groups_filename)
|
filename = "absences-%s-%s.pdf" % (DeptName, groups_infos.groups_filename)
|
||||||
if sco_preferences.get_preference(context, "feuille_releve_abs_taille") == "A3":
|
if sco_preferences.get_preference(context, "feuille_releve_abs_taille") == "A3":
|
||||||
taille = A3
|
taille = A3
|
||||||
|
Loading…
Reference in New Issue
Block a user