Factorizer/Cluster ERP WikiCluster ERP Türkçe
Home / Business modules

Reference

Project schedules

Reference for the schedules sub-module of projects, with schedule fields, draft-active-archived versions, publishing, sharing with the customer, and plan header values.

This page describes the schedules sub-module of src/cluster_erp/modules/projects/. A project schedule (ProjectSchedule) is a versioned plan of a project with phases, a critical path, and plan header values. Publishing makes a draft the active version and archives the previous one. The activities of a schedule are described on actions, activities, and meetings.

Scope and source

  • Defined in: src/cluster_erp/modules/projects/schedules/models.py (ProjectSchedule), schemas.py, services.py, routes.py, and metadata.py.
  • Count: 1 table, 7 routes (@router. decorators), 2 ActionMeta entries.

Schedule fields

Name Meaning Source
project_id The project src/cluster_erp/modules/projects/schedules/models.py:20-25
version_no Version, default 1; set on publish src/cluster_erp/modules/projects/schedules/models.py:26-31
status draft (default), active, or archived src/cluster_erp/modules/projects/schedules/models.py:32-36, src/cluster_erp/modules/projects/schedules/services.py:102-121
phases_jsonb, critical_path_jsonb Phases and critical path as JSON src/cluster_erp/modules/projects/schedules/models.py:37-38
decoupling_point Customer order decoupling point: eto (default), mto, or ato src/cluster_erp/modules/projects/schedules/models.py:39-47, src/cluster_erp/modules/projects/schedules/schemas.py:14
netting_scope none (default) or project src/cluster_erp/modules/projects/schedules/models.py:48-52, src/cluster_erp/modules/projects/schedules/schemas.py:15
last_published_at, last_shared_with_customer_at Publication and sharing record src/cluster_erp/modules/projects/schedules/models.py:53-60

Statuses and actions

stateDiagram-v2
 [*] --> draft
 draft --> active: publish
 active --> archived: a newer draft is published

In prose: a schedule is created as a draft. Publishing a draft locks the current active schedule of the project, archives it, gives the draft the next version number, makes it active, stamps last_published_at, and emits ProjectSchedulePublished (src/cluster_erp/modules/projects/schedules/services.py:92-145). Sharing with the customer is allowed only for the active schedule; it stamps last_shared_with_customer_at and emits ProjectScheduleShared (src/cluster_erp/modules/projects/schedules/services.py:149-170).

Action Label Condition Endpoint Permission Source
publish Publish none; the service needs draft POST /schedules/{id}/publish project.update src/cluster_erp/modules/projects/schedules/metadata.py:82-91, src/cluster_erp/modules/projects/schedules/routes.py:75
share_with_customer Share with Customer none; the service needs active POST /schedules/{id}/share-with-customer project.update src/cluster_erp/modules/projects/schedules/metadata.py:92-101, src/cluster_erp/modules/projects/schedules/routes.py:87

Schedule routes

Method and path Permission Source
GET /schedules/by-project/{project_id}, GET /schedules/{schedule_id} project.read src/cluster_erp/modules/projects/schedules/routes.py:22, src/cluster_erp/modules/projects/schedules/routes.py:46
POST /schedules/, PUT /schedules/{schedule_id}, DELETE /schedules/{schedule_id} project.update src/cluster_erp/modules/projects/schedules/routes.py:34, src/cluster_erp/modules/projects/schedules/routes.py:60, src/cluster_erp/modules/projects/schedules/routes.py:99

Constraints and validation

  • A new schedule is always created as draft (src/cluster_erp/modules/projects/schedules/services.py:52-58).
  • Only a draft can be changed (src/cluster_erp/modules/projects/schedules/services.py:174-180).
  • The version number on publish is the highest existing version of the project plus one (src/cluster_erp/modules/projects/schedules/services.py:117-129).
  • The board shows the active schedule of each project, or the newest version when none is active (src/cluster_erp/modules/projects/board.py:219-223); see project board.

Terms introduced

Term Code identifier Definition Turkish term Source
project schedule ProjectSchedule A versioned plan of a project with phases and a critical path. Proje çizelgesi src/cluster_erp/modules/projects/schedules/models.py:17
decoupling point decoupling_point Where the customer order enters the plan: engineer, make, or assemble to order. Ayrışma noktası src/cluster_erp/modules/projects/schedules/models.py:39-47

Verified against commit 92f8051 on 2026-11-13.

Verified against commit 92f8051 · 2026-11-13