Migrate AI engine to Claude API; convert stage field to Many2one Kanban model

- Replace fl.case.stage Selection field with Many2one → fl.case.stage model,
  enabling Kanban grouping and dynamic stage management
- Add FlCaseStage model (sequence, fold, description) and fl_stage_data.xml
  with all 11 procedural stages seeded with noupdate=1
- Migrate fl_ai_engine.py from Ollama/llama3.1 to Claude API
  (claude-sonnet-4-20250514); key from ir.config_parameter fl_ai.claude_api_key
- Fix stale field references in _rule_based_tagging and _build_case_context:
  employment/income now read from party_ids, timesharing fields corrected
- Add _fallback_complexity() for graceful degradation when API unavailable
- Add Kanban view to fl_case_views.xml; update action view_mode to kanban,tree,form
- Add fl.case.stage ACL entries to ir.model.access.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-28 17:45:26 +00:00
parent c937282091
commit b8ab8494c7
6 changed files with 313 additions and 163 deletions

View File

@@ -1,4 +1,8 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
# ── fl.case.stage ─────────────────────────────────────────────────────────────
access_fl_case_stage_admin,fl.case.stage admin,model_fl_case_stage,group_admin,1,1,1,1
access_fl_case_stage_paralegal,fl.case.stage paralegal,model_fl_case_stage,group_paralegal,1,0,0,0
access_fl_case_stage_petitioner,fl.case.stage petitioner,model_fl_case_stage,group_portal_petitioner,1,0,0,0
# ── fl.case ──────────────────────────────────────────────────────────────────
access_fl_case_admin,fl.case admin,model_fl_case,group_admin,1,1,1,1
access_fl_case_paralegal,fl.case paralegal,model_fl_case,group_paralegal,1,1,1,0
1 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2 # ── fl.case.stage ─────────────────────────────────────────────────────────────
3 access_fl_case_stage_admin,fl.case.stage admin,model_fl_case_stage,group_admin,1,1,1,1
4 access_fl_case_stage_paralegal,fl.case.stage paralegal,model_fl_case_stage,group_paralegal,1,0,0,0
5 access_fl_case_stage_petitioner,fl.case.stage petitioner,model_fl_case_stage,group_portal_petitioner,1,0,0,0
6 # ── fl.case ──────────────────────────────────────────────────────────────────
7 access_fl_case_admin,fl.case admin,model_fl_case,group_admin,1,1,1,1
8 access_fl_case_paralegal,fl.case paralegal,model_fl_case,group_paralegal,1,1,1,0