Eliminate Python dependency: embed frontend assets in odoo-go
- 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>
This commit is contained in:
55
frontend/crm/static/src/activity_menu_patch.js
Normal file
55
frontend/crm/static/src/activity_menu_patch.js
Normal file
@@ -0,0 +1,55 @@
|
||||
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);
|
||||
}
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user