Gestion de elecciones: alta y configuracion base

Esta guia resume el flujo vigente para crear una eleccion, completar su detalle base y ajustar la configuracion operativa disponible en la pantalla de configuracion. El contenido fue contrastado contra la UI administrativa Wicket, el dominio Election, los presets por tipo y la logica EJB que persiste la eleccion en v3.0.

Flujo general

  • La alta se inicia desde la opcion Nueva eleccion del menu administrativo, montada en /admin/election/create.
  • Al guardar una eleccion nueva, el sistema persiste la entidad, crea templates de email, agrega como auditores a todos los commissioners existentes y aplica el preset asociado al tipo de eleccion.
  • Despues del alta, la navegacion continua en Convocatoria. Desde las tabs de gestion tambien quedan disponibles Detalle, Organizaciones, Padron, Calendario, Tareas, Candidatos y Auditores.
  • La edicion de detalle solo se habilita para elecciones existentes y no cerradas. Si la eleccion ya esta cerrada, la UI deriva a la pantalla de error de eleccion cerrada.

Alta inicial de la eleccion

  • Categoria: las opciones visibles dependen de los roles del usuario. Un manager o un usuario con roles estatutarios y no estatutarios ve todas las categorias; un usuario solo estatutario ve solo STATUTORY; un usuario solo no estatutario ve MODERATORS, OTHER y TEST.
  • Tipo de eleccion: la entidad nueva arranca en BOARD. Este campo define el preset inicial de calendario, tareas y banderas manuales.
  • Recuperacion de enlaces: es obligatoria. En el alta, al cambiar el tipo la UI recalcula automaticamente el valor por defecto: ONLY_BR para BOARD, ELECTORAL_COMMISSION y FISCAL_COMMISSION; ALL para IANA, MODERATORS, ASO y OTHER.
  • Curso de Campus: es opcional. Con autenticacion local WS_AUTH_METHOD=APP, la integracion queda deshabilitada: no se realizan solicitudes, el selector queda sin opciones y no se muestra un error de conexion. Solo el modo de autenticacion externa intenta cargar cursos mediante CampusClient.getCourses().
  • Paises restringidos: se agregan uno por uno y quedan listados como chips removibles. Antes de guardar, la eleccion normaliza esos codigos hacia ElectionRestrictedCountry.
  • Modo solo espanol: una eleccion nueva arranca con onlySp=true. En ese modo se ocultan los campos EN/PT y, al guardar, el sistema copia titulo, descripcion y link de espanol hacia ingles y portugues.
  • Titulos: el titulo en espanol es obligatorio; ingles y portugues tambien lo son cuando la eleccion no esta en modo solo espanol. Todos tienen maximo de 1000 caracteres.
  • Descripciones: la descripcion en espanol es obligatoria; ingles y portugues tambien lo son cuando se trabaja en modo multilenguaje. Todas tienen maximo de 2000 caracteres.
  • Links informativos: el link en espanol es obligatorio y la pantalla lo precarga con el website por defecto del sistema. Ingles y portugues se exigen cuando la eleccion no esta en modo solo espanol. Todos validan formato URL.
  • Diferencia UTC: es obligatoria y la UI solo acepta valores entre 0 y 12. Una eleccion nueva arranca con 3.
  • Vacantes: es obligatorio informar maxCandidates; el rango admitido es 1..100.
  • Remitente y receptor por defecto: ambos son obligatorios en la UI. En la alta se precargan con los defaults del manager bean y, si igualmente llegan vacios al EJB, el backend vuelve a completar esos defaults antes de persistir.
  • Correos autorizados: authorizedUserEmails, authorizedSupportEmails y authorizedNominateEmails son opcionales. Deben ingresarse separados por coma, sin valores vacios y con formato de email valido.

Preset aplicado por tipo

El preset se aplica solo en la creacion. Si la eleccion ya tiene calendario o tareas, el backend no vuelve a regenerarlos. Ademas, las etapas con fecha por defecto se crean a las 18:00 UTC, dos dias despues de la creacion; las tareas se ubican por defecto en N_2, salvo Evaluacion, que se crea en N_6.

Tipo Organizaciones Padron Tareas base
BOARD Automaticas Automatico Perfil, Paises, Incompatibilidades, Capacitacion, Apoyos por organizacion, Organizaciones, Preguntas estatutarias, Declaraciones y Evaluacion.
ELECTORAL_COMMISSION Automaticas Automatico Igual a Board, pero sin Capacitacion ni Evaluacion.
FISCAL_COMMISSION Automaticas Automatico Igual a Electoral Commission.
MODERATORS Automaticas Manual Perfil, Paises, Incompatibilidades, Apoyos por contacto (2), Preguntas no estatutarias, Organizaciones y Declaraciones (n.e).
IANA Automaticas Manual Igual a Moderators; las declaraciones (n.e) agregan el bloque especifico de IANA.
ASO Automaticas Manual Igual a IANA, pero con apoyos por contacto (5) y el bloque especifico de ASO.
OTHER Manual Manual Perfil, Paises, Incompatibilidades, Preguntas no estatutarias, Organizaciones y Declaraciones.

