Commit Graph

10 Commits

Author SHA1 Message Date
Ali 3decdc6ae8 feat: desk layout engine for jey_layout (hide/block/add/reorder)
Non-destructive, server-side filtering/injection of desk workspaces/cards/links
driven by config/desk_layout.json. Adds desk_layout.py + desk_overrides.py,
extends access_control.py (Report/Page blocking, fail-open hooks), dynamically
loads the jey_layout editor in design mode, and documents the edge proxy
proxy_buffer_size gotcha in CLAUDE.md. Test snapshot cleared to empty.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 12:53:53 +00:00
Ali bc994927c8 setup: re-add Employees /desk icon under Frappe HR
HRMS v16 dropped the old Employee Lifecycle workspace (see
hrms/patches/v16_0/delete_old_workspaces.py), which removed its
desktop icon from the Frappe HR folder. This adds it back as a
jey_theme-owned record so HRMS upgrades stay untouched.

The icon is link_type='Workspace Sidebar' pointing to a minimal
Workspace Sidebar 'Employees' that has a single DocType link to
Employee — Frappe's DesktopIcon.is_permitted requires a sidebar
named after the icon's label or it filters the icon out of bootinfo,
so an External link alone is not enough. No Workspace page is
created. Click routes to /app/employee via get_route_for_icon.

Idempotent setup runs on after_migrate, mirroring taxes_workspace.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 15:35:39 +00:00
Ali 084c92466a taxes workspace: add Taxes Az subsystem via after_migrate setup
Creates a custom /desk subsystem "Taxes Az" listing user-facing doctypes
from the taxes_az module in three cards (Declarations & Returns, Setup &
Reference, Period Closing & Tools). The doctype list is a STATIC snapshot
baked into taxes_workspace.py — adding a new DocType to taxes_az will not
automatically put it into the workspace; edit the tuples and re-run setup.

- Uses "Taxes Az" name (not "Taxes") to avoid collision with erpnext's
  built-in Workspace Sidebar "Taxes", which otherwise hijacks routing to
  /app/sales-taxes-and-charges-template.
- Creates a matching Workspace Sidebar whose first Link is link_type=
  "Workspace" so Frappe's desktop.js get_route() generates a clean
  /app/taxes-az route and the click stays in-tab (standard behaviour).
- Desktop Icon with idx=999 pins it to the end of the /desk grid.
- Cleanup of the obsolete "Taxes" doc we created earlier is idempotent
  and scoped to jey_theme-owned records (never touches erpnext's).

Registered via after_migrate hook so every `bench migrate` re-asserts
the configuration. setup() is idempotent.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 13:10:04 +00:00
Ali 96099513a1 access control: hide Quality and Subcontracting modules
Adds jey_theme.access_control with a single source of truth (BLOCKED_MODULES,
BLOCKED_DOCTYPES_EXTRA) and three Frappe hooks:

- before_request: HTTP-level block on /api/resource/<Doctype>, /app/<slug>
  and any whitelisted method passing `doctype` in form_dict. Runs before the
  Administrator bypass in frappe.permissions, so it blocks every user.
- extend_bootinfo: strips blocked modules/doctypes/workspaces from bootinfo
  (workspaces.pages, module_wise_workspaces, app_data, desktop_icons,
  user.can_read/...) so the client router never registers routes for them
  and the sidebar/switcher hide them.
- has_permission wildcard: per-doc safety net for non-Administrator users.

shared.css gets desktop-icon[data-id] fallbacks for Quality/Subcontracting.

Reversal: clear BLOCKED_MODULES in access_control.py and run
`bench --site <site> clear-cache && bench restart`. No DB writes are made.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 11:54:48 +00:00
Ali 37c4ccce88 new chromo ui with new features 2026-04-08 14:27:30 +00:00
Ali 45a344447d backup push 2025-11-11 15:09:57 +04:00
Ali a58b23dbf3 huge app rework, liquid glass 2025-10-20 20:37:41 +04:00
Ali 11ff2f70f7 Fixed margin between menu items 2025-03-19 17:10:35 +04:00
Awey01 9ab2ee130e work 2024-08-13 09:57:25 +00:00
ubuntu b0efcf8c6e feat: Initialize App 2024-07-18 15:03:34 +00:00