projects modülü üretim özeti ve kazanılmış değer okumalarıyla projeleri, çizelgeleri, başlangıç toplantılarını, toplantıları, aksiyonları, fikstürleri, proje kalemlerini, ilişkiler ve malzeme bağlantılarıyla faaliyetleri ve proje panosunu sunar. 64 uç noktanın tamamı /api/v1/projects altındadır. İş anlamı için Projects modülü sayfasına bakın.
Grup olguları¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Temel yol | /api/v1/projects |
src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/projects/module.py:67 |
| Yönlendiriciler | 9 dosyada 9 yönlendirici nesnesi; Uç nokta özeti bölümünde listelenir | src/cluster_erp/modules/projects/module.py:35 |
| Uç noktalar | 64; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı |
src/cluster_erp/modules/projects/actions/routes.py, src/cluster_erp/modules/projects/activities/routes.py, src/cluster_erp/modules/projects/board_routes.py ... |
| Kimlik doğrulama | Bearer başlığı veya oturum çerezi, get_current_user ile çözülür; bkz. Kimlik doğrulama ve başlıklar |
src/cluster_erp/modules/auth/guards.py:85-167 |
| Yetki koruması | 64 yolun 64 tanesi require_permission bildirir |
src/cluster_erp/modules/auth/guards.py:205-240 |
| Uygulama yetkilendirme kapısı | bağlanan her yönlendiricide require_app("projects") |
src/cluster_erp/modules/projects/module.py:78 |
| Hata biçimi | JSON gövdesi {"error": {...}}; bkz. Hatalar |
src/cluster_erp/server/error_handler.py:33-46 |
Uç nokta özeti¶
Alt modül klasörü başına bir satır. Yönlendirici öneki temel yola eklenir.
| Alt modül | Yönlendiriciler | Uç noktalar | Yönlendirici kaynağı |
|---|---|---|---|
projects |
router (/projects) |
9 | src/cluster_erp/modules/projects/projects/routes.py:28 |
schedules |
router (/schedules) |
7 | src/cluster_erp/modules/projects/schedules/routes.py:19 |
kickoffs |
router (/kickoffs) |
7 | src/cluster_erp/modules/projects/kickoffs/routes.py:20 |
meetings |
router (/meetings) |
6 | src/cluster_erp/modules/projects/meetings/routes.py:20 |
actions |
router (/actions) |
8 | src/cluster_erp/modules/projects/actions/routes.py:22 |
fixtures |
router (/fixtures) |
7 | src/cluster_erp/modules/projects/fixtures/routes.py:21 |
items |
router (/project-items) |
7 | src/cluster_erp/modules/projects/items/routes.py:22 |
activities |
router (/activities) |
12 | src/cluster_erp/modules/projects/activities/routes.py:24 |
board_routes |
router (/project-board) |
1 | src/cluster_erp/modules/projects/board_routes.py:17 |
Projeler uç noktaları¶
Proje kayıtları, üretim özeti, kazanılmış değer (EVM) ve durum geçişi.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/projects/ |
list_projects |
project.read |
yok | search, status, customer_id, project_manager_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/projects/projects/routes.py:40 |
POST |
/api/v1/projects/projects/ |
create_project |
project.create |
ProjectCreate |
yok | ProjectRead |
201 |
src/cluster_erp/modules/projects/projects/routes.py:76 |
GET |
/api/v1/projects/projects/{project_id} |
get_project |
project.read |
yok | yok | ProjectRead |
200 (varsayılan) | src/cluster_erp/modules/projects/projects/routes.py:88 |
GET |
/api/v1/projects/projects/{project_id}/production-rollup |
project_production_rollup |
project.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/projects/projects/routes.py:102 |
GET |
/api/v1/projects/projects/{project_id}/evm |
project_evm |
project.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/projects/projects/routes.py:125 |
PUT |
/api/v1/projects/projects/{project_id} |
update_project |
project.update |
ProjectUpdate |
yok | ProjectRead |
200 (varsayılan) | src/cluster_erp/modules/projects/projects/routes.py:270 |
POST |
/api/v1/projects/projects/{project_id}/transition |
transition_project |
project.update |
TransitionRequest |
yok | ProjectRead |
200 (varsayılan) | src/cluster_erp/modules/projects/projects/routes.py:285 |
DELETE |
/api/v1/projects/projects/{project_id} |
delete_project |
project.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/projects/routes.py:298 |
POST |
/api/v1/projects/projects/bulk-delete |
bulk_delete_projects |
project.bulk_delete |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/projects/projects/routes.py:310 |
Çizelgeler uç noktaları¶
Bir projenin çizelgeleri, yayımlama ve müşteriyle paylaşma.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/schedules/by-project/{project_id} |
list_schedules_by_project |
project.read |
yok | yok | list[ScheduleRead] |
200 (varsayılan) | src/cluster_erp/modules/projects/schedules/routes.py:22 |
POST |
/api/v1/projects/schedules/ |
create_schedule |
project.update |
ScheduleCreate |
yok | ScheduleRead |
201 |
src/cluster_erp/modules/projects/schedules/routes.py:34 |
GET |
/api/v1/projects/schedules/{schedule_id} |
get_schedule |
project.read |
yok | yok | ScheduleRead |
200 (varsayılan) | src/cluster_erp/modules/projects/schedules/routes.py:46 |
PUT |
/api/v1/projects/schedules/{schedule_id} |
update_schedule |
project.update |
ScheduleUpdate |
yok | ScheduleRead |
200 (varsayılan) | src/cluster_erp/modules/projects/schedules/routes.py:60 |
POST |
/api/v1/projects/schedules/{schedule_id}/publish |
publish_schedule |
project.update |
yok | yok | ScheduleRead |
200 (varsayılan) | src/cluster_erp/modules/projects/schedules/routes.py:75 |
POST |
/api/v1/projects/schedules/{schedule_id}/share-with-customer |
share_schedule_with_customer |
project.update |
yok | yok | ScheduleRead |
200 (varsayılan) | src/cluster_erp/modules/projects/schedules/routes.py:87 |
DELETE |
/api/v1/projects/schedules/{schedule_id} |
delete_schedule |
project.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/schedules/routes.py:99 |
Başlangıç toplantıları uç noktaları¶
Bir projenin başlangıç toplantısı, kontrol listesi ve yapıldı işaretleme.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/kickoffs/by-project/{project_id} |
get_kickoff_by_project |
project.read |
yok | yok | KickoffRead \| None |
200 (varsayılan) | src/cluster_erp/modules/projects/kickoffs/routes.py:23 |
POST |
/api/v1/projects/kickoffs/ |
create_kickoff |
meeting.record |
KickoffCreate |
yok | KickoffRead |
201 |
src/cluster_erp/modules/projects/kickoffs/routes.py:37 |
GET |
/api/v1/projects/kickoffs/{kickoff_id} |
get_kickoff |
project.read |
yok | yok | KickoffRead |
200 (varsayılan) | src/cluster_erp/modules/projects/kickoffs/routes.py:49 |
PUT |
/api/v1/projects/kickoffs/{kickoff_id} |
update_kickoff |
meeting.record |
KickoffUpdate |
yok | KickoffRead |
200 (varsayılan) | src/cluster_erp/modules/projects/kickoffs/routes.py:63 |
POST |
/api/v1/projects/kickoffs/{kickoff_id}/checklist |
update_checklist |
meeting.record |
list[ChecklistItemUpdate] |
yok | KickoffRead |
200 (varsayılan) | src/cluster_erp/modules/projects/kickoffs/routes.py:76 |
POST |
/api/v1/projects/kickoffs/{kickoff_id}/mark-held |
mark_held |
meeting.record |
yok | yok | KickoffRead |
200 (varsayılan) | src/cluster_erp/modules/projects/kickoffs/routes.py:89 |
DELETE |
/api/v1/projects/kickoffs/{kickoff_id} |
delete_kickoff |
meeting.record |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/kickoffs/routes.py:101 |
Toplantılar uç noktaları¶
Bir projenin toplantıları.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/meetings/by-project/{project_id} |
list_meetings_by_project |
project.read |
yok | yok | list[MeetingRead] |
200 (varsayılan) | src/cluster_erp/modules/projects/meetings/routes.py:23 |
POST |
/api/v1/projects/meetings/ |
create_meeting |
meeting.record |
MeetingCreate |
yok | MeetingRead |
201 |
src/cluster_erp/modules/projects/meetings/routes.py:35 |
GET |
/api/v1/projects/meetings/{meeting_id} |
get_meeting |
project.read |
yok | yok | MeetingRead |
200 (varsayılan) | src/cluster_erp/modules/projects/meetings/routes.py:47 |
PUT |
/api/v1/projects/meetings/{meeting_id} |
update_meeting |
meeting.record |
MeetingUpdate |
yok | MeetingRead |
200 (varsayılan) | src/cluster_erp/modules/projects/meetings/routes.py:61 |
DELETE |
/api/v1/projects/meetings/{meeting_id} |
delete_meeting |
meeting.record |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/meetings/routes.py:74 |
POST |
/api/v1/projects/meetings/bulk-delete |
bulk_delete_meetings |
meeting.record |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/projects/meetings/routes.py:85 |
Aksiyonlar uç noktaları¶
Bir projenin aksiyonları, geciken aksiyonlar ve geçiş.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/actions/by-project/{project_id} |
list_by_project |
project.read |
yok | status |
list[ActionListRead] |
200 (varsayılan) | src/cluster_erp/modules/projects/actions/routes.py:25 |
GET |
/api/v1/projects/actions/overdue |
list_overdue |
project.read |
yok | yok | list[ActionListRead] |
200 (varsayılan) | src/cluster_erp/modules/projects/actions/routes.py:38 |
POST |
/api/v1/projects/actions/ |
create_action |
action.assign |
ActionCreate |
yok | ActionRead |
201 |
src/cluster_erp/modules/projects/actions/routes.py:49 |
GET |
/api/v1/projects/actions/{action_id} |
get_action |
project.read |
yok | yok | ActionRead |
200 (varsayılan) | src/cluster_erp/modules/projects/actions/routes.py:61 |
PUT |
/api/v1/projects/actions/{action_id} |
update_action |
project.update |
ActionUpdate |
yok | ActionRead |
200 (varsayılan) | src/cluster_erp/modules/projects/actions/routes.py:75 |
POST |
/api/v1/projects/actions/{action_id}/transition |
transition_action |
action.assign |
ActionTransition |
yok | ActionRead |
200 (varsayılan) | src/cluster_erp/modules/projects/actions/routes.py:88 |
DELETE |
/api/v1/projects/actions/{action_id} |
delete_action |
project.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/actions/routes.py:101 |
POST |
/api/v1/projects/actions/bulk-delete |
bulk_delete_actions |
project.update |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/projects/actions/routes.py:113 |
Fikstürler uç noktaları¶
Bir projenin fikstürleri ve geçiş.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/fixtures/by-project/{project_id} |
list_by_project |
project.read |
yok | yok | list[FixtureRead] |
200 (varsayılan) | src/cluster_erp/modules/projects/fixtures/routes.py:24 |
POST |
/api/v1/projects/fixtures/ |
create_fixture |
project.update |
FixtureCreate |
yok | FixtureRead |
201 |
src/cluster_erp/modules/projects/fixtures/routes.py:36 |
GET |
/api/v1/projects/fixtures/{fixture_id} |
get_fixture |
project.read |
yok | yok | FixtureRead |
200 (varsayılan) | src/cluster_erp/modules/projects/fixtures/routes.py:48 |
PUT |
/api/v1/projects/fixtures/{fixture_id} |
update_fixture |
project.update |
FixtureUpdate |
yok | FixtureRead |
200 (varsayılan) | src/cluster_erp/modules/projects/fixtures/routes.py:62 |
POST |
/api/v1/projects/fixtures/{fixture_id}/transition |
transition_fixture |
project.update |
FixtureTransition |
yok | FixtureRead |
200 (varsayılan) | src/cluster_erp/modules/projects/fixtures/routes.py:75 |
DELETE |
/api/v1/projects/fixtures/{fixture_id} |
delete_fixture |
project.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/fixtures/routes.py:88 |
POST |
/api/v1/projects/fixtures/bulk-delete |
bulk_delete_fixtures |
project.update |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/projects/fixtures/routes.py:100 |
Proje kalemleri uç noktaları¶
Bir projenin kalemleri ve bir kalem için üretim emri oluşturma.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/project-items/by-project/{project_id} |
list_by_project |
project.read |
yok | yok | list[ProjectItemRead] |
200 (varsayılan) | src/cluster_erp/modules/projects/items/routes.py:25 |
POST |
/api/v1/projects/project-items/ |
create_project_item |
project.update |
ProjectItemCreate |
yok | ProjectItemRead |
201 |
src/cluster_erp/modules/projects/items/routes.py:37 |
GET |
/api/v1/projects/project-items/{item_id} |
get_project_item |
project.read |
yok | yok | ProjectItemRead |
200 (varsayılan) | src/cluster_erp/modules/projects/items/routes.py:49 |
PUT |
/api/v1/projects/project-items/{item_id} |
update_project_item |
project.update |
ProjectItemUpdate |
yok | ProjectItemRead |
200 (varsayılan) | src/cluster_erp/modules/projects/items/routes.py:63 |
DELETE |
/api/v1/projects/project-items/{item_id} |
delete_project_item |
project.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/items/routes.py:76 |
POST |
/api/v1/projects/project-items/{item_id}/create-production-order |
create_production_order_for_item |
CreateProductionOrderForProject.REQUIRED_PERMISSION |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/projects/items/routes.py:88 |
POST |
/api/v1/projects/project-items/bulk-delete |
bulk_delete_project_items |
project.update |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/projects/items/routes.py:139 |
Faaliyetler uç noktaları¶
Çizelgeye ve projeye göre faaliyetler, ilişkiler ve malzeme bağlantıları.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/activities/by-schedule/{schedule_id} |
list_activities |
project.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/projects/activities/routes.py:27 |
GET |
/api/v1/projects/activities/for-project |
list_activities_for_project |
project.read |
yok | project_id |
dict |
200 (varsayılan) | src/cluster_erp/modules/projects/activities/routes.py:43 |
GET |
/api/v1/projects/activities/by-project/{project_id} |
list_activities_by_project |
project.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/projects/activities/routes.py:55 |
GET |
/api/v1/projects/activities/{activity_id} |
get_activity |
project.read |
yok | yok | ActivityRead |
200 (varsayılan) | src/cluster_erp/modules/projects/activities/routes.py:90 |
POST |
/api/v1/projects/activities/ |
create_activity |
project.update |
ActivityCreate |
yok | ActivityRead |
201 |
src/cluster_erp/modules/projects/activities/routes.py:105 |
PUT |
/api/v1/projects/activities/{activity_id} |
update_activity |
project.update |
ActivityUpdate |
yok | ActivityRead |
200 (varsayılan) | src/cluster_erp/modules/projects/activities/routes.py:117 |
DELETE |
/api/v1/projects/activities/{activity_id} |
delete_activity |
project.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/activities/routes.py:132 |
POST |
/api/v1/projects/activities/relations |
add_relation |
project.update |
RelationCreate |
yok | RelationRead |
201 |
src/cluster_erp/modules/projects/activities/routes.py:144 |
DELETE |
/api/v1/projects/activities/relations/{relation_id} |
delete_relation |
project.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/activities/routes.py:156 |
GET |
/api/v1/projects/activities/{activity_id}/materials |
list_material_links |
project.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/projects/activities/routes.py:168 |
POST |
/api/v1/projects/activities/materials |
add_material_link |
project.update |
MaterialLinkCreate |
yok | MaterialLinkRead |
201 |
src/cluster_erp/modules/projects/activities/routes.py:180 |
DELETE |
/api/v1/projects/activities/materials/{link_id} |
delete_material_link |
project.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/projects/activities/routes.py:192 |
Proje panosu uç noktaları¶
src/cluster_erp/modules/projects/board_routes.py içinde tanımlı, proje panosu için tek bir okuma modeli.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/projects/project-board/ |
get_project_board |
project.read |
yok | date_from, date_to, scope |
dict |
200 (varsayılan) | src/cluster_erp/modules/projects/board_routes.py:20 |
Hata kodları¶
Tablo, src/cluster_erp/modules/projects/ altındaki kodun attığı hata kodlarını listeler. Kodlar, AppError(...) çağrıları, src/cluster_erp/core/errors.py içindeki fabrikalar (not_found, conflict, protected, permission_denied, privilege_escalation, check_version) ve HTTPException(...) için yapılan bir sözdizimi ağacı taramasıyla bulundu. 400 durumu AppError varsayılanıdır (src/cluster_erp/core/errors.py:23). Koruma hataları (401, 403), yetkilendirme kodları ve doğrulama hataları (422) her yol için geçerlidir ve Hatalar sayfasında listelenir.
| Kod | HTTP durumu | Atıldığı yer | İlk konum |
|---|---|---|---|
CONCURRENCY_VERSION_CONFLICT |
409 |
activities |
src/cluster_erp/modules/projects/activities/services.py:128 |
PROJECTS_ITEM_NO_PRODUCT |
422 |
items |
src/cluster_erp/modules/projects/items/routes.py:119 |
PROJECT_ACTION_ALREADY_CLOSED |
400 |
actions |
src/cluster_erp/modules/projects/actions/services.py:161 |
PROJECT_ACTION_INVALID_TRANSITION |
400 |
actions |
src/cluster_erp/modules/projects/actions/services.py:167 |
PROJECT_ACTIVITY_CYCLE |
422 |
activities |
src/cluster_erp/modules/projects/activities/services.py:186 |
PROJECT_ACTIVITY_INVALID |
404, 422 |
activities |
src/cluster_erp/modules/projects/activities/services.py:100 |
PROJECT_FIXTURE_INVALID_TRANSITION |
400 |
fixtures |
src/cluster_erp/modules/projects/fixtures/services.py:139 |
PROJECT_INVALID_STATUS |
400 |
projects |
src/cluster_erp/modules/projects/projects/services.py:305 |
PROJECT_SCHEDULE_NOT_DRAFT |
400 |
schedules |
src/cluster_erp/modules/projects/schedules/services.py:78 |
RESOURCE_NOT_FOUND |
404 |
actions, activities, fixtures, items, kickoffs, meetings, projects, schedules |
src/cluster_erp/modules/projects/actions/routes.py:71 |
Yayımlanan olaylar¶
Tablo, src/cluster_erp/modules/projects/ altındaki kodun EventBus.emit çağrısına doğrudan verdiği sözleşme sınıflarını listeler; sözdizimi ağacı taramasıyla bulundu. Önce bir değişkene kurulan olaylar sayılmaz. Sözleşmeler Sözleşmeler başvurusu sayfasında anlatılır.
| Sözleşme | Konum sayısı | İlk konum |
|---|---|---|
ProjectActionCreated |
1 | src/cluster_erp/modules/projects/actions/services.py:93 |
ProjectActivityChanged |
1 | src/cluster_erp/modules/projects/activities/services.py:49 |
ProjectClosed |
1 | src/cluster_erp/modules/projects/projects/services.py:279 |
ProjectCreated |
1 | src/cluster_erp/modules/projects/projects/services.py:142 |
ProjectFixtureRequired |
1 | src/cluster_erp/modules/projects/fixtures/services.py:76 |
ProjectKickoffCompleted |
2 | src/cluster_erp/modules/projects/kickoffs/services.py:113 |
ProjectSchedulePublished |
1 | src/cluster_erp/modules/projects/schedules/services.py:138 |
ProjectScheduleShared |
1 | src/cluster_erp/modules/projects/schedules/services.py:162 |
ProjectStatusChanged |
1 | src/cluster_erp/modules/projects/projects/services.py:261 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.