Description: Install and run Odoo without demo data
Commit: kmitl:d290b83a  
Subject: [IMP] agx_sarabun: add เนื้อหา (content) body field to หนังสือ
Author: n3n
Committer: n3n
Commit: stock-logistics-warehouse:17b7b854  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: stock-logistics-request:7a23da2f  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: social:c4473eb8  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: product-attribute:fa5e3d03  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: partner-contact:1ef0e2cc  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: account-analytic:cdc63a6c  
Subject: Translated using Weblate (Spanish)
Author: CoralNetkia
Committer: Weblate
Commit: operating-unit:1535a4af  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: agreement:800e753c  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: server-backend:ccf60878  
Subject: Update requirements.txt
Author: Nopparut Saelim
Committer: GitHub
Commit: account-reconcile:c031db9d  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: mis-builder:82d39175  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: reporting-engine:4cafaadb  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: odoo:6491e005  
Subject: [FIX] survey: avoid timer early submissions due to time difference
Author: João Alves
Committer: João Horta Alves
Commit: account-financial-reporting:948901d9  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: project:7a5c615c  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: server-tools:3abe25d7  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: server-ux:23e96d19  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: hr:3af635cb  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: account-financial-tools:c3b3e7dd  
Subject: Added translation using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: web:fb9be06e  
Subject: Translated using Weblate (Portuguese (Brazil))
Author: Luis Felipe Miléo
Committer: Weblate
Commit: account-invoicing:7207e6e2  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: purchase-workflow:ecf70d6c  
Subject: Translated using Weblate (Turkish)
Author: Betül Öğmen
Committer: Weblate
Commit: server-brand:2bc45d77  
Subject: [UPD] addons table in README.md
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: l10n-thailand:0b7b078e  
Subject: [UPD] addons table in README.md
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: odoo-modules:76529673  
Subject: Merge branch '16.0' of github.com:Aginix/odoo-modules into 16.0
Author: Nonpawit Teerachetmongkol
Committer: Nonpawit Teerachetmongkol
Version: 16.0
Config: Without demo
Total time: 13m
Date Level Type Message
2026-07-03 09:36:58 INFO runbot Init build environment with config Without demo
2026-07-03 09:36:58 Starting step install_without_demo from config Without demo
2026-07-03 09:36:58 INFO runbot Using Dockerfile Tag odoo:DockerDefaultAke
2026-07-03 09:39:55 INFO server odoo.modules.loading:336 1 modules loaded in 9.39s, 7918 queries (+7918 extra)
2026-07-03 09:40:22 WARNING server odoo.addons.base.models.ir_module:139
docutils' system message present: <system_message level="2" line="1" source="<string>" type="WARNING"><paragraph>Title overline too short.</paragraph><literal_block xml:space="preserve">==================================
Mail Activity Todo (Unified Action Inbox)
==================================</literal_block></system_message>
2026-07-03 09:40:23 WARNING server odoo.addons.base.models.ir_module:964 module mail_notification_inbox_email: description is empty !
2026-07-03 09:40:23 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:40:23 WARNING server odoo.addons.base.models.ir_module:964 module office_order: description is empty !
2026-07-03 09:40:27 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:40:29 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:40:32 WARNING server odoo.addons.base.models.ir_module:964 module aginix_hrms_base: description is empty !
2026-07-03 09:40:38 WARNING server odoo.addons.base.models.ir_module:964 module hr_employee_education_history: description is empty !
2026-07-03 09:40:39 WARNING server odoo.addons.base.models.ir_module:964 module hr_employee_kmitl_kid: description is empty !
2026-07-03 09:40:39 WARNING server odoo.addons.base.models.ir_module:964 module hr_employee_role: description is empty !
2026-07-03 09:40:45 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:40:47 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:40:49 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:40:52 WARNING server odoo.addons.base.models.ir_module:964 module hr_employee_security_role: description is empty !
2026-07-03 09:40:53 WARNING server odoo.models:4437 Creating record hr.access_hr_central_user in module hr_employee_security_role.
2026-07-03 09:40:53 WARNING server odoo.models:4437 Creating record hr.access_hr_department_manager in module hr_employee_security_role.
2026-07-03 09:40:53 WARNING server odoo.models:4437 Creating record hr.access_hr_departure_reason_manager in module hr_employee_security_role.
2026-07-03 09:40:53 WARNING server odoo.addons.base.models.ir_ui_view:412 Error-prone use of @class in view hr.employee.form.inherit (): use the hasclass(*classes) function to filter elements by their classes
2026-07-03 09:40:53 WARNING server odoo.addons.base.models.ir_module:139
docutils' system message present: <system_message level="2" line="1" source="<string>" type="WARNING"><paragraph>Title overline too short.</paragraph><literal_block xml:space="preserve">==============
IAM - HR Departments
==============</literal_block></system_message>
2026-07-03 09:40:58 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:41:05 WARNING server odoo.addons.base.models.ir_module:964 module hr_employee_decoration: description is empty !
2026-07-03 09:41:06 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (position_level_id, position_level_ids) of hr.employee() have the same label: Position Level. [Modules: hr_employee_position_level and hr_employee_position_level]
2026-07-03 09:41:06 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:41:06 WARNING server odoo.addons.base.models.ir_module:964 module hr_employee_position_level: description is empty !
2026-07-03 09:41:21 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (position_level_id, position_level_ids) of hr.employee() have the same label: Position Level. [Modules: hr_employee_position_level and hr_employee_position_level]
2026-07-03 09:41:21 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (attachment_count, message_attachment_count) of office.order() have the same label: Attachment Count. [Modules: office_order and mail]
2026-07-03 09:41:40 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (position_level_id, position_level_ids) of hr.employee() have the same label: Position Level. [Modules: hr_employee_position_level and hr_employee_position_level]
2026-07-03 09:41:41 WARNING server odoo.addons.base.models.ir_module:964 module hr_employee_academic_standing_thailand: description is empty !
2026-07-03 09:42:16 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (position_level_id, position_level_ids) of hr.employee() have the same label: Position Level. [Modules: hr_employee_position_level and hr_employee_position_level]
2026-07-03 09:42:33 WARNING server odoo.addons.stock_kmitl.hooks:24 Updated warehouse 1 -> KMITL, OU cleared
2026-07-03 09:42:35 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (account_id, code) of budget.move.line() have the same label: รหัสงบประมาณ. [Modules: budget and budget]
This error is already known.
2026-07-03 09:42:40 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (name, item_id) of kris.project.allocation.line() have the same label: Allocator. [Modules: kris_project and kris_project]
2026-07-03 09:44:04 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (account_id, code) of budget.appropriation.line() have the same label: รหัสงบประมาณ. [Modules: budget_appropriation and budget_appropriation]
2026-07-03 09:44:06 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (account_id, code) of budget.move.line() have the same label: รหัสงบประมาณ. [Modules: budget and budget]
This error is already known.
2026-07-03 09:44:08 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (participant_ids, target_ids) of kmitl.project() have the same label: กลุ่มเป้าหมาย/ผู้ดำเนินโครงการ. [Modules: kmitl_project and kmitl_project]
2026-07-03 09:44:08 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (organizer_ids, target_ids) of kmitl.project() have the same label: กลุ่มเป้าหมาย/ผู้ดำเนินโครงการ. [Modules: kmitl_project and kmitl_project]
2026-07-03 09:44:08 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (kmitl_project_id, kmitl_project_analytic_id) of budget.commitment() have the same label: โครงการ/กิจกรรม. [Modules: kmitl_project and budget]
2026-07-03 09:44:08 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:11 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:12 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:13 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (kmitl_project_id, kmitl_project_analytic_id) of budget.commitment() have the same label: โครงการ/กิจกรรม. [Modules: kmitl_project and budget]
2026-07-03 09:44:13 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (account_id, code) of budget.move.line() have the same label: รหัสงบประมาณ. [Modules: budget and budget]
This error is already known.
2026-07-03 09:44:13 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (account_id, code) of budget.appropriation.line() have the same label: รหัสงบประมาณ. [Modules: budget_appropriation and budget_appropriation]
2026-07-03 09:44:13 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:15 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:15 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:16 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:17 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:17 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:18 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:18 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:19 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (tax_id, price_tax) of purchase.request.line() have the same label: Tax. [Modules: purchase_request_price_tax_included and purchase_request_price_tax_included]
2026-07-03 09:44:19 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (tax_id, price_tax) of purchase.request.line.make.purchase.order.item() have the same label: Tax. [Modules: purchase_request_price_tax_included and purchase_request_price_tax_included]
2026-07-03 09:44:19 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:20 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:20 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:21 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:21 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:22 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (location, asset_location_id) of account.asset() have the same label: Location. [Modules: account_asset_kmitl and l10n_th_gov_account_asset_management]
2026-07-03 09:44:22 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:24 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:25 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (display_state, state) of account.move() have the same label: Status. [Modules: accounting_kmitl_workflow and accounting_kmitl]
2026-07-03 09:44:25 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (display_state, state) of account.bank.statement.line() have the same label: Status. [Modules: None and None]
2026-07-03 09:44:25 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (display_state, state) of account.payment() have the same label: Status. [Modules: None and None]
2026-07-03 09:44:25 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:26 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (account_id, code) of budget.appropriation.line() have the same label: รหัสงบประมาณ. [Modules: budget_appropriation and budget_appropriation]
2026-07-03 09:44:26 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:26 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:27 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (capital_expenditure_amount, capital_budget_amount) of budget.appropriation.compilation() have the same label: งบลงทุน. [Modules: budget_appropriation_summary and budget_appropriation_summary]
2026-07-03 09:44:27 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (create_uid, user_id) of budget.appropriation.compilation() have the same label: Created by. [Modules: budget_appropriation_summary and budget_appropriation_summary]
2026-07-03 09:44:27 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (create_uid, user_id) of budget.appropriation.master.summary() have the same label: Created by. [Modules: budget_appropriation_summary and budget_appropriation_summary]
2026-07-03 09:44:27 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (capital_budget_amount, capital_expenditure_amount) of budget.appropriation() have the same label: งบลงทุน. [Modules: budget_appropriation_summary and budget_appropriation]
2026-07-03 09:44:27 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (account_id, code) of budget.appropriation.line() have the same label: รหัสงบประมาณ. [Modules: budget_appropriation and budget_appropriation]
2026-07-03 09:44:27 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:29 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (capital_budget_amount, capital_expenditure_amount) of budget.appropriation() have the same label: งบลงทุน. [Modules: budget_appropriation_summary and budget_appropriation]
2026-07-03 09:44:29 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:29 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:30 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:59 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:44:59 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:00 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (work_end_display, work_end) of purchase.order() have the same label: Work End. [Modules: purchase_contract_kmitl and purchase_contract_kmitl]
2026-07-03 09:45:00 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:01 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:01 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:02 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:03 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:03 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:04 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (location, asset_location_id) of account.asset() have the same label: Location. [Modules: account_asset_kmitl and l10n_th_gov_account_asset_management]
2026-07-03 09:45:04 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:05 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:06 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:07 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:07 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (create_uid, user_id) of budget.appropriation.master.summary() have the same label: Created by. [Modules: budget_appropriation_summary and budget_appropriation_summary]
2026-07-03 09:45:07 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:08 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (capital_expenditure_amount, capital_budget_amount) of budget.appropriation.compilation() have the same label: งบลงทุน. [Modules: budget_appropriation_summary and budget_appropriation_summary]
2026-07-03 09:45:08 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (create_uid, user_id) of budget.appropriation.compilation() have the same label: Created by. [Modules: budget_appropriation_summary and budget_appropriation_summary]
2026-07-03 09:45:08 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:45:09 WARNING server odoo.addons.base.models.ir_model:1077 Two fields (capital_expenditure_amount, capital_budget_amount) of budget.appropriation.compilation() have the same label: งบลงทุน. [Modules: budget_appropriation_summary and budget_appropriation_summary]
2026-07-03 09:45:09 Log limit reached (full logs are still available in the log file)
2026-07-03 09:50:03 Step install_without_demo finished in 13m
2026-07-03 09:50:03 Starting step run_without_demo from config Without demo
2026-07-03 09:50:03 INFO runbot Start running build 13107-16-0
2026-07-03 09:50:03 INFO runbot Using Dockerfile Tag odoo:DockerDefaultAke
2026-07-03 09:53:16 INFO server odoo.modules.loading:336 1 modules loaded in 0.01s, 0 queries (+0 extra)
2026-07-03 09:53:21 INFO server odoo.modules.loading:336 350 modules loaded in 4.62s, 0 queries (+0 extra)
2026-07-03 09:54:31 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 09:54:31 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1228, in process_work
    base.models.ir_cron.ir_cron._process_jobs(db_name)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 135, in _process_jobs
    registry[cls._name]._process_job(db, cron_cr, job)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 350, in _process_job
    ir_cron._callback(job['cron_name'], job['ir_actions_server_id'], job['id'])
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 391, in _callback
    self.env['ir.actions.server'].browse(server_action_id).run()
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 675, in run
    res = runner(run_self, eval_context=eval_context)
  File "/data/build/odoo/addons/website/models/ir_actions_server.py", line 61, in _run_action_code_multi
    res = super(ServerAction, self)._run_action_code_multi(eval_context)
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 545, in _run_action_code_multi
    safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self))  # nocopy allows to return 'action'
  File "/data/build/odoo/odoo/tools/safe_eval.py", line 399, in safe_eval
    return unsafe_eval(c, globals_dict, locals_dict)
  File "ir.actions.server(803,)", line 1, in <module>
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 34, in action_recompute_expire
    records._compute_days_to_expire()
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 47, in _compute_days_to_expire
    record.days_to_expire = (record.work_end - today).days
  File "/data/build/odoo/odoo/fields.py", line 1337, in __set__
    records.write({self.name: write_value})
  File "/data/build/kmitl/purchase_contract_kmitl/models/purchase_order.py", line 121, in write
    return super().write(vals)
  File "/data/build/odoo/addons/purchase_stock/models/purchase.py", line 95, in write
    res = super(PurchaseOrder, self).write(vals)
  File "/data/build/odoo/addons/purchase_requisition/models/purchase.py", line 158, in write
    result = super(PurchaseOrder, self).write(vals)
  File "/data/build/purchase-workflow/purchase_exception/models/purchase.py", line 41, in write
    result = super().write(vals)
  File "/data/build/odoo/addons/purchase/models/purchase.py", line 235, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/mail/models/mail_thread.py", line 315, in write
    result = super(MailThread, self).write(values)
  File "/data/build/odoo/addons/mail/models/mail_activity_mixin.py", line 241, in write
    return super(MailActivityMixin, self).write(vals)
  File "/data/build/kmitl/base_state_leadtime/models/state_leadtime_mixin.py", line 89, in write
    result = super().write(vals)
  File "/data/build/kmitl/account_analytic_kmitl/models/analytic_mixin.py", line 82, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/analytic/models/analytic_mixin.py", line 82, in write
    return super().write(vals)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 165, in write
    return super().write(vals)
  File "/data/build/odoo/odoo/models.py", line 3766, in write
    if self.pool.is_modifying_relations(field):
  File "/data/build/odoo/odoo/modules/registry.py", line 458, in is_modifying_relations
    result = field in self._field_triggers and (
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-03 13:10:49 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 13:11:11 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-03 13:11:17 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1168, in process_work
    self.process_request(client, addr)
  File "/data/build/odoo/odoo/service/server.py", line 1159, in process_request
    self.server.process_request(client, addr)
  File "/usr/lib/python3.12/socketserver.py", line 349, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.12/socketserver.py", line 362, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python3.12/socketserver.py", line 761, in __init__
    self.handle()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 342, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python3.12/http/server.py", line 436, in handle
    self.handle_one_request()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 374, in handle_one_request
    self.run_wsgi()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 319, in run_wsgi
    execute(self.server.app)
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 308, in execute
    application_iter = app(environ, start_response)
  File "/data/build/odoo/odoo/http.py", line 2237, in __call__
    response = request._serve_db()
  File "/data/build/odoo/odoo/http.py", line 1824, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/odoo/http.py", line 1852, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/data/build/odoo/odoo/http.py", line 1966, in dispatch
    return self.request.registry['ir.http']._dispatch(endpoint)
  File "/data/build/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
    response = super()._dispatch(endpoint)
  File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 156, in _dispatch
    result.flatten()
  File "/data/build/odoo/odoo/tools/facade.py", line 83, in wrap_func
    func(self._wrapped__, *args, **kwargs)
  File "/data/build/odoo/odoo/http.py", line 1213, in flatten
    self.response.append(self.render())
  File "/data/build/odoo/odoo/http.py", line 1205, in render
    return request.env["ir.ui.view"]._render_template(self.template, self.qcontext)
  File "/data/build/odoo/addons/website/models/ir_ui_view.py", line 419, in _render_template
    return super()._render_template(template, values=values)
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 2135, in _render_template
    return self.env['ir.qweb']._render(template, values)
  File "/data/build/odoo/odoo/tools/profiler.py", line 301, in _tracked_method_render
    return method_render(self, template, values, **options)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 593, in _render
    result = ''.join(rendering)
  File "<214>", line 243, in template_214
  File "<214>", line 232, in template_214_content
  File "<213>", line 51, in template_213
  File "<213>", line 40, in template_213_content
  File "<1341>", line 1402, in template_1341
  File "<1341>", line 1015, in template_1341_content
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 2466, in _load_values
    return get_value()
  File "<1341>", line 1005, in template_1341_t_cache_0_cache
  File "<1341>", line 426, in template_1341_t_cache_0
  File "/data/build/odoo/addons/website/models/ir_qweb.py", line 122, in _get_asset_nodes
    return super(IrQWeb, self_website)._get_asset_nodes(bundle, css=css, js=js, debug=debug, async_load=async_load, defer_load=defer_load, lazy_load=lazy_load, media=media)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 2438, in _get_asset_nodes
    return self._generate_asset_nodes_cache(bundle, css, js, debug, async_load, defer_load, lazy_load, media)
  File "<decorator-gen-71>", line 2, in _generate_asset_nodes_cache
  File "/data/build/odoo/odoo/tools/cache.py", line 90, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 2493, in _generate_asset_nodes_cache
    return self._generate_asset_nodes(bundle, css, js, debug, async_load, defer_load, lazy_load, media)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 2567, in _generate_asset_nodes
    return remains + asset.to_node(css=css, js=js, debug=debug, async_load=async_load, defer_load=defer_load, lazy_load=lazy_load)
  File "/data/build/odoo/odoo/addons/base/models/assetsbundle.py", line 159, in to_node
    css_attachments = self.css(is_minified=not is_debug_assets) or []
  File "/data/build/odoo/odoo/addons/base/models/assetsbundle.py", line 627, in css
    self.save_attachment(extension, css)
  File "/data/build/odoo/odoo/addons/base/models/assetsbundle.py", line 373, in save_attachment
    attachment = ira.with_user(SUPERUSER_ID).create(values)
  File "<decorator-gen-248>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 430, in _model_create_multi
    return create(self, [arg])
  File "/data/build/odoo/addons/website/models/ir_attachment.py", line 23, in create
    return super().create(vals_list)
  File "<decorator-gen-60>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/addons/base/models/ir_attachment.py", line 673, in create
    return super().create(vals_list)
  File "<decorator-gen-208>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 169, in create
    records = super().create(list_vals)
  File "<decorator-gen-68>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/addons/base/models/ir_fields.py", line 670, in create
    recs = super().create(vals_list)
  File "<decorator-gen-15>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/models.py", line 4019, in create
    records = self._create(data_list)
  File "/data/build/odoo/odoo/models.py", line 4250, in _create
    records.modified(self._fields, create=True)
  File "/data/build/odoo/odoo/models.py", line 6165, in modified
    todo = [self._modified([self._fields[fname] for fname in fnames], create)]
  File "/data/build/odoo/odoo/models.py", line 6216, in _modified
    tree = self.pool.get_trigger_tree(fields, select=select)
  File "/data/build/odoo/odoo/modules/registry.py", line 345, in get_trigger_tree
    if field in self._field_triggers
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-03 13:15:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectDashboard.dashboard at 0x7f0f86982e80> (/project/dashboard)
2026-07-03 13:15:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function BudgetAccount.index at 0x7f0f866a1a80> (/budget/budget_account)
2026-07-03 13:15:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function ProcurementPlanPortal.overview at 0x7f0f86650540> (/procurement-plans)
2026-07-03 13:15:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectPortal.portal_public_projects at 0x7f0f86982a20> (/projects,/projects/page/<int:page>)
2026-07-03 17:04:09 INFO runbot Kill build 13107-16-0
2026-07-06 10:16:04 INFO runbot Wake up initiated by Administrator
2026-07-06 10:16:08 Waking up build
2026-07-06 10:16:08 INFO runbot Start running build 13107-16-0
2026-07-06 10:16:08 INFO runbot Using Dockerfile Tag odoo:DockerDefaultAke
2026-07-06 10:19:14 INFO server odoo.modules.loading:336 1 modules loaded in 0.02s, 0 queries (+0 extra)
2026-07-06 10:19:18 INFO server odoo.modules.loading:336 350 modules loaded in 3.33s, 0 queries (+0 extra)
2026-07-06 10:20:17 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-06 10:20:19 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-06 10:20:29 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-06 10:20:30 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1228, in process_work
    base.models.ir_cron.ir_cron._process_jobs(db_name)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 135, in _process_jobs
    registry[cls._name]._process_job(db, cron_cr, job)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 350, in _process_job
    ir_cron._callback(job['cron_name'], job['ir_actions_server_id'], job['id'])
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 391, in _callback
    self.env['ir.actions.server'].browse(server_action_id).run()
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 675, in run
    res = runner(run_self, eval_context=eval_context)
  File "/data/build/odoo/addons/website/models/ir_actions_server.py", line 61, in _run_action_code_multi
    res = super(ServerAction, self)._run_action_code_multi(eval_context)
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 545, in _run_action_code_multi
    safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self))  # nocopy allows to return 'action'
  File "/data/build/odoo/odoo/tools/safe_eval.py", line 399, in safe_eval
    return unsafe_eval(c, globals_dict, locals_dict)
  File "ir.actions.server(803,)", line 1, in <module>
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 34, in action_recompute_expire
    records._compute_days_to_expire()
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 47, in _compute_days_to_expire
    record.days_to_expire = (record.work_end - today).days
  File "/data/build/odoo/odoo/fields.py", line 1337, in __set__
    records.write({self.name: write_value})
  File "/data/build/kmitl/purchase_contract_kmitl/models/purchase_order.py", line 121, in write
    return super().write(vals)
  File "/data/build/odoo/addons/purchase_stock/models/purchase.py", line 95, in write
    res = super(PurchaseOrder, self).write(vals)
  File "/data/build/odoo/addons/purchase_requisition/models/purchase.py", line 158, in write
    result = super(PurchaseOrder, self).write(vals)
  File "/data/build/purchase-workflow/purchase_exception/models/purchase.py", line 41, in write
    result = super().write(vals)
  File "/data/build/odoo/addons/purchase/models/purchase.py", line 235, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/mail/models/mail_thread.py", line 315, in write
    result = super(MailThread, self).write(values)
  File "/data/build/odoo/addons/mail/models/mail_activity_mixin.py", line 241, in write
    return super(MailActivityMixin, self).write(vals)
  File "/data/build/kmitl/base_state_leadtime/models/state_leadtime_mixin.py", line 89, in write
    result = super().write(vals)
  File "/data/build/kmitl/account_analytic_kmitl/models/analytic_mixin.py", line 82, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/analytic/models/analytic_mixin.py", line 82, in write
    return super().write(vals)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 165, in write
    return super().write(vals)
  File "/data/build/odoo/odoo/models.py", line 3766, in write
    if self.pool.is_modifying_relations(field):
  File "/data/build/odoo/odoo/modules/registry.py", line 458, in is_modifying_relations
    result = field in self._field_triggers and (
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-06 10:21:25 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1168, in process_work
    self.process_request(client, addr)
  File "/data/build/odoo/odoo/service/server.py", line 1159, in process_request
    self.server.process_request(client, addr)
  File "/usr/lib/python3.12/socketserver.py", line 349, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.12/socketserver.py", line 362, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python3.12/socketserver.py", line 761, in __init__
    self.handle()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 342, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python3.12/http/server.py", line 436, in handle
    self.handle_one_request()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 374, in handle_one_request
    self.run_wsgi()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 319, in run_wsgi
    execute(self.server.app)
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 308, in execute
    application_iter = app(environ, start_response)
  File "/data/build/odoo/odoo/http.py", line 2237, in __call__
    response = request._serve_db()
  File "/data/build/odoo/odoo/http.py", line 1824, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/odoo/http.py", line 1852, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/data/build/odoo/odoo/http.py", line 1966, in dispatch
    return self.request.registry['ir.http']._dispatch(endpoint)
  File "/data/build/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
    response = super()._dispatch(endpoint)
  File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/website/controllers/main.py", line 186, in web_login
    return super().web_login(*args, **kw)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/auth_signup/controllers/main.py", line 24, in web_login
    response = super().web_login(*args, **kw)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/web/controllers/home.py", line 110, in web_login
    uid = request.session.authenticate(request.db, request.params['login'], request.params['password'])
  File "/data/build/odoo/odoo/http.py", line 1016, in authenticate
    pre_uid = registry['res.users'].authenticate(dbname, login, password, wsgienv)
  File "/data/build/odoo/addons/website/models/res_users.py", line 81, in authenticate
    uid = super(ResUsers, cls).authenticate(db, login, password, user_agent_env)
  File "/data/build/server-backend/base_user_role_company/models/user.py", line 12, in authenticate
    uid = super().authenticate(db, login, password, user_agent_env)
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 888, in authenticate
    uid = cls._login(db, login, password, user_agent_env=user_agent_env)
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 867, in _login
    user.tz = tz
  File "/data/build/odoo/odoo/fields.py", line 1337, in __set__
    records.write({self.name: write_value})
  File "/data/build/odoo/addons/hr/models/res_users.py", line 241, in write
    result = super(User, self).write(vals)
  File "/data/build/server-backend/base_user_role_history/models/res_users.py", line 54, in write
    return super().write(vals)
  File "/data/build/odoo/addons/mail/models/res_users.py", line 96, in write
    write_res = super(Users, self).write(vals)
  File "/data/build/odoo/addons/resource/models/res_users.py", line 17, in write
    rslt = super().write(vals)
  File "/data/build/server-backend/base_user_role/models/user.py", line 66, in write
    res = super(ResUsers, self).write(vals)
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 1709, in write
    res = super(UsersView, self).write(values)
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 1405, in write
    return super(UsersImplied, self).write(values)
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 697, in write
    res = super(Users, self).write(values)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 165, in write
    return super().write(vals)
  File "/data/build/odoo/odoo/models.py", line 3766, in write
    if self.pool.is_modifying_relations(field):
  File "/data/build/odoo/odoo/modules/registry.py", line 458, in is_modifying_relations
    result = field in self._field_triggers and (
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-06 10:21:30 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1168, in process_work
    self.process_request(client, addr)
  File "/data/build/odoo/odoo/service/server.py", line 1159, in process_request
    self.server.process_request(client, addr)
  File "/usr/lib/python3.12/socketserver.py", line 349, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.12/socketserver.py", line 362, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python3.12/socketserver.py", line 761, in __init__
    self.handle()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 342, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python3.12/http/server.py", line 436, in handle
    self.handle_one_request()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 374, in handle_one_request
    self.run_wsgi()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 319, in run_wsgi
    execute(self.server.app)
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 308, in execute
    application_iter = app(environ, start_response)
  File "/data/build/odoo/odoo/http.py", line 2237, in __call__
    response = request._serve_db()
  File "/data/build/odoo/odoo/http.py", line 1824, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/odoo/http.py", line 1852, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/data/build/odoo/odoo/http.py", line 1966, in dispatch
    return self.request.registry['ir.http']._dispatch(endpoint)
  File "/data/build/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
    response = super()._dispatch(endpoint)
  File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 156, in _dispatch
    result.flatten()
  File "/data/build/odoo/odoo/tools/facade.py", line 83, in wrap_func
    func(self._wrapped__, *args, **kwargs)
  File "/data/build/odoo/odoo/http.py", line 1213, in flatten
    self.response.append(self.render())
  File "/data/build/odoo/odoo/http.py", line 1205, in render
    return request.env["ir.ui.view"]._render_template(self.template, self.qcontext)
  File "/data/build/odoo/addons/website/models/ir_ui_view.py", line 419, in _render_template
    return super()._render_template(template, values=values)
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 2135, in _render_template
    return self.env['ir.qweb']._render(template, values)
  File "/data/build/odoo/odoo/tools/profiler.py", line 301, in _tracked_method_render
    return method_render(self, template, values, **options)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 593, in _render
    result = ''.join(rendering)
  File "<220>", line 329, in template_220
  File "<220>", line 311, in template_220_content
  File "<220>", line 280, in template_220_t_call_0
  File "<220>", line 91, in template_220_t_set_2
  File "/data/build/odoo/addons/website/models/ir_qweb.py", line 122, in _get_asset_nodes
    return super(IrQWeb, self_website)._get_asset_nodes(bundle, css=css, js=js, debug=debug, async_load=async_load, defer_load=defer_load, lazy_load=lazy_load, media=media)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 2438, in _get_asset_nodes
    return self._generate_asset_nodes_cache(bundle, css, js, debug, async_load, defer_load, lazy_load, media)
  File "<decorator-gen-71>", line 2, in _generate_asset_nodes_cache
  File "/data/build/odoo/odoo/tools/cache.py", line 90, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 2493, in _generate_asset_nodes_cache
    return self._generate_asset_nodes(bundle, css, js, debug, async_load, defer_load, lazy_load, media)
  File "/data/build/odoo/odoo/addons/base/models/ir_qweb.py", line 2567, in _generate_asset_nodes
    return remains + asset.to_node(css=css, js=js, debug=debug, async_load=async_load, defer_load=defer_load, lazy_load=lazy_load)
  File "/data/build/odoo/odoo/addons/base/models/assetsbundle.py", line 159, in to_node
    css_attachments = self.css(is_minified=not is_debug_assets) or []
  File "/data/build/odoo/odoo/addons/base/models/assetsbundle.py", line 627, in css
    self.save_attachment(extension, css)
  File "/data/build/odoo/odoo/addons/base/models/assetsbundle.py", line 373, in save_attachment
    attachment = ira.with_user(SUPERUSER_ID).create(values)
  File "<decorator-gen-248>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 430, in _model_create_multi
    return create(self, [arg])
  File "/data/build/odoo/addons/website/models/ir_attachment.py", line 23, in create
    return super().create(vals_list)
  File "<decorator-gen-60>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/addons/base/models/ir_attachment.py", line 673, in create
    return super().create(vals_list)
  File "<decorator-gen-208>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 169, in create
    records = super().create(list_vals)
  File "<decorator-gen-68>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/addons/base/models/ir_fields.py", line 670, in create
    recs = super().create(vals_list)
  File "<decorator-gen-15>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/models.py", line 4019, in create
    records = self._create(data_list)
  File "/data/build/odoo/odoo/models.py", line 4250, in _create
    records.modified(self._fields, create=True)
  File "/data/build/odoo/odoo/models.py", line 6165, in modified
    todo = [self._modified([self._fields[fname] for fname in fnames], create)]
  File "/data/build/odoo/odoo/models.py", line 6216, in _modified
    tree = self.pool.get_trigger_tree(fields, select=select)
  File "/data/build/odoo/odoo/modules/registry.py", line 345, in get_trigger_tree
    if field in self._field_triggers
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-06 10:21:31 WARNING server odoo.addons.base.models.ir_asset:359 IrAsset: the path "base_state_leadtime/static/src/**/*" did not resolve to anything.
2026-07-06 10:21:42 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-06 10:21:42 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3/dist-packages/gevent/baseserver.py", line 34, in _handle_and_close_when_done
    return handle(*args_tuple)
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 1700, in handle
    handler.handle()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 574, in handle
    result = self.handle_one_request()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 804, in handle_one_request
    self.handle_one_response()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 1107, in handle_one_response
    self.run_application()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 1059, in run_application
    close()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/wsgi.py", line 466, in close
    callback()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/wrappers/response.py", line 439, in close
    func()
  File "/data/build/odoo/addons/bus/websocket.py", line 821, in <lambda>
    response.call_on_close(lambda: cls._serve_forever(
  File "/data/build/odoo/addons/bus/websocket.py", line 918, in _serve_forever
    req.serve_websocket_message(message)
  File "/data/build/odoo/addons/bus/websocket.py", line 758, in serve_websocket_message
    service_model.retrying(
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/addons/bus/websocket.py", line 775, in _serve_ir_websocket
    ir_websocket._update_bus_presence(**data)
  File "/data/build/odoo/addons/mail/models/ir_websocket.py", line 39, in _update_bus_presence
    super()._update_bus_presence(inactivity_period, im_status_ids_by_model)
  File "/data/build/odoo/addons/bus/models/ir_websocket.py", line 43, in _update_bus_presence
    self.env['bus.presence'].update(
  File "/data/build/odoo/addons/bus/models/bus_presence.py", line 47, in update
    self._update(inactivity_period=inactivity_period, identity_field=identity_field, identity_value=identity_value)
  File "/data/build/odoo/addons/bus/models/bus_presence.py", line 68, in _update
    self.create(values)
  File "<decorator-gen-208>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 430, in _model_create_multi
    return create(self, [arg])
  File "/data/build/server-tools/tracking_manager/models/models.py", line 169, in create
    records = super().create(list_vals)
  File "<decorator-gen-68>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/addons/base/models/ir_fields.py", line 670, in create
    recs = super().create(vals_list)
  File "<decorator-gen-15>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/models.py", line 4019, in create
    records = self._create(data_list)
  File "/data/build/odoo/odoo/models.py", line 4250, in _create
    records.modified(self._fields, create=True)
  File "/data/build/odoo/odoo/models.py", line 6165, in modified
    todo = [self._modified([self._fields[fname] for fname in fnames], create)]
  File "/data/build/odoo/odoo/models.py", line 6216, in _modified
    tree = self.pool.get_trigger_tree(fields, select=select)
  File "/data/build/odoo/odoo/modules/registry.py", line 345, in get_trigger_tree
    if field in self._field_triggers
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-06 10:56:15 WARNING server odoo.http:2257 Add at least one gating step (เห็นชอบ or ลงนาม-อนุมัติ) before sending.
2026-07-06 10:56:23 WARNING server odoo.http:2257 ไม่พบทะเบียนหนังสือสำหรับส่วนงาน 'Administration'. (No register configured for unit 'Administration'.) Configure a register before sending.
2026-07-06 13:19:49 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectDashboard.dashboard at 0x7f16ea182e80> (/project/dashboard)
2026-07-06 13:19:49 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function BudgetAccount.index at 0x7f16e9e9da80> (/budget/budget_account)
2026-07-06 13:19:49 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function ProcurementPlanPortal.overview at 0x7f16e9e50540> (/procurement-plans)
2026-07-06 13:19:49 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectPortal.portal_public_projects at 0x7f16ea182a20> (/projects,/projects/page/<int:page>)
2026-07-06 16:43:04 ERROR runbot Docker with state GHOST not started after 60 seconds, skipping
2026-07-06 16:43:04 INFO runbot Step False finished in 6h
2026-07-07 11:32:44 INFO runbot Wake up initiated by Administrator
2026-07-07 11:32:45 Waking up build
2026-07-07 11:32:45 INFO runbot Start running build 13107-16-0
2026-07-07 11:32:45 INFO runbot Using Dockerfile Tag odoo:DockerDefaultAke
2026-07-07 11:35:45 INFO server odoo.modules.loading:336 1 modules loaded in 0.01s, 0 queries (+0 extra)
2026-07-07 11:35:49 INFO server odoo.modules.loading:336 350 modules loaded in 3.32s, 0 queries (+0 extra)
2026-07-07 11:37:00 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-07 11:37:01 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1228, in process_work
    base.models.ir_cron.ir_cron._process_jobs(db_name)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 135, in _process_jobs
    registry[cls._name]._process_job(db, cron_cr, job)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 350, in _process_job
    ir_cron._callback(job['cron_name'], job['ir_actions_server_id'], job['id'])
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 391, in _callback
    self.env['ir.actions.server'].browse(server_action_id).run()
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 675, in run
    res = runner(run_self, eval_context=eval_context)
  File "/data/build/odoo/addons/website/models/ir_actions_server.py", line 61, in _run_action_code_multi
    res = super(ServerAction, self)._run_action_code_multi(eval_context)
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 545, in _run_action_code_multi
    safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self))  # nocopy allows to return 'action'
  File "/data/build/odoo/odoo/tools/safe_eval.py", line 399, in safe_eval
    return unsafe_eval(c, globals_dict, locals_dict)
  File "ir.actions.server(803,)", line 1, in <module>
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 34, in action_recompute_expire
    records._compute_days_to_expire()
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 47, in _compute_days_to_expire
    record.days_to_expire = (record.work_end - today).days
  File "/data/build/odoo/odoo/fields.py", line 1337, in __set__
    records.write({self.name: write_value})
  File "/data/build/kmitl/purchase_contract_kmitl/models/purchase_order.py", line 121, in write
    return super().write(vals)
  File "/data/build/odoo/addons/purchase_stock/models/purchase.py", line 95, in write
    res = super(PurchaseOrder, self).write(vals)
  File "/data/build/odoo/addons/purchase_requisition/models/purchase.py", line 158, in write
    result = super(PurchaseOrder, self).write(vals)
  File "/data/build/purchase-workflow/purchase_exception/models/purchase.py", line 41, in write
    result = super().write(vals)
  File "/data/build/odoo/addons/purchase/models/purchase.py", line 235, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/mail/models/mail_thread.py", line 315, in write
    result = super(MailThread, self).write(values)
  File "/data/build/odoo/addons/mail/models/mail_activity_mixin.py", line 241, in write
    return super(MailActivityMixin, self).write(vals)
  File "/data/build/kmitl/base_state_leadtime/models/state_leadtime_mixin.py", line 89, in write
    result = super().write(vals)
  File "/data/build/kmitl/account_analytic_kmitl/models/analytic_mixin.py", line 82, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/analytic/models/analytic_mixin.py", line 82, in write
    return super().write(vals)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 165, in write
    return super().write(vals)
  File "/data/build/odoo/odoo/models.py", line 3766, in write
    if self.pool.is_modifying_relations(field):
  File "/data/build/odoo/odoo/modules/registry.py", line 458, in is_modifying_relations
    result = field in self._field_triggers and (
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-07 13:24:02 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-07 13:24:02 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-07 13:24:03 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1168, in process_work
    self.process_request(client, addr)
  File "/data/build/odoo/odoo/service/server.py", line 1159, in process_request
    self.server.process_request(client, addr)
  File "/usr/lib/python3.12/socketserver.py", line 349, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.12/socketserver.py", line 362, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python3.12/socketserver.py", line 761, in __init__
    self.handle()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 342, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python3.12/http/server.py", line 436, in handle
    self.handle_one_request()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 374, in handle_one_request
    self.run_wsgi()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 319, in run_wsgi
    execute(self.server.app)
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 308, in execute
    application_iter = app(environ, start_response)
  File "/data/build/odoo/odoo/http.py", line 2237, in __call__
    response = request._serve_db()
  File "/data/build/odoo/odoo/http.py", line 1824, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/odoo/http.py", line 1852, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/data/build/odoo/odoo/http.py", line 1966, in dispatch
    return self.request.registry['ir.http']._dispatch(endpoint)
  File "/data/build/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
    response = super()._dispatch(endpoint)
  File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/website/controllers/main.py", line 260, in sitemap_xml_index
    sitemaps.unlink()
  File "/data/build/odoo/odoo/addons/base/models/ir_attachment.py", line 633, in unlink
    res = super(IrAttachment, self).unlink()
  File "/data/build/server-tools/tracking_manager/models/models.py", line 177, in unlink
    return super().unlink()
  File "/data/build/odoo/odoo/models.py", line 3627, in unlink
    self.modified(self._fields, before=True)
  File "/data/build/odoo/odoo/models.py", line 6165, in modified
    todo = [self._modified([self._fields[fname] for fname in fnames], create)]
  File "/data/build/odoo/odoo/models.py", line 6216, in _modified
    tree = self.pool.get_trigger_tree(fields, select=select)
  File "/data/build/odoo/odoo/modules/registry.py", line 345, in get_trigger_tree
    if field in self._field_triggers
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-07 13:24:04 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectDashboard.dashboard at 0x7f47148b6e80> (/project/dashboard)
2026-07-07 13:24:04 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function BudgetAccount.index at 0x7f47145d1a80> (/budget/budget_account)
2026-07-07 13:24:04 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function ProcurementPlanPortal.overview at 0x7f4714388540> (/procurement-plans)
2026-07-07 13:24:04 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectPortal.portal_public_projects at 0x7f47148b6a20> (/projects,/projects/page/<int:page>)
2026-07-08 03:56:33 INFO runbot Kill build 13107-16-0
2026-07-17 09:57:12 INFO runbot Wake up initiated by Administrator
2026-07-17 09:57:45 Waking up build
2026-07-17 09:57:45 INFO runbot Start running build 13107-16-0
2026-07-17 09:57:45 INFO runbot Using Dockerfile Tag odoo:DockerDefaultAke
2026-07-17 10:00:51 INFO server odoo.modules.loading:336 1 modules loaded in 0.02s, 0 queries (+0 extra)
2026-07-17 10:00:55 INFO server odoo.modules.loading:336 350 modules loaded in 3.42s, 0 queries (+0 extra)
2026-07-17 10:01:47 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-17 10:01:50 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-17 10:02:05 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-17 10:02:07 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1228, in process_work
    base.models.ir_cron.ir_cron._process_jobs(db_name)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 135, in _process_jobs
    registry[cls._name]._process_job(db, cron_cr, job)
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 350, in _process_job
    ir_cron._callback(job['cron_name'], job['ir_actions_server_id'], job['id'])
  File "/data/build/odoo/odoo/addons/base/models/ir_cron.py", line 391, in _callback
    self.env['ir.actions.server'].browse(server_action_id).run()
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 675, in run
    res = runner(run_self, eval_context=eval_context)
  File "/data/build/odoo/addons/website/models/ir_actions_server.py", line 61, in _run_action_code_multi
    res = super(ServerAction, self)._run_action_code_multi(eval_context)
  File "/data/build/odoo/odoo/addons/base/models/ir_actions.py", line 545, in _run_action_code_multi
    safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self))  # nocopy allows to return 'action'
  File "/data/build/odoo/odoo/tools/safe_eval.py", line 399, in safe_eval
    return unsafe_eval(c, globals_dict, locals_dict)
  File "ir.actions.server(803,)", line 1, in <module>
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 34, in action_recompute_expire
    records._compute_days_to_expire()
  File "/data/build/kmitl/purchase_order_expiration/models/purchase_order.py", line 47, in _compute_days_to_expire
    record.days_to_expire = (record.work_end - today).days
  File "/data/build/odoo/odoo/fields.py", line 1337, in __set__
    records.write({self.name: write_value})
  File "/data/build/kmitl/purchase_contract_kmitl/models/purchase_order.py", line 121, in write
    return super().write(vals)
  File "/data/build/odoo/addons/purchase_stock/models/purchase.py", line 95, in write
    res = super(PurchaseOrder, self).write(vals)
  File "/data/build/odoo/addons/purchase_requisition/models/purchase.py", line 158, in write
    result = super(PurchaseOrder, self).write(vals)
  File "/data/build/purchase-workflow/purchase_exception/models/purchase.py", line 41, in write
    result = super().write(vals)
  File "/data/build/odoo/addons/purchase/models/purchase.py", line 235, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/mail/models/mail_thread.py", line 315, in write
    result = super(MailThread, self).write(values)
  File "/data/build/odoo/addons/mail/models/mail_activity_mixin.py", line 241, in write
    return super(MailActivityMixin, self).write(vals)
  File "/data/build/kmitl/base_state_leadtime/models/state_leadtime_mixin.py", line 89, in write
    result = super().write(vals)
  File "/data/build/kmitl/account_analytic_kmitl/models/analytic_mixin.py", line 82, in write
    res = super().write(vals)
  File "/data/build/odoo/addons/analytic/models/analytic_mixin.py", line 82, in write
    return super().write(vals)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 165, in write
    return super().write(vals)
  File "/data/build/odoo/odoo/models.py", line 3766, in write
    if self.pool.is_modifying_relations(field):
  File "/data/build/odoo/odoo/modules/registry.py", line 458, in is_modifying_relations
    result = field in self._field_triggers and (
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-17 10:08:33 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1168, in process_work
    self.process_request(client, addr)
  File "/data/build/odoo/odoo/service/server.py", line 1159, in process_request
    self.server.process_request(client, addr)
  File "/usr/lib/python3.12/socketserver.py", line 349, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.12/socketserver.py", line 362, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python3.12/socketserver.py", line 761, in __init__
    self.handle()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 342, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python3.12/http/server.py", line 436, in handle
    self.handle_one_request()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 374, in handle_one_request
    self.run_wsgi()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 319, in run_wsgi
    execute(self.server.app)
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 308, in execute
    application_iter = app(environ, start_response)
  File "/data/build/odoo/odoo/http.py", line 2237, in __call__
    response = request._serve_db()
  File "/data/build/odoo/odoo/http.py", line 1824, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/odoo/http.py", line 1852, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/data/build/odoo/odoo/http.py", line 1966, in dispatch
    return self.request.registry['ir.http']._dispatch(endpoint)
  File "/data/build/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
    response = super()._dispatch(endpoint)
  File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/website/controllers/main.py", line 186, in web_login
    return super().web_login(*args, **kw)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/auth_signup/controllers/main.py", line 24, in web_login
    response = super().web_login(*args, **kw)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/web/controllers/home.py", line 110, in web_login
    uid = request.session.authenticate(request.db, request.params['login'], request.params['password'])
  File "/data/build/odoo/odoo/http.py", line 1016, in authenticate
    pre_uid = registry['res.users'].authenticate(dbname, login, password, wsgienv)
  File "/data/build/odoo/addons/website/models/res_users.py", line 81, in authenticate
    uid = super(ResUsers, cls).authenticate(db, login, password, user_agent_env)
  File "/data/build/server-backend/base_user_role_company/models/user.py", line 12, in authenticate
    uid = super().authenticate(db, login, password, user_agent_env)
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 888, in authenticate
    uid = cls._login(db, login, password, user_agent_env=user_agent_env)
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 868, in _login
    user._update_last_login()
  File "/data/build/odoo/odoo/addons/base/models/res_users.py", line 836, in _update_last_login
    self.env['res.users.log'].create({}) # populated by defaults
  File "<decorator-gen-208>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 430, in _model_create_multi
    return create(self, [arg])
  File "/data/build/server-tools/tracking_manager/models/models.py", line 169, in create
    records = super().create(list_vals)
  File "<decorator-gen-68>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/addons/base/models/ir_fields.py", line 670, in create
    recs = super().create(vals_list)
  File "<decorator-gen-15>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 431, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/models.py", line 4019, in create
    records = self._create(data_list)
  File "/data/build/odoo/odoo/models.py", line 4250, in _create
    records.modified(self._fields, create=True)
  File "/data/build/odoo/odoo/models.py", line 6165, in modified
    todo = [self._modified([self._fields[fname] for fname in fnames], create)]
  File "/data/build/odoo/odoo/models.py", line 6216, in _modified
    tree = self.pool.get_trigger_tree(fields, select=select)
  File "/data/build/odoo/odoo/modules/registry.py", line 345, in get_trigger_tree
    if field in self._field_triggers
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-17 10:08:37 WARNING server odoo.addons.base.models.ir_asset:359 IrAsset: the path "base_state_leadtime/static/src/**/*" did not resolve to anything.
2026-07-17 10:08:40 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/data/build/odoo/odoo/service/server.py", line 1129, in _runloop
    self.process_work()
  File "/data/build/odoo/odoo/service/server.py", line 1168, in process_work
    self.process_request(client, addr)
  File "/data/build/odoo/odoo/service/server.py", line 1159, in process_request
    self.server.process_request(client, addr)
  File "/usr/lib/python3.12/socketserver.py", line 349, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.12/socketserver.py", line 362, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python3.12/socketserver.py", line 761, in __init__
    self.handle()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 342, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python3.12/http/server.py", line 436, in handle
    self.handle_one_request()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 374, in handle_one_request
    self.run_wsgi()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 319, in run_wsgi
    execute(self.server.app)
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/serving.py", line 308, in execute
    application_iter = app(environ, start_response)
  File "/data/build/odoo/odoo/http.py", line 2237, in __call__
    response = request._serve_db()
  File "/data/build/odoo/odoo/http.py", line 1824, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/odoo/http.py", line 1852, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/data/build/odoo/odoo/http.py", line 2056, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/data/build/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
    response = super()._dispatch(endpoint)
  File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/data/build/odoo/odoo/http.py", line 763, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/data/build/odoo/addons/web/controllers/dataset.py", line 43, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/data/build/odoo/addons/web/controllers/dataset.py", line 34, in _call_kw
    return call_kw(Model, method, args, kwargs)
  File "/data/build/odoo/odoo/api.py", line 480, in call_kw
    result = _call_kw_model(method, model, args, kwargs)
  File "/data/build/odoo/odoo/api.py", line 451, in _call_kw_model
    result = method(recs, *args, **kwargs)
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 2521, in get_views
    v_type: self.get_view(
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 2705, in get_view
    result = dict(self._get_view_cache(view_id, view_type, **options))
  File "<decorator-gen-51>", line 2, in _get_view_cache
  File "/data/build/odoo/odoo/tools/cache.py", line 90, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 2668, in _get_view_cache
    arch, models = view.postprocess_and_fields(arch, model=self._name, **options)
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 1037, in postprocess_and_fields
    name_manager = self._postprocess_view(node, model or self.model, **options)
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 1153, in _postprocess_view
    self._postprocess_on_change(root, model)
  File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 1217, in _postprocess_on_change
    if model._has_onchange(field, field_nodes):
  File "/data/build/odoo/odoo/models.py", line 6347, in _has_onchange
    for dep in self.pool.get_dependent_fields(field.base_field)
  File "/data/build/odoo/odoo/modules/registry.py", line 351, in get_dependent_fields
    if field not in self._field_triggers:
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-17 10:08:45 WARNING server py.warnings:328
/data/build/odoo/odoo/fields.py:809: UserWarning: Field 'disbursement.request.active_sarabun_document_id' in dependency of disbursement.request.sarabun_in_progress should be searchable. This is necessary to determine which records to recompute when sarabun.document.state is modified. You should either make the field searchable, or simplify the field dependency.
  File "/usr/lib/python3/dist-packages/gevent/baseserver.py", line 34, in _handle_and_close_when_done
    return handle(*args_tuple)
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 1700, in handle
    handler.handle()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 574, in handle
    result = self.handle_one_request()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 804, in handle_one_request
    self.handle_one_response()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 1107, in handle_one_response
    self.run_application()
  File "/usr/lib/python3/dist-packages/gevent/pywsgi.py", line 1059, in run_application
    close()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/wsgi.py", line 466, in close
    callback()
  File "/home/runbot/.local/lib/python3.12/site-packages/werkzeug/wrappers/response.py", line 439, in close
    func()
  File "/data/build/odoo/addons/bus/websocket.py", line 821, in <lambda>
    response.call_on_close(lambda: cls._serve_forever(
  File "/data/build/odoo/addons/bus/websocket.py", line 918, in _serve_forever
    req.serve_websocket_message(message)
  File "/data/build/odoo/addons/bus/websocket.py", line 758, in serve_websocket_message
    service_model.retrying(
  File "/data/build/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/data/build/odoo/addons/bus/websocket.py", line 775, in _serve_ir_websocket
    ir_websocket._update_bus_presence(**data)
  File "/data/build/odoo/addons/mail/models/ir_websocket.py", line 39, in _update_bus_presence
    super()._update_bus_presence(inactivity_period, im_status_ids_by_model)
  File "/data/build/odoo/addons/bus/models/ir_websocket.py", line 43, in _update_bus_presence
    self.env['bus.presence'].update(
  File "/data/build/odoo/addons/bus/models/bus_presence.py", line 47, in update
    self._update(inactivity_period=inactivity_period, identity_field=identity_field, identity_value=identity_value)
  File "/data/build/odoo/addons/bus/models/bus_presence.py", line 72, in _update
    presence.write(values)
  File "/data/build/server-tools/tracking_manager/models/models.py", line 165, in write
    return super().write(vals)
  File "/data/build/odoo/odoo/models.py", line 3766, in write
    if self.pool.is_modifying_relations(field):
  File "/data/build/odoo/odoo/modules/registry.py", line 458, in is_modifying_relations
    result = field in self._field_triggers and (
  File "/data/build/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/data/build/odoo/odoo/modules/registry.py", line 439, in _field_triggers
    dependencies = list(field.resolve_depends(self))
  File "/data/build/odoo/odoo/fields.py", line 809, in resolve_depends
    warnings.warn(
2026-07-17 10:08:45 WARNING server odoo.modules.registry:329 kmitl.project: inconsistent 'compute_sudo' for computed fields: activity_analytic_id, department_analytic_id, fund_analytic_id, source_analytic_id
2026-07-17 10:47:43 WARNING server odoo.addons.base.models.ir_asset:359 IrAsset: the path "base_state_leadtime/static/src/**/*" did not resolve to anything.
2026-07-17 13:48:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectDashboard.dashboard at 0x7f77886b6e80> (/project/dashboard)
2026-07-17 13:48:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function BudgetAccount.index at 0x7f77883d1a80> (/budget/budget_account)
2026-07-17 13:48:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function ProcurementPlanPortal.overview at 0x7f7788188540> (/procurement-plans)
2026-07-17 13:48:56 WARNING server odoo.addons.website.models.website:1196 No Sitemap value provided for controller <function KmitlProjectPortal.portal_public_projects at 0x7f77886b6a20> (/projects,/projects/page/<int:page>)
2026-07-17 18:45:18 INFO runbot Kill build 13107-16-0