- 1. Cómo usar esta guía
- 2. El modelo: quién es quién
- 3. Entrar y tu cuenta
- 4. Quién ve qué: los tres filtros
- 5. Altas, bajas y cambios de acceso
- 6. Roles: crear y ajustar
- 7. Alcance: reino y «de quién»
- 8. Catálogo completo de permisos
- 9. Módulos por organización
- 10. Propiedades y espacios
- 11. Publicar y compartir
- 12. Prospectos (CRM)
- 13. Ocupación
- 14. Contratos y firma
- 15. Finanzas
- 16. Tareas y calendario
- 17. Portal del inquilino
- 18. Tus listas configurables
- 19. Notificaciones
- 20. Auditoría
- 21. Identificadores
- 22. Mensajes y errores
- 23. Preguntas frecuentes
- A. Mapa de direcciones
- B. Datos para asistentes
1. Cómo usar esta guía
Este documento describe lo que la aplicación hace hoy. Las tablas de permisos, roles, listas configurables, avisos y direcciones no están escritas a mano: se generan desde el código de la propia aplicación, así que dicen la verdad y no lo que alguien recordaba.
Si eres una persona
Cada capacidad se explica como un flujo: qué permiso necesitas, los pasos en orden, qué ocurre por dentro y qué puede salir mal. Si buscas algo concreto, ve al capítulo 5 (accesos y usuarios) o usa el buscador de tu navegador: los títulos usan las mismas palabras que la pantalla.
Si vas a dárselo a un asistente de IA
El archivo es autosuficiente: no depende de imágenes ni de JavaScript, y al final lleva un bloque de datos legible por máquina con el catálogo exacto de permisos, los roles de fábrica con sus códigos, las listas configurables, los eventos de aviso y todas las direcciones. Súbelo completo y pregunta con naturalidad. Sugerencias que funcionan bien:
- «¿Qué permisos necesita alguien para aprobar un pago que reportó un inquilino?»
- «Arma un rol para un supervisor que sólo atienda la Casa Roma y no vea finanzas.»
- «¿Cuál es la diferencia entre finalizar una membresía y eliminar a la persona?»
- «Enumera los pasos exactos para dar acceso al portal a un inquilino que ya tiene cuenta.»
#alcance).»2. El modelo: quién es quién
Seis palabras explican casi todo el comportamiento del sistema. Vale la pena leerlas una vez.
| Concepto | Qué es | Por qué importa |
|---|---|---|
| Organización | Tu empresa dentro de la plataforma. | Todo dato de negocio pertenece a una organización. Nadie ve los datos de otra. |
| Persona | La identidad de un ser humano: su nombre, sus correos, sus teléfonos, sus direcciones. | Es global. La misma persona puede ser tu inquilina y empleada de otra organización, sin duplicarse. |
| Cuenta | Las credenciales de acceso: correo + contraseña. | Una persona tiene como mucho una cuenta. El correo es el usuario. |
| Membresía | El vínculo entre una persona y una organización. | Es la que lleva el rol y el alcance. Sin membresía vigente no hay acceso, aunque la cuenta exista. |
| Rol | Un paquete de permisos con nombre. | Se define por organización: tú decides qué significa «Administrador» en tu casa. |
| Permiso | Una capacidad concreta: ver propiedades, aprobar pagos… | Sin un permiso concedido, la respuesta es no. No hay accesos implícitos. |
La cadena completa, de arriba abajo:
Persona → Cuenta → Membresía (en una organización) → Rol → Permisos
y, en paralelo, Alcance: reino (¿en qué propiedades?) + relación (¿de quién?)
3. Entrar y tu cuenta
Iniciar sesión
Entras con tu correo y tu contraseña; no hay un nombre de usuario aparte.
Mi perfil
Tus datos personales viajan contigo: si trabajas con más de una organización, no los capturas dos veces.
/perfil/).
Editas tu nombre y datos, tu foto —que puedes recortar y volver a recortar
cuando quieras, sin subirla otra vez— y tus correos, teléfonos y direcciones,
marcando cuál es el principal de cada tipo.Cambiar de organización
4. Quién ve qué: los tres filtros
Cuando alguien no encuentra una pantalla o un registro, la causa es siempre uno de estos tres filtros, en este orden. Revísalos en orden y ahorrarás tiempo.
| # | Filtro | Quién lo controla | Síntoma cuando bloquea |
|---|---|---|---|
| 1 | ¿El módulo está encendido para tu organización? | El administrador de plataforma (cap. 9). | El módulo no aparece en el menú para nadie de la organización. |
| 2 | ¿Tu rol tiene el permiso? | Quien administre roles en tu organización (cap. 6). | El menú no lo muestra; si entras por dirección directa, «No tienes permiso». |
| 3 | ¿El registro está dentro de tu alcance? | Quien administre usuarios, al fijar el reino de la membresía (cap. 7). | Ves la pantalla pero la lista sale corta; un registro de otra propiedad responde «no encontrado». |
El orden exacto de la decisión
Para quien quiera el detalle —o para un asistente que deba razonar—, cada permiso se resuelve siempre en esta secuencia, y basta un «no» para detenerla:
- Superusuario de plataforma: pasa por encima de la autorización de la organización.
- Organización activa: sin una organización seleccionada no hay acceso.
- Membresía vigente en esa organización.
- Rol de esa membresía. Sin rol, no concede nada.
- Alcance de objeto: reino y relación, cuando la pregunta habla de un registro concreto.
- Excepciones por persona (previsto para más adelante; hoy no hay).
- Reglas del módulo (por ejemplo: un gasto ya pagado no se edita).
- Decisión final: sin un permiso concedido explícitamente, no.
Y una regla que conviene conocer: si un permiso aparece concedido y denegado a la vez, gana la denegación.
5. Altas, bajas y cambios de acceso
Este capítulo cubre todos los escenarios de «meter y sacar gente». Antes, dos reglas que explican por qué las pantallas se comportan como se comportan:
- La identidad es global y nunca se duplica. Si el correo ya existe en la plataforma, se reutiliza esa cuenta y se le añade una membresía. Nunca nace una segunda persona con el mismo correo.
- Nadie elige la contraseña de otro que ya existe. Puedes fijar la contraseña inicial de una cuenta nueva; para una cuenta que ya existía, lo único posible es generar una temporal que su dueño deberá cambiar.
5.0 De cero a operando: el orden recomendado
Si acabas de recibir una organización recién creada, este es el camino más corto para tenerla funcionando sin rehacer trabajo. Cada paso enlaza a su explicación completa.
- Entra y cambia tu contraseña temporal. Completa tu perfil.
- Ajusta lo general (Administración → General): nombre legal, país, zona horaria, moneda y las reglas de prorrateo de la renta. Hazlo antes de cobrar nada: el prorrateo del primer mes depende de ellas.
- Pon tu marca (Administración → Marca): colores, logo y tipografía. Aparecen en la aplicación, en las páginas donde firman tus clientes, en los anuncios públicos y en el PDF de los contratos.
- Revisa tus listas (Catálogos). Vienen sembradas con opciones sensatas; ajusta las que uses de verdad —etapas del CRM, métodos de pago, tipos de espacio— y desactiva el resto. Es más fácil ahora que con datos encima.
- Da de alta tus propiedades y sus espacios (cap. 10), con su renta y su depósito esperado.
- Da de alta a tu equipo (5.2) con el rol que le toque, y limita el alcance de quien deba ver sólo una propiedad.
- Captura las ocupaciones vigentes (cap. 13): quién vive dónde, desde cuándo y con qué día de pago.
- Genera la renta del periodo (cap. 15) y comprueba que los montos y las fechas salen como esperas.
- Prepara tu plantilla de contrato (cap. 14).
- Dales acceso al portal a tus inquilinos (5.8) y revisa antes en Administración → Notificaciones quién recibe cada aviso.
5.1 Crear una organización
Dar de alta una organización nueva
Requiere: superusuario de plataforma. Pantalla:
/plataforma/organizaciones/nueva/
- Escribe el nombre y el prefijo (2 a 5 letras o dígitos en
mayúscula, por ejemplo
RRG). - Indica el correo y el nombre de quien será su primer administrador.
- Guarda. En un solo paso la organización queda lista para operar: se siembran sus listas configurables y sus ocho roles de fábrica, se crea (o se enlaza) la cuenta de esa persona y se le da la membresía de Organization Owner.
- Entrega la contraseña temporal que muestra la pantalla. Sólo se enseña una vez.
RRG-PRP-00001) y
esos identificadores sobreviven en reportes y contratos firmados. Elígelo con calma.5.2 Dar de alta a alguien de tu equipo
Agregar un miembro a tu organización
Requiere: administration.manage_users. Pantalla:
Administración → Miembros (/org/miembros/)
- «Agregar miembro» → escribe su correo, su nombre y elige el rol.
- Si la cuenta es nueva puedes escribir una contraseña inicial; si lo dejas vacío se genera una temporal.
- Guarda y entrega la contraseña que aparece en el mensaje.
Qué pasa según el correo:
| Situación | Qué hace el sistema | Mensaje que verás |
|---|---|---|
| El correo no existe | Crea la cuenta y la persona, con la contraseña que diste o una temporal. En ambos casos deberá cambiarla al entrar. | «Cuenta creada para…» |
| El correo ya existe en la plataforma | Enlaza esa cuenta a tu organización. No toca su contraseña ni sus datos. | «Ya existe una cuenta con…: se enlazó a la organización» |
| Ya es miembro vigente aquí | Nada. No duplica la membresía. | «… ya es miembro activo de esta organización» |
La foto de perfil no se pide al agregar: se sube después, directamente desde
la fila de esa persona en la misma lista de Miembros — el mismo control de «Subir foto»/«Ajustar»
que cada quien usa en su propio perfil, disponible ahí para cualquier miembro vigente de tu
organización mientras tengas administration.manage_users.
5.3 Crear cuentas desde la plataforma
Crear una cuenta y, si quieres, ligarla a una organización
Requiere: superusuario de plataforma. Pantalla:
Plataforma → Cuentas (/plataforma/usuarios/)
- «Nueva cuenta» → correo y nombre. Opcionalmente elige ya una organización y un rol.
- La contraseña siempre se genera: un administrador de plataforma entrega una temporal, nunca decide la contraseña definitiva de alguien más.
- Desde la ficha de la cuenta (
/plataforma/usuarios/<id>/) puedes ligarla a otra organización con un rol, ver todas sus membresías y su último acceso, y generarle una contraseña temporal.
5.4 Cambiar el rol de alguien
Cambiar el rol de un miembro
Requiere: administration.manage_users. Pantalla:
Administración → Miembros
- Localiza a la persona en la tabla.
- En la columna Rol, elige otro y confirma.
- El cambio es inmediato: en su siguiente clic ya ve (o deja de ver) lo que corresponda. No hace falta que cierre sesión.
5.5 Limitar a alguien a ciertas propiedades
Fijar el alcance (reino) de un miembro
Requiere: administration.manage_users. Pantalla:
Administración → Miembros, columna Alcance
- Abre el selector de alcance de esa persona.
- Marca una o varias propiedades y guarda.
- A partir de ese momento sólo alcanza lo que cuelga de esas propiedades: sus espacios, sus ocupaciones, sus contratos, sus cargos, sus pagos, sus gastos, sus depósitos y sus tareas.
- Para devolverle la organización completa, desmarca todo: vacío significa «sin límite».
El detalle de qué cuenta como «dentro» está en el capítulo 7.
5.6 Restablecer una contraseña
Generar una contraseña temporal
Requiere: administration.reset_passwords — de fábrica, sólo el
Dueño. Pantalla: Administración → Miembros → Contraseña
- Pulsa «Contraseña» en la fila de la persona.
- El sistema genera una contraseña aleatoria y marca la cuenta para que deba cambiarla al entrar.
- Cópiala en ese momento: se muestra una sola vez y no se puede volver a ver.
5.7 Dar de baja a alguien
Finalizar una membresía
Requiere: administration.manage_users. Pantalla:
Administración → Miembros → Dar de baja
- Pulsa «Dar de baja» en su fila.
- La membresía queda con fecha de fin: pierde el acceso a esta organización de inmediato.
- Su cuenta sigue existiendo, sus datos siguen existiendo y todo su historial se conserva: los cargos que creó, los pagos que aprobó y la bitácora siguen citándola.
Alternativa más suave: cambiar su estado (Activo / Invitado / Suspendido / Inactivo, lista configurable). El estado es informativo para tu operación; el que corta el acceso de verdad es dar de baja.
5.8 Dar acceso a un inquilino
Crear el acceso al portal desde la ocupación
Requiere: administration.manage_users. Pantalla: Ocupación →
(abrir una) → «Crear acceso»
- Asegúrate de que la persona tenga un correo principal en su ficha.
- Abre su ocupación y pulsa «Crear acceso».
- Se reutiliza su persona (nunca se duplica), se crea o enlaza su cuenta y se le da la membresía con el rol Inquilino.
- Entrega la contraseña temporal. Al entrar la cambia y aterriza directo en su portal, no en la aplicación del equipo.
Qué pasa según el caso:
| Situación | Resultado |
|---|---|
| La persona no tiene correo | Error claro: agrégale uno antes de invitar. |
| No tiene cuenta y su correo está libre | Se crea la cuenta con contraseña temporal. |
| Ya tenía cuenta | Se reutiliza. No se toca su contraseña. |
| Su correo pertenece a otra identidad | Se rechaza y te lo dice: ese correo es de otra persona, hay que corregir el dato antes. |
| Ya tenía acceso | No duplica nada; te avisa que ya lo tenía. |
5.9 Escenarios que se preguntan seguido
| Quiero… | Haz esto |
|---|---|
| …que un inquilino además trabaje conmigo | No hay «dos accesos»: una persona tiene una membresía por organización. Cámbiale el rol de Inquilino a uno de equipo — dejará de ver el portal y verá la aplicación. Si necesitas ambas cosas a la vez, sepáralas en dos organizaciones. |
| …que alguien de otra organización entre a la mía | Agrégalo por su correo (5.2): se enlaza su cuenta existente y elige entre ambas organizaciones desde el menú superior. |
| …un contador que sólo vea números | Crea un rol con finance.*, reports.* y analytics.view,
sin permisos de administración. Parte del rol «Gerente de finanzas» y quítale las aprobaciones. |
| …un encargado de una sola casa | Rol operativo (por ejemplo «Gerente de propiedades») + alcance limitado a esa propiedad (5.5). |
| …que alguien apruebe el trabajo de otros pero no el suyo | En la matriz de su rol, pon el permiso correspondiente en alcance «Sólo las de otros» (cap. 7). |
| …quitarle a alguien el acceso hoy mismo | Dar de baja su membresía (5.7). Surte efecto al instante. |
| …readmitir a alguien que di de baja | Vuelve a agregarlo por su correo: se enlaza su cuenta de siempre, con su historial intacto y sin tocarle la contraseña. |
| …que dos personas vivan en el mismo espacio | Hoy se registra una ocupación por persona. Créale su ocupación a cada una sobre el mismo espacio; los co-inquilinos como un solo contrato compartido todavía no existen. |
| …entrar a la aplicación como una organización para dar soporte | Sólo un superusuario, desde Plataforma → la organización → «Entrar». Se sale con «Salir de la organización». Queda registrado en la bitácora. |
| …que alguien reciba los avisos de pagos sin poder aprobarlos | En Administración → Notificaciones, dirige esa fila a su rol (cap. 19). Recibir el aviso y tener el permiso son cosas distintas. |
5.10 Todas las acciones de acceso, con su permiso
Pantallas de Administración de tu organización:
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Cambiar de organización | /org/switch/ | personal: sus propias membresías | Botón (POST) |
| Administración (General) | /org/administracion/ | abre la sección que tu rol permita | Pantalla |
| Marca | /org/marca/ | administration.configure_organization | Pantalla |
| Miembros | /org/miembros/ | administration.manage_users | Pantalla |
| Agregar un miembro | /org/miembros/agregar/ | administration.manage_users | Botón (POST) |
| Cambiar el rol de un miembro | /org/miembros/<int:pk>/rol/ | administration.manage_users | Botón (POST) |
| Fijar el alcance de un miembro | /org/miembros/<int:pk>/alcance/ | administration.manage_users | Botón (POST) |
| Cambiar el estado de un miembro | /org/miembros/<int:pk>/estado/ | administration.manage_users | Botón (POST) |
| Dar de baja a un miembro | /org/miembros/<int:pk>/finalizar/ | administration.manage_users | Botón (POST) |
| Generar contraseña temporal | /org/miembros/<int:pk>/restablecer-contrasena/ | administration.reset_passwords | Botón (POST) |
Pantallas de Plataforma (sólo superusuarios):
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Inicio | /plataforma/ | superusuario de plataforma | Pantalla |
| Búsqueda entre organizaciones | /plataforma/buscar/ | superusuario de plataforma | Pantalla |
| Directorio de cuentas | /plataforma/usuarios/ | superusuario de plataforma | Pantalla |
| Crear una cuenta | /plataforma/usuarios/nuevo/ | superusuario de plataforma | Botón (POST) |
| Ficha de la cuenta | /plataforma/usuarios/<int:pk>/ | superusuario de plataforma | Pantalla |
| Generar contraseña temporal | /plataforma/usuarios/<int:pk>/restablecer-contrasena/ | superusuario de plataforma | Botón (POST) |
| Ligar la cuenta a una organización | /plataforma/usuarios/<int:pk>/ligar/ | superusuario de plataforma | Botón (POST) |
| Directorio global de propiedades | /plataforma/propiedades/ | superusuario de plataforma | Pantalla |
| Crear una organización | /plataforma/organizaciones/nueva/ | superusuario de plataforma | Pantalla |
| Ficha de la organización | /plataforma/organizaciones/<int:pk>/ | superusuario de plataforma | Pantalla |
| Encender o apagar módulos | /plataforma/organizaciones/<int:pk>/modulos/ | superusuario de plataforma | Botón (POST) |
| Agregar un miembro a esa organización | /plataforma/organizaciones/<int:pk>/miembros/agregar/ | superusuario de plataforma | Botón (POST) |
| Entrar como esa organización | /plataforma/organizaciones/<int:pk>/entrar/ | superusuario de plataforma | Botón (POST) |
| Salir de la organización | /plataforma/salir-de-organizacion/ | superusuario de plataforma | Botón (POST) |
| Generar contraseña temporal | /plataforma/organizaciones/<int:pk>/miembros/<int:membership_pk>/restablecer-contrasena/ | superusuario de plataforma | Botón (POST) |
Pantallas de tu propia cuenta, que no dependen de ningún permiso:
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Mi perfil | /perfil/ | personal: tu propio perfil | Pantalla |
| Editar mi perfil | /perfil/editar/ | personal: tu propio perfil | Pantalla |
| Subir mi foto | /perfil/avatar/ | personal: tu propio perfil | Botón (POST) |
| Recortar mi foto | /perfil/avatar/recortar/ | personal: tu propio perfil | Botón (POST) |
| Subir mi foto | /perfil/avatar/<int:person_pk>/ | personal: tu propio perfil | Botón (POST) |
| Recortar mi foto | /perfil/avatar/<int:person_pk>/recortar/ | personal: tu propio perfil | Botón (POST) |
| Agregar un dato de contacto | /perfil/contacto/<str:kind>/agregar/ | personal: tu propio perfil | Botón (POST) |
| Marcar contacto principal | /perfil/contacto/<str:kind>/<int:pk>/principal/ | personal: tu propio perfil | Botón (POST) |
| Eliminar un dato de contacto | /perfil/contacto/<str:kind>/<int:pk>/eliminar/ | personal: tu propio perfil | Botón (POST) |
6. Roles: crear y ajustar
Todo este capítulo requiere administration.manage_roles. Pantalla:
Administración → Roles (/roles/).
Los ocho roles de fábrica
Toda organización nace con estos roles ya configurados, para que nadie tenga que armar uno desde 110 casillas. Son tuyos: puedes renombrarlos y cambiarles los permisos.
| Rol | Para quién | Permisos | Qué abarca (patrón) |
|---|---|---|---|
Organization Ownerorganization-owner | Control total de la organización, incluida la administración. | 109 | *excepto portal.* |
Administratoradministrator | Operación y administración completas, excepto el diseño de roles. | 107 | *excepto administration.manage_roles, administration.reset_passwords, portal.* |
Property Managerproperty-manager | Gestión de propiedades, espacios, ocupación, contratos y tareas. | 46 | properties.*, spaces.*, occupancy.*, contracts.*, tasks.*, calendar.*, attachments.*, crm.view, people.view, reports.view |
Sales Agentsales-agent | Pipeline comercial: prospectos, visitas y seguimiento. | 23 | crm.*, people.view, people.create, people.edit, properties.view, spaces.view, occupancy.view, calendar.*, tasks.view, tasks.create, tasks.edit, attachments.view, attachments.create |
Finance Managerfinance-manager | Finanzas, reportes y aprobaciones de pagos/depósitos/gastos. | 22 | finance.*, reports.*, analytics.view, contracts.view, occupancy.view, properties.view, spaces.view, people.view, administration.approve_payments, administration.approve_refunds, administration.approve_deposits, administration.approve_expenses |
Viewerviewer | Solo lectura en todos los módulos. | 16 | *.viewexcepto portal.* |
Tenanttenant | Inquilino: portal propio con sus contratos, estado de cuenta y notificaciones. | 4 | portal.* |
Guestguest | Invitado: acceso mínimo (marcador para accesos temporales/limitados). | 0 | ninguno |
crm.* = todo sobre
prospectos; *.view = ver todo; * = absolutamente todo. Los permisos del
portal (portal.*) se excluyen a propósito de los roles del equipo: gobiernan una
pantalla que ningún rol de equipo abre.Qué alcanza cada rol, área por área
Rejilla de referencia rápida. Las letras son las acciones concedidas: V ver · C crear · E editar · A archivar · R restaurar · X eliminar. Las dos últimas filas no siguen ese ciclo, así que muestran cuántas facultades tiene de cuántas.
| Área | Organization Owner | Administrator | Property Manager | Sales Agent | Finance Manager | Viewer | Tenant | Guest |
|---|---|---|---|---|---|---|---|---|
| Propiedades | VCEARX | VCEARX | VCEARX | V | V | V | — | — |
| Espacios | VCEARX | VCEARX | VCEARX | V | V | V | — | — |
| Personas | VCEARX | VCEARX | V | VCE | V | V | — | — |
| Prospectos | VCEARX | VCEARX | V | VCEARX | — | V | — | — |
| Ocupación | VCEARX | VCEARX | VCEARX | V | V | V | — | — |
| Contratos | VCEARX | VCEARX | VCEARX | — | V | V | — | — |
| Finanzas | VCEARX | VCEARX | — | — | VCEARX | V | — | — |
| Tareas | VCEARX | VCEARX | VCEARX | VCE | — | V | — | — |
| Calendario | VCEARX | VCEARX | VCEARX | VCEARX | — | V | — | — |
| Analítica | VCEARX | VCEARX | — | — | V | V | — | — |
| Configuración | VCEARX | VCEARX | — | — | — | V | — | — |
| Notificaciones | VCEARX | VCEARX | — | — | — | V | — | — |
| Automatizaciones | VCEARX | VCEARX | — | — | — | V | — | — |
| Auditoría | VCEARX | VCEARX | — | — | — | V | — | — |
| Reportes | VCEARX | VCEARX | V | — | VCEARX | V | — | — |
| Adjuntos | VCEARX | VCEARX | VCEARX | VC | — | V | — | — |
| Administración | 12/12 | 10/12 | 0/12 | 0/12 | 4/12 | 0/12 | 0/12 | 0/12 |
| Portal del inquilino | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 0/4 |
Crear un rol
Rol nuevo desde cero
- Administración → Roles → escribe el nombre → «Crear».
- Nace sin permisos. Ábrelo y marca lo que deba poder hacer.
- Asígnalo a quien corresponda desde Miembros.
La matriz de permisos
Ajustar lo que puede hacer un rol
- Entra al rol. Verás sus permisos agrupados por área y, dentro de cada una, en orden de la acción más inocua a la más delicada: ver → crear → editar → archivar → restaurar → eliminar.
- Cada fila trae su nombre en español y un icono ⓘ que explica exactamente qué habilita. Marcada, lo puede hacer; sin marcar, no.
- En las áreas cuyos registros tienen dueño aparece además un selector de alcance: Todas / Sólo las propias / Sólo las de otros (cap. 7).
- Guarda. El cambio afecta de inmediato a todas las personas con ese rol.
Renombrar, restaurar y eliminar
| Acción | Qué hace | Restricciones |
|---|---|---|
| Renombrar | Cambia el nombre visible del rol. | Ninguna. Los permisos y las personas asignadas no se tocan. |
| Restaurar | Devuelve un rol de fábrica a los permisos con los que nació, deshaciendo todos tus ajustes. | Sólo para los roles de sistema (los ocho de fábrica). |
| Eliminar | Borra el rol y deja sin rol a quienes lo tenían (pierden todos sus permisos, no su membresía). | Sólo roles creados por ti. Pide teclear el identificador del rol para confirmar, y la pantalla lista antes a quién va a afectar. |
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Ver los roles | /roles/ | administration.manage_roles | Pantalla |
| Matriz de permisos del rol | /roles/<int:pk>/ | administration.manage_roles | Pantalla |
| Renombrar el rol | /roles/<int:pk>/renombrar/ | administration.manage_roles | Botón (POST) |
| Restaurar el rol de fábrica | /roles/<int:pk>/restaurar/ | administration.manage_roles | Botón (POST) |
| Eliminar el rol | /roles/<int:pk>/eliminar/ | administration.manage_roles | Pantalla |
7. Alcance: reino y «de quién»
El permiso dice qué puedes hacer. El alcance dice dónde y sobre lo de quién. Son dos ejes independientes y se combinan.
Reino: ¿en qué propiedades?
Cada membresía puede confinarse a un conjunto de propiedades. Vacío significa toda la organización, que es como se comporta cualquier membresía a la que no le hayas tocado nada. Se fija en Administración → Miembros → Alcance (5.5).
Un registro pertenece a una propiedad de la forma más natural en cada caso:
| Tipo de registro | ¿A qué propiedad pertenece? |
|---|---|
| Propiedad | La propiedad misma. |
| Espacio | La propiedad a la que pertenece. |
| Enlace público | La propiedad del enlace, o la del espacio. |
| properties.PropertyNote | property_id |
| properties.SpaceNote | space__property_id |
| Ocupación | La propiedad del espacio ocupado. |
| Contrato | La propiedad del espacio de su ocupación. |
| Prospecto | La propiedad (o el espacio) que le interesa. |
| Tarea | Su propiedad, la de su espacio o la de su ocupación. |
| Cargo | La propiedad del espacio de su ocupación. |
| Pago | La propiedad de su ocupación, o la del cargo que salda. |
| Gasto | Su propiedad o la de su espacio. |
| Depósito | La propiedad del espacio de su ocupación. |
Relación: ¿lo mío o lo de los demás?
En la matriz de roles, las áreas cuyos registros tienen dueño ofrecen tres opciones por permiso:
| Opción | Significa | Ejemplo de uso |
|---|---|---|
| Todas | Cualquier registro que su reino permita. | Lo normal. |
| Sólo las propias | Únicamente las suyas. | Un agente que sólo edita sus propios prospectos. |
| Sólo las de otros | Todas menos las suyas. | Aprobar el trabajo ajeno sin poder aprobar el propio. |
¿Qué cuenta como «propio»? Un registro es tuyo si está asignado a ti; y si no tiene responsable asignado, si tú lo creaste. Es deliberadamente personal, no por rol: dos personas con el mismo rol no son dueñas del trabajo de la otra, o «aprobar lo de otros» no significaría nada.
Recetas listas para usar
«Que apruebe las tareas de otros, pero no las suyas»
- Abre su rol.
- En el área Tareas, deja marcados ver y editar en alcance «Todas».
- Pon el permiso con el que se aprueba en «Sólo las de otros».
- Guarda. Ahora ve todo el tablero, pero sus propias tareas no le ofrecen la aprobación.
«Administrador de una sola casa»
- Dale un rol operativo completo (por ejemplo «Gerente de propiedades»).
- En Miembros → Alcance, marca sólo esa propiedad.
- Resultado: manda dentro de su casa —incluidas las tareas sin asignar de esa casa— y no ve absolutamente nada de las demás.
«Que vea, pero no toque, y sólo de dos edificios»
- Asígnale el rol Solo lectura.
- Fija su alcance a esas dos propiedades.
8. Catálogo completo de permisos
Son 110: dieciséis áreas de información × seis acciones, más once facultades administrativas, más tres del portal del inquilino. Esta tabla es la lista literal que verás en la matriz de roles.
Las seis acciones de cada área significan siempre lo mismo: ver (consultar listado y detalle), crear, editar, archivar (sacar de la operación diaria sin borrar), restaurar y eliminar (sale de las listas; el historial se conserva).
| Código | Permiso | Qué habilita | ¿Admite alcance? |
|---|---|---|---|
| Propiedades | |||
properties.view | Ver propiedades | Consultar el listado y el detalle de las propiedades. | sí |
properties.create | Crear propiedades | Dar de alta una propiedad. | sí |
properties.edit | Editar propiedades | Modificar los datos de las propiedades. | sí |
properties.archive | Archivar propiedades | Archivar las propiedades: dejan de aparecer en la operación diaria, sin borrarse. | sí |
properties.restore | Restaurar propiedades | Devolver a la operación las propiedades que se archivaron o eliminaron. | sí |
properties.delete | Eliminar propiedades | Eliminar las propiedades. El registro sale de las listas y su historial se conserva. | sí |
| Espacios | |||
spaces.view | Ver espacios | Consultar el listado y el detalle de los espacios. Los espacios son las unidades rentables dentro de una propiedad. | sí |
spaces.create | Crear espacios | Dar de alta un espacio. | sí |
spaces.edit | Editar espacios | Modificar los datos de los espacios. | sí |
spaces.archive | Archivar espacios | Archivar los espacios: dejan de aparecer en la operación diaria, sin borrarse. | sí |
spaces.restore | Restaurar espacios | Devolver a la operación los espacios que se archivaron o eliminaron. | sí |
spaces.delete | Eliminar espacios | Eliminar los espacios. El registro sale de las listas y su historial se conserva. | sí |
| Personas | |||
people.view | Ver personas | Consultar el listado y el detalle de las personas. Incluye sus correos, teléfonos y direcciones. | sí |
people.create | Crear personas | Dar de alta una persona. | sí |
people.edit | Editar personas | Modificar los datos de las personas. | sí |
people.archive | Archivar personas | Archivar las personas: dejan de aparecer en la operación diaria, sin borrarse. | sí |
people.restore | Restaurar personas | Devolver a la operación las personas que se archivaron o eliminaron. | sí |
people.delete | Eliminar personas | Eliminar las personas. El registro sale de las listas y su historial se conserva. | sí |
| Prospectos | |||
crm.view | Ver prospectos | Consultar el listado y el detalle de los prospectos. Incluye seguimientos, visitas y el tablero del embudo. | sí |
crm.create | Crear prospectos | Dar de alta un prospecto. | sí |
crm.edit | Editar prospectos | Modificar los datos de los prospectos. | sí |
crm.archive | Archivar prospectos | Archivar los prospectos: dejan de aparecer en la operación diaria, sin borrarse. | sí |
crm.restore | Restaurar prospectos | Devolver a la operación los prospectos que se archivaron o eliminaron. | sí |
crm.delete | Eliminar prospectos | Eliminar los prospectos. El registro sale de las listas y su historial se conserva. | sí |
| Ocupación | |||
occupancy.view | Ver ocupaciones | Consultar el listado y el detalle de las ocupaciones. La ocupación es quién ocupa qué espacio y desde cuándo. | sí |
occupancy.create | Crear ocupaciones | Dar de alta una ocupación. | sí |
occupancy.edit | Editar ocupaciones | Modificar los datos de las ocupaciones. | sí |
occupancy.archive | Archivar ocupaciones | Archivar las ocupaciones: dejan de aparecer en la operación diaria, sin borrarse. | sí |
occupancy.restore | Restaurar ocupaciones | Devolver a la operación las ocupaciones que se archivaron o eliminaron. | sí |
occupancy.delete | Eliminar ocupaciones | Eliminar las ocupaciones. El registro sale de las listas y su historial se conserva. | sí |
| Contratos | |||
contracts.view | Ver contratos | Consultar el listado y el detalle de los contratos. Incluye las plantillas de contrato. | sí |
contracts.create | Crear contratos | Dar de alta un contrato. | sí |
contracts.edit | Editar contratos | Modificar los datos de los contratos. | sí |
contracts.archive | Archivar contratos | Archivar los contratos: dejan de aparecer en la operación diaria, sin borrarse. | sí |
contracts.restore | Restaurar contratos | Devolver a la operación los contratos que se archivaron o eliminaron. | sí |
contracts.delete | Eliminar contratos | Eliminar los contratos. El registro sale de las listas y su historial se conserva. | sí |
contracts.resend_for_signature | Reeditar y reenviar a firma | Corregir los datos de llenado de un contrato generado mientras falte al menos una firma. Reinicia las firmas ya puestas (tendrán que firmar de nuevo) y vuelve a notificar a todas las partes. | sí |
| Finanzas | |||
finance.view | Ver finanzas | Consultar el listado y el detalle de las finanzas. Incluye cargos, pagos, gastos, cuentas y depósitos. | sí |
finance.create | Crear finanzas | Dar de alta un registro de finanzas. | sí |
finance.edit | Editar finanzas | Modificar los datos de las finanzas. | sí |
finance.archive | Archivar finanzas | Archivar las finanzas: dejan de aparecer en la operación diaria, sin borrarse. | sí |
finance.restore | Restaurar finanzas | Devolver a la operación las finanzas que se archivaron o eliminaron. | sí |
finance.delete | Eliminar finanzas | Eliminar las finanzas. El registro sale de las listas y su historial se conserva. | sí |
| Tareas | |||
tasks.view | Ver tareas | Consultar el listado y el detalle de las tareas. Sirve para cualquier pendiente del equipo, no sólo de mantenimiento. | sí |
tasks.create | Crear tareas | Dar de alta una tarea. | sí |
tasks.edit | Editar tareas | Modificar los datos de las tareas. | sí |
tasks.archive | Archivar tareas | Archivar las tareas: dejan de aparecer en la operación diaria, sin borrarse. | sí |
tasks.restore | Restaurar tareas | Devolver a la operación las tareas que se archivaron o eliminaron. | sí |
tasks.delete | Eliminar tareas | Eliminar las tareas. El registro sale de las listas y su historial se conserva. | sí |
| Calendario | |||
calendar.view | Ver calendario | Consultar el listado y el detalle de el calendario. Reúne vencimientos de tareas, visitas y entradas y salidas de inquilinos. | — |
calendar.create | Crear calendario | Dar de alta un evento del calendario. | — |
calendar.edit | Editar calendario | Modificar los datos de el calendario. | — |
calendar.archive | Archivar calendario | Archivar el calendario: dejan de aparecer en la operación diaria, sin borrarse. | — |
calendar.restore | Restaurar calendario | Devolver a la operación el calendario que se archivaron o eliminaron. | — |
calendar.delete | Eliminar calendario | Eliminar el calendario. El registro sale de las listas y su historial se conserva. | — |
| Analítica | |||
analytics.view | Ver analítica | Consultar el listado y el detalle de la analítica. Son las gráficas e indicadores del panel. | — |
analytics.create | Crear analítica | Dar de alta un elemento de analítica. | — |
analytics.edit | Editar analítica | Modificar los datos de la analítica. | — |
analytics.archive | Archivar analítica | Archivar la analítica: dejan de aparecer en la operación diaria, sin borrarse. | — |
analytics.restore | Restaurar analítica | Devolver a la operación la analítica que se archivaron o eliminaron. | — |
analytics.delete | Eliminar analítica | Eliminar la analítica. El registro sale de las listas y su historial se conserva. | — |
| Configuración | |||
settings.view | Ver configuración | Consultar el listado y el detalle de la configuración. | — |
settings.create | Crear configuración | Dar de alta un ajuste de configuración. | — |
settings.edit | Editar configuración | Modificar los datos de la configuración. | — |
settings.archive | Archivar configuración | Archivar la configuración: dejan de aparecer en la operación diaria, sin borrarse. | — |
settings.restore | Restaurar configuración | Devolver a la operación la configuración que se archivaron o eliminaron. | — |
settings.delete | Eliminar configuración | Eliminar la configuración. El registro sale de las listas y su historial se conserva. | — |
| Notificaciones | |||
notifications.view | Ver notificaciones | Consultar el listado y el detalle de las notificaciones. | — |
notifications.create | Crear notificaciones | Dar de alta una notificación. | — |
notifications.edit | Editar notificaciones | Modificar los datos de las notificaciones. | — |
notifications.archive | Archivar notificaciones | Archivar las notificaciones: dejan de aparecer en la operación diaria, sin borrarse. | — |
notifications.restore | Restaurar notificaciones | Devolver a la operación las notificaciones que se archivaron o eliminaron. | — |
notifications.delete | Eliminar notificaciones | Eliminar las notificaciones. El registro sale de las listas y su historial se conserva. | — |
| Automatizaciones | |||
automation.view | Ver automatizaciones | Consultar el listado y el detalle de las automatizaciones. | — |
automation.create | Crear automatizaciones | Dar de alta una automatización. | — |
automation.edit | Editar automatizaciones | Modificar los datos de las automatizaciones. | — |
automation.archive | Archivar automatizaciones | Archivar las automatizaciones: dejan de aparecer en la operación diaria, sin borrarse. | — |
automation.restore | Restaurar automatizaciones | Devolver a la operación las automatizaciones que se archivaron o eliminaron. | — |
automation.delete | Eliminar automatizaciones | Eliminar las automatizaciones. El registro sale de las listas y su historial se conserva. | — |
| Auditoría | |||
audit.view | Ver auditoría | Consultar el listado y el detalle de la bitácora de auditoría. La bitácora sólo se agrega: nadie puede alterarla. | — |
audit.create | Crear auditoría | Dar de alta un registro de auditoría. | — |
audit.edit | Editar auditoría | Modificar los datos de la bitácora de auditoría. | — |
audit.archive | Archivar auditoría | Archivar la bitácora de auditoría: dejan de aparecer en la operación diaria, sin borrarse. | — |
audit.restore | Restaurar auditoría | Devolver a la operación la bitácora de auditoría que se archivaron o eliminaron. | — |
audit.delete | Eliminar auditoría | Eliminar la bitácora de auditoría. El registro sale de las listas y su historial se conserva. | — |
| Reportes | |||
reports.view | Ver reportes | Consultar el listado y el detalle de los reportes. Incluye las exportaciones a CSV. | — |
reports.create | Crear reportes | Dar de alta un reporte. | — |
reports.edit | Editar reportes | Modificar los datos de los reportes. | — |
reports.archive | Archivar reportes | Archivar los reportes: dejan de aparecer en la operación diaria, sin borrarse. | — |
reports.restore | Restaurar reportes | Devolver a la operación los reportes que se archivaron o eliminaron. | — |
reports.delete | Eliminar reportes | Eliminar los reportes. El registro sale de las listas y su historial se conserva. | — |
| Adjuntos | |||
attachments.view | Ver adjuntos | Consultar el listado y el detalle de los archivos adjuntos. | sí |
attachments.create | Crear adjuntos | Dar de alta un archivo adjunto. | sí |
attachments.edit | Editar adjuntos | Modificar los datos de los archivos adjuntos. | sí |
attachments.archive | Archivar adjuntos | Archivar los archivos adjuntos: dejan de aparecer en la operación diaria, sin borrarse. | sí |
attachments.restore | Restaurar adjuntos | Devolver a la operación los archivos adjuntos que se archivaron o eliminaron. | sí |
attachments.delete | Eliminar adjuntos | Eliminar los archivos adjuntos. El registro sale de las listas y su historial se conserva. | sí |
| Administración | |||
administration.approve_payments | Aprobar pagos | Autorizar o rechazar los pagos que registra el equipo. Un pago sólo entra al saldo del inquilino cuando se aprueba. | — |
administration.approve_contracts | Aprobar contratos | Dar el visto bueno a un contrato antes de ponerlo a firma. | — |
administration.approve_refunds | Aprobar devoluciones | Autorizar la devolución de dinero a un inquilino o proveedor. | — |
administration.approve_deposits | Aprobar depósitos | Autorizar los movimientos del depósito en garantía: aportaciones, aplicaciones y devoluciones. | — |
administration.approve_expenses | Aprobar gastos | Autorizar un gasto para que pueda pagarse. Sin esta autorización el gasto queda pendiente. | — |
administration.execute_automation | Ejecutar automatizaciones | Lanzar los procesos automáticos configurados por la organización. | — |
administration.manage_workflows | Administrar flujos de trabajo | Definir los pasos por los que va pasando el trabajo de la organización. | — |
administration.manage_notifications | Administrar notificaciones | Decidir qué situaciones generan aviso y a quién le llega cada uno. | — |
administration.manage_roles | Administrar roles | Crear roles y decidir qué puede hacer cada uno. Es el permiso que reparte todos los demás: dáselo sólo a quien deba poder ampliar los accesos de otros. | — |
administration.manage_users | Administrar usuarios | Dar de alta al equipo, cambiar su rol y su alcance, dar de baja accesos y crear los accesos de los inquilinos. NO incluye cambiar contraseñas: eso es una facultad aparte. | — |
administration.reset_passwords | Restablecer contraseñas | Generar una contraseña temporal a un miembro de esta organización. Es la llave de la casa: quien la tiene puede entrar como cualquiera de su equipo, así que de fábrica sólo la lleva el dueño. Nunca alcanza a una cuenta de otra organización ni a un superusuario de la plataforma. | — |
administration.configure_organization | Configurar la organización | Editar los datos generales, la marca y las listas configurables de la organización. | — |
| Portal del inquilino | |||
portal.payments.create | Registrar pagos desde el portal | El inquilino puede reportar un pago con su monto, su fecha, una nota y hasta 3 imágenes. Llega como pago pendiente, sin aplicarse a ningún cargo: quien lo aprueba decide qué cargo salda. | — |
portal.help.create | Pedir ayuda con un pago | El inquilino puede señalar que algo está mal en un pago suyo, pendiente o ya aprobado. Se abre una tarea ligada a ese pago para que el equipo lo revise; el inquilino no puede modificar el pago por su cuenta. | — |
portal.tasks.create | Levantar un pendiente desde el portal | El inquilino puede reportar algo que necesita —una fuga, una reparación— y dirigirlo a uno de los equipos que la organización le abra. Llega sin asignar, para que alguien lo tome. | — |
portal.tasks.view | Seguir sus pendientes en el portal | El inquilino puede ver las solicitudes que él mismo levantó y en qué van. No ve las tareas internas de la organización. | — |
9. Módulos por organización
Seis módulos pueden encenderse o apagarse por organización: Propiedades, CRM, Ocupación, Contratos, Finanzas y Tareas. Si no hay nada configurado, están encendidos.
/plataforma/organizaciones/<id>/modulos/), sólo superusuarios.Un módulo apagado desaparece del menú y su dirección deja de responder para toda la organización, tenga quien tenga qué permiso. Lo que no se apaga: tu perfil, la administración, roles, catálogos, notificaciones, auditoría, el portal del inquilino y las páginas públicas de firma y de anuncios —esas siguen sirviendo aunque un módulo esté apagado, para que un enlace que ya diste a un cliente no se rompa.
10. Propiedades y espacios
La propiedad es el inmueble; el espacio es lo que rentas dentro de él (una recámara, un departamento, una oficina, un cajón). Casi todo lo demás cuelga de aquí.
Dar de alta una propiedad
Requiere: properties.create
- Propiedades → Nueva. Nombre, tipo, estado y modelo de tenencia salen de tus listas.
- Captura la dirección. Puedes ubicarla en el mapa buscando la dirección o arrastrando el marcador; las coordenadas se guardan y alimentan la página pública.
- Guarda: recibe su identificador (
PREFIJO-PRP-00001). - Sube fotos. Se comprimen en tu navegador antes de subir y el recorte es no destructivo: puedes recortarlas otra vez cuando quieras, sin volver a subirlas. Marca una como principal — es la que se ve en las tarjetas.
Dar de alta espacios
Requiere: spaces.create
- Desde el detalle de la propiedad → «Nuevo espacio».
- Tipo, estado, capacidad, renta y depósito esperado.
- La renta del espacio alimenta el indicador «Renta suponiendo ocupación total» y se propone al crear la ocupación y el contrato.
- Sus fotos funcionan igual que las de la propiedad.
Notas y documentos internos
Requiere: attachments.view para leerlos, attachments.create
para subirlos — además del permiso que abre la propiedad (properties.view) o
el espacio (spaces.view)
Tanto la propiedad como cada espacio tienen su propio archivero para la administración: el contrato de arrendamiento con el dueño del inmueble (que no tiene por qué ser nadie de tu organización), la escritura, el predial, el seguro, la entrega de llaves de una recámara en concreto, o simplemente una nota que la siguiente persona necesita leer.
- En la ficha de la propiedad o del espacio, «Nueva nota».
- Título (obligatorio), tipo —de tu lista «Tipo de nota o documento», que puedes editar— y el texto de la nota.
- El documento es opcional: una nota puede ir sola, y un documento puede ir sin más explicación que su título. Un archivo por nota (hasta 20 MB): si tienes tres documentos, son tres notas, y así cada uno conserva su título, su tipo, quién lo subió y cuándo.
- La ficha muestra las últimas cinco y enlaza al listado completo.
attachments.*, aparte de los permisos de propiedades y
espacios: quien pueda consultar el listado de propiedades no ve, por eso solo, el contrato con el
propietario. Si quieres cerrarlo a un rol, quítale attachments.view en la
matriz de roles. Nada de esto se publica nunca ni aparece en el portal del
inquilino, y el archivo sólo se entrega a quien tenga el permiso —una dirección adivinada no
sirve—.La ficha de la propiedad reúne: sus espacios en tarjetas, sus fotos, sus notas y documentos internos, sus enlaces públicos y una tabla de «Inquilinos actuales» (quién vive en qué, desde cuándo y en qué estado), con enlace a cada espacio. La ficha del espacio muestra la ocupación vigente con sus contratos, sus propias notas y, aparte, el historial de ocupaciones anteriores. Es el camino corto entre «esta casa» y «quién vive aquí y qué firmó».
Buscar y filtrar en cualquier listado
Todas las listas de la aplicación funcionan igual, así que lo que aprendas en una sirve en todas: buscador, filtros y exportar a CSV.
- El CSV exporta lo que estás viendo, con los filtros puestos — no la tabla entera. Si filtras y luego exportas, el archivo trae exactamente esas filas.
- Vacío significa TODO. Una lista abre completa y un filtro que dejas en blanco no filtra nada. No tienes que llenar nada para ver tus datos.
- Los filtros de varias opciones (etapa, origen, responsable, estado, propiedad) te dejan marcar varias a la vez: escribe para buscar dentro de la lista y ve marcando. Marcar dos etapas muestra las de las dos.
- Los rangos (fechas e importes) tienen dos casillas, «de» y «a», y cada una funciona sola: puedes poner sólo el mínimo, sólo el máximo, o los dos. Vacías las dos, no filtran.
- Aparece un botón «Limpiar» en cuanto hay algún filtro puesto, y si nada coincide la lista te lo dice en lugar de verse vacía sin explicación.
Lo que puedes filtrar en cada listado:
- Propiedades: nombre, ID o ciudad, y estado.
- Prospectos (cap. 12): prospecto o ID; etapa, origen y responsable, los tres de varias opciones; y presupuesto como rango.
- Ocupación (cap. 13): inquilino, espacio, propiedad o ID; estado de varias opciones; y rangos de entrada, salida y renta.
- Contratos (cap. 14): título, ID o inquilino; y estado y propiedad, los dos de varias opciones. La propiedad encuentra el contrato tanto si la lleva puesta como si la hereda de su ocupación, que es el caso normal de un contrato de arrendamiento.
- Miembros (cap. 5): persona por nombre, correo o ID; rol; alcance —incluida la opción «toda la organización», que es el alcance de quien no está confinado a propiedades—; estado; rango de alta; y vigencia.
- Cargos, pagos y gastos (cap. 15): además del buscador y el estado, el panel de finanzas filtra por propiedad, espacio y ocupación, y por rango de fechas.
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Ver el listado | /propiedades/ | properties.view | Pantalla |
| Dar de alta | /propiedades/nueva/ | properties.create | Pantalla |
| Ver la ficha | /propiedades/<int:pk>/ | properties.view | Pantalla |
| Editar | /propiedades/<int:pk>/editar/ | properties.edit | Pantalla |
| Eliminar | /propiedades/<int:pk>/eliminar/ | properties.delete | Pantalla |
| Agregar un espacio | /propiedades/<int:property_pk>/espacios/nuevo/ | spaces.create | Pantalla |
| Ficha del espacio | /propiedades/espacios/<int:pk>/ | spaces.view | Pantalla |
| Editar el espacio | /propiedades/espacios/<int:pk>/editar/ | spaces.edit | Pantalla |
| Eliminar el espacio | /propiedades/espacios/<int:pk>/eliminar/ | spaces.delete | Pantalla |
| Subir una imagen | /propiedades/imagenes/<str:kind>/<int:parent_pk>/subir/ | properties.edit o spaces.edit, según el tipo | Pantalla |
| Volver a recortar una imagen | /propiedades/imagenes/<str:kind>/<int:pk>/recortar/ | properties.edit o spaces.edit, según el tipo | Botón (POST) |
| Marcar la imagen principal | /propiedades/imagenes/<str:kind>/<int:pk>/principal/ | properties.edit o spaces.edit, según el tipo | Pantalla |
| Eliminar una imagen | /propiedades/imagenes/<str:kind>/<int:pk>/eliminar/ | properties.edit o spaces.edit, según el tipo | Pantalla |
| Ver las notas y documentos internos | /propiedades/notas/<str:kind>/<int:parent_pk>/ | attachments.view | Pantalla |
| Guardar una nota o un documento interno | /propiedades/notas/<str:kind>/<int:parent_pk>/nueva/ | attachments.create | Pantalla |
| Editar una nota interna | /propiedades/notas/<str:kind>/<int:pk>/editar/ | attachments.edit | Pantalla |
| Eliminar una nota interna | /propiedades/notas/<str:kind>/<int:pk>/eliminar/ | attachments.delete | Botón (POST) |
| Ver los enlaces públicos | /propiedades/compartir/ | properties.view | Pantalla |
| Crear un enlace público | /propiedades/compartir/nuevo/ | properties.edit | Botón (POST) |
| Pausar o reanudar un enlace | /propiedades/compartir/<int:pk>/activar/ | properties.edit | Botón (POST) |
| Eliminar un enlace | /propiedades/compartir/<int:pk>/eliminar/ | properties.edit | Botón (POST) |
11. Publicar y compartir
Puedes publicar espacios disponibles y compartirlos por un enlace que no exige que nadie inicie sesión.
Publicar un espacio y compartirlo
Requiere: spaces.edit para publicar; properties.edit para
los enlaces
- En el espacio, marca «Publicar en web». Es una decisión aparte de su estado: publicar es un acto deliberado, no una consecuencia de que esté disponible.
- En Propiedades → Compartir crea un enlace con alcance de organización, propiedad o espacio.
- Compártelo: copiar, WhatsApp o código QR.
- Quien lo abra ve fotos, datos, renta y mapa; y puede dejar sus datos en un formulario que crea un prospecto en tu CRM con origen «sitio web».
Un enlace se puede pausar (deja de funcionar sin borrarse), eliminar o darle fecha de caducidad. Cuenta cuántas veces se abrió.
12. Prospectos (CRM)
Tu embudo comercial: interesados que todavía no son inquilinos.
Del primer contacto a la ocupación
Requiere: crm.create, crm.edit
- Prospectos → Nuevo: nombre, correo, teléfono y origen. Si el correo ya existe, es la misma persona y se reutiliza —su historial queda junto—. Si lo que coincide es el teléfono, el sistema no decide solo: te enseña quién tiene ese número y eliges «es esta persona» o «crear una nueva», porque un teléfono se comparte y un correo no.
- Muévelo por el tablero arrastrando su tarjeta entre etapas, o cambia la etapa desde su ficha.
- Agenda seguimientos (con prioridad, se marcan como completados) y visitas (propiedad o espacio, quién atiende, estado de la visita).
- Todo queda en su línea de tiempo: alta, cambios de etapa, seguimientos y visitas, con fecha y autor.
- Cuando cierra, créale su ocupación. Si se pierde, registra el motivo: es lo que después te dice qué origen te trae mejores inquilinos.
El calendario de citas
Requiere: crm.view para verlo; crm.edit para agendar y
mover; crm.delete para eliminar una cita
En Prospectos → Calendario tienes la agenda de las visitas, con la hora y no sólo el día:
- Semana (la vista por omisión): siete columnas y una fila por hora, con cada cita en su hora exacta y del alto de su duración. Dos citas encimadas se ponen lado a lado, así que se ve de inmediato si un hueco está libre de verdad. También hay vista de mes para la foto completa.
- El color es el estado de la visita —agendada, confirmada, completada, cancelada, no asistió—. Los colores salen de tu lista «Estado de visita»: si cambias un color ahí, el calendario cambia. Arriba hay una leyenda y un filtro por estado, para esconder por ejemplo las canceladas.
- Agendar es un clic en el hueco: haces clic en el jueves a las 10 y el formulario abre con esa fecha y hora ya puestas; sólo eliges el prospecto. Desde la ficha de un prospecto, el botón «En el calendario» hace lo mismo con el prospecto ya elegido.
- Mover una cita o cambiar su estado es hacer clic en ella. Cada cambio de hora queda en la línea de tiempo del prospecto, con el antes y el después.
- Cada cita lleva su duración (de 30 minutos a 3 horas), qué le muestras —un espacio o toda la propiedad— y quién la atiende.
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Ver los prospectos | /crm/ | crm.view | Pantalla |
| Tablero del embudo | /crm/tablero/ | crm.view | Pantalla |
| Dar de alta un prospecto | /crm/nuevo/ | crm.create | Pantalla |
| Ficha del prospecto | /crm/<int:pk>/ | crm.view | Pantalla |
| Editar el prospecto | /crm/<int:pk>/editar/ | crm.edit | Pantalla |
| Cambiar de etapa | /crm/<int:pk>/etapa/ | crm.edit | Pantalla |
| Eliminar el prospecto | /crm/<int:pk>/eliminar/ | crm.delete | Pantalla |
| Agendar un seguimiento | /crm/<int:lead_pk>/seguimiento/ | crm.edit | Botón (POST) |
| Completar un seguimiento | /crm/seguimiento/<int:pk>/completar/ | crm.edit | Botón (POST) |
| Agendar una visita | /crm/<int:lead_pk>/visita/ | crm.edit | Botón (POST) |
| Calendario de citas | /crm/calendario/ | crm.view | Pantalla |
| Agendar una cita en el calendario | /crm/citas/nueva/ | crm.edit | Pantalla |
| Mover una cita o cambiar su estado | /crm/citas/<int:pk>/editar/ | crm.edit | Pantalla |
| Eliminar una cita | /crm/citas/<int:pk>/eliminar/ | crm.delete | Botón (POST) |
13. Ocupación
La ocupación es el corazón del sistema: quién ocupa qué espacio y desde cuándo. De ella cuelgan el contrato, los cargos, el depósito y el acceso al portal.
Dar de alta a un inquilino
Requiere: occupancy.create
- Ocupación → Nueva: elige espacio y persona (o créala ahí mismo).
- Fechas de entrada y, si la sabes, de salida. Estado desde tu lista de estados.
- Día de pago (1–31): es el ancla con la que se generan las rentas y se prorratea el primer mes.
- Depósito esperado: se propone el del espacio.
- Guarda. Desde su ficha ya puedes generar el contrato, abrir el depósito, ver sus cargos y crear su acceso al portal (5.8).
Corregir el correo o el teléfono del inquilino
Requiere: people.edit
En la ficha de la ocupación, tarjeta «Contacto del inquilino». Es donde se captura el correo que faltó al dar de alta, o se corrige el que quedó mal escrito.
- Sin correo no hay acceso al portal: el botón de crear el acceso te lo dice («Falta el correo») en lugar de fallar, y te lleva a esa tarjeta.
- Estás editando la identidad de la persona, que es global: el mismo correo
vale para el CRM, sus contratos y su portal. Por eso el permiso es
people.edity no el de ocupación. - Dejar un campo vacío no borra lo que ya está guardado, y un correo mal formado se rechaza en vez de guardarse: una dirección que parece estar y no funciona es peor que una vacía.
Terminar una ocupación
- Ficha de la ocupación → «Finalizar» → fecha de salida.
- Deja de contar como vigente: sale de «Inquilinos actuales» y pasa al historial del espacio.
- Su historial —contratos, cargos, pagos, depósito— se conserva completo.
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Ver el listado | /ocupacion/ | occupancy.view | Pantalla |
| Dar de alta | /ocupacion/nueva/ | occupancy.create | Pantalla |
| Ver la ficha | /ocupacion/<int:pk>/ | occupancy.view | Pantalla |
| Editar | /ocupacion/<int:pk>/editar/ | occupancy.edit | Pantalla |
| Finalizar | /ocupacion/<int:pk>/finalizar/ | occupancy.edit | Pantalla |
| Capturar el correo y el teléfono del inquilino | /ocupacion/<int:pk>/contacto/ | people.edit | Botón (POST) |
| Crear acceso al portal | /ocupacion/<int:pk>/invitar/ | administration.manage_users | Botón (POST) |
14. Contratos y firma
De la plantilla al contrato firmado
Requiere: contracts.create; para plantillas, contracts.edit
- Plantilla (Contratos → Plantillas): escribe tu contrato una vez e inserta campos desde el panel lateral (inquilino, propiedad, renta, fechas…). Puedes partir de una plantilla de arrendamiento de ejemplo y duplicar plantillas para hacer variantes.
- Generar: elige plantilla y, muy recomendable, la ocupación. Los campos se llenan solos con sus datos —y siguen siendo editables: lo que escribas manda.
- Revisa la vista previa: los campos sin llenar se ven a simple vista.
- Agrega firmantes (nombre y correo). Cada uno recibe su enlace personal.
- Comparte cada enlace: copiar, WhatsApp, correo o QR.
- El firmante abre su enlace sin iniciar sesión, lee, acepta y firma dibujando con el dedo o el ratón —o escribiendo su nombre—. La página lleva tu marca.
- Sigue el avance en la ficha: barra de progreso, quién firmó y cuándo, y una línea de tiempo. Cuando firman todos, se avisa a quien pueda editar contratos.
- Descarga el PDF: con tu logo, «Página X de Y» y las firmas estampadas al pie de todas las páginas.
Cancelar un contrato lo deja fuera de circulación y sus enlaces dejan de aceptar firmas. El estado del contrato sale de tu lista configurable de estados.
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Ver los contratos | /contratos/ | contracts.view | Pantalla |
| Generar un contrato | /contratos/nuevo/ | contracts.create | Pantalla |
| Vista previa | /contratos/vista-previa/ | contracts.view | Pantalla |
| Traer datos de la ocupación | /contratos/valores-ocupacion/ | contracts.view | Pantalla |
| Ficha del contrato | /contratos/<int:pk>/ | contracts.view | Pantalla |
| contract_edit | /contratos/<int:pk>/editar/ | contracts.resend_for_signature | Pantalla |
| Cancelar el contrato | /contratos/<int:pk>/cancelar/ | contracts.edit | Pantalla |
| Ver las plantillas | /contratos/plantillas/ | contracts.view | Pantalla |
| Crear una plantilla | /contratos/plantillas/nueva/ | contracts.edit | Pantalla |
| Editar la plantilla | /contratos/plantillas/<int:pk>/editar/ | contracts.edit | Pantalla |
| Duplicar la plantilla | /contratos/plantillas/<int:pk>/duplicar/ | contracts.edit | Pantalla |
| Firmar (enlace del firmante) | /contratos/firmar/<uuid:token>/ | pública: enlace secreto por firmante | Pantalla |
15. Finanzas
Cuatro ideas ordenan el módulo: se cobra con cargos, se recibe con pagos, se gasta con gastos, y todo movimiento aprobado queda asentado en un libro que no se edita (las correcciones se hacen con un movimiento inverso).
Cobrar la renta del periodo
Requiere: finance.create
- Finanzas → Ingresos → «Generar renta» abre una pantalla de selección, no genera nada todavía: lista cada periodo de renta que se podría cobrar y que aún no tiene cargo, agrupado por propiedad → espacio → ocupación, con casillas en cascada (marcar una propiedad marca sus espacios, sus ocupaciones y sus periodos) y un filtro para ver sólo los pasados, actuales o futuros (hasta 90 días adelante, para planear con tiempo).
- Cada periodo muestra el espacio, el inquilino, las fechas, el vencimiento, el cálculo explicado y el monto. Marcas exactamente los que quieres y pulsas «Generar los seleccionados» — nada se crea hasta ese clic.
- Es idempotente: un periodo que ya se generó no vuelve a aparecer en la lista, así que no hay manera de duplicar un cargo.
- El primer mes y el último se prorratean según las reglas que fijaste en Administración → General → Finanzas.
- Cada cargo explica su cálculo. Puedes ajustarlo con permiso; se conserva el importe calculado original junto al ajustado.
- Todo cargo nace Pendiente: no cuenta como cobrado ni entra al saldo hasta que registras el pago del inquilino y alguien con permiso lo aprueba.
Registrar y aprobar un pago
Registrar: finance.create · Aprobar o rechazar:
administration.approve_payments
- Desde el cargo → «Registrar pago»: monto, método, cuenta, referencia y comprobantes.
- Nace pendiente: todavía no cuenta como cobrado. Se avisa a quien apruebe pagos.
- En Finanzas → Pagos (pestaña Pendientes) lo apruebas o lo rechazas.
- Al aprobar: se asienta el ingreso en el libro (si hay cuenta) y el cargo recalcula su estado —pendiente, parcial o pagado—. Se le avisa al inquilino.
Registrar un gasto y pagarlo
Registrar: finance.create · Aprobar:
administration.approve_expenses
- Finanzas → Gastos → Nuevo: categoría, monto, fecha, propiedad (opcional) y comprobantes.
- Queda pendiente hasta que alguien lo apruebe.
- Aprobado, se puede pagar eligiendo la cuenta de salida; ahí se asienta en el libro.
- Un gasto ya pagado no se edita ni se elimina — está asentado.
Depósito en garantía
Requiere: administration.approve_deposits para los movimientos
- Ábrelo desde la ocupación con el monto esperado.
- Registra sus movimientos: recibido, retenido, devuelto, perdido.
- El estado se recalcula solo (pendiente, parcial, completo, devuelto, retenido) y el inquilino ve lo esperado, lo acumulado y cada movimiento en su portal.
Penalizaciones y recargos
- Define reglas (monto fijo o porcentaje, con días de gracia).
- Aplícalas desde Finanzas → Penalizaciones o sobre un cargo vencido.
- Se genera su propio cargo, explicado, y se le puede avisar al inquilino.
Además: cuentas (bancos, caja, monedero digital) con varios números por cuenta y saldo derivado del libro; presupuestos por categoría y periodo contra lo real; panel con cobrado, gastado, neto, por cobrar, renta suponiendo ocupación total, renta de la ocupación actual y gráficas; y filtros por fechas, propiedad, espacio y ocupación en todas las pantallas, con exportación a CSV.
Qué significa cada estado
| Registro | Estados de fábrica | Quién los mueve |
|---|---|---|
| Cargo | Pendiente → Parcial → Pagado · Cancelado | Se recalcula solo con los pagos aprobados; cancelar es manual. |
| Pago | Pendiente → Aprobado o Rechazado | Quien tenga administration.approve_payments. |
| Gasto | Pendiente → Aprobado → Pagado · Cancelado | Aprobar y pagar son dos permisos y dos momentos distintos. |
| Depósito | No requerido · Pendiente · Parcial · Completo · Devuelto · Retenido | Se recalcula con sus movimientos. |
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Panel de finanzas | /finanzas/ | finance.view | Pantalla |
| Ingresos (cargos) | /finanzas/cargos/ | finance.view | Pantalla |
| Crear un cargo | /finanzas/cargos/nuevo/ | finance.create | Pantalla |
| Generar la renta del periodo | /finanzas/cargos/generar-renta/ | finance.create | Pantalla |
| Ficha del cargo | /finanzas/cargos/<int:pk>/ | finance.view | Pantalla |
| Editar el cargo | /finanzas/cargos/<int:pk>/editar/ | finance.edit | Pantalla |
| Cancelar el cargo | /finanzas/cargos/<int:pk>/cancelar/ | finance.edit | Pantalla |
| Eliminar el cargo | /finanzas/cargos/<int:pk>/eliminar/ | finance.delete | Pantalla |
| Ajustar el monto calculado | /finanzas/cargos/<int:pk>/ajustar/ | finance.edit | Pantalla |
| Registrar un pago | /finanzas/cargos/<int:pk>/pago/ | finance.create | Pantalla |
| Cola de pagos | /finanzas/pagos/ | finance.view | Pantalla |
| Aplicar un pago a un cargo | /finanzas/pagos/<int:pk>/aplicar/ | administration.approve_payments | Pantalla |
| Aprobar un pago | /finanzas/pagos/<int:pk>/aprobar/ | administration.approve_payments | Pantalla |
| Rechazar un pago | /finanzas/pagos/<int:pk>/rechazar/ | administration.approve_payments | Pantalla |
| Ver los gastos | /finanzas/gastos/ | finance.view | Pantalla |
| Registrar un gasto | /finanzas/gastos/nuevo/ | finance.create | Pantalla |
| Ficha del gasto | /finanzas/gastos/<int:pk>/ | finance.view | Pantalla |
| Editar el gasto | /finanzas/gastos/<int:pk>/editar/ | finance.edit | Pantalla |
| Eliminar el gasto | /finanzas/gastos/<int:pk>/eliminar/ | finance.delete | Pantalla |
| Aprobar el gasto | /finanzas/gastos/<int:pk>/aprobar/ | administration.approve_expenses | Pantalla |
| Pagar el gasto | /finanzas/gastos/<int:pk>/pagar/ | administration.approve_expenses | Pantalla |
| Adjuntar comprobante | /finanzas/gastos/<int:pk>/comprobante/ | finance.edit | Pantalla |
| Ver las cuentas | /finanzas/cuentas/ | finance.view | Pantalla |
| Crear una cuenta | /finanzas/cuentas/nueva/ | finance.create | Pantalla |
| Ficha de la cuenta | /finanzas/cuentas/<int:pk>/ | finance.view | Pantalla |
| Editar la cuenta | /finanzas/cuentas/<int:pk>/editar/ | finance.edit | Pantalla |
| Agregar un número de cuenta | /finanzas/cuentas/<int:pk>/numero/agregar/ | finance.edit | Pantalla |
| Eliminar un número de cuenta | /finanzas/cuentas/numeros/<int:pk>/eliminar/ | finance.edit | Pantalla |
| Ver los presupuestos | /finanzas/presupuestos/ | finance.view | Pantalla |
| Crear un presupuesto | /finanzas/presupuestos/nuevo/ | finance.create | Pantalla |
| Abrir el depósito | /finanzas/depositos/abrir/ | finance.create | Pantalla |
| Ficha del depósito | /finanzas/depositos/<int:pk>/ | finance.view | Pantalla |
| Registrar un movimiento del depósito | /finanzas/depositos/<int:pk>/movimiento/ | finance.edit | Pantalla |
| Aplicar una penalización | /finanzas/penalizaciones/aplicar/ | finance.create | Pantalla |
16. Tareas y calendario
Trabajar con tareas
Requiere: tasks.create, tasks.edit
- Tareas → Nueva: título, tipo, prioridad, estado, responsable y vencimiento.
- Liga la tarea a una propiedad, espacio, ocupación o prospecto: así aparece en el contexto correcto y respeta el alcance de cada quien.
- Trabaja en lista (con filtros por estado y responsable) o en tablero, arrastrando entre columnas.
- Al asignar una tarea se avisa a su responsable.
- Las tareas vencidas se marcan solas.
El calendario (Tareas → Calendario, permiso calendar.view)
reúne en un solo mes los vencimientos de tareas, las visitas del CRM y las entradas y salidas de
inquilinos.
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Ver el listado | /tareas/ | tasks.view | Pantalla |
| Tablero | /tareas/tablero/ | tasks.view | Pantalla |
| Calendario | /tareas/calendario/ | calendar.view | Pantalla |
| Dar de alta | /tareas/nueva/ | tasks.create | Pantalla |
| Ver la ficha | /tareas/<int:pk>/ | tasks.view | Pantalla |
| Editar | /tareas/<int:pk>/editar/ | tasks.edit | Pantalla |
| settings | /tareas/configuracion/ | administration.manage_workflows | Pantalla |
| Cambiar el estado | /tareas/<int:pk>/estado/ | tasks.edit | Pantalla |
| change_step | /tareas/<int:pk>/paso/ | tasks.view | Pantalla |
| claim | /tareas/<int:pk>/tomar/ | tasks.view | Pantalla |
| add_note | /tareas/<int:pk>/nota/ | tasks.view | Pantalla |
| Eliminar | /tareas/<int:pk>/eliminar/ | tasks.delete | Pantalla |
17. Portal del inquilino
Lo que ve tu inquilino: sólo lo suyo, nunca la operación interna. Se le da acceso desde su ocupación (5.8).
Qué encuentra
- Inicio: dónde vive, su saldo y lo que tiene pendiente.
- Contratos: los suyos, y puede leerlos completos y bajarlos en PDF —el mismo documento y el mismo PDF que ves tú—, además de firmar el que esté pendiente de su firma. Firmar no le cierra la puerta: el contrato firmado sigue ahí.
- Estado de cuenta: sus cargos, sus pagos y su saldo.
- Depósitos: lo esperado, lo acumulado y cada movimiento.
- Mis solicitudes: en qué va cada ayuda que pidió.
- Avisos: contrato por firmar, pago aprobado o rechazado, penalización.
El inquilino reporta un pago
Requiere (en el rol Inquilino): portal.payments.create
- Portal → Estado de cuenta → «Reportar un pago».
- Captura monto, fecha y una nota —los tres obligatorios— y hasta 3 imágenes del comprobante, opcionales.
- Dice a qué corresponde, entre tres opciones: no lo relaciono con nada (un pago suelto o un adelanto), estoy pagando algo que debo —eligiendo uno de sus propios cargos pendientes, su renta o una penalización— o es para mi depósito. Sólo se le ofrecen sus cargos con saldo y sus depósitos: no hay identificador que pueda teclear para alcanzar los de otro.
- Eso es una declaración, no una aplicación: el pago llega a tu cola de Finanzas → Pagos como pendiente y nada toca el saldo de un cargo ni el depósito hasta que alguien lo apruebe. Se avisa a quien apruebe pagos.
- Tú confirmas o cambias el destino y lo apruebas o lo rechazas; el inquilino recibe el aviso. Si venía declarado para el depósito y lo reasignas a un cargo, deja de abonarse al depósito —el dinero no se cuenta dos veces—.
- Un pago declarado para el depósito se abona al depósito al aprobarlo, como
un movimiento «recibido» que dice de qué pago vino. Por eso aprobarlo exige, además del permiso
de aprobar pagos, el de
administration.approve_deposits: mover un depósito es una facultad aparte y esta ruta no es su puerta de atrás.
«Necesito ayuda» con un pago
Requiere (en el rol Inquilino): portal.help.create y, para seguirla,
portal.tasks.view
- En cualquier pago suyo —pendiente o ya aprobado— pulsa «Necesito ayuda».
- Escribe qué está mal (obligatorio) y adjunta una imagen si quiere.
- Se abre una tarea ligada a ese pago, sin asignar, en tu listado de Tareas, y se avisa a quien apruebe pagos.
- Él sigue el avance en «Mis solicitudes»; tú la trabajas y la cierras como cualquier otra tarea.
Cómo se apagan estas capacidades
Las tres son permisos normales del rol Inquilino y vienen activadas. Para quitarlas: Administración → Roles → Inquilino → apartado «Portal del inquilino» → desmarca. Desaparecen del portal de inmediato.
Qué NO puede hacer un inquilino
- Ver nada de otro inquilino, ni aunque vivan en el mismo edificio.
- Editar o borrar un pago que reportó —para eso está «Necesito ayuda»— ni decidir a qué cargo se aplica.
- Entrar a las pantallas del equipo: aunque escriba la dirección, no tiene sus permisos.
- Ver las tareas internas de la organización; sólo las solicitudes que él mismo levantó.
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Inicio | /portal/ | portal: sólo sus propios registros | Pantalla |
| Mis contratos | /portal/contratos/ | portal: sólo sus propios registros | Pantalla |
| Leer y descargar su contrato | /portal/contratos/<int:pk>/ | portal: sólo sus propios registros | Pantalla |
| Estado de cuenta | /portal/estado-cuenta/ | portal: sólo sus propios registros | Pantalla |
| Reportar un pago | /portal/pagos/nuevo/ | portal.payments.create | Pantalla |
| Pedir ayuda con un pago | /portal/pagos/<int:pk>/ayuda/ | portal.help.create | Pantalla |
| Mis solicitudes | /portal/solicitudes/ | portal.tasks.view | Pantalla |
| task_new | /portal/pendientes/nuevo/ | portal.tasks.create | Pantalla |
| task_close | /portal/pendientes/<int:pk>/cerrar/ | portal.tasks.create | Pantalla |
| Mis depósitos | /portal/depositos/ | portal: sólo sus propios registros | Pantalla |
18. Tus listas configurables
Casi ningún valor está escrito en el código: los tipos, estados, categorías y etapas son listas tuyas. Cada opción tiene código, etiqueta, color, orden, activo/inactivo y una predeterminada por lista.
/configuracion/),
permiso administration.configure_organization. Entra a una lista, agrega opciones,
edítalas, reordénalas, márca la predeterminada y desactiva las que ya no uses.Las de ámbito «Plataforma» son compartidas por todas las organizaciones (tú puedes añadir las tuyas); las demás son exclusivamente tuyas.
| Lista | Ámbito | ¿Agregar opciones? | Opciones de fábrica |
|---|---|---|---|
Génerogender | Plataforma (compartida) | sí | — |
Tipo de método de contactocontact_method_type | Tu organización | sí | — |
Estado de miembromembership_status | Tu organización | sí | Activo, Invitado, Suspendido, Inactivo |
Tipo de propiedadproperty_type | Tu organización | sí | Casa, Edificio de departamentos, Hotel, Hostal, Oficina, Bodega, Local comercial, Centro comercial, Torre residencial, Edificio industrial, Terreno, Uso mixto |
Estado de propiedadproperty_status | Tu organización | sí | Borrador, Disponible, Operando, Mantenimiento, Cerrada temporalmente, Vendida, Inactiva |
Modelo de propiedad (tenencia)ownership_model | Tu organización | sí | Propia, Administrada para terceros, Arrendada, Subarrendada, Sociedad de inversión, Activo corporativo, Propiedad gubernamental |
Tipo de espaciospace_type | Tu organización | sí | Recámara, Estudio, Departamento, Loft, Oficina, Suite, Local comercial, Estacionamiento, Bodega |
Estado de espaciospace_status | Tu organización | sí | Borrador, Disponible, Reservado, Ocupado, Limpieza, Mantenimiento, Inspección, Bloqueado |
Tipo de nota o documentonote_type | Tu organización | sí | Contrato con el propietario, Escritura, Predial, Seguro, Contrato de servicios, Permiso o licencia, Avalúo, Plano, Inventario, Entrega de llaves, Nota interna, Otro |
Prioridad de tareatask_priority | Tu organización | sí | Baja, Media, Alta, Urgente |
Estado de tareatask_status | Tu organización | sí | Pendiente, En proceso, Completado, Aprobado |
Tipo de tareatask_type | Tu organización | sí | General, Mantenimiento, Limpieza, Inspección, Administrativa, Seguimiento |
Categoría de gastoexpense_category | Tu organización | sí | Servicios, Mantenimiento, Limpieza, Nómina, Seguros, Impuestos, Hipoteca, Servicios profesionales, Marketing, Administrativo, Otro |
Categoría de ingresoincome_category | Tu organización | sí | Renta, Depósito, Penalización, Reservación, Servicio, Otro |
Tipo de cuenta financieraaccount_type | Tu organización | sí | Banco, Efectivo, Crédito, Débito, Hipoteca, Préstamo, Inversión, Billetera digital, Caja chica |
Institución financierafinancial_institution | Plataforma (compartida) | sí | — |
Tipo de transaccióntransaction_type | Tu organización | sí | Ingreso, Gasto, Transferencia, Depósito, Reembolso, Penalización, Ajuste, Interés, Comisión, Cancelación de deuda |
Método de pagopayment_method | Tu organización | sí | Efectivo, Transferencia, Depósito bancario, Tarjeta, Cheque, Billetera digital, Pago con QR |
Concepto de cargocharge_concept | Tu organización | sí | Renta, Depósito, Penalización, Venta, Otros |
Estado de cargocharge_status | Tu organización | sí | Pendiente, Parcial, Pagado, Cancelado |
Estado de pagopayment_status | Tu organización | sí | Pendiente, Aprobado, Rechazado, Información solicitada |
Estado de gastoexpense_status | Tu organización | sí | Pendiente, Aprobado, Pagado, Cancelado |
Tipo de penalizaciónpenalty_type | Tu organización | sí | Pago tardío, Limpieza, Daños, Ruido, Reglas de la casa, Estacionamiento, Llaves perdidas |
Tipo de movimiento de depósitodeposit_txn_kind | Tu organización | sí | Recibido, Retenido, Devuelto, Perdido |
Origen de prospectolead_source | Tu organización | sí | Facebook Marketplace, WhatsApp, Instagram, Referido, Sitio web, Llamada, Visita espontánea, Roomgo, Otro |
Etapa del pipeline (CRM)crm_stage | Tu organización | sí | Nuevo, Contactado, Interesado, Visita agendada, Visitó, Negociando, Reservado, Contrato, Ocupado, Perdido |
Motivo de pérdida (CRM)lost_reason | Tu organización | sí | Muy caro, Ubicación, Sin respuesta, Encontró otra opción, Presupuesto, Cancelado, Desconocido |
Estado de visita (CRM)visit_status | Tu organización | sí | Agendada, Confirmada, Completada, Cancelada, No asistió |
Estado de ocupaciónoccupancy_status | Tu organización | sí | Reservada, Activa, En aviso de salida, Finalizada, Cancelada |
Estado de depósitodeposit_status | Tu organización | sí | No requerido, Pendiente, Parcial, Completado, Reembolsado, Retenido |
Estado de contratocontract_status | Tu organización | sí | Borrador, Generado, Pendiente de firma, Activo, Vencido, Terminado, Cancelado |
Categoría de notificaciónnotification_category | Tu organización | sí | Información, Recordatorio, Advertencia, Aprobación, Asignación, Pago, Gasto, Contrato, Mantenimiento, Sistema |
Prioridad de notificaciónnotification_priority | Tu organización | sí | Baja, Normal, Alta, Crítica |
KPIs del paneldashboard_kpi | Tu organización | no (lista fija) | Ocupación, Ocupaciones vigentes, Ingresos del mes, Gastos del mes, Cargos por cobrar, Contratos por firmar, Prospectos activos, Tareas abiertas, Tareas vencidas, Depósitos pendientes, Propiedades, Espacios |
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Ver las listas configurables | /configuracion/ | administration.configure_organization | Pantalla |
| Ver una lista | /configuracion/catalogo/<slug:key>/ | administration.configure_organization | Pantalla |
| Agregar una opción | /configuracion/catalogo/<slug:key>/opcion/agregar/ | administration.configure_organization | Pantalla |
| Editar una opción | /configuracion/catalogo/<slug:key>/opcion/<int:pk>/editar/ | administration.configure_organization | Pantalla |
| Activar o desactivar una opción | /configuracion/catalogo/<slug:key>/opcion/<int:pk>/activar/ | administration.configure_organization | Pantalla |
| Marcar como predeterminada | /configuracion/catalogo/<slug:key>/opcion/<int:pk>/predeterminar/ | administration.configure_organization | Pantalla |
| Eliminar una opción | /configuracion/catalogo/<slug:key>/opcion/<int:pk>/eliminar/ | administration.configure_organization | Pantalla |
19. Notificaciones
Las notificaciones son dentro de la aplicación (la campana del menú superior). Todavía no salen por correo.
Quién recibe cada aviso
/notificaciones/reglas/), permiso administration.manage_notifications.
Hay una fila por situación: la apagas, o —en los avisos del equipo— la
diriges a roles concretos en lugar del reparto normal.| Situación | Evento | A quién le llega de fábrica | ¿Se puede redirigir a otros roles? |
|---|---|---|---|
| Contrato firmado por todas las partes | contract.signed | Quien tenga «contracts.edit» | sí |
| Pago registrado (pendiente de aprobar) | finance.payment_recorded | Quien tenga «administration.approve_payments» | sí |
| Gasto registrado (pendiente de aprobar) | finance.expense_created | Quien tenga «administration.approve_expenses» | sí |
| Tarea asignada | workitem.assigned | La persona asignada | no |
| El inquilino levantó un pendiente | portal.task_filed | Quien tenga «tasks.edit» | sí |
| El inquilino pidió ayuda con un pago | portal.help_requested | Quien tenga «administration.approve_payments» | sí |
| Contrato listo para firmar (al inquilino) | contract.created | El inquilino | no |
| Pago aprobado (al inquilino) | finance.payment_approved | El inquilino | no |
| Pago rechazado (al inquilino) | finance.payment_rejected | El inquilino | no |
| Penalización aplicada (al inquilino) | finance.penalty_applied | El inquilino | no |
Tus preferencias personales
Tus preferencias sólo pueden quitarte avisos, nunca darte los que tu rol no debería ver.
Todo lo que se puede hacer aquí
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Centro de notificaciones | /notificaciones/ | personal: sus propias notificaciones | Pantalla |
| Matriz de avisos | /notificaciones/reglas/ | administration.manage_notifications | Pantalla |
| Contador de no leídas | /notificaciones/no-leidas/ | personal: sus propias notificaciones | Pantalla |
| Marcar todas como leídas | /notificaciones/marcar-todas/ | personal: sus propias notificaciones | Botón (POST) |
| Mis preferencias de aviso | /notificaciones/preferencias/ | personal: sus propias preferencias | Botón (POST) |
| Abrir una notificación | /notificaciones/<int:pk>/abrir/ | personal: sus propias notificaciones | Pantalla |
| Marcar como leída | /notificaciones/<int:pk>/leer/ | personal: sus propias notificaciones | Botón (POST) |
| Archivar una notificación | /notificaciones/<int:pk>/archivar/ | personal: sus propias notificaciones | Botón (POST) |
20. Auditoría
El historial completo de la operación: cualquier cambio queda anotado con fecha y hora, quién lo hizo, sobre qué registro y qué cambió —valor anterior y nuevo.
/auditoria/),
permiso audit.view. Filtra por rango de fechas (por omisión, el mes en
curso), por tipo de movimiento y por persona, y exporta lo que
estés viendo.Qué queda registrado: altas, cambios (con valor anterior y nuevo), bajas, y los hechos de negocio que publican los módulos —un contrato firmado, un pago aprobado, una penalización aplicada—. Los accesos de un superusuario «entrando como» una organización también.
| Acción | Dirección | Quién puede | Cómo |
|---|---|---|---|
| Bitácora de auditoría | /auditoria/ | reports.view | Pantalla |
21. Identificadores
Cada registro lleva un identificador legible con la forma
PREFIJO-TIPO-NÚMERO — por ejemplo RRG-PRP-00001 es la
primera propiedad de la organización con prefijo RRG.
| Tipo | Qué es | Tipo | Qué es |
|---|---|---|---|
PRP | Propiedad | SPC | Espacio |
PRS | Persona | LED | Prospecto |
OCC | Ocupación | CTR | Contrato |
PAY | Pago | FIN | Cargo |
EXP | Gasto | DEP | Depósito |
ACC | Cuenta | TRN | Movimiento del libro |
TSK | Tarea | ROL | Rol |
Los números no se reciclan y cada organización tiene su propia numeración: tu
RRG-PAY-00007 no tiene nada que ver con el de otra. Úsalos al buscar y al hablar con
soporte: identifican un registro sin ambigüedad.
22. Mensajes y errores
Qué significan los mensajes que más aparecen y qué hacer con ellos.
| Mensaje | Qué pasó | Qué hacer |
|---|---|---|
| «No tienes permiso para esta acción» | Tu rol no tiene ese permiso. | Pídele a quien administre roles que lo revise (cap. 6). |
| Página «no encontrado» en un registro que existe | Está fuera de tu alcance. | Revisa el reino de tu membresía (cap. 7). |
| «Selecciona una organización» | No tienes organización activa: normalmente porque te quedaste sin membresías vigentes. | Que te vuelvan a dar de alta. |
| «Ya existe una cuenta con…: se enlazó a la organización» | Todo bien: se reutilizó una identidad existente. | Nada. Su contraseña sigue siendo la suya. |
| «El correo … ya pertenece a otra identidad» | Intentas dar acceso con un correo que es de otra persona. | Corrige el correo en la ficha de la persona. |
| «Ese prefijo ya está en uso» | Los prefijos no se reciclan, ni tras borrar la organización. | Elige otro. |
| «… no tiene una cuenta de acceso» | Existe como persona pero nunca se le dio acceso. | Créale el acceso primero (5.8). |
| «Tipo de archivo no permitido» / «pesa más de 8 MB» | La validación de subidas rechazó el archivo. | Sube imágenes (JPG, PNG, GIF, WEBP, HEIC) o PDF; los comprobantes del equipo admiten además TXT y Word. |
| «Este pago ya está aprobado; no se puede reasignar» | El libro y el saldo ya lo reflejan. | Corrige con un movimiento nuevo, no reescribiendo el anterior. |
23. Preguntas frecuentes
¿Puedo tener dos organizaciones con los mismos datos?
Las personas son globales y se comparten; propiedades, contratos y dinero no: pertenecen a una organización y no se ven entre sí.
Cambié un permiso, ¿cuándo aplica?
De inmediato, en el siguiente clic de esa persona. No hace falta que cierre sesión.
Si borro algo, ¿se pierde?
No: sale de las listas pero se conserva, y la bitácora guarda quién lo borró y cuándo.
¿Por qué no me llegan correos?
Porque todavía no hay proveedor de correo saliente configurado. Los avisos son dentro de la aplicación, y las contraseñas se entregan a mano (5.6).
¿Puedo dejar de ver una lista sin borrarla?
Sí: desactiva sus opciones en Catálogos. Los registros viejos las siguen mostrando.
¿Qué pasa si el inquilino paga de más o antes de tiempo?
Regístralo igual: un pago sin cargo queda «sin aplicar» hasta que alguien decida qué salda. Es el mismo camino que siguen los pagos que reporta el inquilino.
¿Se puede recuperar la base de datos si algo sale mal?
Sí. Hay respaldo diario automático de la base y de los archivos, con retención, y antes de cada actualización se toma uno fresco.
Apéndice A. Mapa de direcciones
Todas las pantallas de la aplicación. Útil para enlazar directo, para soporte y para que un asistente responda «¿dónde está X?».
Administración de plataforma (solo superusuarios)
| Dirección | Nombre interno |
|---|---|
/plataforma/ | platform_admin:home |
/plataforma/buscar/ | platform_admin:search |
/plataforma/usuarios/ | platform_admin:user_list |
/plataforma/usuarios/nuevo/ | platform_admin:user_create |
/plataforma/usuarios/<int:pk>/ | platform_admin:user_detail |
/plataforma/usuarios/<int:pk>/restablecer-contrasena/ | platform_admin:user_reset_password |
/plataforma/usuarios/<int:pk>/ligar/ | platform_admin:user_link_organization |
/plataforma/propiedades/ | platform_admin:property_list |
/plataforma/organizaciones/nueva/ | platform_admin:organization_create |
/plataforma/organizaciones/<int:pk>/ | platform_admin:organization_detail |
/plataforma/organizaciones/<int:pk>/modulos/ | platform_admin:organization_modules |
/plataforma/organizaciones/<int:pk>/miembros/agregar/ | platform_admin:organization_add_member |
/plataforma/organizaciones/<int:pk>/entrar/ | platform_admin:organization_enter |
/plataforma/salir-de-organizacion/ | platform_admin:organization_exit |
/plataforma/organizaciones/<int:pk>/miembros/<int:membership_pk>/restablecer-contrasena/ | platform_admin:member_reset_password |
Administración de la organización
| Dirección | Nombre interno |
|---|---|
/org/switch/ | organizations:switch |
/org/administracion/ | organizations:administration |
/org/marca/ | organizations:branding |
/org/miembros/ | organizations:members |
/org/miembros/agregar/ | organizations:member_add |
/org/miembros/<int:pk>/rol/ | organizations:member_set_role |
/org/miembros/<int:pk>/alcance/ | organizations:member_set_realm |
/org/miembros/<int:pk>/estado/ | organizations:member_set_status |
/org/miembros/<int:pk>/finalizar/ | organizations:member_end |
/org/miembros/<int:pk>/restablecer-contrasena/ | organizations:member_reset_password |
Roles y permisos
| Dirección | Nombre interno |
|---|---|
/roles/ | authorization:role_list |
/roles/<int:pk>/ | authorization:role_matrix |
/roles/<int:pk>/renombrar/ | authorization:role_rename |
/roles/<int:pk>/restaurar/ | authorization:role_restore |
/roles/<int:pk>/eliminar/ | authorization:role_delete |
Catálogos (listas configurables)
| Dirección | Nombre interno |
|---|---|
/configuracion/ | configuration:settings_home |
/configuracion/catalogo/<slug:key>/ | configuration:catalog_detail |
/configuracion/catalogo/<slug:key>/opcion/agregar/ | configuration:option_add |
/configuracion/catalogo/<slug:key>/opcion/<int:pk>/editar/ | configuration:option_edit |
/configuracion/catalogo/<slug:key>/opcion/<int:pk>/activar/ | configuration:option_toggle_active |
/configuracion/catalogo/<slug:key>/opcion/<int:pk>/predeterminar/ | configuration:option_make_default |
/configuracion/catalogo/<slug:key>/opcion/<int:pk>/eliminar/ | configuration:option_delete |
Mi perfil
| Dirección | Nombre interno |
|---|---|
/perfil/ | identity:profile |
/perfil/editar/ | identity:profile_edit |
/perfil/avatar/ | identity:avatar_upload |
/perfil/avatar/recortar/ | identity:avatar_recrop |
/perfil/avatar/<int:person_pk>/ | identity:avatar_upload |
/perfil/avatar/<int:person_pk>/recortar/ | identity:avatar_recrop |
/perfil/contacto/<str:kind>/agregar/ | identity:contact_add |
/perfil/contacto/<str:kind>/<int:pk>/principal/ | identity:contact_make_primary |
/perfil/contacto/<str:kind>/<int:pk>/eliminar/ | identity:contact_delete |
Propiedades y espacios
| Dirección | Nombre interno |
|---|---|
/propiedades/ | properties:list |
/propiedades/nueva/ | properties:create |
/propiedades/<int:pk>/ | properties:detail |
/propiedades/<int:pk>/editar/ | properties:edit |
/propiedades/<int:pk>/eliminar/ | properties:delete |
/propiedades/<int:property_pk>/espacios/nuevo/ | properties:space_create |
/propiedades/espacios/<int:pk>/ | properties:space_detail |
/propiedades/espacios/<int:pk>/editar/ | properties:space_edit |
/propiedades/espacios/<int:pk>/eliminar/ | properties:space_delete |
/propiedades/imagenes/<str:kind>/<int:parent_pk>/subir/ | properties:image_upload |
/propiedades/imagenes/<str:kind>/<int:pk>/recortar/ | properties:image_recrop |
/propiedades/imagenes/<str:kind>/<int:pk>/principal/ | properties:image_set_primary |
/propiedades/imagenes/<str:kind>/<int:pk>/eliminar/ | properties:image_delete |
/propiedades/notas/<str:kind>/<int:parent_pk>/ | properties:note_list |
/propiedades/notas/<str:kind>/<int:parent_pk>/nueva/ | properties:note_create |
/propiedades/notas/<str:kind>/<int:pk>/editar/ | properties:note_edit |
/propiedades/notas/<str:kind>/<int:pk>/eliminar/ | properties:note_delete |
/propiedades/compartir/ | properties:share_links |
/propiedades/compartir/nuevo/ | properties:share_link_create |
/propiedades/compartir/<int:pk>/activar/ | properties:share_link_toggle |
/propiedades/compartir/<int:pk>/eliminar/ | properties:share_link_delete |
Prospectos (CRM)
| Dirección | Nombre interno |
|---|---|
/crm/ | crm:lead_list |
/crm/tablero/ | crm:lead_kanban |
/crm/nuevo/ | crm:lead_create |
/crm/<int:pk>/ | crm:lead_detail |
/crm/<int:pk>/editar/ | crm:lead_edit |
/crm/<int:pk>/etapa/ | crm:lead_set_stage |
/crm/<int:pk>/eliminar/ | crm:lead_delete |
/crm/<int:lead_pk>/seguimiento/ | crm:followup_add |
/crm/seguimiento/<int:pk>/completar/ | crm:followup_done |
/crm/<int:lead_pk>/visita/ | crm:visit_add |
/crm/calendario/ | crm:visit_calendar |
/crm/citas/nueva/ | crm:visit_create |
/crm/citas/<int:pk>/editar/ | crm:visit_edit |
/crm/citas/<int:pk>/eliminar/ | crm:visit_delete |
Ocupación
| Dirección | Nombre interno |
|---|---|
/ocupacion/ | occupancy:list |
/ocupacion/nueva/ | occupancy:create |
/ocupacion/<int:pk>/ | occupancy:detail |
/ocupacion/<int:pk>/editar/ | occupancy:edit |
/ocupacion/<int:pk>/finalizar/ | occupancy:end |
/ocupacion/<int:pk>/contacto/ | occupancy:person_contact |
/ocupacion/<int:pk>/invitar/ | occupancy:invite |
Contratos
| Dirección | Nombre interno |
|---|---|
/contratos/ | contracts:contract_list |
/contratos/nuevo/ | contracts:contract_create |
/contratos/vista-previa/ | contracts:contract_preview |
/contratos/valores-ocupacion/ | contracts:occupancy_values |
/contratos/<int:pk>/ | contracts:contract_detail |
/contratos/<int:pk>/editar/ | contracts:contract_edit |
/contratos/<int:pk>/cancelar/ | contracts:contract_cancel |
/contratos/plantillas/ | contracts:template_list |
/contratos/plantillas/nueva/ | contracts:template_create |
/contratos/plantillas/<int:pk>/editar/ | contracts:template_edit |
/contratos/plantillas/<int:pk>/duplicar/ | contracts:template_duplicate |
/contratos/firmar/<uuid:token>/ | contracts:sign |
Finanzas
| Dirección | Nombre interno |
|---|---|
/finanzas/ | finance:dashboard |
/finanzas/cargos/ | finance:charge_list |
/finanzas/cargos/nuevo/ | finance:charge_create |
/finanzas/cargos/generar-renta/ | finance:generate_rent |
/finanzas/cargos/<int:pk>/ | finance:charge_detail |
/finanzas/cargos/<int:pk>/editar/ | finance:charge_edit |
/finanzas/cargos/<int:pk>/cancelar/ | finance:charge_cancel |
/finanzas/cargos/<int:pk>/eliminar/ | finance:charge_delete |
/finanzas/cargos/<int:pk>/ajustar/ | finance:charge_override |
/finanzas/cargos/<int:pk>/pago/ | finance:payment_create |
/finanzas/pagos/ | finance:payment_list |
/finanzas/pagos/<int:pk>/aplicar/ | finance:payment_apply |
/finanzas/pagos/<int:pk>/aprobar/ | finance:payment_approve |
/finanzas/pagos/<int:pk>/rechazar/ | finance:payment_reject |
/finanzas/gastos/ | finance:expense_list |
/finanzas/gastos/nuevo/ | finance:expense_create |
/finanzas/gastos/<int:pk>/ | finance:expense_detail |
/finanzas/gastos/<int:pk>/editar/ | finance:expense_edit |
/finanzas/gastos/<int:pk>/eliminar/ | finance:expense_delete |
/finanzas/gastos/<int:pk>/aprobar/ | finance:expense_approve |
/finanzas/gastos/<int:pk>/pagar/ | finance:expense_pay |
/finanzas/gastos/<int:pk>/comprobante/ | finance:expense_evidence_add |
/finanzas/cuentas/ | finance:account_list |
/finanzas/cuentas/nueva/ | finance:account_create |
/finanzas/cuentas/<int:pk>/ | finance:account_detail |
/finanzas/cuentas/<int:pk>/editar/ | finance:account_edit |
/finanzas/cuentas/<int:pk>/numero/agregar/ | finance:account_number_add |
/finanzas/cuentas/numeros/<int:pk>/eliminar/ | finance:account_number_delete |
/finanzas/presupuestos/ | finance:budget_list |
/finanzas/presupuestos/nuevo/ | finance:budget_create |
/finanzas/depositos/abrir/ | finance:deposit_open |
/finanzas/depositos/<int:pk>/ | finance:deposit_detail |
/finanzas/depositos/<int:pk>/movimiento/ | finance:deposit_movement_add |
/finanzas/penalizaciones/aplicar/ | finance:penalty_apply |
Tareas y calendario
| Dirección | Nombre interno |
|---|---|
/tareas/ | work:list |
/tareas/tablero/ | work:board |
/tareas/calendario/ | work:calendar |
/tareas/nueva/ | work:create |
/tareas/<int:pk>/ | work:detail |
/tareas/<int:pk>/editar/ | work:edit |
/tareas/configuracion/ | work:settings |
/tareas/<int:pk>/estado/ | work:set_status |
/tareas/<int:pk>/paso/ | work:change_step |
/tareas/<int:pk>/tomar/ | work:claim |
/tareas/<int:pk>/nota/ | work:add_note |
/tareas/<int:pk>/eliminar/ | work:delete |
Notificaciones
| Dirección | Nombre interno |
|---|---|
/notificaciones/ | notifications:center |
/notificaciones/reglas/ | notifications:rules |
/notificaciones/no-leidas/ | notifications:unread_count |
/notificaciones/marcar-todas/ | notifications:mark_all |
/notificaciones/preferencias/ | notifications:preferences |
/notificaciones/<int:pk>/abrir/ | notifications:open |
/notificaciones/<int:pk>/leer/ | notifications:mark_read |
/notificaciones/<int:pk>/archivar/ | notifications:archive |
Portal del inquilino
| Dirección | Nombre interno |
|---|---|
/portal/ | portal:home |
/portal/contratos/ | portal:contracts |
/portal/contratos/<int:pk>/ | portal:contract_detail |
/portal/estado-cuenta/ | portal:statement |
/portal/pagos/nuevo/ | portal:payment_new |
/portal/pagos/<int:pk>/ayuda/ | portal:help_request |
/portal/solicitudes/ | portal:requests |
/portal/pendientes/nuevo/ | portal:task_new |
/portal/pendientes/<int:pk>/cerrar/ | portal:task_close |
/portal/depositos/ | portal:deposits |
Auditoría
| Dirección | Nombre interno |
|---|---|
/auditoria/ | audit:log |
Páginas públicas compartidas
| Dirección | Nombre interno |
|---|---|
/d/<str:token>/ | public:listing |
/d/<str:token>/<int:pk>/ | public:space |
/d/<str:token>/<int:pk>/contacto/ | public:contact |
Acceso a la cuenta
| Dirección | Nombre interno |
|---|---|
/accounts/password/change/ | account_change_password |
/accounts/login/ | account_login |
/accounts/logout/ | account_logout |
/accounts/inactive/ | account_inactive |
/accounts/signup/ | account_signup |
/accounts/reauthenticate/ | account_reauthenticate |
/accounts/email/ | account_email |
/accounts/confirm-email/ | account_email_verification_sent |
/accounts/password/change/ | account_change_password |
/accounts/password/set/ | account_set_password |
/accounts/password/reset/ | account_reset_password |
/accounts/login/code/confirm/ | account_confirm_login_code |
/accounts/password/reset/key/done/ | account_reset_password_from_key_done |
/accounts/password/reset/done/ | account_reset_password_done |
Generales
| Dirección | Nombre interno |
|---|---|
/espacios/ | spaces:list |
/espacios/cuadricula/ | spaces:grid |
/espacios/tablero/ | spaces:board |
/espacios/<int:pk>/estado/ | spaces:quick_status |
/buscar/ | search |
/panel/ | home |
/ | landing |
Apéndice B. Datos para asistentes
El bloque siguiente es la versión legible por máquina de todo lo anterior: el catálogo exacto de los 110 permisos, los ocho roles con sus códigos, las 33 listas configurables con sus opciones de fábrica, los eventos de aviso, los módulos, la pertenencia a propiedad y todas las direcciones. Va incrustado en el archivo, así que basta con entregar este HTML completo.
<script type="application/json">: no se ve al
leer ni ocupa páginas en el PDF, pero cualquier asistente que reciba el archivo lo lee.Cómo se mantiene honesto: estos datos —y todas las tablas duras del documento—
se regeneran con manage.py sync_guide_data, que las lee del catálogo de permisos y de
los propios controles de cada pantalla. Una prueba de la suite
(core.test_guide_data) compara la guía contra el código en cada corrida: si alguien
agrega un permiso, un rol, una lista, un aviso o una pantalla y olvida actualizarla, la prueba
falla y dice exactamente qué quedó desfasado. manage.py sync_guide_data --check
responde lo mismo sin escribir nada.
BEGIN/END. Tras regenerar, vuelve a exportar el PDF (ver deploy/README.md).