Esta guia describe el bloque vigente de candidaturas en v3.0: alta manual desde admin, nominacion desde organizaciones, aceptacion o rechazo por la persona nominada, flujo de apoyos y publicacion final de candidaturas. El contenido fue contrastado contra la UI administrativa y publica, el dominio Candidate/Nomination/SupportNomination, la logica EJB y las restricciones reales del flujo tokenizado.
/admin/election/candidates./token/organization/do-nomination para nominar, una pantalla de condiciones/aceptacion resuelta por acceptNominationToken junto con /token/nomination/tasks para completar la candidatura, y /token/nomination/support para responder apoyos.Nomination pertenece a una eleccion y a una organizacion. Puede o no tener un Candidate asociado. Cuando la persona nominada acepta, el backend crea ese candidato y lo vincula en relacion uno a uno.SupportNomination asociados a una nominacion. Pueden venir de otra organizacion o de un contacto manual sin organizacion asociada.NORMAL y ABSTENTION. La abstencion no nace desde una nominacion: se agrega manualmente desde admin.PROPOSED, ACCEPTED_BY_CANDIDATE, REJECTED_BY_CANDIDATE, INVALID y APPROVED. El flujo publico actual genera directamente PROPOSED, ACCEPTED_BY_CANDIDATE y REJECTED_BY_CANDIDATE; INVALID y APPROVED quedan para tratamientos posteriores del proceso.PROPOSED, ACCEPTED, REJECTED, APPROVED e INVALID. La pagina publica de apoyo solo permite decidir ACCEPTED o REJECTED.INCOMPLETE, PRECOMPLETE, COMPLETE, CONFIRMED_AND_PUBLISHED y REJECTED. La pantalla administrativa de estado expone todos los enums y el backend no valida transiciones de negocio entre estados: acepta cualquier cambio directo mientras el valor nuevo sea distinto del actual.CONFIRMED_AND_PUBLISHED entran en la boleta publica y en los listados publicos de candidatos. La opcion de abstencion creada desde admin nace directamente en ese estado.255 caracteres. Email es obligatorio para candidatos normales y valida formato. Frecuencia de recordatorio tambien es obligatoria para candidatos normales.2000 caracteres y pasa por LinkValidator. Link publico y LinkedIn son opcionales, con validacion de URL y maximo de 1000 caracteres.NORMAL, toman el siguiente orden no fijo disponible y reciben filas de progreso NOT_STARTED para todas las tareas hoy configuradas en la eleccion.onlySp=true al crear un candidato manual nuevo. Ademas, cada guardado del formulario inline ejecuta copyBioToOtherLanguages(): replica siempre bioSpanish y linkSpanish hacia EN/PT y tambien copia respuestas abiertas desde espanol. Si ya existian traducciones diferenciadas, quedan sobrescritas y deben corregirse luego desde Traducciones./admin/election/candidates/edit sigue montada, pero hoy la operacion normal del modulo se hace desde el formulario inline del dashboard principal.ReminderFrequency.DISABLED y estado CONFIRMED_AND_PUBLISHED.candidateOrder = MAX_ORDER. Si ya habia un primer candidato fijo, el backend lo mueve al ultimo orden no fijo para dejar a la abstencion arriba.randomOrderCandidates. Ese switch afecta la presentacion final de candidaturas publicadas; no elimina los ordenes persistidos ni las posiciones fijas.MAX_ORDER y MIN_ORDER.doNominationToken de cada organizacion, usando la pagina /token/organization/do-nomination.doNominationLinkAvailable este habilitado y que la eleccion este dentro de la ventana de calendario N_2_PERIODO_CALL_FOR_CANDIDATES.PROPOSED, ACCEPTED_BY_CANDIDATE o APPROVED. Si la nominacion previa fue rechazada por la persona nominada o quedo invalida, el sistema vuelve a permitir una nueva nominacion.3 caracteres y valida un patron de nombre completo; el motivo exige entre 20 y 2000 caracteres.<codigoPais> <telefono>. El backend vuelve a validar largos y formato minimo antes de persistir.PROPOSED, genera acceptNominationToken y encola el email de nominacion para la persona nominada.acceptNominationToken de la nominacion. Si la nominacion ya fue aceptada, la pantalla de condiciones redirige automaticamente al panel de tareas.PROPOSED, el switch manual nominationTasksLinkAvailable esta habilitado y la eleccion continua dentro de N_2_PERIODO_CALL_FOR_CANDIDATES.ACCEPTED_BY_CANDIDATE para el mismo email normalizado.onlySp=true, foto default, estado INCOMPLETE, estados de capacitacion/evaluacion en PENDING y el siguiente orden no fijo disponible.NOT_STARTED para todas las tareas hoy configuradas en la eleccion y la nominacion pasa a ACCEPTED_BY_CANDIDATE.REJECTED_BY_CANDIDATE. Ademas, cualquier apoyo todavia pendiente en estado PROPOSED se fuerza a REJECTED.La pagina /token/nomination/tasks solo existe para nominaciones aceptadas. El detalle de preguntas, declaraciones y preguntas de comunidad ya quedo separado en esta guia; aqui se mantienen las reglas operativas generales del bloque de apoyos y acceso.
nominationTasksLinkAvailable como las ventanas de calendario asociadas. Cuando una tarea ya vencio o tiene dependencias previas pendientes, la pagina la deja solo en los modos permitidos por su estado real.STARTED o COMPLETED pueden mover campusCourseStatus y evaluationStatus.N_12_PERIODO_CANDIDATE_QUESTIONS.membershipContactEmail cargado, distintas de la organizacion que nomino y cuyo email de contacto no coincida con el email del candidato.2 apoyos activos de organizacion por nominacion, contando PROPOSED, ACCEPTED y APPROVED.USER_SUPPORTS_2 y USER_SUPPORTS_5. El contacto no puede ser el propio email del candidato ni repetirse dentro de la misma nominacion.authorizedNominateEmails configurado, el formulario de nominacion solo acepta correos de candidato incluidos en esa lista. Si la lista esta vacia, no se aplica esa restriccion adicional.authorizedSupportEmails configurado, la UI del candidato solo permite cargar contactos manuales incluidos en esa lista. Si la lista esta vacia, no se aplica esa restriccion adicional.PROPOSED, ACCEPTED y APPROVED.2 apoyos de usuario aceptados/aprobados, el backend intenta completar automaticamente la tarea USER_SUPPORTS_2. Cuando alcanza 5, hace lo mismo con USER_SUPPORTS_5. Para apoyos de organizacion, la tarea ORG_SUPPORTS se completa automaticamente al llegar a 2 apoyos aceptados/aprobados.linkSpanish, la UI muestra como fallback el perfil publico del candidato construido con publicElectionToken y action=candidate.CANDIDATE_CONFIRMED_AND_PUBLISHED cuando se pasa a CONFIRMED_AND_PUBLISHED.campusCourseStatus, evaluationStatus, calificacion y archivo Proctorio. Si el admin deja capacitacion o evaluacion en COMPLETED o NOT_APPLICABLE, la pantalla intenta marcar como completada la tarea correspondiente usando el token de nominacion.CONFIRMED_AND_PUBLISHED.randomOrderCandidates=false, la boleta respeta el orden persistido por candidateOrder en forma descendente, incluyendo las posiciones fijas.randomOrderCandidates=true, el backend mezcla solo las candidaturas normales publicadas y luego reinyecta la abstencion segun la posicion relativa derivada de su orden persistido.COMPLETE o que todas sus tareas esten completas no la publica por si sola: la inclusion publica sigue dependiendo del cambio administrativo a CONFIRMED_AND_PUBLISHED.candidatesSet=true y navega a Auditores. La implementacion actual no valida que exista al menos un candidato regular cargado ni que haya nominaciones aceptadas.ElectionsManagerApp, ElectionCandidatesDashboard, CandidatesListPanel, CandidatesHeaderActionsPanel, AddCandidatePanel, EditCandidateDashboard, ManageCandidateStatusDashboard, ManageCandidateTrainingDashboard, ManageCandidateTranslationsDashboard, ManageCandidateBiographyDashboard, ViewCandidateAnswersDashboard, DoNominationPage, NominationFormPanel, AcceptNominationConditionsPage, GenericAcceptNominationTasksPage, SupportNominationPage, GenericNominationOrgSupportsManagementPanel, GenericNominationUserSupportsManagementPanel, AuthorizedSupportContactEmailValidator, Candidate, CandidateType, CandidateStatus, Nomination, NominationStatus, SupportNomination, SupportStatus, CandidateDao, ElectionsManagerEJBBean, ElectionsPreNominationEJBBean y ElectionsManagerApp.properties.xml.