6 Commits

Author SHA1 Message Date
1e7f713725 fix: use HTML meta refresh redirect instead of DataViewer or 302
PopupWindow renders dspy response directly. DataViewer doesn't
work inside popup context. HTML meta refresh redirects to CRUD page.
2026-07-12 10:28:24 +08:00
a930847317 fix: ensure dspy returns 302 redirect instead of DataViewer widget
PopupWindow can't render DataViewer returned from dspy.
Now dspy creates contract/agreement if needed, then 302→CRUD page.
2026-07-12 10:27:27 +08:00
ed4898bf90 fix: use absolute /supplychain/ paths in ensure dspy DataViewer URLs
Relative ../ paths inside PopupWindow DataViewer resolve without
module prefix. Use absolute /supplychain/ paths instead.
2026-07-10 13:51:06 +08:00
749047814f fix: use DataViewer instead of UrlWidget (UrlWidget ignores w/h; DataViewer works) 2026-07-10 11:30:05 +08:00
0c718cf461 fix: fix column name + ensure dspy now returns CRUD page after create
- sub_resellers column is sub_reseller_name (not sub_dist_name)
- After ensure, return UrlWidget loading CRUD list filtered by id
- Popup size increased for CRUD page viewing
2026-07-10 11:11:21 +08:00
3a36dc2400 feat: one-click ensure contract/agreement from supplier/distributor list
- api/ensure_distribution_agreement.dspy: check/create distribution_agreement for sub_reseller
- api/ensure_supply_contract.dspy: check/create supply_contract for supplier
- sub_distributors_list: toolbar '分销协议' now calls ensure endpoint (was PopupWindow)
- suppliers_list: add toolbar '供销协议' calling ensure endpoint
2026-07-10 10:37:17 +08:00