coati-payroll 0.0.6__tar.gz → 0.0.8__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.

Potentially problematic release.


This version of coati-payroll might be problematic. Click here for more details.

Files changed (259) hide show
  1. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/PKG-INFO +1 -1
  2. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/cli.py +26 -11
  3. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/plugins/index.html +16 -13
  4. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/version.py +1 -1
  5. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll.egg-info/PKG-INFO +1 -1
  6. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/tests/test_plugins_cli.py +32 -0
  7. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/LICENSE +0 -0
  8. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/README.md +0 -0
  9. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/__init__.py +0 -0
  10. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/app.py +0 -0
  11. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/audit_helpers.py +0 -0
  12. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/auth.py +0 -0
  13. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/config.py +0 -0
  14. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/demo_data.py +0 -0
  15. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/enums.py +0 -0
  16. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/forms.py +0 -0
  17. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/__init__.py +0 -0
  18. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/ast/__init__.py +0 -0
  19. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/ast/ast_visitor.py +0 -0
  20. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/ast/expression_evaluator.py +0 -0
  21. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/ast/safe_operators.py +0 -0
  22. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/ast/type_converter.py +0 -0
  23. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/data_sources.py +0 -0
  24. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/engine.py +0 -0
  25. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/exceptions.py +0 -0
  26. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/execution/__init__.py +0 -0
  27. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/execution/execution_context.py +0 -0
  28. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/execution/step_executor.py +0 -0
  29. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/execution/variable_store.py +0 -0
  30. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/novelty_codes.py +0 -0
  31. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/results/__init__.py +0 -0
  32. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/results/execution_result.py +0 -0
  33. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/steps/__init__.py +0 -0
  34. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/steps/assignment_step.py +0 -0
  35. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/steps/base_step.py +0 -0
  36. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/steps/calculation_step.py +0 -0
  37. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/steps/conditional_step.py +0 -0
  38. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/steps/step_factory.py +0 -0
  39. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/steps/tax_lookup_step.py +0 -0
  40. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/tables/__init__.py +0 -0
  41. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/tables/bracket_calculator.py +0 -0
  42. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/tables/table_lookup.py +0 -0
  43. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/tables/tax_table.py +0 -0
  44. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/validation/__init__.py +0 -0
  45. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/validation/schema_validator.py +0 -0
  46. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/validation/security_validator.py +0 -0
  47. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine/validation/tax_table_validator.py +0 -0
  48. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/formula_engine_examples.py +0 -0
  49. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/i18n.py +0 -0
  50. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/initial_data.py +0 -0
  51. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/interes_engine.py +0 -0
  52. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/liquidacion_engine/__init__.py +0 -0
  53. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/liquidacion_engine/engine.py +0 -0
  54. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/locale_config.py +0 -0
  55. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/log.py +0 -0
  56. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/model.py +0 -0
  57. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/__init__.py +0 -0
  58. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/calculators/__init__.py +0 -0
  59. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/calculators/benefit_calculator.py +0 -0
  60. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/calculators/concept_calculator.py +0 -0
  61. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/calculators/deduction_calculator.py +0 -0
  62. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/calculators/exchange_rate_calculator.py +0 -0
  63. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/calculators/perception_calculator.py +0 -0
  64. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/calculators/salary_calculator.py +0 -0
  65. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/domain/__init__.py +0 -0
  66. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/domain/calculation_items.py +0 -0
  67. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/domain/employee_calculation.py +0 -0
  68. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/domain/payroll_context.py +0 -0
  69. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/engine.py +0 -0
  70. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/processors/__init__.py +0 -0
  71. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/processors/accounting_processor.py +0 -0
  72. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/processors/accumulation_processor.py +0 -0
  73. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/processors/loan_processor.py +0 -0
  74. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/processors/novelty_processor.py +0 -0
  75. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/processors/vacation_processor.py +0 -0
  76. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/__init__.py +0 -0
  77. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/acumulado_repository.py +0 -0
  78. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/base_repository.py +0 -0
  79. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/config_repository.py +0 -0
  80. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/employee_repository.py +0 -0
  81. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/exchange_rate_repository.py +0 -0
  82. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/novelty_repository.py +0 -0
  83. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/repositories/planilla_repository.py +0 -0
  84. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/results/__init__.py +0 -0
  85. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/results/error_result.py +0 -0
  86. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/results/payroll_result.py +0 -0
  87. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/results/validation_result.py +0 -0
  88. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/services/__init__.py +0 -0
  89. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/services/accounting_voucher_service.py +0 -0
  90. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/services/employee_processing_service.py +0 -0
  91. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/services/payroll_execution_service.py +0 -0
  92. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/services/snapshot_service.py +0 -0
  93. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/validators/__init__.py +0 -0
  94. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/validators/base_validator.py +0 -0
  95. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/validators/currency_validator.py +0 -0
  96. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/validators/employee_validator.py +0 -0
  97. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/validators/period_validator.py +0 -0
  98. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/nomina_engine/validators/planilla_validator.py +0 -0
  99. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/plugin_manager.py +0 -0
  100. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/__init__.py +0 -0
  101. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/driver.py +0 -0
  102. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/drivers/__init__.py +0 -0
  103. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/drivers/dramatiq_driver.py +0 -0
  104. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/drivers/huey_driver.py +0 -0
  105. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/drivers/noop_driver.py +0 -0
  106. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/selector.py +0 -0
  107. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/queue/tasks.py +0 -0
  108. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/rate_limiting.py +0 -0
  109. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/rbac.py +0 -0
  110. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/report_engine.py +0 -0
  111. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/report_export.py +0 -0
  112. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/schema_validator.py +0 -0
  113. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/security.py +0 -0
  114. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/static/logo/Icono-small.png +0 -0
  115. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/static/logo/Icono.png +0 -0
  116. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/static/logo/Icono.svg +0 -0
  117. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/static/styles.css +0 -0
  118. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/system_reports.py +0 -0
  119. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/auth/login.html +0 -0
  120. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/base.html +0 -0
  121. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/index.html +0 -0
  122. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/macros.html +0 -0
  123. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/calculation_rule/form.html +0 -0
  124. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/calculation_rule/index.html +0 -0
  125. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/calculation_rule/schema_editor.html +0 -0
  126. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/carga_inicial_prestacion/form.html +0 -0
  127. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/carga_inicial_prestacion/index.html +0 -0
  128. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/carga_inicial_prestacion/reporte.html +0 -0
  129. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/config_calculos/index.html +0 -0
  130. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/configuracion/index.html +0 -0
  131. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/currency/form.html +0 -0
  132. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/currency/index.html +0 -0
  133. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/custom_field/form.html +0 -0
  134. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/custom_field/index.html +0 -0
  135. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/deduccion/form.html +0 -0
  136. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/deduccion/index.html +0 -0
  137. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/employee/form.html +0 -0
  138. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/employee/index.html +0 -0
  139. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/empresa/form.html +0 -0
  140. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/empresa/index.html +0 -0
  141. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/exchange_rate/form.html +0 -0
  142. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/exchange_rate/import.html +0 -0
  143. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/exchange_rate/index.html +0 -0
  144. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/liquidacion/index.html +0 -0
  145. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/liquidacion/nueva.html +0 -0
  146. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/liquidacion/ver.html +0 -0
  147. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/payroll_concepts/audit_log.html +0 -0
  148. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/percepcion/form.html +0 -0
  149. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/percepcion/index.html +0 -0
  150. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/config.html +0 -0
  151. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/config_deducciones.html +0 -0
  152. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/config_empleados.html +0 -0
  153. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/config_percepciones.html +0 -0
  154. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/config_prestaciones.html +0 -0
  155. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/config_reglas.html +0 -0
  156. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/ejecutar_nomina.html +0 -0
  157. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/form.html +0 -0
  158. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/index.html +0 -0
  159. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/listar_nominas.html +0 -0
  160. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/log_nomina.html +0 -0
  161. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/novedades/form.html +0 -0
  162. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/novedades/index.html +0 -0
  163. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/ver_nomina.html +0 -0
  164. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/planilla/ver_nomina_empleado.html +0 -0
  165. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestacion/form.html +0 -0
  166. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestacion/index.html +0 -0
  167. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestacion_management/dashboard.html +0 -0
  168. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestacion_management/initial_balance_bulk.html +0 -0
  169. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestamo/approve.html +0 -0
  170. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestamo/condonacion.html +0 -0
  171. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestamo/detail.html +0 -0
  172. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestamo/form.html +0 -0
  173. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestamo/index.html +0 -0
  174. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestamo/pago_extraordinario.html +0 -0
  175. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/prestamo/tabla_pago_pdf.html +0 -0
  176. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/report/admin_index.html +0 -0
  177. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/report/detail.html +0 -0
  178. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/report/execute.html +0 -0
  179. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/report/index.html +0 -0
  180. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/report/permissions.html +0 -0
  181. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/settings/index.html +0 -0
  182. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/shared/concept_form.html +0 -0
  183. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/shared/concept_index.html +0 -0
  184. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/tipo_planilla/form.html +0 -0
  185. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/tipo_planilla/index.html +0 -0
  186. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/user/form.html +0 -0
  187. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/user/index.html +0 -0
  188. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/user/profile.html +0 -0
  189. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/account_detail.html +0 -0
  190. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/account_form.html +0 -0
  191. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/account_index.html +0 -0
  192. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/dashboard.html +0 -0
  193. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/initial_balance_bulk.html +0 -0
  194. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/initial_balance_form.html +0 -0
  195. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/leave_request_detail.html +0 -0
  196. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/leave_request_form.html +0 -0
  197. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/leave_request_index.html +0 -0
  198. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/policy_detail.html +0 -0
  199. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/policy_form.html +0 -0
  200. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/policy_index.html +0 -0
  201. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/templates/modules/vacation/register_taken_form.html +0 -0
  202. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/translations/en/LC_MESSAGES/messages.mo +0 -0
  203. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/translations/en/LC_MESSAGES/messages.po +0 -0
  204. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/translations/es/LC_MESSAGES/messages.mo +0 -0
  205. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/translations/es/LC_MESSAGES/messages.po +0 -0
  206. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vacation_service.py +0 -0
  207. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/__init__.py +0 -0
  208. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/calculation_rule.py +0 -0
  209. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/carga_inicial_prestacion.py +0 -0
  210. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/config_calculos.py +0 -0
  211. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/configuracion.py +0 -0
  212. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/constants.py +0 -0
  213. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/currency.py +0 -0
  214. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/custom_field.py +0 -0
  215. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/employee.py +0 -0
  216. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/empresa.py +0 -0
  217. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/exchange_rate.py +0 -0
  218. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/liquidacion.py +0 -0
  219. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/payroll_concepts.py +0 -0
  220. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/__init__.py +0 -0
  221. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/association_routes.py +0 -0
  222. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/config_routes.py +0 -0
  223. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/export_routes.py +0 -0
  224. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/helpers/__init__.py +0 -0
  225. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/helpers/association_helpers.py +0 -0
  226. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/helpers/excel_helpers.py +0 -0
  227. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/helpers/form_helpers.py +0 -0
  228. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/nomina_routes.py +0 -0
  229. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/novedad_routes.py +0 -0
  230. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/routes.py +0 -0
  231. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/services/__init__.py +0 -0
  232. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/services/export_service.py +0 -0
  233. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/services/nomina_service.py +0 -0
  234. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/services/novedad_service.py +0 -0
  235. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/services/planilla_service.py +0 -0
  236. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/validators/__init__.py +0 -0
  237. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/planilla/validators/planilla_validators.py +0 -0
  238. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/plugins.py +0 -0
  239. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/prestacion.py +0 -0
  240. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/prestamo.py +0 -0
  241. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/report.py +0 -0
  242. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/settings.py +0 -0
  243. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/tipo_planilla.py +0 -0
  244. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/user.py +0 -0
  245. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll/vistas/vacation.py +0 -0
  246. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll.egg-info/SOURCES.txt +0 -0
  247. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll.egg-info/dependency_links.txt +0 -0
  248. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll.egg-info/entry_points.txt +0 -0
  249. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll.egg-info/requires.txt +0 -0
  250. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/coati_payroll.egg-info/top_level.txt +0 -0
  251. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/pyproject.toml +0 -0
  252. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/requirements.txt +0 -0
  253. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/setup.cfg +0 -0
  254. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/tests/test_ast_security.py +0 -0
  255. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/tests/test_ast_visitor.py +0 -0
  256. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/tests/test_cli.py +0 -0
  257. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/tests/test_plugin_manager.py +0 -0
  258. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/tests/test_plugins_ui.py +0 -0
  259. {coati_payroll-0.0.6 → coati_payroll-0.0.8}/tests/test_routes_map.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: coati-payroll
