本卡屬 FR-192(母卡 FR-192 母案(同清單上一張)),卡 I-1,批 2。只改 jedi-python-package。依賴:無。

這張卡做什麼(白話)

主系統的回饋功能整組在 jedi-issue 套件裡。本卡讓它認得「這筆是 Agent 來的」:回饋表加「來源」「來源編號」兩欄;建回饋與改回饋多收一個「既有附件參照清單」參數(附件已經存在 Agent、主系統只有一列參照,不能再走上傳);改刪的歸屬檢查加一條例外(Agent 本機管理員送的,由持「檢視全部回饋」的人代管);多一支查詢「某台 Agent 送出的全部回饋」給主系統回拉用;清單與明細吐來源兩欄、可篩選。版號 1.5.0 → 1.6.0。

reuse/extend/new

extend:FeedbackService.add_feedback/update_feedback 加 attached_file_uids/source/source_ref(有參照時走 IssueUploadFilesRepoImpl.add_issue_file_mapping 不走 upload_attachment);_assert_owner 加一條例外;entity/DTO/serializer 各加兩欄;query entity 加 source 篩選;新 list_by_source

在哪裡

repo:~/Projects/Jedicogy/module/jedi-python-package
改既有:jedi-issue/jedi_issue/app/feedback/service/feedback_service.py 175(_assert_owner)、243(add)、294(update)
改既有:jedi-issue/jedi_issue/app/feedback/service/feedback_issue_service.py(create_issue 傳參照)
改既有:jedi-issue/jedi_issue/app/feedback/dto/feedback_issue_dto.py
改既有:jedi-issue/jedi_issue/domain/feedback/entities/feedback_issue_entity.py
改既有:jedi-issue/jedi_issue/domain/feedback/entities/feedback_issue_query_entity.py
改既有:jedi-issue/jedi_issue/domain/feedback/service/feedback_issue_domain_service.py
改既有:jedi-issue/jedi_issue/infra/feedback/models/feedback_issue.py
改既有:jedi-issue/jedi_issue/infra/feedback/repository/(list_by_source)
改既有:jedi-issue/jedi_issue/api/serializers/feedback.py(source/source_ref 進 FeedbackResponse;FeedbackQueryRequest 加 source)
改既有:jedi-issue/jedi_issue/api/routes/feedback_route.py(post/put 不動簽名,只傳 source 預設 web)
改既有:jedi-issue/pyproject.toml
新開:jedi-issue/jedi_issue/migrations/006-feedback-issues-source.sql

怎麼做

驗收(首腦照這個驗)

套件 tests 綠;新 tests:add_feedback(attached_file_uids=[x]) 不呼叫 upload 直接掛 mapping;source 預設 web;_assert_owner 對 source=agent, created_user=local-admin 持 read_all 者放行、不持者 403(突變:把例外拿掉要紅);list_by_source('agent', uid) 只回該 Agent 的;DEV 套 006 後 \d public.feedback_issues 有 source/source_ref 與索引;既有回饋 source 全為 web

必讀