From bc9a1fca4227a596d529086ee4c8bd6c8f78ce9b Mon Sep 17 00:00:00 2001 From: yinlianghui Date: Sat, 1 Aug 2026 09:03:52 +0800 Subject: [PATCH] fix(task): drop the shadowed assignment field group MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #577 gave crm_task a fieldGroups list (#575 A3). One entry, `assignment`, has `owner` as its only member — and the synthesized detail page hoists `owner` into the highlight strip, so the group renders on forms and never on detail pages. validate flagged it as `field-group-shadowed`, taking main from 4 warnings to 5. `owner` moves into `basic` alongside subject/status/priority, which is where a task's assignee reads naturally anyway, and the one-field group is gone. The same warning still stands for crm_campaign_member — pre-existing, whole `basic` group hoisted, and a different shape (that object also has no name/title field). Left alone here. verify: exit 0, 630 passed | 2 skipped, 5 warnings → 4. Refs #575. Co-Authored-By: Claude Opus 5 --- .changeset/task-shadowed-field-group.md | 10 ++++++++++ src/objects/task.object.ts | 7 +++++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 .changeset/task-shadowed-field-group.md diff --git a/.changeset/task-shadowed-field-group.md b/.changeset/task-shadowed-field-group.md new file mode 100644 index 00000000..1c04a759 --- /dev/null +++ b/.changeset/task-shadowed-field-group.md @@ -0,0 +1,10 @@ +--- +'hotcrm': patch +--- + +Drop the shadowed `assignment` field group on `crm_task`. #577 added the group +with `owner` as its only member, but the synthesized detail page hoists `owner` +into the highlight strip, so the group rendered on forms and never on detail +pages (`field-group-shadowed`). `owner` moves to `basic`, next to +subject/status/priority. Clears the warning #577 introduced; validate goes from +5 warnings to 4. diff --git a/src/objects/task.object.ts b/src/objects/task.object.ts index 9ed9a670..da1ebc3f 100644 --- a/src/objects/task.object.ts +++ b/src/objects/task.object.ts @@ -23,7 +23,10 @@ export const Task = ObjectSchema.create({ fieldGroups: [ { key: 'basic', label: 'Task Information', icon: 'info' }, { key: 'scheduling', label: 'Scheduling', icon: 'calendar' }, - { key: 'assignment', label: 'Assignment', icon: 'user' }, + // No 'assignment' group: `owner` was its only member, and the synthesized + // detail page hoists `owner` into the highlight strip — so the group + // rendered on forms and never on detail pages (`field-group-shadowed`). + // It lives in `basic` alongside subject/status/priority instead. { key: 'related', label: 'Related Records', icon: 'link' }, { key: 'recurrence', label: 'Recurrence', icon: 'refresh-ccw', defaultExpanded: false }, { key: 'effort', label: 'Progress & Effort', icon: 'activity', defaultExpanded: false }, @@ -123,7 +126,7 @@ export const Task = ObjectSchema.create({ // Assignment owner: Field.lookup('sys_user', { - group: 'assignment', + group: 'basic', defaultValue: cel`os.user.id`, label: 'Assigned To', trackHistory: true,