feat: eXIP7.3.0.19 Post Reporting EXO-89953 - #440
Conversation
…EXO-89537 (#435) New dedicated listener on the generic social.activity.reported event, recording reportPost/reportComment operations with the reporter, the reason, the activity id and the owning space as dimensions.
Follow-up of #435 (merged): - Adds the `analytics.reportPost` / `analytics.reportComment` resource-bundle keys so the report operations — and any chart title using those keys — display translated labels in the analytics dashboards, like the sibling operations (`Like activity`, `Create comment`…). - Switches the report statistic parameters (`reportReason`, `activityId`, `parentActivityId`) from the deprecated `addParameter` to `addKeyword`, the API the sibling listeners use. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
EXO-89537 (#439) Adds the missing i18n keys resolved by the samples/charts views: `analytics.field.label.reportReason`, `analytics.field.label.parentActivityId`, and the seven report reason values — attribute names and values become translated and manageable in Crowdin. French translations seeded too (including the reportPost/reportComment operation labels) so it is testable on a French locale before the Crowdin sync.
boubaker
left a comment
There was a problem hiding this comment.
AI review — Round #1 (feature/mips integration)
Reviewed as part of the Post Reporting delivery (Meeds-io/social#6063, Meeds-io/content#909, exoplatform/data-upgrade#306), against board task 89537 (US07, validated 2026-09-02) and the eXip note (resynced 2026-08-31: the typed ActivityReport payload and the social-first release order are now what the spec states). Cherry-picks of #435 + #438 + #439 verified patch-identical with feature/devx (the only Analytics_*.properties differences are other eXips' keys). No new finding.
Previous rounds (analytics#435 Round #1–#2), re-verified at 994dcd4
| Item | Status |
|---|---|
| 🟡 Comment reports recorded no parent activity id | ✅ still fixed — parentActivityId keyword whenever parentObjectId is set |
🟡 Compile-time dependency on social's ActivityReport |
➖ accepted and now written into the spec (Integrations + release order) — closed |
#438 / #439 labels: analytics.reportPost / analytics.reportComment for the operations, analytics.field.label.reportReason and analytics.field.label.parentActivityId for the fields, and one analytics.<reasonKey> per reason value — this is the resolution path AnalyticsChart.vue actually takes (analytics.${value} first, then analytics.field.label.*), so reason values render translated in charts; EN and FR both provided.
Verified conform: dedicated listener subscribing to social.activity.reported — the same string ActivityReportService.EVENT_ACTIVITY_REPORTED broadcasts, with the same Event<ActivityReport, Long> typing; glue only, registered in @PostConstruct like its siblings; userId = reporter identity id; space resolved from the payload's streamOwnerIdentityId, which social derives with the same helper the creation guard uses (single-resolution rule holds).
CI (chat-level, not blocking): the PR build is red until social#6063's 7.3.x-mips-SNAPSHOT artifact carrying io.meeds.social.report is published — social merges first.
Classification: N2 taken alone (new cross-repo listener, no REST/DAO/schema/ACL surface); the delivery as a whole is N1 via social#6063 — max-severity aggregation applies at the feature/mips integration; its approver must know that, no auto-merge on AI review alone.
🤖 Generated with Claude Code
Integration of the Post Reporting eXip (eXIP7.3.0.19) from feature/devx — this repo's delivery commits cherry-picked in their original order (#435, #438, #439), verified patch-identical.
Knowledge: carried by the social integration PR.
Classification: the delivery is N1 via social (max-severity aggregation).