s.esmaeiliandClaude Opus 5.5 fbe4f38e06 feat(cities): cities are a tree again, as legacy's; old dashboard permissions merged (PERS-02, PERM-01)
Cities (owner: as legacy)
- City.parentId (self relation) replaces the flat `province` label; the
  migration turns each label into a parent row («استان …») first, so nothing
  is lost.
- Admin pickers are legacy's tree (CityTreeSelect): the top level, the
  country, is a heading. The city form and grid get «والد».
- Restored legacy _getP: a city without its own percent takes its
  ancestor's. Restored the omde-customer form's city → percent autofill.
- Import copies legacy parents; delete refuses a city with children; a
  parent loop is refused.

Permissions (owner approved the deletion)
- dashboard / dashboard.omde / dashboard.tak rows become dashboard.view,
  then are deleted.
- Import maps them the same way: legacy types 102, 104, 105, 108 and 135
  had lost the dashboard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:31:12 +03:30
2026-09-25 19:04:48 +03:30
2026-09-18 17:16:36 +03:30
2026-10-04 20:11:09 +03:30
2026-10-04 20:11:09 +03:30
2026-10-04 20:11:09 +03:30
2026-10-04 20:11:09 +03:30
2026-09-10 12:17:47 +03:30
2026-09-18 17:16:36 +03:30
2026-09-09 23:31:31 +03:30
2026-09-09 06:46:27 +03:30
2026-09-09 06:46:27 +03:30
2026-09-09 06:46:27 +03:30
S
Description
No description provided
123 MiB
Languages
JavaScript 73.2%
TypeScript 15%
Vue 10.9%
Less 0.4%
PLpgSQL 0.3%
Other 0.1%