3
- Version: 0.0.6
3
+ Version: 0.0.8
4
4
  Summary: A jurisdiction-agnostic payroll calculation engine.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -76,15 +76,11 @@ class PluginsCommand(click.Group):
76
76
  return []
77
77
 
78
78
  def get_command(self, cli_ctx, name):
79
- try:
80
- module = load_plugin_module(name)
81
- except Exception as exc:
82
- message = str(exc)
83
-
84
- def _missing():
85
- raise click.ClickException(message)
86
-
87
- return click.Command(name, callback=lambda: _missing())
79
+ def _load_module_or_fail():
80
+ try:
81
+ return load_plugin_module(name)
82
+ except Exception as exc:
83
+ raise click.ClickException(str(exc))
88
84
 
89
85
  @click.group(name=name, help=f"Gestión del plugin '{name}'")
90
86
  def plugin_group():
@@ -95,6 +91,7 @@ class PluginsCommand(click.Group):
95
91
  @with_appcontext
96
92
  @pass_context
97
93
  def plugin_init(ctx):
94
+ module = _load_module_or_fail()
98
95
  init_fn = getattr(module, "init", None)
99
96
  if init_fn is None or not callable(init_fn):
100
97
  raise click.ClickException("Plugin does not provide callable 'init()'")
@@ -112,6 +109,7 @@ class PluginsCommand(click.Group):
112
109
  @with_appcontext
