fix(qa): resolve DF-002/DF-003/DF-006, log Defect Management sheet
DF-002 (Co4E): node đã chạy xong (STEP_DONE) vẫn bị khoá edit — chỉ khoá khi node đang thực sự chạy (STEP_RUNNING). Phần "status sai khi back tab" đã được xử lý từ trước (2a5ee29/13e2c22), xác minh vẫn nguyên vẹn. DF-003: run.bat chỉ ẩn console ngay trước lúc chạy app, nên các bước kiểm tra (Python/thư viện/junction) phía trước vẫn hiện console một chút — ẩn ngay từ đầu file, hiện lại đúng lúc báo lỗi. DF-006 (Monitoring): options số dòng/trang đổi thành 5/10/20/50/100 (mặc định 20); EventTable giờ phân trang thật (next/prev, page_count) thay vì chỉ cắt top-N rồi bỏ phần còn lại. Thêm tests/test_co4e_edit_lock.py (chưa có test nào phủ hành vi khoá edit trước đó); viết lại tests/test_monitoring_page_size.py cho đúng options/phân trang mới. Cập nhật Task Tracking Template.xlsx — điền Bước tái hiện/Root Cause/ Cách xử lý/Regression Test/Evidence cho DF-002, DF-003, DF-005, DF-006 và dòng "Cowork/GraphRAG chỉ hiện khi chọn project" (qua Excel COM, để không làm mất shape/data-validation nâng cao khác trong file). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,13 +10,13 @@ from typing import List, Optional
|
||||
from PySide6.QtCore import QSize, Qt
|
||||
from PySide6.QtWidgets import QMenu
|
||||
from ...core import co4e
|
||||
from ...core.co4e import STEP_DONE, STEP_RUNNING
|
||||
from ...core.co4e import STEP_RUNNING
|
||||
from ...i18n import tr
|
||||
from ...ui.dialog_buttons import ask_text
|
||||
from ...ui.icons import icon
|
||||
from ...presentation.co4e.co4e_chat_view import _skill_names
|
||||
|
||||
_LOCKED_NODE_STATUSES = (STEP_RUNNING, STEP_DONE)
|
||||
_LOCKED_NODE_STATUSES = (STEP_RUNNING,)
|
||||
|
||||
|
||||
class Co4EWorkflowCrudMixin:
|
||||
@@ -169,8 +169,8 @@ class Co4EWorkflowCrudMixin:
|
||||
def _on_node_selected(self, node_id: str) -> None:
|
||||
"""Chọn một node thì nạp bước đó vào bảng thuộc tính, tự mở bảng nếu đang gập.
|
||||
|
||||
Bước đang chạy hoặc đã chạy xong thì khoá ô nhập liệu ngay khi nạp —
|
||||
tránh sửa nhầm cấu hình của lần chạy đang xem kết quả.
|
||||
Chỉ khoá ô nhập liệu khi bước ĐANG chạy (DF-002) — chạy xong rồi thì
|
||||
vẫn sửa lại được bình thường.
|
||||
"""
|
||||
for n in self.canvas.nodes():
|
||||
if n.id == node_id:
|
||||
|
||||
@@ -294,11 +294,11 @@ class StepConfigPanel(_StepConfigActionsMixin, QScrollArea):
|
||||
def set_locked(self, locked: bool) -> None:
|
||||
"""Khoá/mở khoá các trường chỉnh sửa theo trạng thái chạy của bước.
|
||||
|
||||
Bước đang chạy hoặc đã chạy xong thì khoá lại — tránh sửa nhầm cấu
|
||||
hình trong lúc đang xem kết quả của chính lần chạy đó (sửa xong
|
||||
không rõ là áp dụng cho lần chạy đã xong hay lần chạy tiếp theo).
|
||||
Nút Chạy/Chạy từ đây/Xoá bước vẫn hoạt động bình thường khi khoá —
|
||||
chỉ ô nhập liệu bị khoá, không phải cả panel.
|
||||
Chỉ khoá khi bước ĐANG chạy — tránh sửa nhầm cấu hình trong lúc chưa
|
||||
biết kết quả (DF-002: trước đây còn khoá cả bước đã chạy xong, khiến
|
||||
không sửa lại được sau khi run xong). Nút Chạy/Chạy từ đây/Xoá bước
|
||||
vẫn hoạt động bình thường khi khoá — chỉ ô nhập liệu bị khoá, không
|
||||
phải cả panel.
|
||||
"""
|
||||
self._locked = locked
|
||||
editable = not locked
|
||||
|
||||
Reference in New Issue
Block a user