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:
Marc
2026-03-31 23:09:12 +02:00
parent 0ed29fe2fd
commit 8741282322
2933 changed files with 280644 additions and 264 deletions

View File

@@ -0,0 +1,109 @@
.o_hr_department_kanban .o_kanban_renderer {
--KanbanRecord-width: 450px;
--KanbanRecord-width-small: 350px;
}
.o_icon_employee_absent {
color: $warning;
}
.o_hr_employee_form_view .o_form_renderer {
.o_form_sheet_bg {
max-width: unset;
}
.o_employee_chat_btn {
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 5px;
@include media-breakpoint-down(md) {
margin-left: 0!important;
}
}
.o_employee_avatar {
position: relative;
width: fit-content;
display: flex;
flex-direction: column;
align-items: flex-start;
.o_employee_availability {
position: absolute;
z-index: 1;
top: 0px;
right: -5px;
padding-bottom: 1px;
border-radius: 50%;
background-color: $o-view-background-color;
height: 1rem;
width: 1rem;
* {
margin-bottom: 4px;
height: 1rem;
width: 1rem;
}
}
}
.oe_title {
flex: 1;
}
.o_employee_form_header_info{
flex: 5;
}
.o_presence_status_pill_wrapper{
flex: 3;
}
}
.o_hr_employee_kanban .o_kanban_renderer {
.o_employee_availability {
margin: unset !important;
}
}
.hr_tags {
margin-right: 20%;
}
.o_hr_narrow_field {
width: 8rem!important;
max-width: 8rem!important;
* {
max-width: 100%;
}
}
.o_hr_percentage_narrow_field input {
max-width: 8rem !important;
width: 8rem !important;
* {
max-width: 100%;
}
}
@for $size from 1 through 15 {
.o_hr_narrow_field-#{$size} {
width: #{$size}rem!important;
max-width: #{$size}rem!important;
}
}
@include media-breakpoint-up(lg) {
.o_hr_column {
padding: 0 calc(var(--gutter-x) * 1)!important;
&:first-child {
padding-left: calc(var(--gutter-x) * .5)!important;
}
&:last-child {
padding-right: calc(var(--gutter-x) * .5)!important;
}
}
}
.o_hr_version_list_view th[data-name="date_version"] {
width: 8rem !important;
}
.button-on {
color: $o-success;
}