El formulario publico de nominacion se controla globalmente con PUBLIC_NOMINATION_ENABLED. Con true queda disponible para cualquier tipo, incluido OTHER; con false se deshabilita. Si el parametro falta o queda vacio, se conserva la compatibilidad anterior y solo se permite para IANA y ASO. En todos los casos, el periodo N_2_PERIODO_CALL_FOR_CANDIDATES debe estar abierto.

Edicion de detalle

  • La pantalla de detalle reutiliza casi todos los campos del alta y agrega Gestionar votantes manualmente, Gestionar organizaciones manualmente y Token publico de la eleccion.
  • Las banderas manageVotersManual y manageOrganizationsManual son consumidas por las pantallas de padron y organizaciones para mostrar o esconder acciones manuales de alta, edicion y borrado.
  • publicElectionToken se usa como token publico generico para enlaces e integraciones. La entidad nueva lo genera automaticamente, pero en detalle puede editarse.
  • En edicion, la categoria visible sigue dependiendo del rol del usuario. Si el usuario actual esta incluido en authorizedUserEmails, la UI le permite ver todas las categorias para esa eleccion puntual.
  • Importante: cambiar el tipo en esta pantalla no reaplica el preset de creacion. El backend solo hace merge de la eleccion existente: no regenera calendario, no recrea tareas y la UI tampoco recalcula automaticamente publicLinkRecoveryMode. Si cambia el tipo, ajuste manualmente la configuracion derivada.
  • authorizedUserEmails permite acceso a la eleccion aunque el usuario no tenga el rol de categoria correspondiente.
  • authorizedSupportEmails se usa en el flujo de apoyos a nominacion para restringir los correos de contacto autorizados.
  • authorizedNominateEmails se usa en el formulario de nominacion para restringir los correos de las personas que pueden ser nominadas.

Pantalla de configuracion

La configuracion operativa esta en /admin/election/config. Una eleccion nueva arranca con todos los links publicos y operativos en estado habilitado. En la implementacion actual, estos switches se usan como corte manual: el calendario electoral sigue siendo quien define la ventana real de acceso.

  • Link de votacion: permite bloquear manualmente el acceso aunque el periodo de votacion este abierto.
  • Link de resultado: permite cerrar manualmente el acceso a resultados aunque el calendario los publique.
  • Link de auditoria: permite bloquear manualmente el acceso de auditoria.
  • Link de nominar candidatos: corta manualmente el acceso de nominacion de organizaciones.
  • Link de tareas de nominacion: corta manualmente el acceso al flujo de tareas del candidato.
  • Link de apoyo a nominacion: corta manualmente el acceso al soporte de nominaciones.
  • Link de portal publico: corta manualmente el acceso al portal publico de la eleccion.
  • Solicitud de revision: habilita a los auditores de esa eleccion a permitir que administradores de la organizacion visualicen el detalle de votos.
  • Cierre de la eleccion: es irreversible. El cierre elimina el vinculo entre votante y candidato elegido, pero conserva los resultados agregados y el registro de votantes. El boton solo aparece cuando el backend indica que la eleccion puede cerrarse.

Modulos siguientes

Despues del detalle base, la gestion operativa continua por organizaciones, padron, calendario, tareas y candidaturas. Estas guias ya cubren los modulos relevados en detalle hasta ahora.

  • Organizaciones: cargue, sincronice y mantenga organizaciones desde esta guia.
  • Padron: cargue, sincronice y mantenga votantes desde esta guia.
  • Calendario y tareas: configure etapas, hitos publicables, dependencias y orden de tareas desde esta guia.
  • Candidaturas y nominaciones: gestione altas manuales, nominaciones desde organizaciones, apoyos y publicacion desde esta guia.

Fuentes contrastadas

ElectionCreateDashboard, ElectionCreatePanel, ElectionDetailDashboard, ElectionDetailPanel, ElectionConfigurationDashboard, ManageElectionTabsPanel, ElectionsListPanel, SecurityUtils, AuthorizedUserEmailsValidator, AuthorizedSupportContactEmailValidator, Election, ElectionLinkRecoveryMode, ElectionPresetConfigurations y ElectionsManagerEJBBean.updateElection.