72 lines
1.6 KiB
Markdown
72 lines
1.6 KiB
Markdown
# Análisis del Módulo Project de Odoo
|
|
|
|
**Módulo:** project
|
|
**Prioridad:** P1
|
|
**Mapeo MGN:** MGN-011 (Proyectos Genéricos)
|
|
|
|
## Modelos Principales
|
|
|
|
### project.project (Proyectos)
|
|
- Nombre y descripción
|
|
- Manager
|
|
- Stages personalizables
|
|
- Analytic account (tracking de costos)
|
|
- Portal de clientes
|
|
|
|
### project.task (Tareas)
|
|
- Título y descripción
|
|
- Asignado a usuario
|
|
- Stage (columnas kanban)
|
|
- Fechas (inicio, fin, deadline)
|
|
- Dependencias entre tareas
|
|
- Subtareas
|
|
|
|
### project.task.type (Stages de Tareas)
|
|
- Backlog → To Do → In Progress → Done
|
|
- Secuencia y colores
|
|
- Kanban fold
|
|
|
|
## Patrones Destacables
|
|
|
|
### 1. Vista Kanban de Tareas
|
|
|
|
Pipeline drag-and-drop:
|
|
- Columnas = Stages
|
|
- Tarjetas = Tasks
|
|
- Cambio de stage automático
|
|
|
|
### 2. Integración con Timesheet
|
|
|
|
```python
|
|
# Horas trabajadas en tarea → analytic account del proyecto
|
|
class ProjectTask(models.Model):
|
|
timesheet_ids = fields.One2many('account.analytic.line', 'task_id')
|
|
|
|
@api.depends('timesheet_ids.unit_amount')
|
|
def _compute_effective_hours(self):
|
|
self.effective_hours = sum(self.timesheet_ids.mapped('unit_amount'))
|
|
```
|
|
|
|
### 3. Portal de Clientes
|
|
|
|
Clientes pueden:
|
|
- Ver tareas de su proyecto
|
|
- Comentar en tareas
|
|
- Ver progreso
|
|
|
|
## Mapeo a MGN-011
|
|
|
|
- RF-PRO-001: Gestión de proyectos
|
|
- RF-PRO-002: Tareas y subtareas
|
|
- RF-PRO-003: Stages personalizables
|
|
- RF-PRO-004: Asignación a usuarios
|
|
- RF-PRO-005: Integración con timesheet
|
|
- RF-PRO-006: Portal de clientes
|
|
|
|
**Aplicabilidad:** ⭐⭐⭐⭐⭐ - ESENCIAL para ERP Construcción/Proyectos
|
|
|
|
---
|
|
|
|
**Fecha:** 2025-11-23
|
|
**Estado:** ✅ Análisis completo
|