assemblerpdf 1.0.8__tar.gz → 1.0.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. {assemblerpdf-1.0.8/src/assemblerpdf.egg-info → assemblerpdf-1.0.10}/PKG-INFO +1 -1
  2. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/pyproject.toml +1 -1
  3. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/assemblers/base.py +7 -5
  4. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/fields/checkbox.html +1 -1
  5. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/fields/radio.html +1 -1
  6. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/layout/header.html +2 -2
  7. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/layout/style.html +3 -1
  8. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10/src/assemblerpdf.egg-info}/PKG-INFO +1 -1
  9. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/MANIFEST.in +0 -0
  10. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/README.md +0 -0
  11. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/setup.cfg +0 -0
  12. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/__init__.py +0 -0
  13. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/assemblers/__init__.py +0 -0
  14. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/assemblers/form.py +0 -0
  15. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/assemblers/report.py +0 -0
  16. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/core.py +0 -0
  17. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/fonts/Inter-Bold.ttf +0 -0
  18. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/fonts/Inter-Medium.ttf +0 -0
  19. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/fonts/Inter-Regular.ttf +0 -0
  20. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/img/Logo-unp-rojo.png +0 -0
  21. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/img/logo-mininterior-rojo.jpg +0 -0
  22. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/fields/field_input.html +0 -0
  23. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/fields/field_label.html +0 -0
  24. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/fields/input.html +0 -0
  25. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/fields/textarea.html +0 -0
  26. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/layout/footer.html +0 -0
  27. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/layout/footer_fixed.html +0 -0
  28. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/layout/grid_row.html +0 -0
  29. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/layout/section.html +0 -0
  30. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/layout/table.html +0 -0
  31. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/assemblerpdf/misc/signature.html +0 -0
  32. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/anexos.html +0 -0
  33. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/anexos_limpio.html +0 -0
  34. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/archivese.html +0 -0
  35. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/autoriza_envio.html +0 -0
  36. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/checkbox.html +0 -0
  37. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/control_cambios.html +0 -0
  38. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/datos_basicosinf.html +0 -0
  39. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/datos_ot.html +0 -0
  40. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/encaso_de.html +0 -0
  41. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fiila_dos_check.html +0 -0
  42. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_cinco_zona.html +0 -0
  43. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_cuatro.html +0 -0
  44. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_cuatro_si_no.html +0 -0
  45. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_cuatro_zona.html +0 -0
  46. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_dos.html +0 -0
  47. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_dos_zona.html +0 -0
  48. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_instructivo.html +0 -0
  49. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_tres.html +0 -0
  50. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_tres_checkbox.html +0 -0
  51. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_tres_zona.html +0 -0
  52. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/fila_uno.html +0 -0
  53. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/firma.html +0 -0
  54. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/firma_doble.html +0 -0
  55. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/firmaop2.html +0 -0
  56. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/firmas_oficializacion.html +0 -0
  57. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/hechos_sobrevinientes.html +0 -0
  58. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/hechos_sobrevinientes_vacio.html +0 -0
  59. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/iformfilacuatro.html +0 -0
  60. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/informacion_doble.html +0 -0
  61. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/input_2checks.html +0 -0
  62. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/input_check.html +0 -0
  63. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/input_checkbox.html +0 -0
  64. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/input_solitario.html +0 -0
  65. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/label_input_dos.html +0 -0
  66. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/leyenda_autoriza_correo.html +0 -0
  67. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/leyenda_superiol.html +0 -0
  68. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/logos.html +0 -0
  69. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/manifiesto.html +0 -0
  70. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/notificacion_correo.html +0 -0
  71. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/oficializacion.html +0 -0
  72. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/pregunta_si_no.html +0 -0
  73. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/pregunta_tresopciones.html +0 -0
  74. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/qr_oficializacion.html +0 -0
  75. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/situacion_amenaza.html +0 -0
  76. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/style.html +0 -0
  77. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/subtitulo_icono.html +0 -0
  78. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/subtitulo_icono_largo.html +0 -0
  79. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/tabla_doble.html +0 -0
  80. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/tabla_instructivo.html +0 -0
  81. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/tabla_matriz_riesgo.html +0 -0
  82. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/tabla_proyeccion.html +0 -0
  83. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/tabla_simple.html +0 -0
  84. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/texarea.html +0 -0
  85. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/tipo_identificacion.html +0 -0
  86. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/tipos_checkbox.html +0 -0
  87. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/titulo.html +0 -0
  88. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/titulo_logo.html +0 -0
  89. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/templates/sistema/titulo_principal.html +0 -0
  90. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/utils/__init__.py +0 -0
  91. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf/utils/template_loader.py +0 -0
  92. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf.egg-info/SOURCES.txt +0 -0
  93. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf.egg-info/dependency_links.txt +0 -0
  94. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf.egg-info/requires.txt +0 -0
  95. {assemblerpdf-1.0.8 → assemblerpdf-1.0.10}/src/assemblerpdf.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblerpdf
