Repository navigation
[IMP] academic, academic_sale_subscription: re-enrollment flow - #466
Closed
fw-bot-adhoc wants to merge 1 commit into
Closed
fw-bot-adhoc wants to merge 1 commit into
fw-bot-adhoc wants to merge 1 commit into
Conversation
stdout: Auto-merging academic/__manifest__.py CONFLICT (content): Merge conflict in academic/__manifest__.py Auto-merging academic/models/academic_group.py CONFLICT (content): Merge conflict in academic/models/academic_group.py Auto-merging academic/models/academic_section.py CONFLICT (content): Merge conflict in academic/models/academic_section.py Auto-merging academic/models/academic_section_level.py CONFLICT (add/add): Merge conflict in academic/models/academic_section_level.py Auto-merging academic/models/res_partner.py Auto-merging academic/security/ir.model.access.csv Auto-merging academic/tests/__init__.py CONFLICT (add/add): Merge conflict in academic/tests/__init__.py Auto-merging academic/tests/test_next_year_groups.py CONFLICT (add/add): Merge conflict in academic/tests/test_next_year_groups.py Auto-merging academic/views/academic_section_views.xml CONFLICT (content): Merge conflict in academic/views/academic_section_views.xml Auto-merging academic_sale_subscription/__manifest__.py CONFLICT (content): Merge conflict in academic_sale_subscription/__manifest__.py Auto-merging academic_sale_subscription/security/ir.model.access.csv CONFLICT (content): Merge conflict in academic_sale_subscription/security/ir.model.access.csv Auto-merging academic_sale_subscription/tests/__init__.py CONFLICT (add/add): Merge conflict in academic_sale_subscription/tests/__init__.py Auto-merging academic_sale_subscription/tests/test_reenrollment_wizard.py CONFLICT (add/add): Merge conflict in academic_sale_subscription/tests/test_reenrollment_wizard.py Auto-merging academic_sale_subscription/wizard/academic_order_wizard.py Auto-merging academic_sale_subscription/wizard/academic_reenrollment_wizard.py CONFLICT (add/add): Merge conflict in academic_sale_subscription/wizard/academic_reenrollment_wizard.py Auto-merging academic_sale_subscription/wizard/academic_reenrollment_wizard_views.xml CONFLICT (add/add): Merge conflict in academic_sale_subscription/wizard/academic_reenrollment_wizard_views.xml stderr:
Contributor
Contributor
Author
|
@lef-adhoc @gal-adhoc cherrypicking of pull request #462 failed. stdout: Either perform the forward-port manually (and push to this branch, proceeding as usual) or close this PR (maybe?).
More info at https://github.com/odoo/odoo/wiki/Mergebot#forward-port |
Contributor
|
Ya esta en v19 esto, cierro |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Tarea: https://www.adhoc.inc/odoo/project.task/76302
Backport a 18.0 del circuito de reinscripción: #439 y #454 de 19.0.
Reemplaza a #455, que quedó con el bundle de runbot agarrado a un commit que ya
no existe (
24948fd, barrido por un force push de esa rama): cada batch moríaen dos segundos sin escribir un solo log. Misma rama base, mismo contenido,
commits nuevos.
Qué cambia
El plan de estudio pasa a tener orden.
academic.section.levelguarda los nivelesdel plan como líneas ordenables;
level_idssigue sirviendo como m2m plano a través deun par compute/inverse, para data files, importaciones y las vistas que ya lo usaban. Un
post-migration mueve las filas del m2m viejo (
academic_section_level_ids_rel) al modelonuevo.
_is_last_levely_get_next_levelleen esa secuencia; un plan sin secuenciacargada no sugiere salto de nivel, propone el mismo.
create_next_year_groupsbusca el grupo del año siguiente por los mismos campos quetiene la restricción de unicidad: faltaban
section_idysubject_id, así que un grupode materia podía reusar silenciosamente el grupo comercial. También mira los archivados,
porque la unicidad no mira
activey uno archivado que no se encontraba hacía fallar lacopia. Ahora devuelve una notificación con el recuento de creados y existentes, encadenada
a la lista de esos grupos.
academic.reenrollment.wizard, atado a la lista deacademic.group, muestra por grupoel nivel siguiente, el grupo del año que viene, los alumnos que entran y los que quedan
afuera (sin responsable de pago activo, o ya inscriptos), y crea los presupuestos a través
de
academic.order.wizardo inscribe directo cuando el grupo no maneja flujo de ventas.Los parámetros de venta que comparten los dos asistentes pasan al modelo abstracto
academic.order.params.El asistente pasa los alumnos al plan de estudio siguiente cuando terminan el suyo
(7° de Primario a 1° de Secundaria), que es la tarea
76069:
correlative_idspasa a llamarse "Planes siguientes" y alimenta la sugerencia: elprimer nivel del único plan que sigue. Con más de uno, el destino lo elige la persona.
en un Secundario sin divisiones.
resto de la corrida; uno con alumnos y sin destino figura como "Sin destino (N)", en
rojo, y frena la confirmación hasta que se le indique uno.
la misma materia, así volver a correr el asistente no genera una segunda cotización.
de ventas, porque la plantilla y la lista de precios son una sola para toda la corrida.
Notas del backport (19.0 → 18.0)
models.Constraintno existe en 18.0: las restricciones se declaran con_sql_constraints.ir.actions.act_window.group_idsesgroups_iden 18.0.academic.groupsumasection_id, que la 19.0 ya tenía desde [IMP] academic: update uniqueness constraint for academic groups #379 y de loque depende
_get_next_year_group. Agregar una columna a un UNIQUE lo vuelve menosrestrictivo, así que no hay datos que limpiar.
_create_mass_subscriptionacepta valores a sobreescribir, que es lo que necesita elasistente nuevo para forzar la compañía del grupo. La 19.0 ya lo tenía.
_get_recurring_pricing) no es parte de estecambio: 18.0 conserva
_get_first_suitable_recurring_pricing.es.poquedan afuera: los catálogos de 18.0 y 19.0 difieren, y los términos loslevanta el export de esta rama.
Cómo se validó
Base 18 local con demo data.
Tests: base nueva, los dos módulos instalados de cero.
Instalación completa del repo, sin tests: los diez módulos (
academic,academic_account_interests,academic_hr,academic_partner_code,academic_payment_portal,academic_retry_payment,academic_sale_subscription,academic_split_name,demo_academic,spreadsheet_dashboard_academic) sobre una basenueva con demo data: registry cargado en 143s, sin un solo ERROR, CRITICAL ni WARNING.
Migración: la base se instaló primero con el código de 18.0 sin estos cambios, para que
cargara los niveles con el m2m viejo y las correlativas en el sentido viejo, y recién
después se actualizó. El post-migration de
1.29.0movió las 41 filas de niveles almodelo nuevo con secuencia 10, 20, 30, …, y el de
1.30.0invirtió las 7 correlativas,que quedaron apuntando hacia adelante (
Nivel Inicial -> Primario 1 a 7,Primario 1 a 7 -> Secundario 1 a 5, …).Recorrido sobre la base de demo: un grupo en el último nivel propone el primer nivel del
plan siguiente, descarta la división porque el plan de destino no la usa, crea el grupo
del año que viene y la cotización; la segunda corrida reutiliza el grupo y el alumno
figura como ya inscripto, sin cotización de más; un plan con dos planes siguientes queda
"Sin destino" y frena la confirmación hasta elegirlo a mano; un plan sin continuación
figura como "Egresan" y no frena al resto.
pre-commit run --filessobre los archivos tocados: limpio.Fuera de alcance
Pase entre compañías y ordenar estructuras mal cargadas: el orden inicial que deja la
migración sigue el orden en que los niveles se cargaron, no el año real, y se corrige
arrastrándolos una vez en el plan.
Observación
Crear los presupuestos falla con un
AccessErrorde lectura sobreres.userscuando lasesión tiene habilitada una sola compañía (la regla multicompañía bloquea los usuarios de
portal plantilla, que viven en la compañía principal). No lo introduce este cambio: el
asistente de ventas masivas que ya existía falla igual en el mismo contexto, probado sobre
la misma base. No verificado en 19.0.
Forward-Port-Of: #462