Feuilles de poste compactées : une page par poste et par jour
Bénévoles deux par ligne (vignette 10 mm, nom et téléphone superposés), titres, en-têtes de créneau et marges resserrés — 6 feuilles réalistes : 11 pages ⇒ 6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
749c7e0917
commit
5c2cc0a6c3
@@ -186,7 +186,7 @@ def test_footer_message_is_printed_at_the_bottom_of_every_page():
|
||||
from app.sheets.pdf import SheetFooter
|
||||
|
||||
# Deux feuilles, dont une assez longue pour déborder sur une 2e page.
|
||||
many = tuple(SheetVolunteer(name=f"Bénévole {i}", phone=None, photo=None) for i in range(40))
|
||||
many = tuple(SheetVolunteer(name=f"Bénévole {i}", phone=None, photo=None) for i in range(120))
|
||||
pdf = generate_position_sheets_pdf(
|
||||
[_sheet(volunteers=many), _sheet()],
|
||||
SheetFooter(title="Message de l'organisation", message="Repas à 18h30\nBadges à l'accueil"),
|
||||
@@ -202,3 +202,27 @@ def test_footer_message_is_printed_at_the_bottom_of_every_page():
|
||||
def test_no_footer_without_message():
|
||||
pages = _page_texts(generate_position_sheets_pdf([_sheet()]))
|
||||
assert "Message de l'organisation" not in pages[0]
|
||||
|
||||
|
||||
def test_volunteers_are_listed_two_per_row():
|
||||
from app.sheets.pdf import _shift_table, _styles
|
||||
|
||||
shift = _sheet(
|
||||
volunteers=tuple(SheetVolunteer(name=f"B{i}", phone=None, photo=None) for i in range(5))
|
||||
).shifts[0]
|
||||
table = _shift_table(shift, {}, _styles(), 180)
|
||||
# 5 bénévoles, deux par ligne : 3 lignes (la dernière à moitié vide).
|
||||
assert len(table._cellvalues) == 3
|
||||
|
||||
|
||||
def test_a_typical_sheet_fits_on_one_page():
|
||||
volunteers = tuple(
|
||||
SheetVolunteer(name=f"Prénom{i} Nom{i}", phone="06 12 34 56 78", photo=_PNG)
|
||||
for i in range(8)
|
||||
)
|
||||
shift = _sheet(volunteers=volunteers).shifts[0]
|
||||
sheet = _sheet(volunteers=volunteers)
|
||||
many_shifts = PositionDaySheet(
|
||||
**{**sheet.__dict__, "shifts": (shift, shift, shift, shift)}
|
||||
)
|
||||
assert len(_page_texts(generate_position_sheets_pdf([many_shifts]))) == 1
|
||||
|
||||
Reference in New Issue
Block a user