3
- Version: 1.0.8
3
+ Version: 1.0.10
4
4
  Summary: Generador de PDFs usando WeasyPrint, diseñado para formularios y reportes con componentes genéricos.
5
5
  Author-email: EcosistemaUNP <ecosistema@unp.gov.co>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "assemblerpdf"
7
- version = "1.0.8"
7
+ version = "1.0.10"
8
8
  description = "Generador de PDFs usando WeasyPrint, diseñado para formularios y reportes con componentes genéricos."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -2,7 +2,7 @@ import os
2
2
  from assemblerpdf.core import generate_pdf_from_string
3
3
 
4
4
  class BaseFormAssembler:
5
- def __init__(self, context=None, codigo=None, fecha=None, version=None, auto_decorations=True, custom_css_path=None, custom_css_content=None, pdf_forms=False, margin_top=None, margin_bottom=None, margin_left=None, margin_right=None, padding_top=None, padding_bottom=None, padding_left=None, padding_right=None):
5
+ def __init__(self, context=None, codigo=None, fecha=None, version=None, auto_decorations=True, custom_css_path=None, custom_css_content=None, pdf_forms=False, margin_top=None, margin_bottom=None, margin_left=None, margin_right=None, padding_top=None, padding_bottom=None, padding_left=None, padding_right=None, group_sections=False):
6
6
  self.context = context or {}
7
7
  self.components = []
8
8
  self.codigo = codigo
@@ -20,6 +20,7 @@ class BaseFormAssembler:
20
20
  self.padding_bottom = padding_bottom
21
21
  self.padding_left = padding_left
22
22
  self.padding_right = padding_right
23
+ self.group_sections = group_sections
23
24
  self._in_section_block = False
24
25
 
25
26
  def _get_img_base(self):
@@ -68,7 +69,7 @@ class BaseFormAssembler:
68
69
  extra_context (dict): Contexto adicional para el template
69
70
  wrapper_html (str): HTML envolvente opcional
