Saltar a contenido

Solicitantes

Modelos

models

Models for the Solicitantes app.

Contains Solicitante (applicant), Expediente (file/dossier), and Documento (document) models.

Solicitante

Bases: TenantModel

Solicitante de beca con todos los datos del formulario multi-paso.

Expediente

Bases: TenantModel

Expediente documental asociado a un solicitante.

recalcular_completitud

recalcular_completitud()

Recalcula y persiste el campo completo basándose en los documentos actualmente subidos al expediente.

Regla: un expediente está completo si tiene al menos un documento y TODOS los documentos que contiene están aprobados. No se exigen los 9 tipos porque varios son opcionales.

Documento

Bases: TenantModel

Documento individual dentro de un expediente.

clean

clean()

Valida formato y tamaño del archivo al guardar.

Portal público

views_portal

Vistas del portal público para solicitantes.

El portal opera de forma stateless (sin sesiones de usuario). Los datos intermedios se almacenan en cookies firmadas usando django.core.signing.

manifest

manifest(request: HttpRequest) -> JsonResponse

Manifest PWA exclusivo del portal publico.

service_worker

service_worker(request: HttpRequest) -> HttpResponse

Service worker con cache conservador para no persistir formularios sensibles.

inicio

inicio(request: HttpRequest) -> HttpResponse

GET: Renderiza la página de inicio del portal con el formulario de CURP.

validar_curp

validar_curp(request: HttpRequest) -> HttpResponse

POST: Valida el formato del CURP y consulta el servicio RENAPO Mock.

seleccionar_convocatoria

seleccionar_convocatoria(request: HttpRequest) -> HttpResponse

GET: Muestra convocatorias disponibles como radio buttons. POST: Almacena convocatoria seleccionada en cookie firmada y redirige al paso 1.

formulario_paso

formulario_paso(request: HttpRequest, paso: int) -> HttpResponse

Vista multi-paso para los 8 pasos del formulario.

GET: Muestra el formulario del paso actual con datos previos si existen. POST: Valida el formulario, almacena datos en cookie firmada y avanza al siguiente paso. En el paso 8, al completar exitosamente se crea el Solicitante y Expediente.

confirmacion

confirmacion(request: HttpRequest) -> HttpResponse

Pantalla de confirmación con folio generado. Muestra el folio al solicitante después de completar el registro.

consulta_estatus

consulta_estatus(request: HttpRequest) -> HttpResponse

GET: Muestra formulario de búsqueda por folio. POST: Busca el solicitante por folio y muestra su estatus.

Panel

views_panel

Vistas del panel administrativo para gestión de solicitantes y expedientes.

SolicitanteListView

Bases: PermisoRequeridoMixin, ListView

Listado de solicitantes con filtros por convocatoria y status.

SolicitanteDetailView

Bases: PermisoRequeridoMixin, DetailView

Vista detallada de un solicitante con timeline de auditoría.

ValidarIdentidadView

Bases: PermisoRequeridoMixin, View

Ejecuta validación RENAPO para un solicitante.

ExpedienteListView

Bases: PermisoRequeridoMixin, ListView

Listado de expedientes con indicador de completitud.

ExpedienteDetailView

Bases: PermisoRequeridoMixin, DetailView

Vista detallada de un expediente con checklist de documentos.

DocumentoAprobarView

Bases: PermisoRequeridoMixin, View

Aprueba un documento del expediente.

DocumentoRechazarView

Bases: PermisoRequeridoMixin, View

Rechaza un documento del expediente (requiere motivo).

DocumentoCorreccionView

Bases: PermisoRequeridoMixin, View

Solicita corrección de un documento.

DocumentoDescargarView

Bases: PermisoRequeridoMixin, View

Descarga segura de un documento del expediente.

Verifica que el documento pertenezca al tenant del usuario autenticado. Sirve el archivo desde el storage backend configurado (filesystem local o S3). En S3, redirige a una presigned URL para descarga directa.

build_solicitante_detail_context

build_solicitante_detail_context(solicitante)

Construye el contexto compartido para la vista y el modal de solicitante.

build_expediente_detail_context

build_expediente_detail_context(expediente)

Construye los indicadores y documentos para el tab de expediente.

solicitante_expediente_url

solicitante_expediente_url(solicitante_id)

URL canónica del expediente dentro de la ficha del solicitante.

Folios

folio

Servicio de generación de folios únicos para solicitudes de beca.

Formato: BEC-YYYY-XXXXXX (6 caracteres alfanuméricos uppercase + dígitos)

generar_folio

generar_folio() -> str

Genera un folio único con formato BEC-YYYY-XXXXXX.

Garantiza unicidad verificando contra la base de datos usando all_objects (sin filtro de tenant) para asegurar unicidad global.