From fa73a734a0f053972776d5bed5cf0a915f981c6c Mon Sep 17 00:00:00 2001 From: javad Date: Thu, 22 Oct 2026 14:01:08 +0330 Subject: [PATCH] improve bazdid 6 --- PROJECT_TREE.txt | 14 +- .../admin_panel/customerActionInc.html | 158 +- .../admin_panel/customerBaseNew.html | 2 +- admin_panel/views/actions.py | 140 +- admin_panel/views/customers.py | 19 +- admin_panel/visit_policy.py | 87 +- docs/entezar_action_fields_report.html | 1233 + docs/entezar_action_fields_report.md | 742 + docs/visit_hold_entezar.md | 11 +- graphify-out/.graphify_labels.json | 112 +- graphify-out/.graphify_labels.json.sig | 2 +- graphify-out/GRAPH_REPORT.md | 434 +- graphify-out/graph.html | 8 +- graphify-out/graph.json | 35757 ++++++++++++---- graphify-out/manifest.json | 184 +- khatibi/settings.py | 2 +- scripts/coordination_hold_order_probe.py | 225 + scripts/entezar_action_audit.py | 370 + scripts/hold_write_verification.py | 286 + tests/test_entezar_action_simulation.py | 945 + tests/test_visit_policy.py | 14 +- 21 files changed, 32760 insertions(+), 7985 deletions(-) create mode 100644 docs/entezar_action_fields_report.html create mode 100644 docs/entezar_action_fields_report.md create mode 100644 scripts/coordination_hold_order_probe.py create mode 100644 scripts/entezar_action_audit.py create mode 100644 scripts/hold_write_verification.py create mode 100644 tests/test_entezar_action_simulation.py diff --git a/PROJECT_TREE.txt b/PROJECT_TREE.txt index 87222d0..56ec881 100644 --- a/PROJECT_TREE.txt +++ b/PROJECT_TREE.txt @@ -1,10 +1,10 @@ Project Root: khatibi -Generated At: 2026-10-21T10:54:58+00:00 -Python Files: 188 +Generated At: 2026-10-22T06:08:56+00:00 +Python Files: 189 Django Files: 12 JavaScript/TypeScript Files: 14 HTML Files: 58 -Total Files: 754 +Total Files: 756 Total Directories: 79 khatibi @@ -130,6 +130,7 @@ khatibi │ │ ├── 0077_alter_smstemplate_text_balance_help.py │ │ ├── 0078_action_visit_covering_index.py │ │ ├── 0079_customer_visit_hold.py +│ │ ├── 0080_action_soft_delete.py │ │ └── __init__.py │ ├── models │ │ ├── __init__.py @@ -331,9 +332,10 @@ khatibi │ ├── khatibi92669266_backups_db_backup_20261020_223011.sqlite3 │ ├── khatibi92669266_backups_db_backup_20261020_223011.sqlite3-shm │ ├── khatibi92669266_backups_db_backup_20261020_223011.sqlite3-wal -│ ├── kt.sqlite3 -│ ├── kt.sqlite3-shm -│ └── kt.sqlite3-wal +│ ├── khatibi92669266_backups_db_backup_20261021_223009.sqlite3 +│ ├── khatibi92669266_backups_db_backup_20261021_223009.sqlite3-shm +│ ├── khatibi92669266_backups_db_backup_20261021_223009.sqlite3-wal +│ └── kt.sqlite3 ├── docs │ └── visit_hold_entezar.md ├── graphify-out diff --git a/admin_panel/templates/admin_panel/customerActionInc.html b/admin_panel/templates/admin_panel/customerActionInc.html index 06ac574..861c888 100644 --- a/admin_panel/templates/admin_panel/customerActionInc.html +++ b/admin_panel/templates/admin_panel/customerActionInc.html @@ -318,6 +318,29 @@ #ActionBox .ax-warn.is-confirming .ax-warn-actions { display: flex; } #ActionBox .ax-warn:focus { outline: 2px solid #f59e0b; outline-offset: 2px; } + /* اعلان «تاریخ قرار عقب‌تر» — کلاس مستقل تا به CSS پنل «انجام شد» وابسته نباشد */ + #ActionBox .ax-holdback { + margin-top: .5rem; padding: .6rem .7rem; + border: 1px solid #fcd34d; border-radius: .5rem; background: #fffbeb; + color: #92400e; font-size: .78rem; line-height: 1.75; + } + #ActionBox .ax-holdback.is-blocking { + border-color: #f59e0b; box-shadow: 0 0 0 3px #fde68a66; background: #fef3c7; + } + #ActionBox .ax-holdback .ax-hb-title { font-weight: 800; color: #78350f; margin: 0 0 .15rem; } + #ActionBox .ax-holdback .ax-hb-current { margin: 0 0 .4rem; } + #ActionBox .ax-holdback .ax-hb-current b { font-weight: 800; } + #ActionBox .ax-holdback .ax-hb-alt { margin: 0; } + #ActionBox .ax-holdback .ax-hb-check { + display: flex; align-items: flex-start; gap: .5rem; margin: 0; + padding: .5rem .6rem; border-radius: .45rem; background: #fff; + border: 1px solid #fbbf24; cursor: pointer; font-weight: 700; color: #7c2d12; + } + #ActionBox .ax-holdback .ax-hb-check input { + width: 1.05rem; height: 1.05rem; margin-top: .15rem; flex: 0 0 auto; + } + #ActionBox .ax-holdback:focus { outline: 2px solid #f59e0b; outline-offset: 2px; } + #ActionBox .ax-help-toggle { display: flex; align-items: center; gap: .45rem; width: 100%; padding: .55rem .7rem; border: 1px solid #bae6fd; border-radius: .5rem; @@ -352,12 +375,15 @@ {% if customer %} -