Widgets, Reminders & Settings
Everything ambient in the Assets module: the two dashboard widgets that surface assets without anyone opening the Safekeep menu, the topbar shortcut icon, the four scheduled cron jobs that compute book values and chase people about returns, warranties and audits, and the small number of settings that tune the whole area.
module_assets, Settings → Manage Modules → Assets under the
Safekeep category) and the base asset permission — see
Getting Started and
Permissions & Roles. The cron jobs run per tenant and are
enabled by default as soon as the module is on.
Dashboard widgets
The module registers two widgets in the core Dashboard's widget palette. Both are read-only DataTables (10 rows per page, a refresh button, and a fixed-height scroll area) whose row titles link to the asset detail page.
Widget key assets_assigned_to_me. Available on both staff
and client dashboards and included in the default widget set for both — most users
see it without doing anything.
Widget key assets_attention. Staff only and
not in the default palette — an admin or staff user must add it to a custom
dashboard themselves.
"Assets assigned to me"
Panel heading: an archive icon plus "Assets assigned to me". It lists every asset whose
current holder (issued_to) is the logged-in user — in Safekeep vocabulary, every
asset currently endorsed to you. Default sort: Due date ascending, so the return
you owe soonest is on top.
| Column | What it shows |
|---|---|
| Title | The asset's title, as a link to the asset view page
(ams/assets/view/…). |
| Asset Tag | The asset's tag. |
| Category | The asset's category. |
| Status | The endorsement status chip: Assigned Acknowledged Return requested Returned — or "-" when none. |
| Due date | The endorsement's return-by date (due_at). |
"Assets needing attention"
Panel heading: a warning-triangle icon plus "Assets needing attention". This is the custodian's radar: it lists every asset that meets at least one of three conditions, each rendered as a colored chip in the Status column (one asset can carry several chips at once). Default sort: Due date ascending.
due_at) is today or
in the past, and the asset has not been returned yet.asset_warranty_reminder_days setting,
defaulting to 30.| Column | What it shows |
|---|---|
| Title | Asset title, linking to the asset view page. |
| Endorsed to | The current holder's name, or "-" if the asset is unassigned. |
| Status | The attention chip(s) listed above — an asset can show more than one. |
| Due date | The endorsement's return-by date. |
| Warranty expiry date | The asset's warranty expiry date. |
| Next Audit | The asset's next scheduled audit date — see Auditing Assets. |
Like the first widget, there are no in-place actions — click the title to act on the asset from its detail page. The same three buckets have report-style counterparts: the Audit due tab of Asset Reports covers audits (with a wider 30-day look-ahead), and the three reminder cron jobs below notify holders about the same conditions.
Adding a widget to a dashboard
-
Open (or create) a custom dashboard
"Assets assigned to me" already sits in the default dashboard for both staff and clients. To place either widget yourself, use a custom dashboard: on the Dashboard page, open the "…" menu at the top right and choose "Add new dashboard" (a small modal asks for a title and a color). Saving drops you straight into the new dashboard's edit screen. Existing custom dashboards are opened via the colored dots beside that menu.
-
Enter edit mode
On an existing custom dashboard, the same "…" menu offers "Edit dashboard". The edit screen shows the widget palette in a fixed panel on the left — a search box plus every widget available to you. (The palette's "Add widget" button builds a brand-new custom widget; you don't need it to place the shipped Assets widgets.)
-
Place the Assets widget
If the dashboard is empty, click "Add row" and pick a column layout first. Then find "Assets assigned to me" or "Assets needing attention" in the palette, drag it into a row, and press "Save" (or "Save & show"). The widgets only appear in the palette while the Assets module is enabled and you hold the
assetpermission — and "Assets needing attention" is offered to staff dashboards only.
Topbar icon
The module ships one topbar shortcut: an archive icon with the tooltip "Assets" that
simply navigates to ams/assets (the Asset
Registry). It has no dropdown, no badge, and no unread count — it is a plain link.
asset permission. There is currently no My Preferences control for hiding
topbar shortcuts (that preference field is disabled in the UI).
Cron jobs
Four scheduled jobs ship with the module. All are discovered by ERPat's Advanced Cron runtime, are enabled by default, and run per tenant. One computes numbers silently; the other three send reminder notifications to asset holders.
| Job | Slug | Schedule | What it does | Who gets notified | Notification message |
|---|---|---|---|---|---|
| Compute asset depreciation | compute_asset_depreciation |
Monthly — the 1st of the month at 01:10 | Recomputes the straight-line book value for every non-deleted asset that has a
depreciation schedule, a cost > 0 and a purchase date, and stores
current_value and depreciation_computed_at into the asset's
meta. This feeds the Depreciation schedule report — see
Depreciations. |
Nobody — no notification is raised; output is visible only in the cron run log. | — |
| Remind asset return due | remind_asset_return_due |
Daily at 07:00 | Finds endorsed assets whose return-by date (due_at) is within the next
3 days or already past, and that have not been returned. Assets with no holder
are skipped. |
The asset holder (the "Endorsed to" user) only. | "An asset assigned to you is due to be returned" |
| Remind asset warranty expiry | remind_asset_warranty_expiry |
Daily at 07:30 | Finds assets whose warranty expiry date falls between today and today + 30
days (already-expired warranties are excluded). The 30-day window is
hardcoded in the job — it does not read the
asset_warranty_reminder_days setting the widget uses. Unassigned assets
are skipped. |
The asset holder only. | "An asset's warranty is about to expire" |
| Remind asset audit due | remind_asset_audit_due |
Weekly — Monday at 08:00 | Finds assets whose Next Audit date is within the next 7 days or already overdue. Unassigned assets are skipped — audits on unassigned assets surface only via the Audit due report and the attention widget. | The asset holder only. | "An asset assigned to you is due for audit" |
Running a job manually
Administrators can list, dry-run, or trigger any of the four jobs from the ERPat CLI without waiting for the schedule:
php erpat cron:list # see all jobs + schedules
php erpat cron:dry-run compute_asset_depreciation # simulate, no writes
php erpat cron:run compute_asset_depreciation
php erpat cron:run remind_asset_return_due
php erpat cron:run remind_asset_warranty_expiry
php erpat cron:run remind_asset_audit_dueA manual cron:run of the depreciation job is the quickest way to populate the
"Current value" and "Computed at" columns of the Depreciation schedule report
right after you attach depreciation profiles — otherwise they show "-" until the 1st of the
next month.
Settings
Settings → Asset Entries Configuration
The one settings screen for this area lives in core Settings (components group), reached at Settings → Asset Entries. Page heading: "Asset Entries Configuration". It has two fields and a Save button:
| Field | Input | Tooltip (quoted) | Effect |
|---|---|---|---|
"Sort Asset Entry Comments"sort_asset_entry_comments |
Dropdown: "Ascending" / "Descending" (default: Descending) | "Choose how to sort comments — ascending (oldest first) or descending (newest first)." | Controls the order of the comment stream on the asset detail page. |
"Allowed users to mention"allowed_users_to_mention_on_asset_entries |
Multi-select user picker; its first option "- Select All -" selects everyone at once | "Select which users can be mentioned in asset entry comments." | Restricts who can be @-mentioned in asset comments. |
Saving shows a success toast and writes the system-log event "Asset entries settings updated".
asset_warranty_reminder_days— the look-ahead window (in days) for the Warranty expiring chip in the "Assets needing attention" widget. Default: 30. Note the warranty reminder cron ignores this setting and always uses 30 days.asset_audit_cadence_days— the default value pre-filled in the audit modal's "Schedule next audit in (days)" field. Default: 90, and effectively fixed at 90 unless the setting is added via the database. See Auditing Assets.
In-app notifications
The three reminder jobs deliver through the standard ERPat notification pipeline: an in-app web notification plus an email (using the general notification email template — there are no dedicated Assets email templates), each subject to the recipient's own per-event notification preferences. The recipient is always the asset's current holder, and clicking a notification opens that asset's detail page.
| Event | Notification text (quoted) | Sent by |
|---|---|---|
asset_return_due |
"An asset assigned to you is due to be returned" | Remind asset return due (daily, 07:00) |
asset_warranty_expiring |
"An asset's warranty is about to expire" | Remind asset warranty expiry (daily, 07:30) |
asset_audit_due |
"An asset assigned to you is due for audit" | Remind asset audit due (weekly, Monday 08:00) |