Skip to content

Activities

ActivityNamespace for the mail.activity model, accessed as client.activities.

activities

Odoo activity (mail.activity) operations for Vodoo.

ActivityNamespace

ActivityNamespace(client: OdooClient)

Bases: GeneratedActivityNamespace

Namespace for mail.activity operations.

Source code in src/vodoo/_domain.py
def __init__(self, client: OdooClient) -> None:
    self._client = client

done

done(activity_id: int) -> Any

Mark an active activity as done and return Odoo's action result.

Source code in src/vodoo/activities.py
def done(self, activity_id: int) -> Any:
    """Mark an active activity as done and return Odoo's action result."""
    activity = self.get(activity_id, fields=["active"])
    if not activity.get("active"):
        msg = f"Activity {activity_id} is already done"
        raise RecordOperationError(msg)
    return self._client.execute(self._model, "action_done", [activity_id])

build_activity_domain

build_activity_domain(*, model: str | None = None, user: str | None = None, activity_type: str | None = None) -> list[Any]

Build a domain for activity list filtering.

Source code in src/vodoo/activities.py
def build_activity_domain(
    *,
    model: str | None = None,
    user: str | None = None,
    activity_type: str | None = None,
) -> list[Any]:
    """Build a domain for activity list filtering."""
    domain: list[Any] = []
    if model:
        domain.append(("res_model", "=", model))
    if user:
        domain.append(("user_id.name", "ilike", user))
    if activity_type:
        domain.append(("activity_type_id.name", "ilike", activity_type))
    return domain