113
110
  @pass_context
114
111
  def plugin_update(ctx):
112
+ module = _load_module_or_fail()
115
113
  update_fn = getattr(module, "update", None)
116
114
  if update_fn is None or not callable(update_fn):
117
115
  raise click.ClickException("Plugin does not provide callable 'update()'")
@@ -131,6 +129,7 @@ class PluginsCommand(click.Group):
131
129
  def plugin_demo_data(ctx):
132
130
  """Carga datos de demostración para pruebas automáticas."""
133
131
  # Permitir alias: demo_data o load_demo_data
132
+ module = _load_module_or_fail()
134
133
  demo_fn = getattr(module, "demo_data", None)
135
134
  if demo_fn is None or not callable(demo_fn):
136
135
  demo_fn = getattr(module, "load_demo_data", None)
@@ -153,7 +152,15 @@ class PluginsCommand(click.Group):
153
152
  """Habilita el plugin en el registro (active=True)."""
154
153
  try:
155
154
  sync_plugin_registry()
156
- record = db.session.execute(db.select(PluginRegistry).filter_by(plugin_id=name)).scalars().first()
155
+ record = (
156
+ db.session.execute(
157
+ db.select(PluginRegistry).filter(
158
+ (PluginRegistry.plugin_id == name) | (PluginRegistry.distribution_name == name)
159
+ )
160
+ )
161
+ .scalars()
162
+ .first()
163
+ )
157
164
  if record is None:
