Closed WhyNotHugo closed 11 months ago
Ahí estuve viendo, en ese caso en PdfBuilder
se puede agregar en el init entries_per_page
(default = 15) y el nuevo método en get_context
y cada usuario si tiene que hacer modificaciones hereda desde PdfBuilder
y lo pasa a save_pdf.
class PdfBuilder:
def __init__(self, receipt: Receipt, entries_per_page:int = 15) -> None:
self.receipt = receipt
self.entries_per_page = entries_per_page
def get_context(self):
(...)
context["entries"] = create_entries_context_for_render(paginator)
Entonces por ejemplo, al momento de guardar el pdf en caso de que alguien herede de PdfBuilder
a digamos PdfBuilderCustom
class PdfBuilderCustom(PdfBuilder):
def __init__(self,entries_per_page:int = 5) -> None:
super().__init__(entries_per_page)
y por ultimo en la vista del usuario:
save_pdf(builder_class = PdfBuilderCustom)
De esa forma ya estaria por default los 15 ReceiptEntry, todo funciona igual y en caso de que el usuario decida un nuevo comportamiento, hereda desde PdfBuilder
y hace un override sobre lo que considere necesario.
Con esta versión deberías poder hacer:
class PdfBuilder:
def __init__(self, entries_per_page:int = 15) -> None:
self.entries_per_page = entries_per_page
def get_context(self):
(...)
context["entries"] = create_entries_context_for_render(paginator)
Y usarlo:
custom_builder = PdfBuilder(entries_per_page=5)
save_pdf(builder = custom_builder)
This allows applications to customise PDF generation.
See: https://github.com/WhyNotHugo/django-afip/issues/195