- Copy all OWL frontend assets (JS/CSS/XML/fonts/images) into frontend/ directory (2925 files, 43MB) — no more runtime reads from Python Odoo - Replace OdooAddonsPath config with FrontendDir pointing to local frontend/ - Rewire bundle.go, static.go, templates.go, webclient.go to read from frontend/ instead of external Python Odoo addons directory - Auto-detect frontend/ and build/ dirs relative to binary in main.go - Delete obsolete Python helper scripts (tools/*.py) The Go server is now fully self-contained: single binary + frontend/ folder. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
56 lines
2.2 KiB
JavaScript
56 lines
2.2 KiB
JavaScript
import { Domain } from "@web/core/domain";
|
|
import { ActivityMenu } from "@mail/core/web/activity_menu";
|
|
import { patch } from "@web/core/utils/patch";
|
|
|
|
patch(ActivityMenu.prototype, {
|
|
availableViews(group) {
|
|
if (group.model === "crm.lead") {
|
|
return [
|
|
[false, "list"],
|
|
[false, "kanban"],
|
|
[false, "form"],
|
|
[false, "calendar"],
|
|
[false, "pivot"],
|
|
[false, "graph"],
|
|
[false, "activity"],
|
|
];
|
|
}
|
|
return super.availableViews(...arguments);
|
|
},
|
|
|
|
openActivityGroup(group, filter = "all", newWindow) {
|
|
// fetch the data from the button otherwise fetch the ones from the parent (.o_ActivityMenuView_activityGroup).
|
|
const context = {};
|
|
if (group.model === "crm.lead") {
|
|
this.dropdown.close();
|
|
if (filter === "my" || filter === "all") {
|
|
context["search_default_activities_overdue"] = 1;
|
|
context["search_default_activities_today"] = 1;
|
|
} else if (filter === "overdue") {
|
|
context["search_default_activities_overdue"] = 1;
|
|
} else if (filter === "today") {
|
|
context["search_default_activities_today"] = 1;
|
|
} else {
|
|
context["search_default_activities_upcoming_all"] = 1;
|
|
}
|
|
// Necessary because activity_ids of mail.activity.mixin has auto_join
|
|
// So, duplicates are faking the count and "Load more" doesn't show up
|
|
context["force_search_count"] = 1;
|
|
this.action.loadAction("crm.crm_lead_action_my_activities").then((action) => {
|
|
// to show lost leads in the activity
|
|
action.domain = Domain.and([
|
|
action.domain || [],
|
|
[["active", "in", [true, false]]],
|
|
]).toList();
|
|
this.action.doAction(action, {
|
|
newWindow,
|
|
additionalContext: context,
|
|
clearBreadcrumbs: true,
|
|
});
|
|
});
|
|
} else {
|
|
return super.openActivityGroup(...arguments);
|
|
}
|
|
},
|
|
});
|