[REF] viin_brain: drop transient sequence field, order collab steps by id (H3+M5)
The previous _append_step read the latest sequence and wrote
last.sequence + 1 with no row lock. Two concurrent transactions
appending to the same page therefore raced — both saw the same
"last" record and both tried to insert the next sequence value,
producing duplicate sequences (and an inconsistent replay order
on reconnect).
Drop the sequence field entirely and rely on the auto-incremented
id column. PostgreSQL id is monotonic per-table, which is exactly
what a relay buffer needs: stable replay order across reconnects.
The buffer is not authoritative history (the source of truth is
viin.brain.page.content_html), so gap-free numbering is not a
requirement; only deterministic ordering is.
Migration: TransientModel column drop is handled by the ORM at
_auto_init during module update — no manual migration script
needed. New code never references sequence so prune logic and
history shape continue to work after the column disappears.
Also move the json import in viin_brain_collab_step.py to the
module top so it does not happen on every _get_history call (M5).
Tests:
- test_append_step_single: drop sequence assertion.
- test_append_step_ordering: rewrite to verify id order matches
the order callers invoked _append_step (and that step_json
payloads come back in append order).
- test_rolling_window_trim: verify pruning by inspecting
surviving step_json values rather than sequence numbers.
- test_get_history_order_and_shape: drop sequence key assertion;
add explicit append-order assertion across client_id values.
- test_history_endpoint_returns_steps: drop sequence key assertion.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Odoo 17 Test Suite Using Docker
Post install tests: from to_website_apps_store_loc to viin_estimate_sale
- install_module account,account_add_gln,account_audit_trail,account_check_printing,account_debit_note,account_debit_note_sequence,account_edi,account_edi_proxy_client,account_edi_ubl_cii,account_edi_ubl_cii_tax_extension,account_fleet,account_lock,account_payment,account_payment_term,account_peppol,account_peppol_selfbilling,account_qr_code_emv,account_qr_code_sepa,account_tax_python,account_test,account_update_tax_tags,analytic,attachment_indexation,auth_oauth,auth_password_policy,auth_password_policy_portal,auth_password_policy_signup,auth_signup,auth_totp,auth_totp_mail,auth_totp_mail_enforce,auth_totp_portal,barcodes,barcodes_gs1_nomenclature,base,base_address_extended,base_automation,base_geolocalize,base_iban,base_import,base_import_module,base_install_request,base_setup,base_sparse_field,base_vat,board,bus,calendar,calendar_sms,contacts,crm,crm_iap_enrich,crm_iap_mine,crm_livechat,crm_mail_plugin,crm_sms,data_recycle,delivery,delivery_mondialrelay,delivery_stock_picking_batch,digest,event,event_booth,event_booth_sale,event_crm,event_crm_sale,event_sale,event_sms,fleet,gamification,gamification_sale_crm,google_account,google_calendar,google_gmail,google_recaptcha,hr,hr_attendance,hr_contract,hr_expense,hr_fleet,hr_gamification,hr_holidays,hr_holidays_attendance,hr_homeworking,hr_hourly_cost,hr_livechat,hr_maintenance,hr_org_chart,hr_presence,hr_recruitment,hr_recruitment_skills,hr_recruitment_sms,hr_recruitment_survey,hr_skills,hr_skills_slides,hr_skills_survey,hr_timesheet,hr_timesheet_attendance,hr_work_entry,hr_work_entry_contract,hr_work_entry_holidays,http_routing,iap,iap_crm,iap_mail,im_livechat,im_livechat_mail_bot,l10n_vn_edi_summary,l10n_vn_edi_viettel,l10n_vn_viin,l10n_vn_viin_account_asset,l10n_vn_viin_account_auto_transfer,l10n_vn_viin_account_reports,l10n_vn_viin_accounting_meinvoice,l10n_vn_viin_accounting_meinvoice_pos,l10n_vn_viin_accounting_sinvoice,l10n_vn_viin_accounting_sinvoice_pos,l10n_vn_viin_accounting_vninvoice,l10n_vn_viin_accounting_vninvoice_summary,l10n_vn_viin_base_ward,l10n_vn_viin_edi,l10n_vn_viin_edi_patch1,l10n_vn_viin_edi_pos,l10n_vn_viin_einvoice_sale,l10n_vn_viin_foreign_trade,l10n_vn_viin_foreign_trade_account_reports,l10n_vn_viin_freight_project,l10n_vn_viin_hr_account,l10n_vn_viin_hr_payroll,l10n_vn_viin_hr_payroll_account,l10n_vn_viin_hr_payroll_account_overtime,l10n_vn_viin_hr_payroll_administrative_region,l10n_vn_viin_hr_payroll_meal,l10n_vn_viin_hr_payroll_meal_account,l10n_vn_viin_hr_payroll_overtime,l10n_vn_viin_loan_management,l10n_vn_viin_mrp_subcontracting_account,l10n_vn_viin_mrp_subcontracting_settlement,l10n_vn_viin_picking_operation,l10n_vn_viin_pos,l10n_vn_viin_stock_reports,l10n_vn_viin_stock_reports_multi_warehouse_access_control,l10n_vn_viin_update_address,l10n_vn_viin_vat_counterpart,link_tracker,loyalty,lunch,mail,mail_bot,mail_bot_hr,mail_group,mail_plugin,maintenance,mass_mailing,mass_mailing_crm,mass_mailing_crm_sms,mass_mailing_event,mass_mailing_event_sms,mass_mailing_event_track,mass_mailing_event_track_sms,mass_mailing_sale,mass_mailing_sale_sms,mass_mailing_slides,mass_mailing_sms,mass_mailing_themes,membership,microsoft_account,microsoft_calendar,microsoft_outlook,mrp,mrp_account,mrp_landed_costs,mrp_product_expiry,mrp_repair,mrp_subcontracting,mrp_subcontracting_account,mrp_subcontracting_dropshipping,mrp_subcontracting_purchase,mrp_subcontracting_repair,mrp_subonctracting_landed_costs,onboarding,partner_autocomplete,payment,payment_adyen,payment_alipay,payment_aps,payment_asiapay,payment_authorize,payment_bidv_viin,payment_buckaroo,payment_custom,payment_demo,payment_flutterwave,payment_mercado_pago,payment_mollie,payment_momo_viin,payment_nganluong,payment_ogone,payment_paypal,payment_payulatam,payment_payumoney,payment_razorpay,payment_razorpay_oauth,payment_sips,payment_stripe,payment_vnpay,payment_worldline,payment_xendit,payment_zalopay,phone_validation,point_of_sale,portal,portal_rating,pos_adyen,pos_discount,pos_epson_printer,pos_hr,pos_hr_restaurant,pos_loyalty,pos_mercado_pago,pos_mercury,pos_mrp,pos_online_payment,pos_online_payment_self_order,pos_paytm,pos_razorpay,pos_restaurant,pos_restaurant_adyen,pos_restaurant_loyalty,pos_restaurant_stripe,pos_sale,pos_sale_loyalty,pos_sale_margin,pos_sale_product_configurator,pos_self_order,pos_self_order_adyen,pos_self_order_epson_printer,pos_self_order_sale,pos_self_order_stripe,pos_stripe,pos_viva_wallet,privacy_lookup,product,product_email_template,product_expiry,product_images,product_margin,product_matrix,project,project_account,project_hr_expense,project_mail_plugin,project_mrp,project_purchase,project_sale_expense,project_sms,project_timesheet_holidays,project_todo,purchase,purchase_mrp,purchase_product_matrix,purchase_requisition,purchase_requisition_sale,purchase_requisition_stock,purchase_stock,rating,repair,resource,sale,sale_async_emails,sale_crm,sale_expense,sale_expense_margin,sale_loyalty,sale_loyalty_delivery,sale_management,sale_margin,sale_mrp,sale_mrp_margin,sale_pdf_quote_builder,sale_product_configurator,sale_product_matrix,sale_project,sale_project_stock,sale_purchase,sale_purchase_stock,sale_service,sale_sms,sale_stock,sale_stock_margin,sale_timesheet,sale_timesheet_margin,sales_team,sms,sms_twilio,snailmail,snailmail_account,social_media,spreadsheet,spreadsheet_account,spreadsheet_dashboard,spreadsheet_dashboard_account,spreadsheet_dashboard_event_sale,spreadsheet_dashboard_hr_expense,spreadsheet_dashboard_hr_timesheet,spreadsheet_dashboard_im_livechat,spreadsheet_dashboard_pos_hr,spreadsheet_dashboard_purchase,spreadsheet_dashboard_purchase_stock,spreadsheet_dashboard_sale,spreadsheet_dashboard_sale_timesheet,spreadsheet_dashboard_stock_account,spreadsheet_dashboard_website_sale,spreadsheet_dashboard_website_sale_slides,stock,stock_account,stock_delivery,stock_dropshipping,stock_landed_costs,stock_landed_costs_company,stock_picking_batch,stock_sms,survey,test_access_rights,test_action_bindings,test_apikeys,test_assetsbundle,test_auth_custom,test_base_automation,test_base_import,test_convert,test_converter,test_crm_full,test_data_module,test_data_module_install,test_discuss_full,test_event_full,test_exceptions,test_html_field_history,test_http,test_impex,test_inherit,test_inherit_depends,test_inherits,test_inherits_depends,test_limits,test_lint,test_mail,test_mail_full,test_mail_sms,test_mail_tracking_value_multilang,test_main_flows,test_mass_mailing,test_mimetypes,test_new_api,test_performance,test_populate,test_read_group,test_resource,test_rpc,test_sale_product_configurators,test_search_panel,test_spreadsheet,test_testing_utilities,test_to_signup_email_verification,test_translation_import,test_uninstall,test_viin_approval,test_viin_mail_route,test_viin_web_cohort,test_website,test_website_modules,test_website_slides_full,test_xlsx_export,theme_default,to_account_accountant,to_account_asset,to_account_asset_purchase,to_account_budget,to_account_budget_hr_timesheet,to_account_counterpart,to_account_counterpart_account_update_tax_tags,to_account_payment,to_account_reports,to_account_reports_report_off,to_accounting_bi,to_accounting_entry_report_flag,to_approvals,to_attendance_device,to_backdate,to_backend_theme,to_bank_currency_rate,to_bank_currency_rate_purchase_stock,to_base,to_common_uom,to_config_management,to_currency_conversion_diff,to_employee_changes_tracking,to_employee_documents,to_equipment_maintenance_schedule,to_equipment_woking_frequency,to_erponline_utility,to_event_project,to_event_timesheet,to_fee_definition,to_fee_definition_sale,to_fleet_driver,to_geo_routes,to_geo_routes_account,to_geo_routes_google,to_geo_routes_here,to_geo_routes_mapbox,to_geo_routes_searoutes,to_geo_routes_vietmap,to_git,to_git_odoo_version,to_git_project,to_hide_ent_modules,to_hide_ent_modules_payment,to_hide_ent_modules_website_theme,to_hr_barcode_in_emp_name,to_hr_employee_advance,to_hr_employee_grade,to_hr_employee_grade_patch1,to_hr_employee_relative,to_hr_expense,to_hr_expense_employee_advance,to_hr_expense_payroll,to_hr_meal,to_hr_payroll,to_hr_payroll_account,to_hr_payroll_attendance,to_hr_payroll_meal,to_hr_project_timesheet_timeoff_payroll,to_hr_timesheet_approval,to_hr_timesheet_payroll,to_hr_training,to_inter_company_base,to_inter_company_invoice,to_inter_company_sale_purchase,to_inter_company_sale_purchase_stock,to_invoice_line_summary,to_invoice_tax_details,to_legal_invoice_number,to_loan_management,to_mail_template_multilang_fix,to_maintenance_approval,to_maintenance_by_working_hours,to_maintenance_notification,to_maintenance_request_simple_mediate,to_mrp_account_standard_consumption,to_mrp_backdate,to_mrp_bom_component_percentage,to_mrp_bom_stock_value,to_mrp_maintenance,to_mrp_mps,to_mrp_plm,to_mrp_workorder,to_multi_warehouse_access_control,to_multi_warehouse_access_control_mrp,to_multi_warehouse_access_control_purchase,to_multi_warehouse_access_control_sale,to_multi_warehouse_access_control_sms,to_odoo_module,to_odoo_module_loc,to_odoo_module_sale,to_odoo_module_sale_project,to_odoo_module_sale_template,to_odoo_version,to_okr,to_okr_project,to_partner_dob,to_partner_dob_send_email,to_partner_equity_range,to_partner_multilang,to_partner_multilang_partner_autocomplete,to_partner_nationality,to_partner_track_change,to_payment_transaction_protection,to_paypal_unsupported_currencies,to_payroll_payment_acb_templates,to_pos_analytics,to_pos_delivery,to_pos_note,to_pos_order_to_sales_order,to_procurement_approval,to_product_code_sequence,to_product_collection,to_product_collection_pos,to_product_collection_sale,to_product_dimensions,to_product_function,to_product_function_pos,to_product_function_sale,to_product_license,to_product_license_sale,to_product_maintenance_schedule,to_product_milestone,to_product_odoo_version,to_product_return_reason,to_product_return_reason_stock,to_product_standard_price_access,to_product_standard_price_access_account,to_product_standard_price_access_purchase,to_purchase_backdate,to_purchase_landed_cost,to_purchase_line_numbering,to_purchase_order_advance,to_purchase_receipt,to_quality,to_quality_mrp,to_quality_stock,to_refund_account,to_registration_email_blacklist,to_repair_request_from_maintenance,to_repair_with_maintenance_schedule,to_safe_confirm_button,to_sale_backdate,to_sale_desc_short_link,to_sale_line_numbering,to_sale_order_advance,to_sale_price_lock,to_sales_stock_schedule,to_sales_target,to_sales_target_pos,to_sales_target_sale,to_sales_team_advanced,to_sales_team_advanced_crm,to_sales_team_advanced_sale,to_signup_email_verification,to_sshkey,to_stock_account_moves_link,to_stock_age_report,to_stock_asset,to_stock_asset_equipment,to_stock_barcode,to_stock_block_quantity,to_stock_equipment,to_stock_equipment_bom_kit,to_stock_equipment_hierarchy,to_token_expiration,to_token_expiration_test,to_unique_product_code,to_upload_file,to_vat_counterpart,to_vendor_price_lock,to_wallet,to_warranty_management,to_warranty_purchase,to_warranty_purchase_stock,to_warranty_sale,to_warranty_sale_stock,to_warranty_stock,to_web_thousand_sep,to_website_apps_store,to_website_apps_store_loc,to_website_base,to_website_docs,to_website_docs_odoo,to_website_docs_odoo_data,to_website_odoo_version,to_website_slides_event,transifex,uom,utm,viin_account,viin_account_auto_transfer,viin_account_bank_statement_import,viin_account_bank_statement_import_rje,viin_account_budget_project,viin_account_counterpart_reconciliation,viin_account_followup,viin_account_followup_sale,viin_account_onbehalf_payment,viin_account_reconciliation,viin_account_recurring,viin_administrative_region,viin_affiliate,viin_affiliate_crm,viin_affiliate_loyalty,viin_affiliate_loyalty_pos,viin_affiliate_loyalty_sale,viin_affiliate_multi_level,viin_affiliate_multi_level_sale,viin_affiliate_pos,viin_affiliate_pos_discount,viin_affiliate_pos_sale,viin_affiliate_sale,viin_affiliate_sale_crm,viin_affiliate_website,viin_affiliate_website_crm_livechat,viin_affiliate_website_project,viin_affilitate_purchase,viin_ai,viin_ai_agent,viin_ai_base,viin_ai_brain,viin_ai_chat,viin_ai_rag,viin_ai_search,viin_amazon,viin_amazon_ses,viin_api_request_logger,viin_appointment,viin_appointment_crm,viin_appointment_sale,viin_appointment_sale_crm,viin_appointment_website,viin_appointment_website_hr,viin_approval,viin_approval_account,viin_approval_analytic,viin_approval_flexible_flow,viin_approval_hr_contract,viin_approval_mrp,viin_approval_project,viin_approval_purchase,viin_approval_purchase_stock,viin_approval_purpose_routing,viin_approval_sale,viin_approval_sale_project,viin_approval_stock,viin_auto_currency_rate,viin_auto_currency_rate_acb,viin_auto_currency_rate_bidv,viin_auto_currency_rate_vcb,viin_auto_currency_rate_xe,viin_bank_connector,viin_base_addendum,viin_base_district,viin_base_import_tracking,viin_base_state_group,viin_base_ward,viin_bidv_connector,viin_brain,viin_brain_account_reports,viin_brain_crm,viin_brain_hr,viin_brain_project,viin_brain_sale_management,viin_brand,viin_brand_account,viin_brand_auth_oauth,viin_brand_auth_totp,viin_brand_auth_totp_mail_enforce,viin_brand_auth_totp_portal,viin_brand_base_import,viin_brand_base_setup,viin_brand_calendar,viin_brand_common,viin_brand_contacts,viin_brand_crm,viin_brand_digest,viin_brand_fleet,viin_brand_hr,viin_brand_hr_expense,viin_brand_hr_recruitment,viin_brand_hr_skills,viin_brand_im_livechat,viin_brand_im_livechat_mail_bot,viin_brand_l10n_vn,viin_brand_mail,viin_brand_mail_bot,viin_brand_mail_plugin,viin_brand_mass_mailing,viin_brand_mass_mailing_crm,viin_brand_mass_mailing_sale,viin_brand_mass_mailing_sms,viin_brand_mass_mailing_themes,viin_brand_membership,viin_brand_mrp,viin_brand_onboarding,viin_brand_payment,viin_brand_payment_paypal,viin_brand_portal,viin_brand_pos,viin_brand_pos_mercury,viin_brand_product,viin_brand_purchase,viin_brand_sale,viin_brand_sale_management,viin_brand_sale_pdf_quote_builder,viin_brand_snailmail,viin_brand_social_media,viin_brand_stock,viin_brand_web,viin_brand_web_editor,viin_brand_web_unsplash,viin_brand_website,viin_brand_website_event,viin_brand_website_event_exhibitor,viin_brand_website_forum,viin_brand_website_jitsi,viin_brand_website_links,viin_brand_website_profile,viin_brand_website_sale,viin_brand_website_slides,viin_built_in_help,viin_check_company_discrepancy,viin_coach_approvals,viin_contacts_district,viin_contacts_ethnicity_religion,viin_contacts_map,viin_contacts_ward,viin_country_target_market,viin_crm,viin_crm_business_nature,viin_crm_business_nature_isic,viin_crm_business_nature_patch1,viin_crm_customer_recognition,viin_crm_dob,viin_crm_sankey,viin_customizer,viin_customizer_web_responsive,viin_discuss_channel_privacy,viin_document,viin_document_account,viin_document_freight,viin_document_freight_air,viin_document_freight_consol,viin_document_hr,viin_document_hr_contract,viin_document_hr_payroll,viin_document_hr_recruitment,viin_document_mrp,viin_document_parsing,viin_document_project,viin_document_purchase,viin_document_sale,viin_document_stock,viin_duns,viin_employee_map,viin_equipment_warranty_partner_infor,viin_estimate,viin_estimate_approval,viin_estimate_budget,viin_estimate_hr,viin_estimate_project,viin_estimate_purchase,viin_estimate_sale,viin_event_checkin_website,viin_event_partner_barcodes,viin_features_activate_account,viin_features_activate_approvals,viin_features_activate_contacts,viin_features_activate_freight,viin_features_activate_hr,viin_features_activate_hr_attendance,viin_features_activate_hr_expense,viin_features_activate_hr_payroll,viin_features_activate_hr_recruitment,viin_features_activate_inter_company,viin_features_activate_mrp,viin_features_activate_pos,viin_features_activate_product,viin_features_activate_project,viin_features_activate_purchase,viin_features_activate_sale,viin_features_activate_stock,viin_features_activate_survey,viin_features_activate_website,viin_fleet,viin_fleet_account,viin_fleet_purchase,viin_foreign_trade,viin_foreign_trade_currency_rate,viin_foreign_trade_export,viin_foreign_trade_import,viin_foreign_trade_import_currency_rate,viin_freight_air,viin_freight_air_consol,viin_freight_complete_suite,viin_freight_consol,viin_freight_document_parsing,viin_freight_gantt,viin_freight_management,viin_freight_project,viin_freight_road,viin_freight_sale,viin_freight_sale_onbehalf,viin_freight_sale_purchase,viin_geo_route_map,viin_geography_info,viin_geography_info_contact,viin_geography_info_world_bank,viin_google_drive,viin_google_translate_api,viin_helpdesk,viin_helpdesk_crm,viin_helpdesk_hr,viin_helpdesk_livechat,viin_helpdesk_odoo_module,viin_helpdesk_odoo_version,viin_helpdesk_project,viin_helpdesk_sale,viin_helpdesk_severity,viin_helpdesk_timesheet,viin_helpdesk_timesheet_timer,viin_hide_detailed_tax_in_pos_receipt,viin_hr,viin_hr_account,viin_hr_appraisal,viin_hr_attendance_validation,viin_hr_contract,viin_hr_contract_skill,viin_hr_contract_suspension,viin_hr_contract_suspension_payroll,viin_hr_contract_suspension_seniority,viin_hr_employee_birthday,viin_hr_employee_relative_birthdate,viin_hr_ethnicity_religion,viin_hr_holidays,viin_hr_maintenance,viin_hr_management_tiers,viin_hr_multi_position,viin_hr_overtime,viin_hr_overtime_approval,viin_hr_overtime_approval_compensatory_time_off,viin_hr_overtime_approval_payroll,viin_hr_overtime_attendance,viin_hr_overtime_compensatory_time_off,viin_hr_overtime_payroll,viin_hr_overtime_payroll_compensatory_time_off,viin_hr_overtime_timesheet,viin_hr_overtime_timesheet_approval,viin_hr_overtime_timesheet_attendance,viin_hr_payroll_administrative_region,viin_hr_payroll_timesheet_wfh,viin_hr_project,viin_hr_project_timesheet_account,viin_hr_rank,viin_hr_recognition_discipline,viin_hr_recognition_discipline_approval,viin_hr_recruitment,viin_hr_recruitment_approval,viin_hr_recruitment_sankey,viin_hr_recruitment_skills_resume,viin_hr_retirement_age,viin_hr_role,viin_hr_role_patch1,viin_hr_seniority,viin_hr_skill_framework,viin_hr_skill_framework_recruitment,viin_hr_skills_slides,viin_hr_timesheet_timer,viin_hr_work_entry,viin_hr_work_entry_contract,viin_hr_work_entry_contract_attendance,viin_hr_work_entry_contract_attendance_holiday,viin_hr_work_entry_contract_suspension,viin_hr_work_entry_holidays,viin_inventory_adjustment_with_cost_price,viin_lang_detection,viin_link_tracker_qr_code,viin_loan_import,viin_loan_management_bank_currency_rate,viin_logistics,viin_logistics_account,viin_logistics_cargo_template,viin_logistics_package_type,viin_logistics_route,viin_logistics_sale,viin_logistics_sales_team,viin_loyalty,viin_loyalty_pos,viin_loyalty_pos_sale,viin_loyalty_sale,viin_mail_mention_with_avatar,viin_mail_route,viin_mail_show_recipient,viin_mail_thread_account,viin_mail_thread_product,viin_mail_thread_purchase,viin_mail_thread_stock,viin_mail_thread_stock_account,viin_mail_thread_uom,viin_mail_tracking,viin_maintenance,viin_maintenance_preventive_mode,viin_meeting_room,viin_message_edit_lock,viin_mrp,viin_mrp_account,viin_mrp_filter,viin_mrp_landed_costs,viin_mrp_plm_approval,viin_mrp_plm_subcontracting_purchase,viin_mrp_plm_test_full,viin_mrp_progress,viin_mrp_standard_consumption,viin_mrp_subcontracting_link,viin_mrp_subcontracting_loss_report,viin_mrp_subcontracting_report,viin_mrp_subcontracting_request,viin_mrp_subcontracting_request_approval,viin_mrp_subcontracting_request_plm,viin_mrp_subcontracting_request_requisition,viin_multi_warehouse_access_control_purchase_requisition,viin_partner_budget_code,viin_partner_business_nature,viin_partner_business_nature_patch1,viin_partner_calendar,viin_partner_country_recognition,viin_partner_filter,viin_partner_gender,viin_partner_identity,viin_partner_industry_isic,viin_partner_shareholder,viin_partner_tax_code,viin_pdf_print_preview,viin_pos_account_qr_code_emv,viin_pos_custom_bill_logo,viin_pos_product_multi_barcodes,viin_pos_qr,viin_pos_qr_bidv,viin_pos_refund,viin_pos_return,viin_pos_sales_receipt_title,viin_pos_scale,viin_pos_vnpay,viin_pricelist_validity_advance,viin_product_multi_barcodes,viin_project,viin_project_access_timesheet,viin_project_gantt,viin_project_progress,viin_project_scrum,viin_project_scrum_gantt,viin_project_scrum_helpdesk,viin_project_timesheet_leave,viin_project_todo,viin_purchase,viin_qrcode,viin_quality_stock_access_control,viin_rental,viin_rental_stock,viin_repair,viin_repair_access_group,viin_repair_request_from_warranty,viin_resource,viin_safe_field_model_selector,viin_sale,viin_sale_addendum,viin_sale_business_nature,viin_sale_business_nature_isic,viin_sale_crm,viin_sale_crm_business_nature,viin_sale_onbehalf_management,viin_sale_product_duplication_warning,viin_sale_project,viin_sale_project_technician,viin_sale_quotation_template_access,viin_sale_recurring,viin_sale_sankey,viin_sale_subscription,viin_sale_subscription_loyalty,viin_sale_supplier_pricelist,viin_sales_team_collaboration,viin_sales_team_collaboration_crm,viin_sales_team_collaboration_sale,viin_sales_unlink,viin_sales_unlink_stock,viin_sem,viin_sem_crawler,viin_sem_crawler_helpdesk,viin_sem_heatmap,viin_sem_helpdesk,viin_sem_helpdesk_timesheet,viin_sem_project,viin_sign,viin_sign_document,viin_sign_sim,viin_sign_sim_viettel,viin_social,viin_social_facebook,viin_social_lead,viin_social_linkedin,viin_spreadsheet_dashboard_crm,viin_spreadsheet_dashboard_finance,viin_spreadsheet_dashboard_freight,viin_spreadsheet_dashboard_helpdesk,viin_stock,viin_stock_account_backdate,viin_stock_approval,viin_stock_backdate,viin_stock_internal_transfer,viin_stock_internal_transit_valuation,viin_stock_internal_transit_valuation_specific_identification,viin_stock_landed_costs,viin_stock_lot_dropshipping_partner_infor,viin_stock_lot_partner_infor,viin_stock_specific_identification,viin_stock_specific_identification_landed_costs,viin_stock_specific_identification_mrp,viin_stock_specific_identification_purchase_stock,viin_stringee,viin_survey,viin_survey_exam,viin_survey_recompute_results,viin_tracking_location,viin_tracking_location_route,viin_transfer_address,viin_wallet_loyalty,viin_wallet_sale_loyalty,viin_web_cohort,viin_web_countup_timer,viin_web_editor,viin_web_gantt,viin_web_map,viin_web_sankey,viin_website,viin_website_auto_translation,viin_website_auto_translation_blog,viin_website_auto_translation_google,viin_website_blog_access_right,viin_website_blog_toc,viin_website_forum_security_groups,viin_website_gtm,viin_website_helpdesk,viin_website_hr_recruitment_website_editor,viin_website_multilingual_multimedia,viin_website_nofollow,viin_website_page_access_right,viin_website_partner_business_nature,viin_website_partner_business_nature_patch1,viin_website_sale_recurring,viin_website_sale_subscription,viin_website_seo,viin_website_seo_advisor,viin_website_seo_advisor_blog,viin_website_seo_blog,viin_website_seo_event,viin_website_seo_forum,viin_website_seo_hr_recruitment,viin_website_seo_sale,viin_website_seo_sale_stock,viin_website_seo_slides,viin_website_slides,viin_website_slides_survey,viin_workflow_automation,viin_zalo,viin_zalo_account,viin_zalo_auth_oauth,viin_zalo_chatter_sync,viin_zalo_crm,viin_zalo_helpdesk,viin_zalo_sale,viin_zalo_website_livechat,viin_zalo_zbs,web,web_editor,web_hierarchy,web_responsive,web_tour,web_unsplash,website,website_blog,website_cf_turnstile,website_crm,website_crm_iap_reveal,website_crm_livechat,website_crm_partner_assign,website_crm_sms,website_customer,website_event,website_event_booth,website_event_booth_exhibitor,website_event_booth_sale,website_event_booth_sale_exhibitor,website_event_crm,website_event_exhibitor,website_event_jitsi,website_event_meet,website_event_meet_quiz,website_event_sale,website_event_track,website_event_track_live,website_event_track_live_quiz,website_event_track_quiz,website_form_project,website_forum,website_google_map,website_hr_recruitment,website_jitsi,website_links,website_livechat,website_mail,website_mail_group,website_mass_mailing,website_mass_mailing_sms,website_membership,website_partner,website_payment,website_payment_authorize,website_profile,website_sale,website_sale_autocomplete,website_sale_comparison,website_sale_comparison_wishlist,website_sale_loyalty,website_sale_mondialrelay,website_sale_mrp,website_sale_picking,website_sale_product_configurator,website_sale_slides,website_sale_stock,website_sale_stock_wishlist,website_sale_wishlist,website_slides,website_slides_forum,website_slides_survey,website_sms,website_twitter
- exec_odoo --db_port 5432 --log-level=test --max-cron-threads=0 --http-interface=127.0.0.1 --load=base,web,to_base --stop-after-init --test-enable --test-tags=/to_website_apps_store_loc,/to_website_base,/to_website_docs,/to_website_docs_odoo,/to_website_docs_odoo_data,/to_website_odoo_version,/to_website_slides_event,/transifex,/uom,/utm,/viin_account,/viin_account_auto_transfer,/viin_account_bank_statement_import,/viin_account_bank_statement_import_rje,/viin_account_budget_project,/viin_account_counterpart_reconciliation,/viin_account_followup,/viin_account_followup_sale,/viin_account_onbehalf_payment,/viin_account_reconciliation,/viin_account_recurring,/viin_administrative_region,/viin_affiliate,/viin_affiliate_crm,/viin_affiliate_loyalty,/viin_affiliate_loyalty_pos,/viin_affiliate_loyalty_sale,/viin_affiliate_multi_level,/viin_affiliate_multi_level_sale,/viin_affiliate_pos,/viin_affiliate_pos_discount,/viin_affiliate_pos_sale,/viin_affiliate_sale,/viin_affiliate_sale_crm,/viin_affiliate_website,/viin_affiliate_website_crm_livechat,/viin_affiliate_website_project,/viin_affilitate_purchase,/viin_ai,/viin_ai_agent,/viin_ai_base,/viin_ai_brain,/viin_ai_chat,/viin_ai_rag,/viin_ai_search,/viin_amazon,/viin_amazon_ses,/viin_api_request_logger,/viin_appointment,/viin_appointment_crm,/viin_appointment_sale,/viin_appointment_sale_crm,/viin_appointment_website,/viin_appointment_website_hr,/viin_approval,/viin_approval_account,/viin_approval_analytic,/viin_approval_flexible_flow,/viin_approval_hr_contract,/viin_approval_mrp,/viin_approval_project,/viin_approval_purchase,/viin_approval_purchase_stock,/viin_approval_purpose_routing,/viin_approval_sale,/viin_approval_sale_project,/viin_approval_stock,/viin_auto_currency_rate,/viin_auto_currency_rate_acb,/viin_auto_currency_rate_bidv,/viin_auto_currency_rate_vcb,/viin_auto_currency_rate_xe,/viin_bank_connector,/viin_base_addendum,/viin_base_district,/viin_base_import_tracking,/viin_base_state_group,/viin_base_ward,/viin_bidv_connector,/viin_brain,/viin_brain_account_reports,/viin_brain_crm,/viin_brain_hr,/viin_brain_project,/viin_brain_sale_management,/viin_brand,/viin_brand_account,/viin_brand_auth_oauth,/viin_brand_auth_totp,/viin_brand_auth_totp_mail_enforce,/viin_brand_auth_totp_portal,/viin_brand_base_import,/viin_brand_base_setup,/viin_brand_calendar,/viin_brand_common,/viin_brand_contacts,/viin_brand_crm,/viin_brand_digest,/viin_brand_fleet,/viin_brand_hr,/viin_brand_hr_expense,/viin_brand_hr_recruitment,/viin_brand_hr_skills,/viin_brand_im_livechat,/viin_brand_im_livechat_mail_bot,/viin_brand_l10n_vn,/viin_brand_mail,/viin_brand_mail_bot,/viin_brand_mail_plugin,/viin_brand_mass_mailing,/viin_brand_mass_mailing_crm,/viin_brand_mass_mailing_sale,/viin_brand_mass_mailing_sms,/viin_brand_mass_mailing_themes,/viin_brand_membership,/viin_brand_mrp,/viin_brand_onboarding,/viin_brand_payment,/viin_brand_payment_paypal,/viin_brand_portal,/viin_brand_pos,/viin_brand_pos_mercury,/viin_brand_product,/viin_brand_purchase,/viin_brand_sale,/viin_brand_sale_management,/viin_brand_sale_pdf_quote_builder,/viin_brand_snailmail,/viin_brand_social_media,/viin_brand_stock,/viin_brand_web,/viin_brand_web_editor,/viin_brand_web_unsplash,/viin_brand_website,/viin_brand_website_event,/viin_brand_website_event_exhibitor,/viin_brand_website_forum,/viin_brand_website_jitsi,/viin_brand_website_links,/viin_brand_website_profile,/viin_brand_website_sale,/viin_brand_website_slides,/viin_built_in_help,/viin_check_company_discrepancy,/viin_coach_approvals,/viin_contacts_district,/viin_contacts_ethnicity_religion,/viin_contacts_map,/viin_contacts_ward,/viin_country_target_market,/viin_crm,/viin_crm_business_nature,/viin_crm_business_nature_isic,/viin_crm_business_nature_patch1,/viin_crm_customer_recognition,/viin_crm_dob,/viin_crm_sankey,/viin_customizer,/viin_customizer_web_responsive,/viin_discuss_channel_privacy,/viin_document,/viin_document_account,/viin_document_freight,/viin_document_freight_air,/viin_document_freight_consol,/viin_document_hr,/viin_document_hr_contract,/viin_document_hr_payroll,/viin_document_hr_recruitment,/viin_document_mrp,/viin_document_parsing,/viin_document_project,/viin_document_purchase,/viin_document_sale,/viin_document_stock,/viin_duns,/viin_employee_map,/viin_equipment_warranty_partner_infor,/viin_estimate,/viin_estimate_approval,/viin_estimate_budget,/viin_estimate_hr,/viin_estimate_project,/viin_estimate_purchase,/viin_estimate_sale,-at_install,-.test_so_and_multicurrency,-:TestUi.test_02_crm_tour_rainbowman,-.test_assign_perf_duplicates,-/l10n_it_edi_sdicoop,-:TestExamples.test_with_car_with_atn_with_car,-:TestExamples.test_with_car_with_atn_with_child,-/project_enterprise.test_01_ui,-.test_generate_fec_sanitize_pieceref,-:TestEventPerformance.test_event_create_single_notype_website,-:TestInventory.test_cyclic_inventory,-:TestUi.test_04_mass_mailing_snippets_menu_hide,-:WebSuite.test_check_suite,-:TestResConfigSettings.test_set_default_analytic_plan,-:TestWebsiteSaleDeliveryExpressCheckoutFlows.test_express_checkout_registered_user_with_shipping_option_new_address,-:TestBatchPicking02.test_backorder_batching_2,-:.test_account_line_entry_kit_bom_dropship,-:TestPosMargin.test_avco_margin_closing_time,-:TestAccountMoveOutInvoiceOnchanges.test_before_initial_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default_no_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_no_have_bank_default,-:TestWebEditorController.test_modify_image,-:TestPurchaseOrder.test_foreign_bill_autocomplete_with_payment_term,-:TestImLivechatMessage.test_feedback_message,-:TestImLivechatMessage.test_message_to_store,-:TestChannelInternals.test_channel_members,-:TestDiscussFullPerformance.test_30_discuss_channels,-:TestPurchaseOrder.test_foreign_bill_tax_included,-:TestMessageToStorePerformance.test_message_to_store_multi_followers_inbox,-:TestDiscussFullPerformance.test_10_init_store_data,-:TestGetDiscussChannel.test_channel_get_livechat_visitor_info,-:TestReportsRendering.test_report_specific_paperformat_args,-:.test_partial_billing_interaction_with_invoicing_switch_threshold,-:.test_partial_invoicing_interaction_with_invoicing_switch_threshold,-:.test_invoice_with_already_invoiced_timesheets
| Create Date | Level | Message |
|---|---|---|
| 05/02/2026 01:25:20 | INFO |
Using Docker Image Odoo 17 Ubuntu 22.04 Python 3.10:
FROM ubuntu:jammy ENV LANG C.UTF-8 USER root SHELL ["/bin/bash", "-c"] # Install debian packages RUN set -x ; \ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-transport-https build-essential ca-certificates curl ffmpeg file fonts-freefont-ttf fonts-noto-cjk gawk gnupg gsfonts libldap2-dev libjpeg9-dev libsasl2-dev libxslt1-dev lsb-release node-less ocrmypdf sed sudo unzip xfonts-75dpi zip zlib1g-dev git build-essential cython3 libffi-dev libev-dev \ && rm -rf /var/lib/apt/lists/* # Install Python3 packages RUN set -x ; \ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3 python3-dbfread python3-dev python3-pip python3-setuptools python3-wheel python3-markdown python3-mock python3-phonenumbers python3-websocket python3-cffi libpq-dev \ && rm -rf /var/lib/apt/lists/* # Install wkhtml RUN curl -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb -o /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb \ && curl -sSL http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb -o /tmp/libssl1.1_1.1.0g-2ubuntu4_amd64.deb \ && apt-get update \ && dpkg -i /tmp/libssl1.1_1.1.0g-2ubuntu4_amd64.deb \ && apt install -y -f --no-install-recommends /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb \ && rm /tmp/libssl1.1_1.1.0g-2ubuntu4_amd64.deb /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb # Install Odoo:Depends ADD https://raw.githubusercontent.com/brendangregg/FlameGraph/master/flamegraph.pl /usr/local/bin/flamegraph.pl RUN chmod +rx /usr/local/bin/flamegraph.pl ADD https://raw.githubusercontent.com/Viindoo/odoo/17.0/debian/control /tmp/control.txt RUN apt-get update \ && sed -n '/^Depends:/,/^[A-Z]/p' /tmp/control.txt \ | awk '/^ [a-z]/ { gsub(/,/,"") ; print $1 }' | sort -u \ | egrep -v 'postgresql-client' \ | sed 's/python-imaging/python-pil/'| sed 's/python-pypdf/python-pypdf2/' | sed 's/python3-lxml-html-clean/python3-lxml/' \ | DEBIAN_FRONTEND=noninteractive xargs apt-get install -y -qq \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN python3 -m pip install --no-cache-dir setuptools wheel && \ python3 -m pip install coverage==7.4.4 flamegraph RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y postgresql-client-14 \ && rm -rf /var/lib/apt/lists/* # Install Google Chrome #RUN curl -sSL https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -o /tmp/chrome.deb \ # && apt-get update \ # && apt-get -y install --no-install-recommends /tmp/chrome.deb \ # && rm /tmp/chrome.deb # Install phantomjs RUN curl -sSL https://nightly.odoo.com/resources/phantomjs.tar.bz2 -o /tmp/phantomjs.tar.bz2 \ && tar xvfO /tmp/phantomjs.tar.bz2 phantomjs-2.1.1-linux-x86_64/bin/phantomjs > /usr/local/bin/phantomjs \ && chmod +x /usr/local/bin/phantomjs \ && rm -f /tmp/phantomjs.tar.bz2 ADD https://raw.githubusercontent.com/Viindoo/odoo/17.0/requirements.txt /root/requirements.txt RUN python3 -m pip install --no-cache-dir wheel setuptools && \ python3 -m pip install --upgrade --no-cache-dir -r /root/requirements.txt && \ python3 -m pip install --no-cache-dir ebaysdk==2.1.5 pdf417gen==0.7.1 RUN python3 -m pip install --no-cache-dir requests pyOpenSSL # Install debian packages RUN set -x ; \ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openssl iputils-ping openssh-client chromium-browser \ && rm -rf /var/lib/apt/lists/* RUN python3 -m pip install --no-cache-dir --upgrade websocket-client==1.2.3 flake8==4.0.1 RUN python3 -m pip uninstall pylint pylint-odoo isort Pygments -y RUN python3 -m pip install --no-cache-dir --upgrade pylint-odoo==9.0.5 RUN python3 -m pip install --no-cache-dir --upgrade Pygments==2.14.0 --no-deps RUN python3 -m pip install --no-cache-dir --upgrade odoo_test_helper # Install nodejs RUN curl -fsSLO --compressed "https://nodejs.org/dist/v18.20.0/node-v18.20.0-linux-x64.tar.xz" \ && tar -xJf "node-v18.20.0-linux-x64.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ && rm "node-v18.20.0-linux-x64.tar.xz" \ && ln -s /usr/local/bin/node /usr/local/bin/nodejs #RUN npm install -g rtlcss es-check eslint@8 RUN python3 -m pip install --no-cache-dir --upgrade setuptools==61 # để tương thích với python-pkcs11-0.7.0 # Install cloc package RUN set -x ; \ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cloc \ && rm -rf /var/lib/apt/lists/* RUN npm install -g rtlcss@3.4.0 es-check@6.0.0 eslint@8.57.1 prettier@2.7.1 eslint-config-prettier@8.5.0 eslint-plugin-prettier@4.2.1 --save-dev |
| 05/02/2026 02:30:28 | INFO |
Docker command:
cd /data/build; python3 -m pip install --user --progress-bar off -r Viindoo-tvtmaaddons-17.0/requirements.txt && python3 -m pip install --user --progress-bar off -r Viindoo-erponline-enterprise-17.0/requirements.txt && python3 Viindoo-odoo-17.0/odoo-bin --addons-path Viindoo-odoo-17.0/odoo/addons,Viindoo-odoo-17.0/addons,Viindoo-tvtmaaddons-17.0,Viindoo-erponline-enterprise-17.0,Viindoo-branding-17.0,rb-bfce74a-221677 -d rb-bfce74a-221677-381270 --data-dir /data/build/datadir --db_port 5432 --log-level=test --max-cron-threads=0 --http-interface=127.0.0.1 --load=base,web,to_base --stop-after-init --test-enable --test-tags=/to_website_apps_store_loc,/to_website_base,/to_website_docs,/to_website_docs_odoo,/to_website_docs_odoo_data,/to_website_odoo_version,/to_website_slides_event,/transifex,/uom,/utm,/viin_account,/viin_account_auto_transfer,/viin_account_bank_statement_import,/viin_account_bank_statement_import_rje,/viin_account_budget_project,/viin_account_counterpart_reconciliation,/viin_account_followup,/viin_account_followup_sale,/viin_account_onbehalf_payment,/viin_account_reconciliation,/viin_account_recurring,/viin_administrative_region,/viin_affiliate,/viin_affiliate_crm,/viin_affiliate_loyalty,/viin_affiliate_loyalty_pos,/viin_affiliate_loyalty_sale,/viin_affiliate_multi_level,/viin_affiliate_multi_level_sale,/viin_affiliate_pos,/viin_affiliate_pos_discount,/viin_affiliate_pos_sale,/viin_affiliate_sale,/viin_affiliate_sale_crm,/viin_affiliate_website,/viin_affiliate_website_crm_livechat,/viin_affiliate_website_project,/viin_affilitate_purchase,/viin_ai,/viin_ai_agent,/viin_ai_base,/viin_ai_brain,/viin_ai_chat,/viin_ai_rag,/viin_ai_search,/viin_amazon,/viin_amazon_ses,/viin_api_request_logger,/viin_appointment,/viin_appointment_crm,/viin_appointment_sale,/viin_appointment_sale_crm,/viin_appointment_website,/viin_appointment_website_hr,/viin_approval,/viin_approval_account,/viin_approval_analytic,/viin_approval_flexible_flow,/viin_approval_hr_contract,/viin_approval_mrp,/viin_approval_project,/viin_approval_purchase,/viin_approval_purchase_stock,/viin_approval_purpose_routing,/viin_approval_sale,/viin_approval_sale_project,/viin_approval_stock,/viin_auto_currency_rate,/viin_auto_currency_rate_acb,/viin_auto_currency_rate_bidv,/viin_auto_currency_rate_vcb,/viin_auto_currency_rate_xe,/viin_bank_connector,/viin_base_addendum,/viin_base_district,/viin_base_import_tracking,/viin_base_state_group,/viin_base_ward,/viin_bidv_connector,/viin_brain,/viin_brain_account_reports,/viin_brain_crm,/viin_brain_hr,/viin_brain_project,/viin_brain_sale_management,/viin_brand,/viin_brand_account,/viin_brand_auth_oauth,/viin_brand_auth_totp,/viin_brand_auth_totp_mail_enforce,/viin_brand_auth_totp_portal,/viin_brand_base_import,/viin_brand_base_setup,/viin_brand_calendar,/viin_brand_common,/viin_brand_contacts,/viin_brand_crm,/viin_brand_digest,/viin_brand_fleet,/viin_brand_hr,/viin_brand_hr_expense,/viin_brand_hr_recruitment,/viin_brand_hr_skills,/viin_brand_im_livechat,/viin_brand_im_livechat_mail_bot,/viin_brand_l10n_vn,/viin_brand_mail,/viin_brand_mail_bot,/viin_brand_mail_plugin,/viin_brand_mass_mailing,/viin_brand_mass_mailing_crm,/viin_brand_mass_mailing_sale,/viin_brand_mass_mailing_sms,/viin_brand_mass_mailing_themes,/viin_brand_membership,/viin_brand_mrp,/viin_brand_onboarding,/viin_brand_payment,/viin_brand_payment_paypal,/viin_brand_portal,/viin_brand_pos,/viin_brand_pos_mercury,/viin_brand_product,/viin_brand_purchase,/viin_brand_sale,/viin_brand_sale_management,/viin_brand_sale_pdf_quote_builder,/viin_brand_snailmail,/viin_brand_social_media,/viin_brand_stock,/viin_brand_web,/viin_brand_web_editor,/viin_brand_web_unsplash,/viin_brand_website,/viin_brand_website_event,/viin_brand_website_event_exhibitor,/viin_brand_website_forum,/viin_brand_website_jitsi,/viin_brand_website_links,/viin_brand_website_profile,/viin_brand_website_sale,/viin_brand_website_slides,/viin_built_in_help,/viin_check_company_discrepancy,/viin_coach_approvals,/viin_contacts_district,/viin_contacts_ethnicity_religion,/viin_contacts_map,/viin_contacts_ward,/viin_country_target_market,/viin_crm,/viin_crm_business_nature,/viin_crm_business_nature_isic,/viin_crm_business_nature_patch1,/viin_crm_customer_recognition,/viin_crm_dob,/viin_crm_sankey,/viin_customizer,/viin_customizer_web_responsive,/viin_discuss_channel_privacy,/viin_document,/viin_document_account,/viin_document_freight,/viin_document_freight_air,/viin_document_freight_consol,/viin_document_hr,/viin_document_hr_contract,/viin_document_hr_payroll,/viin_document_hr_recruitment,/viin_document_mrp,/viin_document_parsing,/viin_document_project,/viin_document_purchase,/viin_document_sale,/viin_document_stock,/viin_duns,/viin_employee_map,/viin_equipment_warranty_partner_infor,/viin_estimate,/viin_estimate_approval,/viin_estimate_budget,/viin_estimate_hr,/viin_estimate_project,/viin_estimate_purchase,/viin_estimate_sale,-at_install,-.test_so_and_multicurrency,-:TestUi.test_02_crm_tour_rainbowman,-.test_assign_perf_duplicates,-/l10n_it_edi_sdicoop,-:TestExamples.test_with_car_with_atn_with_car,-:TestExamples.test_with_car_with_atn_with_child,-/project_enterprise.test_01_ui,-.test_generate_fec_sanitize_pieceref,-:TestEventPerformance.test_event_create_single_notype_website,-:TestInventory.test_cyclic_inventory,-:TestUi.test_04_mass_mailing_snippets_menu_hide,-:WebSuite.test_check_suite,-:TestResConfigSettings.test_set_default_analytic_plan,-:TestWebsiteSaleDeliveryExpressCheckoutFlows.test_express_checkout_registered_user_with_shipping_option_new_address,-:TestBatchPicking02.test_backorder_batching_2,-:.test_account_line_entry_kit_bom_dropship,-:TestPosMargin.test_avco_margin_closing_time,-:TestAccountMoveOutInvoiceOnchanges.test_before_initial_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default_no_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_no_have_bank_default,-:TestWebEditorController.test_modify_image,-:TestPurchaseOrder.test_foreign_bill_autocomplete_with_payment_term,-:TestImLivechatMessage.test_feedback_message,-:TestImLivechatMessage.test_message_to_store,-:TestChannelInternals.test_channel_members,-:TestDiscussFullPerformance.test_30_discuss_channels,-:TestPurchaseOrder.test_foreign_bill_tax_included,-:TestMessageToStorePerformance.test_message_to_store_multi_followers_inbox,-:TestDiscussFullPerformance.test_10_init_store_data,-:TestGetDiscussChannel.test_channel_get_livechat_visitor_info,-:TestReportsRendering.test_report_specific_paperformat_args,-:.test_partial_billing_interaction_with_invoicing_switch_threshold,-:.test_partial_invoicing_interaction_with_invoicing_switch_threshold,-:.test_invoice_with_already_invoiced_timesheets ; |
| 05/02/2026 02:30:28 | INFO |
Restoring from: rb-bfce74a-221677-381266
|
| 05/02/2026 02:30:28 | INFO |
Container rb-bfce74a-221677-381270 started !
|
| 05/02/2026 03:55:29 | INFO |
Container rb-bfce74a-221677-381270 stopped !
|
| 05/02/2026 03:55:29 | ERROR |
ERROR: duplicate key value violates unique constraint "viin_ai_tool_viin_ai_tool_technical_name_unique"
|
| 05/02/2026 03:55:29 | ERROR |
odoo.sql_db: bad query: INSERT INTO "viin_ai_tool" ("action_id", "active", "create_date", "create_uid", "description", "name", "parameters_schema", "requires_confirmation", "runs_as_sudo", "sequence", "technical_name", "write_date", "write_uid") VALUES (2076, true, '2026-05-01 20:27:44.175495', 1, 'B', 'Tool alpha duplicate', '{}', false, false, 10, 'alpha', '2026-05-01 20:27:44.175495', 1) RETURNING "id"
DETAIL: Key (technical_name)=(alpha) already exists.
|
| 05/02/2026 03:55:29 | WARNING |
odoo.addons.viin_ai_agent.models.ir_actions_server: viin_ai_agent: server action WI17 No Model (ai_prompt) missing required fields (ai_model_id, ai_prompt, or ai_target_field_id) — skipping.
|
| 05/02/2026 03:55:29 | WARNING |
odoo.addons.viin_ai_agent.models.ir_actions_server: viin_ai_agent: server action WI17 No Prompt (ai_prompt) missing required fields (ai_model_id, ai_prompt, or ai_target_field_id) — skipping.
|
| 05/02/2026 03:55:29 | ERROR |
odoo.addons.viin_ai_base.tests.test_feedback_export_dataset: FAIL: TestFeedbackExportDataset.test_export_empty_db_creates_empty_attachment
Traceback (most recent call last):
File "/data/build/rb-bfce74a-221677/viin_ai_base/tests/test_feedback_export_dataset.py", line 55, in test_export_empty_db_creates_empty_attachment
self.assertEqual(att.raw, b'', 'body must be empty when no rows')
AssertionError: False != b'' : body must be empty when no rows
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=29 (embedding_service) mapped to vendor_openai as default. Admin should verify and correct vendor_id.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=31 (custom, base_url=https://my-private-proxy.internal/api) could not be matched. Mapped to vendor_openai as fallback. Admin must review.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:55:29 | WARNING |
odoo.http: model_name is required and must be a string.
|
| 05/02/2026 03:55:29 | WARNING |
odoo.http: Unknown model: nonexistent.model.xyz
|
| 05/02/2026 03:55:29 | ERROR |
odoo.tests.result: 1 failed, 0 error(s) of 1734 tests when loading database 'rb-bfce74a-221677-381270'
|
| 05/02/2026 03:55:29 | INFO |
Cleaning all resource
|
| 05/02/2026 03:55:29 | INFO |
Cleanup finished
|