- Configure workspace Git repository with comprehensive .gitignore - Add Odoo as submodule for ERP reference code - Include documentation: SETUP.md, GIT-STRUCTURE.md - Add gitignore templates for projects (backend, frontend, database) - Structure supports independent repos per project/subproject level Workspace includes: - core/ - Reusable patterns, modules, orchestration system - projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.) - knowledge-base/ - Reference code and patterns (includes Odoo submodule) - devtools/ - Development tools and templates - customers/ - Client implementations template 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
660 lines
20 KiB
Markdown
660 lines
20 KiB
Markdown
# 📊 ANÁLISIS DE MÓDULOS ODOO - REFERENCIA PARA PROYECTO INMOBILIARIA
|
|
|
|
**Proyecto:** Sistema de Administración de Obra e INFONAVIT
|
|
**Repositorio Odoo:** Community Edition v18.0
|
|
**Última actualización:** 2025-11-22
|
|
**Commit:** 1e3e1e13d3e161f8896c37c606b0472a49a19965
|
|
**Tamaño:** 1.2 GB
|
|
**Total de módulos:** 609
|
|
**Licencia:** LGPL v3
|
|
|
|
---
|
|
|
|
## 🎯 OBJETIVO
|
|
|
|
Documentar los módulos más relevantes de Odoo Community Edition que pueden servir como referencia para el desarrollo del Sistema de Administración de Obra e INFONAVIT.
|
|
|
|
---
|
|
|
|
## 📁 ESTRUCTURA GENERAL DE ODOO
|
|
|
|
```
|
|
odoo/
|
|
├── odoo/ # Core del framework
|
|
│ ├── api.py # Decoradores y sistema de API
|
|
│ ├── fields.py # Tipos de campos del ORM (236 KB)
|
|
│ ├── models.py # Sistema ORM de Odoo (341 KB)
|
|
│ ├── http.py # Controllers y rutas HTTP
|
|
│ ├── sql_db.py # Capa de base de datos
|
|
│ ├── tools/ # Herramientas y utilidades
|
|
│ ├── tests/ # Sistema de testing
|
|
│ └── modules/ # Gestión de módulos
|
|
│
|
|
├── addons/ # 609 módulos oficiales
|
|
│ ├── project/ # ⭐ Gestión de proyectos
|
|
│ ├── sale/ # ⭐ Ventas
|
|
│ ├── purchase/ # ⭐ Compras
|
|
│ ├── stock/ # ⭐ Inventario
|
|
│ ├── account/ # ⭐ Contabilidad
|
|
│ ├── hr/ # ⭐ Recursos Humanos
|
|
│ ├── crm/ # ⭐ CRM
|
|
│ └── ... # 602 módulos más
|
|
│
|
|
└── doc/ # Documentación oficial
|
|
```
|
|
|
|
---
|
|
|
|
## ⭐ MÓDULOS CLAVE PARA REFERENCIA
|
|
|
|
### 1. **PROJECT** - Gestión de Proyectos
|
|
|
|
**Ubicación:** `reference/odoo/addons/project/`
|
|
|
|
**Descripción:**
|
|
Módulo principal para organizar y planificar proyectos de construcción.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Gestión de tareas y subtareas
|
|
- ✅ Etapas personalizables (stages)
|
|
- ✅ Milestones (hitos)
|
|
- ✅ Integración con analytic accounts
|
|
- ✅ Portal de clientes
|
|
- ✅ Sistema de calificaciones (ratings)
|
|
- ✅ Actualizaciones de proyecto
|
|
- ✅ Burndown charts
|
|
|
|
**Estructura de archivos clave:**
|
|
```
|
|
project/
|
|
├── models/
|
|
│ ├── project_project.py # Modelo principal de proyecto
|
|
│ ├── project_task.py # Modelo de tareas
|
|
│ ├── project_milestone.py # Hitos del proyecto
|
|
│ ├── project_update.py # Actualizaciones de proyecto
|
|
│ └── project_task_type.py # Tipos/etapas de tareas
|
|
├── views/
|
|
│ ├── project_project_views.xml # Vistas de proyectos
|
|
│ └── project_task_views.xml # Vistas de tareas
|
|
└── security/
|
|
└── project_security.xml # Reglas de seguridad
|
|
```
|
|
|
|
**Patrones arquitectónicos observados:**
|
|
- Uso extensivo de `@api.depends` para campos computados
|
|
- Integración con `mail.thread` para tracking de cambios
|
|
- Portal views para acceso externo
|
|
- Sistema de stages con drag & drop en kanban
|
|
- Uso de `analytic.account` para costos
|
|
|
|
**Aplicabilidad al proyecto:** 🟢 ALTA
|
|
Ideal para gestionar proyectos de construcción, tareas de obra, y milestones de avance.
|
|
|
|
---
|
|
|
|
### 2. **PROJECT_PURCHASE** - Compras en Proyectos
|
|
|
|
**Ubicación:** `reference/odoo/addons/project_purchase/`
|
|
|
|
**Descripción:**
|
|
Integración entre proyectos y compras para monitorear gastos.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Vincular órdenes de compra a proyectos
|
|
- ✅ Tracking de costos por proyecto
|
|
- ✅ Integración con contabilidad analítica
|
|
|
|
**Estructura:**
|
|
```
|
|
project_purchase/
|
|
├── views/
|
|
│ ├── project_project.xml # Vista extendida de proyecto
|
|
│ └── purchase_order.xml # Vista extendida de compra
|
|
└── data/
|
|
└── project_purchase_demo.xml # Datos de demostración
|
|
```
|
|
|
|
**Aplicabilidad al proyecto:** 🟢 ALTA
|
|
Esencial para vincular compras de materiales a proyectos de obra.
|
|
|
|
---
|
|
|
|
### 3. **SALE** - Gestión de Ventas
|
|
|
|
**Ubicación:** `reference/odoo/addons/sale/`
|
|
|
|
**Descripción:**
|
|
Módulo completo para gestión de cotizaciones, órdenes de venta y contratos.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Cotizaciones y órdenes de venta
|
|
- ✅ Líneas de productos/servicios
|
|
- ✅ Términos y condiciones
|
|
- ✅ Portal de clientes para aprobar cotizaciones
|
|
- ✅ Facturación desde ventas
|
|
- ✅ Teams de ventas
|
|
|
|
**Estructura de archivos clave:**
|
|
```
|
|
sale/
|
|
├── models/
|
|
│ ├── sale_order.py # Órdenes de venta
|
|
│ ├── sale_order_line.py # Líneas de orden
|
|
│ └── res_partner.py # Extensión de partner
|
|
├── views/
|
|
│ └── sale_order_views.xml # Vistas de ventas
|
|
└── report/
|
|
└── sale_report.py # Reportes de ventas
|
|
```
|
|
|
|
**Patrones destacables:**
|
|
- Estado de orden con flujo bien definido (draft → sent → sale → done)
|
|
- Uso de `product.template` y `product.product`
|
|
- Integración con `account.move` para facturación
|
|
- Portal views con firma electrónica
|
|
|
|
**Aplicabilidad al proyecto:** 🟢 ALTA
|
|
Para contratos de venta de vivienda, cotizaciones de proyectos.
|
|
|
|
---
|
|
|
|
### 4. **PURCHASE** - Gestión de Compras
|
|
|
|
**Ubicación:** `reference/odoo/addons/purchase/`
|
|
|
|
**Descripción:**
|
|
Sistema completo de gestión de compras, proveedores y requisiciones.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Órdenes de compra
|
|
- ✅ Solicitudes de cotización (RFQ)
|
|
- ✅ Gestión de proveedores
|
|
- ✅ Confirmación de recepción
|
|
- ✅ Control de facturas de proveedor
|
|
|
|
**Estructura clave:**
|
|
```
|
|
purchase/
|
|
├── models/
|
|
│ ├── purchase_order.py # Órdenes de compra
|
|
│ ├── purchase_order_line.py # Líneas de compra
|
|
│ └── res_partner.py # Proveedores
|
|
├── views/
|
|
│ └── purchase_order_views.xml # Vistas de compras
|
|
└── wizard/
|
|
└── purchase_make_invoice.py # Asistente para facturas
|
|
```
|
|
|
|
**Aplicabilidad al proyecto:** 🟢 ALTA
|
|
Para compras de materiales, contratación de subcontratistas.
|
|
|
|
---
|
|
|
|
### 5. **STOCK** - Gestión de Inventario
|
|
|
|
**Ubicación:** `reference/odoo/addons/stock/`
|
|
|
|
**Descripción:**
|
|
Sistema completo de gestión de almacenes, inventario y logística.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Gestión de almacenes (warehouses)
|
|
- ✅ Ubicaciones de almacenamiento
|
|
- ✅ Movimientos de inventario (stock moves)
|
|
- ✅ Pickings (albaranes/guías)
|
|
- ✅ Trazabilidad de productos (lotes y series)
|
|
- ✅ Estrategias de reabastecimiento
|
|
- ✅ Inventario en tiempo real
|
|
|
|
**Estructura:**
|
|
```
|
|
stock/
|
|
├── models/
|
|
│ ├── stock_warehouse.py # Almacenes
|
|
│ ├── stock_location.py # Ubicaciones
|
|
│ ├── stock_move.py # Movimientos de stock
|
|
│ ├── stock_picking.py # Albaranes/guías
|
|
│ ├── stock_quant.py # Cantidades en stock
|
|
│ └── stock_lot.py # Lotes y series
|
|
├── views/
|
|
│ └── stock_views.xml # Vistas de inventario
|
|
└── report/
|
|
└── stock_report.py # Reportes de inventario
|
|
```
|
|
|
|
**Patrones arquitectónicos:**
|
|
- Uso de `stock.location` para estructura jerárquica de almacenes
|
|
- `stock.move` como registro de todos los movimientos
|
|
- `stock.quant` para cantidades reales en ubicaciones
|
|
- Estrategias FIFO/LIFO implementadas
|
|
|
|
**Aplicabilidad al proyecto:** 🟢 ALTA
|
|
Para inventario de materiales, control de almacenes en obra.
|
|
|
|
---
|
|
|
|
### 6. **ACCOUNT** - Contabilidad
|
|
|
|
**Ubicación:** `reference/odoo/addons/account/`
|
|
|
|
**Descripción:**
|
|
Sistema contable completo con plan de cuentas, facturas, pagos y reportes financieros.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Plan de cuentas (chart of accounts)
|
|
- ✅ Asientos contables (journal entries)
|
|
- ✅ Facturas de cliente y proveedor
|
|
- ✅ Pagos y conciliación bancaria
|
|
- ✅ Reportes financieros (balance, P&L)
|
|
- ✅ Multi-moneda
|
|
- ✅ Cuentas analíticas
|
|
|
|
**Estructura:**
|
|
```
|
|
account/
|
|
├── models/
|
|
│ ├── account_move.py # Asientos contables
|
|
│ ├── account_move_line.py # Líneas de asientos
|
|
│ ├── account_account.py # Plan de cuentas
|
|
│ ├── account_payment.py # Pagos
|
|
│ └── account_journal.py # Diarios contables
|
|
├── views/
|
|
│ └── account_views.xml # Vistas contables
|
|
└── report/
|
|
└── account_financial_report.py # Reportes financieros
|
|
```
|
|
|
|
**Aplicabilidad al proyecto:** 🟢 ALTA
|
|
Para contabilidad del proyecto, facturas, control financiero.
|
|
|
|
---
|
|
|
|
### 7. **HR** - Recursos Humanos
|
|
|
|
**Ubicación:** `reference/odoo/addons/hr/`
|
|
|
|
**Descripción:**
|
|
Gestión de empleados, departamentos, contratos y nómina.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Gestión de empleados
|
|
- ✅ Departamentos y puestos
|
|
- ✅ Contratos laborales
|
|
- ✅ Asistencia y permisos
|
|
- ✅ Organigrama
|
|
- ✅ Habilidades y competencias
|
|
|
|
**Módulos relacionados relevantes:**
|
|
- `hr_attendance` - Control de asistencia
|
|
- `hr_contract` - Contratos laborales
|
|
- `hr_timesheet` - Control de horas trabajadas
|
|
- `hr_expense` - Gastos de empleados
|
|
|
|
**Aplicabilidad al proyecto:** 🟡 MEDIA
|
|
Para gestión de personal de obra, asistencias, nómina.
|
|
|
|
---
|
|
|
|
### 8. **HR_CONTRACT** - Contratos Laborales
|
|
|
|
**Ubicación:** `reference/odoo/addons/hr_contract/`
|
|
|
|
**Descripción:**
|
|
Gestión de contratos de trabajo, salarios y renovaciones.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Definición de contratos
|
|
- ✅ Tipos de contrato
|
|
- ✅ Salarios y beneficios
|
|
- ✅ Fechas de inicio/fin
|
|
- ✅ Renovaciones automáticas
|
|
|
|
**Aplicabilidad al proyecto:** 🟡 MEDIA
|
|
Para contratos de empleados y subcontratistas.
|
|
|
|
---
|
|
|
|
### 9. **CRM** - Customer Relationship Management
|
|
|
|
**Ubicación:** `reference/odoo/addons/crm/`
|
|
|
|
**Descripción:**
|
|
Gestión de oportunidades de venta, pipeline y leads.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Gestión de leads/oportunidades
|
|
- ✅ Pipeline de ventas
|
|
- ✅ Actividades y seguimiento
|
|
- ✅ Conversión a cotización
|
|
- ✅ Reportes de rendimiento
|
|
|
|
**Aplicabilidad al proyecto:** 🟡 MEDIA
|
|
Para seguimiento de prospectos de venta de viviendas.
|
|
|
|
---
|
|
|
|
### 10. **MRP_SUBCONTRACTING** - Subcontratación
|
|
|
|
**Ubicación:** `reference/odoo/addons/mrp_subcontracting/`
|
|
|
|
**Descripción:**
|
|
Gestión de subcontratación de producción/manufactura.
|
|
|
|
**Características relevantes:**
|
|
- ✅ Gestión de subcontratistas
|
|
- ✅ Órdenes a subcontratistas
|
|
- ✅ Control de componentes enviados
|
|
- ✅ Recepción de productos terminados
|
|
- ✅ Portal para subcontratistas
|
|
|
|
**Estructura:**
|
|
```
|
|
mrp_subcontracting/
|
|
├── models/
|
|
│ ├── mrp_bom.py # Bill of Materials
|
|
│ ├── res_partner.py # Subcontratistas
|
|
│ └── stock_picking.py # Envíos a subcontratistas
|
|
├── views/
|
|
│ └── subcontracting_portal_views.xml # Portal
|
|
└── security/
|
|
└── mrp_subcontracting_security.xml # Seguridad
|
|
```
|
|
|
|
**Aplicabilidad al proyecto:** 🟢 ALTA
|
|
Para gestión de subcontratistas en obra (electricistas, plomeros, etc.)
|
|
|
|
---
|
|
|
|
## 🏗️ MÓDULOS ADICIONALES RELEVANTES
|
|
|
|
### Por Categoría
|
|
|
|
#### **Gestión de Proyectos y Obra**
|
|
- `project_stock` - Integración proyecto-inventario
|
|
- `project_account` - Integración proyecto-contabilidad
|
|
- `project_timesheet_holidays` - Integración con vacaciones
|
|
- `project_milestone` - Hitos de proyecto
|
|
|
|
#### **Compras e Inventario**
|
|
- `purchase_stock` - Integración compra-inventario
|
|
- `purchase_requisition` - Requisiciones de compra
|
|
- `stock_landed_costs` - Costos de importación
|
|
- `stock_picking_batch` - Procesamiento por lotes
|
|
|
|
#### **Contabilidad y Finanzas**
|
|
- `account_payment` - Gestión de pagos
|
|
- `analytic` - Contabilidad analítica (ESENCIAL para costos por proyecto)
|
|
- `account_tax_python` - Impuestos con Python
|
|
- `account_edi` - Facturación electrónica
|
|
|
|
#### **Recursos Humanos**
|
|
- `hr_attendance` - Control de asistencia
|
|
- `hr_timesheet` - Control de horas
|
|
- `hr_expense` - Gastos de empleados
|
|
- `hr_maintenance` - Mantenimiento de equipos
|
|
|
|
#### **Ventas y CRM**
|
|
- `sale_project` - Integración venta-proyecto
|
|
- `sale_crm` - Integración venta-CRM
|
|
- `sale_stock` - Integración venta-inventario
|
|
|
|
---
|
|
|
|
## 🔧 CORE DE ODOO - Archivos Clave
|
|
|
|
### **`odoo/api.py`** (63 KB)
|
|
Decoradores y sistema de API:
|
|
- `@api.model` - Método de clase
|
|
- `@api.depends(...)` - Campos computados con dependencias
|
|
- `@api.onchange(...)` - Eventos onChange en UI
|
|
- `@api.constrains(...)` - Validaciones
|
|
|
|
**Ejemplo de uso:**
|
|
```python
|
|
@api.depends('order_line.price_total')
|
|
def _compute_amount(self):
|
|
for order in self:
|
|
order.amount_total = sum(order.order_line.mapped('price_total'))
|
|
```
|
|
|
|
### **`odoo/fields.py`** (236 KB)
|
|
Tipos de campos del ORM:
|
|
- `Char`, `Text`, `Integer`, `Float`, `Boolean`
|
|
- `Date`, `Datetime`
|
|
- `Many2one`, `One2many`, `Many2many`
|
|
- `Selection`, `Binary`, `Html`
|
|
- `Monetary` (para monedas)
|
|
|
|
**Ejemplo de uso:**
|
|
```python
|
|
name = fields.Char(string='Name', required=True)
|
|
amount = fields.Monetary(string='Amount', currency_field='currency_id')
|
|
partner_id = fields.Many2one('res.partner', string='Partner')
|
|
```
|
|
|
|
### **`odoo/models.py`** (341 KB)
|
|
Sistema ORM de Odoo:
|
|
- `Model` - Clase base para modelos persistentes
|
|
- `TransientModel` - Modelos temporales (wizards)
|
|
- `AbstractModel` - Modelos abstractos (herencia)
|
|
- CRUD operations: `create()`, `write()`, `unlink()`
|
|
- Búsquedas: `search()`, `search_count()`, `browse()`
|
|
|
|
**Patrones observados:**
|
|
- Herencia múltiple con `_inherit`
|
|
- Delegación con `_inherits`
|
|
- Computed fields con `@api.depends`
|
|
- Constraints con `@api.constrains`
|
|
|
|
### **`odoo/http.py`** (101 KB)
|
|
Controllers y rutas HTTP:
|
|
- Decorador `@http.route()`
|
|
- Tipos de autenticación: `public`, `user`
|
|
- Request/Response handling
|
|
- JSON-RPC support
|
|
|
|
**Ejemplo:**
|
|
```python
|
|
from odoo import http
|
|
|
|
class MyController(http.Controller):
|
|
@http.route('/my/route', type='http', auth='user')
|
|
def my_handler(self):
|
|
return "Hello World"
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 MEJORES PRÁCTICAS IDENTIFICADAS
|
|
|
|
### 1. **Estructura de Módulos**
|
|
Todos los módulos siguen la estructura:
|
|
```
|
|
module_name/
|
|
├── __init__.py
|
|
├── __manifest__.py # Metadatos del módulo
|
|
├── models/
|
|
│ ├── __init__.py
|
|
│ └── model_name.py
|
|
├── views/
|
|
│ └── views.xml
|
|
├── security/
|
|
│ ├── ir.model.access.csv # Permisos de modelo
|
|
│ └── security.xml # Reglas de seguridad
|
|
├── data/
|
|
│ └── data.xml # Datos iniciales
|
|
├── demo/
|
|
│ └── demo.xml # Datos de demostración
|
|
└── static/
|
|
└── src/ # Assets JS/CSS
|
|
```
|
|
|
|
### 2. **Naming Conventions**
|
|
- Modelos: `module.model_name` (ej: `project.task`)
|
|
- Campos Many2one: `partner_id`, `project_id`
|
|
- Campos One2many: `line_ids`, `task_ids`
|
|
- Campos compute: `_compute_<field_name>`
|
|
- Views: `view_<model>_<type>` (ej: `view_project_task_form`)
|
|
|
|
### 3. **Security**
|
|
- Siempre definir `ir.model.access.csv` con permisos CRUD
|
|
- Usar record rules para filtrado por usuario/empresa
|
|
- Grupos de seguridad bien definidos
|
|
|
|
### 4. **Vistas**
|
|
- Vista form para edición individual
|
|
- Vista tree/list para listados
|
|
- Vista kanban para tableros
|
|
- Vista calendar para eventos
|
|
- Vista pivot/graph para análisis
|
|
|
|
### 5. **Integración con mail.thread**
|
|
Casi todos los modelos importantes heredan de `mail.thread` para:
|
|
- Tracking de cambios
|
|
- Mensajes y notificaciones
|
|
- Actividades programadas
|
|
- Followers
|
|
|
|
**Ejemplo:**
|
|
```python
|
|
class ProjectTask(models.Model):
|
|
_name = 'project.task'
|
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
|
|
|
name = fields.Char(tracking=True) # Cambios registrados
|
|
state = fields.Selection(tracking=True)
|
|
```
|
|
|
|
---
|
|
|
|
## 🎨 PATRONES ARQUITECTÓNICOS DESTACABLES
|
|
|
|
### 1. **Estado con Workflow**
|
|
Uso de `Selection` fields con estados bien definidos:
|
|
```python
|
|
state = fields.Selection([
|
|
('draft', 'Draft'),
|
|
('confirmed', 'Confirmed'),
|
|
('done', 'Done'),
|
|
('cancel', 'Cancelled')
|
|
], default='draft', tracking=True)
|
|
```
|
|
|
|
### 2. **Contabilidad Analítica**
|
|
Integración con `account.analytic.account` para tracking de costos:
|
|
- Cada proyecto tiene una cuenta analítica
|
|
- Todas las transacciones se registran ahí
|
|
- Permite reportes de costos por proyecto
|
|
|
|
### 3. **Portal Views**
|
|
Sistema de portal para clientes externos:
|
|
- Vista limitada de sus proyectos/órdenes
|
|
- Acciones permitidas (aprobar, comentar)
|
|
- Seguridad con record rules
|
|
|
|
### 4. **Multi-Company**
|
|
Soporte nativo para múltiples empresas:
|
|
- Campo `company_id` en modelos relevantes
|
|
- Record rules filtran por empresa
|
|
- Usuarios pueden cambiar de empresa
|
|
|
|
### 5. **Wizard Pattern**
|
|
Uso de `TransientModel` para wizards/asistentes:
|
|
```python
|
|
class ProjectShareWizard(models.TransientModel):
|
|
_name = 'project.share.wizard'
|
|
_description = 'Share Project Wizard'
|
|
```
|
|
|
|
---
|
|
|
|
## 📖 GUÍA DE USO PARA DESARROLLO
|
|
|
|
### Cuando implementar funcionalidad X, consultar:
|
|
|
|
| **Funcionalidad** | **Módulo de Referencia** | **Archivos Clave** |
|
|
|-------------------|--------------------------|-------------------|
|
|
| Gestión de proyectos | `project` | `models/project_project.py`, `models/project_task.py` |
|
|
| Órdenes de compra | `purchase` | `models/purchase_order.py` |
|
|
| Inventario de materiales | `stock` | `models/stock_quant.py`, `models/stock_move.py` |
|
|
| Facturación | `account` | `models/account_move.py` |
|
|
| Contratos | `hr_contract`, `sale` | `models/hr_contract.py`, `models/sale_order.py` |
|
|
| Subcontratistas | `mrp_subcontracting` | `models/res_partner.py`, `views/subcontracting_portal_views.xml` |
|
|
| Reportes de costos | `analytic`, `project_account` | `models/account_analytic_account.py` |
|
|
| Portal de clientes | `project` (portal) | `views/project_portal_templates.xml` |
|
|
| Asistencia de empleados | `hr_attendance` | `models/hr_attendance.py` |
|
|
| Control de horas | `hr_timesheet` | `models/account_analytic_line.py` |
|
|
|
|
### Flujo de consulta recomendado:
|
|
|
|
1. **Identificar funcionalidad** a implementar
|
|
2. **Localizar módulo** relevante en `reference/odoo/addons/`
|
|
3. **Leer `__manifest__.py`** para entender dependencias
|
|
4. **Revisar `models/`** para entender lógica de negocio
|
|
5. **Revisar `views/`** para entender UI/UX
|
|
6. **Revisar `security/`** para entender permisos
|
|
7. **Adaptar patrón** al proyecto actual
|
|
|
|
---
|
|
|
|
## 🚀 PRÓXIMOS PASOS
|
|
|
|
### Análisis Profundo Pendiente
|
|
|
|
- [ ] Analizar módulo `analytic` para contabilidad analítica
|
|
- [ ] Estudiar integración `sale_project` para ventas vinculadas a proyectos
|
|
- [ ] Revisar sistema de permisos en módulos grandes
|
|
- [ ] Analizar reportes financieros en `account`
|
|
- [ ] Estudiar portal views para implementar portal de clientes INFONAVIT
|
|
- [ ] Revisar sistema de workflows y estados
|
|
- [ ] Analizar patrón de wizards para asistentes
|
|
|
|
### Documentación Específica a Crear
|
|
|
|
- [ ] ADR sobre adopción de patrón de estados de Odoo
|
|
- [ ] Guía de contabilidad analítica basada en Odoo
|
|
- [ ] Estándares de nomenclatura alineados con Odoo
|
|
- [ ] Estructura de módulos basada en Odoo
|
|
|
|
---
|
|
|
|
## ⚠️ CONSIDERACIONES
|
|
|
|
### Diferencias con nuestro stack
|
|
- **Odoo usa Python + PostgreSQL** vs nuestro stack (definir)
|
|
- **Odoo usa ORM propio** vs ORM que usemos (TypeORM, Prisma, etc.)
|
|
- **Odoo usa XML para vistas** vs nuestro frontend (React, Vue, etc.)
|
|
|
|
### Qué adoptar
|
|
✅ Patrones de arquitectura (estados, workflows)
|
|
✅ Estructura de módulos
|
|
✅ Naming conventions
|
|
✅ Sistema de permisos por rol
|
|
✅ Integración de contabilidad analítica
|
|
|
|
### Qué adaptar
|
|
🔄 ORM patterns (traducir a nuestro ORM)
|
|
🔄 View patterns (traducir a React/Vue components)
|
|
🔄 API patterns (traducir a REST/GraphQL)
|
|
|
|
### Qué evitar
|
|
❌ No copiar código directamente
|
|
❌ No adoptar XML para vistas si usamos frontend moderno
|
|
❌ No implementar funcionalidades innecesarias
|
|
|
|
---
|
|
|
|
**Fecha de análisis:** 2025-11-23
|
|
**Analizado por:** Architecture-Analyst
|
|
**Versión:** 1.0.0
|
|
**Estado:** ✅ Análisis inicial completado
|
|
|
|
---
|
|
|
|
## 📋 REFERENCIAS
|
|
|
|
- Repositorio oficial: https://github.com/odoo/odoo
|
|
- Documentación: https://www.odoo.com/documentation/master/developer.html
|
|
- ORM Guide: https://www.odoo.com/documentation/master/developer/reference/backend/orm.html
|
|
- Community Association: https://github.com/OCA
|