Skip to content

crm_campaign_member 根本没有 view 元数据,但 event_attendee.view.ts:10 的注释以「campaign_member 有」为立论前提——按该注释自己的推理,营销活动详情页的成员关联列表在裸退化 #944

Description

@yinlianghui

发现自 #938 / PR #942 的实施过程(marketing/index《Where to find things》一节末句把读者指向「营销活动详情页」去看已加入的线索,核实这条路径时读到的)。

基线 origin/main = 11f62429(平台 17.0.0-rc.3)。

事实

src/views/event_attendee.view.ts:5-:16 的文件头注释,把自己存在的理由建立在 crm_campaign_member 上:

A junction object is normally edited inside its parent's related list, and
crm_event_attendee is no exception — but it still needs a grid and a form,
for the same reason crm_campaign_member has them: the related list renders
THIS view's columns, and the quick-create modal renders THIS form. Without
them the panel falls back to every column in declaration order and the
create modal offers the raw autonumber.

crm_campaign_member 没有这些 view:

  • ls src/views/ | grep -i campaign → 只有 campaign.view.ts(是 crm_campaign 的,不是成员的)。
  • src/views/index.ts 导出 15 个 view 模块,没有 CampaignMemberViews
  • grep -rln "crm_campaign_member" src/ --include="*.view.ts" → 只命中 event_attendee.view.ts 自己那句注释。

也就是说,注释里作为「已成立的先例」被引用的那个对象,恰恰是反例。

影响(按注释自己的推理)

如果 event_attendee.view.ts 对机制的描述是准确的——它是本仓对这条渲染路径唯一的成文说明——那么 crm_campaign_member 今天就正处在它描述的退化态:

  • 营销活动详情页的 Campaign Members 关联列表按声明顺序渲染全部字段,而不是策展过的列;
  • 快速新建弹窗把 member_number(autonumber)当作首个可填字段呈现。

我没有在浏览器里实测(本单按派发要求不起 dev server),所以影响一栏是从该注释的断言推导的,不是观测值。接手的人应先跑一次 dogfood 确认退化的具体形态,再决定补 view 还是改注释。

至少可以确定的是:两者必有一错——要么 crm_campaign_member 缺 view 元数据,要么 event_attendee.view.ts:10 的注释在拿一个不存在的先例说事。

与已有单的边界

建议的处置面

src/views/campaign_member.view.ts(grid + form,参照 event_attendee.view.ts 的形状),在 src/views/index.ts 导出,并按 src/translations/{en,zh-CN,es-ES,ja-JP}.ts 四语补 view label;或者,若判定关联列表的默认退化可接受,则改掉 event_attendee.view.ts 那句失实的注释。二选一,别两边都放着。

Refs #715 #597 #938 #942

Metadata

Metadata

Assignees

Labels

metadataDeclarative metadata — schema, security posture, UI surfacespm:dispatchedDispatched to a dev agent by /pm-dispatch

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions