Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / İş modülleri

Açıklama

Proje panosu

Proje panosu ve takvim okuma modelinin projelerden, alt kayıtlarından, üretim çizelgelerinden ve grup takviminden tek bir yük nasıl kurduğu.

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 GetProjectProductionSchedule ile, açık günler grup takvimi için GetOwnerWorkingDays ile 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:

  1. Uç date_from, date_to ve scope değerlerini okur. scope=mine ile çağıranın çalışanını GetPartyForEmployee ile bir tarafa çözer (src/cluster_erp/modules/projects/board_routes.py:20-44).
  2. 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).
  3. Tüm canlı projeleri en yeni önce yükler ve mine ile 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).
  4. 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).
  5. production modülünden projelerin emirlerini ve iş emirlerini, calendars modülünden grup takviminin açık günlerini ister (src/cluster_erp/modules/projects/board.py:162-201).
  6. 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).
  7. 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.read ister (src/cluster_erp/modules/projects/board_routes.py:27).
  • scope yalnızca mine veya all kabul 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ı.

Doğrulanan commit 92f8051 · 2026-11-13