Proje panosu, src/cluster_erp/modules/projects/board.py içinde salt okunur bir okuma modelidir ve src/cluster_erp/modules/projects/board_routes.py tarafından sunulur. Tek bir çağrı, her projeyi yaşam döngüsü sütunlarına yerleştirilmiş olarak; çizelgesi, toplantıları, aksiyonları, fikstürleri, kalemleri ve production modülünden gelen üretim gerçekliğiyle döndürür. Web uygulaması bunu bir kanban (project_board), bir ay takvimi (project_calendar) ve iki ana ekran bileşeni olarak çizer. Proje alanları projeler, kalemler ve fikstürler sayfasındadır.
Kısaca¶
- Tek bir uç,
GET /api/v1/projects/project-board/, tüm panoyu kurar; pano hiçbir şeyi düzenlemez (src/cluster_erp/modules/projects/board.py:1-11,src/cluster_erp/modules/projects/board_routes.py:17-47). - Sütunlar proje yaşam döngüsü
PROJECT_STATUS_FLOW'dur (src/cluster_erp/modules/projects/board.py:100). - Üretim emirleri ve çizelgelenmiş iş emirleri
GetProjectProductionScheduleile, açık günler grup takvimi içinGetOwnerWorkingDaysile gelir (src/cluster_erp/modules/projects/board.py:162-201). scope=mine, panoyu çağıranın tarafının yönetici veya aksiyon sahibi olduğu projelere daraltır (src/cluster_erp/modules/projects/board.py:57-82).
Nasıl çalışır¶
Diyagram bir pano çağrısının veri yolunu gösterir.
flowchart TD
R["date_from, date_to, scope ile GET /project-board/"] --> M{"scope mine mi"}
M -->|evet| E["GetPartyForEmployee"]
M -->|hayır| B["ProjectBoardService.board"]
E --> B
B --> P["Project satırları, en yeni önce"]
P --> F["mine ise _only_member_projects"]
F --> C["_load_children: çizelgeler, başlangıç toplantıları, toplantılar, aksiyonlar, fikstürler, kalemler"]
C --> PR["_load_production: GetProjectProductionSchedule"]
PR --> OD["_load_open_days: GetOwnerWorkingDays grup takvimi"]
OD --> K["proje başına _card"]
K --> J["yük: range, columns, projects, calendar, scope"]Düz anlatımla:
- Uç
date_from,date_tovescopedeğerlerini okur.scope=mineile çağıranın çalışanınıGetPartyForEmployeeile bir tarafa çözer (src/cluster_erp/modules/projects/board_routes.py:20-44). - Servis tarih aralığını ayarlar; varsayılan 7 gün geri ve 56 gün ileridir (
src/cluster_erp/modules/projects/board.py:43-45,src/cluster_erp/modules/projects/board.py:70-72). - Tüm canlı projeleri en yeni önce yükler ve
mineile yalnızca tarafın ait olduğu projeleri tutar. Tarafı olmayan bir çağıran boş bir pano alır (src/cluster_erp/modules/projects/board.py:73-82,src/cluster_erp/modules/projects/board.py:109-128). - Tüm projelerin alt kayıtlarını tablo başına tek geçişte yükler: sürüme göre azalan çizelgeler, başlangıç toplantıları, haftaya göre toplantılar, vadeye göre aksiyonlar, fikstürler ve satıra göre kalemler (
src/cluster_erp/modules/projects/board.py:129-161). productionmodülünden projelerin emirlerini ve iş emirlerini,calendarsmodülünden grup takviminin açık günlerini ister (src/cluster_erp/modules/projects/board.py:162-201).- Her proje için bir özetle bir kart kurar: kalem sayısı, açık ve geciken aksiyonlar, açık fikstürler, yapılmış toplantılar, emirler, tamamlanan iş emirleri, bayat emirler ve çizelge durumu. Etkin çizelge, yoksa en yenisi kullanılır (
src/cluster_erp/modules/projects/board.py:202-325). - Aralığı, sütunları, kartları, açık günleri ve kapsamı döndürür (
src/cluster_erp/modules/projects/board.py:88-107).
Web bileşenleri bu tek yükü okur. Pano paketi, bir karta dokunmanın projenin kendi ayrıntı kartını açtığını ve panodaki hiçbir şeyin veriyi düzenlemediğini belirtir (gated_apps/projects/app.js:7-17).
Neden böyle kurulmuştur¶
Modül belge dizesi iki gerekçe verir: istemci tek bir yük çizer ve diğer modüllerin verisi, doğrudan modül içe aktarımı yasak olduğu için EventBus üzerinden alınır (src/cluster_erp/modules/projects/board.py:1-11). mine için üyelik kuralı, belge dizesinin belirttiği gibi intranet hedef kitle kurucusunun kuralını izler (src/cluster_erp/modules/projects/board.py:64-68). Başka gerekçe ne kodda ne de projenin yazılı mühendislik kurallarında belirtilmiştir.
Kurallar ve sınırlar¶
- Uç
project.readister (src/cluster_erp/modules/projects/board_routes.py:27). scopeyalnızcamineveyaallkabul eder (src/cluster_erp/modules/projects/board_routes.py:26).- Üretim sorgusu veya takvim sorgusu başarısız olursa pano o kısım olmadan çizilir: yükleyiciler boş sonuç döndürür (
src/cluster_erp/modules/projects/board.py:162-201).
Diğer parçalarla etkileşim¶
| Sözleşme | Yanıtlayan | Amaç | Kaynak |
|---|---|---|---|
GetPartyForEmployee |
owned_organisations |
mine için çağıranın tarafını çözmek |
src/cluster_erp/modules/projects/board_routes.py:36-40 |
GetProjectProductionSchedule |
production |
emirler, operasyonlar ve çizelgelenmiş iş emirleri | src/cluster_erp/modules/projects/board.py:168-170 |
GetOwnerWorkingDays |
calendars |
grup takviminin açık günleri | src/cluster_erp/modules/projects/board.py:184-186 |
Yanıtlayan modüller sözleşmeler başvurusu sayfasında listelenir. Takvim kuralları çalışma süresi sayfasındadır.
Sınırlar ve açık noktalar¶
- Pano, süzmeden önce tüm canlı projeleri sayfalama olmadan yükler (
src/cluster_erp/modules/projects/board.py:73-82). - Pano para değeri göstermez; özet yalnızca kayıt sayar (
src/cluster_erp/modules/projects/board.py:250-265).
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| project board | ProjectBoardService |
Tüm projeleri yaşam döngüsü boyunca gösteren salt okunur okuma modeli. | Proje panosu | src/cluster_erp/modules/projects/board.py:52 |
| board card | _card |
Pano yükünde özetiyle proje başına blok. | Pano kartı | src/cluster_erp/modules/projects/board.py:202 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.