Saltar a contenido

Core y tenants

Referencia de componentes transversales.

Modelos

models

Tenant

Bases: Model

Modelo que representa un tenant (gobierno/organizacion) en la plataforma.

logo_url property

logo_url

Retorna la URL del logo configurado para el tenant o el default.

plataforma_nombre property

plataforma_nombre

Retorna el nombre configurado para el tenant o SmartAid.

plataforma_slogan property

plataforma_slogan

Retorna el slogan configurado para el tenant o el default.

TenantModel

Bases: Model

Modelo base abstracto para aislamiento multi-tenant.

FeedbackTester

Bases: Model

Reportes de bugs enviados por testers desde la interfaz (solo DEBUG).

como_markdown

como_markdown() -> str

Genera el reporte en formato Markdown interpretable por una IA.

Middleware

middleware

TenantMiddleware — Extracts tenant from authenticated user and injects it into the request and thread-local storage for automatic QuerySet filtering.

PageTrackingMiddleware — Registra las últimas páginas (GET) visitadas en la sesión, solo cuando DEBUG=True, para el sistema de feedback de testers.

TenantMiddleware

TenantMiddleware(get_response)

Middleware that extracts the tenant from the authenticated user and stores it in both request.tenant and thread-local storage.

For unauthenticated requests, tenant is set to None.

PageTrackingMiddleware

Bases: MiddlewareMixin

Registra las últimas 15 páginas (GET) visitadas en la sesión (solo DEBUG).

Sirve al sistema de feedback de testers para reconstruir el camino que siguió el usuario antes de reportar un bug. Solo se activa con DEBUG=True para no impactar producción.

get_current_tenant

get_current_tenant()

Return the current tenant from thread-local storage, or None.

get_current_user

get_current_user()

Return the current user from thread-local storage, or None.

Acceso y auditoría

PermisoRequeridoMixin

Bases: LoginRequiredMixin, PermissionRequiredMixin

Mixin que verifica permisos nativos de Django para vistas del panel.

Uso

class MiVista(PermisoRequeridoMixin, ListView): permission_required = "convocatorias.view_convocatoria" # o tupla: permission_required = ("app.perm1", "app.perm2")

Events

Bases: Model

A proxy model for aggregating events together across tables and rendering diffs

check classmethod

check(**kwargs)

Allow proxy models to inherit this model and define their own fields that are dynamically pulled from context