158
165
  raise click.ClickException("Plugin no registrado en la base de datos")
159
166
  if not record.installed:
@@ -175,7 +182,15 @@ class PluginsCommand(click.Group):
175
182
  """Deshabilita el plugin en el registro (active=False)."""
176
183
  try:
177
184
  sync_plugin_registry()
178
- record = db.session.execute(db.select(PluginRegistry).filter_by(plugin_id=name)).scalars().first()
185
+ record = (
186
+ db.session.execute(
187
+ db.select(PluginRegistry).filter(
188
+ (PluginRegistry.plugin_id == name) | (PluginRegistry.distribution_name == name)
189
+ )
190
+ )
191
+ .scalars()
192
+ .first()
193
+ )
179
194
  if record is None:
180
195
  raise click.ClickException("Plugin no registrado en la base de datos")
181
196
  record.active = False
@@ -29,30 +29,33 @@
29
29
  <td>{{ plugin.version or '-' }}</td>
30
30
  <td>
31
31
  {% if plugin.installed %}
32
- <span class="badge bg-success">{{ _('Sí') }}</span>
32
+ <span class="badge bg-success">{{ _('Sí') }}</span>
33
33
  {% else %}
34
- <span class="badge bg-secondary">{{ _('No') }}</span>
34
+ <span class="badge bg-secondary">{{ _('No') }}</span>
35
35
  {% endif %}