70
71
  """
71
- if template_name == 'section.html':
72
+ if template_name == 'section.html' and self.group_sections:
72
73
  if self._in_section_block:
73
74
  self.components.append('</div>')
74
75
  self._in_section_block = False
@@ -102,7 +103,8 @@ class BaseFormAssembler:
102
103
  flex = field.get("flex", "none")
103
104
 
104
105
  # Renderizar el campo
105
- rendered_field = self._render(tpl, ctx)
106
+ grid_ctx = {**ctx, 'in_grid': True}
107
+ rendered_field = self._render(tpl, grid_ctx)
106
108
  columns.append({
107
109
  "ancho": ancho,
108
110
  "flex": flex,
@@ -145,7 +147,7 @@ class BaseFormAssembler:
145
147
 
146
148
  def add_page_break(self):
147
149
  """Inserta un salto de página."""
148
- if self._in_section_block:
150
+ if self.group_sections and self._in_section_block:
149
151
  self.components.append('</div>')
150
152
  self._in_section_block = False
151
153
  self.components.append('<div class="page-break"></div>')
@@ -153,7 +155,7 @@ class BaseFormAssembler:
153
155
 
154
156
  def build(self, pdf_forms=None):
155
157
  """Une todos los componentes renderizados y compila el PDF."""
156
- if self._in_section_block:
158
+ if self.group_sections and self._in_section_block:
157
159
  self.components.append('</div>')
158
160
  self._in_section_block = False
159
161
 
@@ -1,4 +1,4 @@
1
- {% set is_inline = inline if inline is defined else (opciones|length <= 3) %}
1
+ {% set is_inline = inline if inline is defined else (not in_grid and opciones|length <= 3 and (not label or label|length < 100)) %}
2
2
  <div class="choice-container {{ class_group|default('') }} {% if is_inline %}inline-choice{% endif %}" style="margin-bottom: {{ margin_bottom|default('8px') }}; {{ style_group|default('') }}">
3
3
  {% if label %}
4
4
  <label class="form-label {{ class_label|default('') }}" style="{{ style_label|default('') }}">{{ label }}</label>
@@ -1,4 +1,4 @@
1
- {% set is_inline = inline if inline is defined else (opciones|length <= 3) %}
1
+ {% set is_inline = inline if inline is defined else (not in_grid and opciones|length <= 3 and (not label or label|length < 100)) %}
2
2
  <div class="choice-container {{ class_group|default('') }} {% if is_inline %}inline-choice{% endif %}" style="margin-bottom: {{ margin_bottom|default('8px') }}; {{ style_group|default('') }}">
3
3
  {% if label %}
4
4
  <label class="form-label {{ class_label|default('') }}" style="{{ style_label|default('') }}">{{ label }}</label>
@@ -1,6 +1,6 @@
1
1
  <div class="header-container {{ class_group|default('') }}" style="{{ style_group|default('') }}">
2
2
  <div class="header-logos">
3
- <img src="{{ logo_der|default('img/Logo-unp-rojo.png') }}" class="header-logo-right {{ class_logo_right|default('') }}" style="{{ style_logo_right|default('') }}" alt="Logo Derecha">
3
+ <img src="{{ logo_izq|default('img/logo-mininterior-rojo.jpg') }}" class="header-logo-left {{ class_logo_left|default('') }}" style="{{ style_logo_left|default('') }}" alt="Logo Izquierda">
4
4
  </div>
5
5
 
6
6
  <div class="header-text">
@@ -14,6 +14,6 @@
14
14
  </div>
15
15
 
16
16
  <div>
17
- <img src="{{ logo_izq|default('img/logo-mininterior-rojo.jpg') }}" class="header-logo-left {{ class_logo_left|default('') }}" style="{{ style_logo_left|default('') }}" alt="Logo Izquierda">
17
+ <img src="{{ logo_der|default('img/Logo-unp-rojo.png') }}" class="header-logo-right {{ class_logo_right|default('') }}" style="{{ style_logo_right|default('') }}" alt="Logo Derecha">
18
18
  </div>
19
19
  </div>
@@ -50,7 +50,7 @@
50
50
  /* Pie de página fijo de oficialización */
51
51
  .oficializacion-fija {
52
52
  position: fixed;
53
- bottom: calc(-{{ margin_bottom|default('2.2cm') }} + 0.5cm); /* Posicionado dentro del margen inferior */
53
+ bottom: calc(-{{ margin_bottom|default('2.2cm') }} + 0.25cm); /* Posicionado dentro del margen inferior */
54
54
  left: 0;
55
55
  width: 100%;
56
56
  z-index: 9999;
@@ -299,6 +299,8 @@
299
299
  padding-bottom: 4px;
300
300
  margin-top: 15px;
301
301
  margin-bottom: 10px;
302
+ page-break-after: avoid !important;
303
+ break-after: avoid !important;
302
304
  }
303
305
 
304
306
  .section-icon {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblerpdf
3
- Version: 1.0.8
3
+ Version: 1.0.10
4
4
  Summary: Generador de PDFs usando WeasyPrint, diseñado para formularios y reportes con componentes genéricos.
5
5
  Author-email: EcosistemaUNP <ecosistema@unp.gov.co>
6
6
  License: MIT
File without changes
File without changes
File without changes