Files
Marc 8741282322 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>
2026-03-31 23:09:12 +02:00

107 lines
3.8 KiB
CSS

@font-face {
font-family: 'odoo_ui_icons';
src: url('fonts/odoo_ui_icons.woff2') format('woff2'), url('fonts/odoo_ui_icons.woff') format('woff');
font-weight: normal;
font-style: normal;
font-display: block;
}
.oi {
display: inline-block;
font-family: 'odoo_ui_icons' !important;
speak: never;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.oi-view-pivot:before { content: '\e800'; }
.oi-text-break:before { content: '\e801'; }
.oi-text-inline:before { content: '\e802'; }
.oi-voip:before { content: '\e803'; }
.oi-odoo:before { content: '\e806'; }
.oi-search:before { content: '\e808'; }
.oi-group:before { content: '\e80a'; }
.oi-settings-adjust:before { content: '\e80c'; }
.oi-apps:before { content: '\e80d'; }
.oi-panel-right:before { content: '\e810'; }
.oi-launch:before { content: '\e812'; }
.oi-studio:before { content: '\e813'; }
.oi-view-kanban:before { content: '\e814'; }
.oi-text-wrap:before { content: '\e815'; }
.oi-view-cohort:before { content: '\e816'; }
.oi-view-list:before { content: '\e817'; }
.oi-gif-picker:before { content: '\e82e'; }
.oi-chevron-down:before { content: '\e839'; }
.oi-chevron-left:before { content: '\e83a'; }
.oi-chevron-right:before { content: '\e83b'; }
.oi-chevron-up:before { content: '\e83c'; }
.oi-arrows-h:before { content: '\e83d'; }
.oi-arrows-v:before { content: '\e83e'; }
.oi-arrow-down-left:before { content: '\e83f'; }
.oi-arrow-down-right:before { content: '\e840'; }
.oi-arrow-down:before { content: '\e841'; }
.oi-arrow-left:before { content: '\e842'; }
.oi-arrow-right:before { content: '\e843'; }
.oi-arrow-up-left:before { content: '\e844'; }
.oi-arrow-up-right:before { content: '\e845'; }
.oi-arrow-up:before { content: '\e846'; }
.oi-draggable:before { content: '\e847'; }
.oi-view:before { content: '\e861'; }
.oi-archive:before { content: '\e862'; }
.oi-unarchive:before { content: '\e863'; }
.oi-text-effect:before { content: '\e827'; }
.oi-smile-add:before { content: '\e84e'; }
.oi-close:before { content: '\e852'; }
.oi-food-delivery:before { content: '\e82a'; }
.oi-schedule-today:before { content: '\e82c'; }
.oi-schedule-tomorrow:before { content: '\e82d'; }
.oi-schedule-later:before { content: '\e804'; }
.oi-activity:before { content: '\e82f'; }
.oi-activity-plus:before { content: '\e830'; }
.oi-numpad:before { content: '\e833'; }
.oi-transfer:before { content: '\e834'; }
.oi-suitcase:before { content: '\e835'; }
.oi-suitcase-plus:before { content: '\e832'; }
.oi-merge:before { content: '\e836'; }
.oi-record:before { content: '\e837'; }
.oi-backspace-o:before { content: '\e838'; }
.oi-user:before { content: '\e805'; }
.oi-user-plus:before { content: '\e831'; }
.oi-users:before { content: '\e807'; }
.oi-ellipsis-h:before { content: '\e867'; }
.oi-ellipsis-v:before { content: '\e868'; }
.oi-plus:before { content: '\e809'; }
.oi-minus:before { content: '\e80b'; }
.oi-star-plus:before { content: '\e87c'; }
.oi-subtitle:before { content: '\e80e'; }
.oi-threads:before { content: '\e818'; }
.oi-kickstarter:before { content: '\e819'; }
.oi-x:before { content: '\e81a'; }
.oi-x-square:before { content: '\e848'; }
.oi-tiktok:before { content: '\e81b'; }
.oi-bluesky:before { content: '\e81c'; }
.oi-google-play:before { content: '\e81d'; }
.oi-strava:before { content: '\e80f'; }
.oi-discord:before { content: '\e811'; }
/* RTL adaptations. */
/* Flip directional icons by 180 degree. */
/* ---------------------------------------------------------------------------- */
.o_rtl .oi-chevron-left,
.o_rtl .oi-chevron-right,
.o_rtl .oi-arrow-down-left,
.o_rtl .oi-arrow-down-right,
.o_rtl .oi-arrow-left,
.o_rtl .oi-arrow-right,
.o_rtl .oi-arrow-up-left,
.o_rtl .oi-arrow-up-right {
transform: rotate(180deg);
}