36
36
  </td>
37
37
  <td>
38
38
  {% if plugin.active %}
39
- <span class="badge bg-success">{{ _('Activo') }}</span>
39
+ <span class="badge bg-success">{{ _('Activo') }}</span>
40
40
  {% else %}
41
- <span class="badge bg-warning">{{ _('Inactivo') }}</span>
41
+ <span class="badge bg-warning">{{ _('Inactivo') }}</span>
42
42
  {% endif %}
43
43
  </td>
44
44
  <td>
45
- <form action="{{ url_for('plugins.toggle', plugin_id=plugin.id) }}" method="POST" class="d-inline">
45
+ <form action="{{ url_for('plugins.toggle', plugin_id=plugin.id) }}" method="POST"
46
+ class="d-inline">
47
+ <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
46
48
  {% if plugin.active %}
47
- <button type="submit" class="btn btn-sm btn-outline-warning">
48
- <i class="bi bi-toggle-off"></i>
49
- {{ _('Desactivar') }}
50
- </button>
49
+ <button type="submit" class="btn btn-sm btn-outline-warning">
50
+ <i class="bi bi-toggle-off"></i>
51
+ {{ _('Desactivar') }}
52
+ </button>
51
53
  {% else %}
52
- <button type="submit" class="btn btn-sm btn-outline-success" {% if not plugin.installed %}disabled{% endif %}>
53
- <i class="bi bi-toggle-on"></i>
54
- {{ _('Activar') }}
55
- </button>
54
+ <button type="submit" class="btn btn-sm btn-outline-success"
55
+ {% if not plugin.installed %}disabled{% endif %}>
56
+ <i class="bi bi-toggle-on"></i>
57
+ {{ _('Activar') }}
58
+ </button>
56
59
  {% endif %}
57
60
  </form>
58
61
  </td>
@@ -15,4 +15,4 @@
15
15
  Data model for the payroll module.
16
16
  """
17
17
 
18
- __version__ = "0.0.6"
18
+ __version__ = "0.0.8"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: coati-payroll
3
- Version: 0.0.6
3
+ Version: 0.0.8
4
4
  Summary: A jurisdiction-agnostic payroll calculation engine.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -49,3 +49,35 @@ def test_cli_plugin_init_and_update_invoke_module(monkeypatch):
49
49
  # These callbacks require app context; wiring is tested at module level.
50
50
  assert callable(init_fn)
51
51
  assert callable(update_fn)
52
+
53
+
54
+ def test_cli_plugin_enable_toggles_active(app, db_session, monkeypatch):
55
+ from coati_payroll import plugin_manager
56
+ from coati_payroll.model import PluginRegistry, db
57
+
58
+ # Pretend the plugin is installed so sync_plugin_registry keeps it installed
59
+ monkeypatch.setattr(
60
+ plugin_manager,
61
+ "discover_installed_plugins",
62
+ lambda: [plugin_manager.DiscoveredPlugin("coati-payroll-plugin-gt", "gt", "1.0.0")],
63
+ )
64
+
65
+ with app.app_context():
66
+ plugin = PluginRegistry(
67
+ distribution_name="coati-payroll-plugin-gt",
68
+ plugin_id="gt",
69
+ version="1.0.0",
70
+ active=False,
71
+ installed=True,
72
+ )
73
+ db.session.add(plugin)
74
+ db.session.commit()
75
+
76
+ runner = app.test_cli_runner()
77
+ result = runner.invoke(args=["plugins", "gt", "enable"])
78
+
79
+ assert result.exit_code == 0
80
+
81
+ with app.app_context():
82
+ refreshed = db.session.get(PluginRegistry, plugin.id)
83
+ assert refreshed.active is True
File without changes
File without changes