Skip to main content
Version: Next ๐Ÿšง

Activities Module Technical Reference

The Activities Module implements localized activity planning, Odoo activity synchronization, and follow-up creation.

Codebase Mapโ€‹

LayerPathPurpose
Frontend UIqml/features/activities/UI pages and components for activities
State & Logicmodels/activity.jsJS database bindings and UI state management
Backend Servicesrc/daemon.pyPython activity manager and sync worker
D-Bus Interfacesrc/backend.pyD-Bus methods exposing activity status

Database Schemaโ€‹

Activities are stored locally in the following SQLite tables:

mail_activity_appโ€‹

Stores activity instances synced with Odoo or created locally.

  • id (INTEGER, Primary Key): Local unique ID.
  • res_id (INTEGER): ID of the linked document (e.g. Project or Task ID).
  • res_model (TEXT): Name of the linked model (e.g. project.project or project.task).
  • activity_type_id (INTEGER): References the activity type.
  • summary (TEXT): Single-line overview.
  • note (TEXT): Rich/Plain multiline text.
  • date_deadline (TEXT): Due date in YYYY-MM-DD.
  • user_id (INTEGER): Assignee reference.
  • done (INTEGER): Binary status (0 = Open, 1 = Completed).

mail_activity_type_appโ€‹

Stores types of activities (e.g., Email, Call, Meeting, To-Do).

  • id (INTEGER, Primary Key): Unique Odoo activity type ID.
  • name (TEXT): Type label.
  • icon (TEXT): Icon identifier corresponding to Lomiri style.

Sync Mechanism & Network Protocolโ€‹

Odoo XML-RPC Model Mappingโ€‹

  • Remote Model: mail.activity
  • Sync Direction: Bidirectional (local modifications -> server; server modifications -> local).

D-Bus Call Interfaceโ€‹

The frontend communicates with the background service daemon using the following D-Bus methods declared in src/backend.py:

  • CreateActivity(activity_data_json): Invoked to spawn a new activity.
  • CompleteActivity(activity_id): Marks an activity as done locally and queues it for the sync process.
  • DeleteActivity(activity_id): Deletes an activity locally and queues removal on Odoo.