Skip to main content
Version: 1.2.9

Projects Module Technical Reference

The Projects Module manages high-level project metadata, sub-project hierarchies, stage-based mapping, and Favorite status.

Codebase Mapโ€‹

LayerPathPurpose
Frontend UIqml/features/projects/Views and detailed components for projects
State & Logicmodels/project.jsJS helper modules, stage queries, and favorite state
Backend Servicesrc/sync_from_odoo.pySync worker pulling projects and stages
D-Bus Interfacesrc/backend.pyD-Bus methods exposing project listings

Database Schemaโ€‹

Projects and stages are stored locally in the following SQLite tables:

project_project_appโ€‹

  • id (INTEGER, Primary Key): Unique Project ID (Odoo remote ID).
  • name (TEXT): Project title.
  • parent_id (INTEGER): References parent project (self-relation for sub-projects).
  • date_start (TEXT): Project start date.
  • date (TEXT): Project end date / deadline.
  • description (TEXT): Detailed description of project scope.
  • user_id (INTEGER): Assigned owner/manager.
  • allocated_hours (REAL): Budgeted hour allocation.
  • color (INTEGER): Accent color index.
  • favorite (INTEGER): Favorite status flag (0 = No, 1 = Yes).
  • stage_id (INTEGER): References the current project stage.

project_project_stage_appโ€‹

  • id (INTEGER, Primary Key): Stage ID.
  • name (TEXT): Stage name (e.g. In Progress, Cancelled, On Hold, Done).
  • sequence (INTEGER): Ordering sequence.

Sync Mechanism & Network Protocolโ€‹

Odoo XML-RPC Model Mappingโ€‹

  • Remote Model: project.project (Project entity), project.project.stage (Stages)
  • Sync Direction: Pull-oriented (read-only mapping for structure, local favorites toggling).

D-Bus Call Interfaceโ€‹

  • GetProjects(): Returns a JSON array of all active projects.
  • ToggleProjectFavorite(project_id, state): Marks a project as favorite locally.