[FIX] viin_brand_mail: fix chatter contrast in light and dark schemes
DARK: the mail chatter embedded in the Odoo 19 spreadsheet editor's
comments side panel was unreadable. Odoo keeps the spreadsheet a light
island inside a dark app (its dark-bundle-only
o_spreadsheet_extended.dark.scss forces .bg-white back to white and
pins .btn to a dark label), but core repaints only the button label,
not the fill, leaving half of every pair in the wrong colour scheme.
Finish that light island for the embedded chatter instead of darkening
it, scoped entirely under .o-spreadsheet. Measured live at 1440px in
dark mode, before -> after: Log note 1.19 -> 7.92, Activity
1.19 -> 7.92, Send message 2.17 -> 8.24, author name 2.63 -> 10.31,
timestamp 2.59 -> 6.11, message body -> 9.25.
The same two message nodes the island fix above touches - the
empty-message placeholder (3.37:1 worst) and the (edited) marker
(4.04:1 worst) - were unreadable everywhere OUTSIDE that island too,
because core dims both a second time on top of a tier already tuned to
clear AA once. Fix them product-wide instead of leaving the island as
the one readable spot: every form-view chatter, the Discuss thread
canvas and every chat window, on the panel and on all three
message-bubble tints. With that rule in place the island's own
placeholder correction became a pure duplicate of it and was dropped.
The island's (edited) rule is kept and hardened with its own colour,
because the product-wide fix lands that marker on the dark metadata
tier, which measures 2.34-2.59:1 on the island's light bubbles - too
dark for that ground.
LIGHT: the mail message muted tier renders below AA wherever it lands
- 4.06:1 on a message bubble, 4.20:1 on the chatter panel - and two
nodes are dimmed further by opacity utilities to 2.7:1 and 2.4:1. The
shared $text-muted token is deliberately left untouched: it also paints
off/disabled affordances that WCAG exempts, and repointing it would
change roughly 380 nodes across 205 templates. Re-point the tier for
mail message surfaces only. After: 5.48-6.11 across the panel and all
bubble variants. Dark stays provably unaffected, since the light rules
compile to zero bytes in the dark bundle.
Also drop a rule that went dead once the comments panel lost its
background utility - it was this module's only reference to another
repo's class.
A comment on the read-conversation muted tier said its
--secondary-color token "does not flip" in dark - true only while
$o-main-color-muted and $body-secondary-color were two independent
Sass values. dark_palette.scss has since aliased the former onto the
latter, so both names now resolve to the one tier this rule already
reads: the rule was right, the explanation had gone stale. Reworded to
name the tier through its own alias chain instead of restating a
divergence that no longer exists.
Guard every case above with tests that assert computed WCAG ratios,
never colour values.
Signed-off-by: David Tran <david.tran@tvtmarine.com>
Odoo 19 Test Suite Using Docker
Post install tests: from purchase_stock to test_lint
- install_module account,account_add_gln,account_check_printing,account_debit_note,account_edi,account_edi_proxy_client,account_edi_ubl_cii,account_fleet,account_payment,account_payment_interco,account_peppol,account_peppol_advanced_fields,account_peppol_response,account_qr_code_emv,account_qr_code_sepa,account_tax_python,account_test,account_update_tax_tags,analytic,api_doc,attachment_indexation,auth_oauth,auth_passkey,auth_passkey_portal,auth_password_policy,auth_password_policy_portal,auth_password_policy_signup,auth_signup,auth_timeout,auth_totp,auth_totp_mail,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,certificate,cloud_storage,cloud_storage_azure,cloud_storage_google,cloud_storage_migration,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_product,event_sale,event_sms,fleet,gamification,gamification_sale_crm,google_account,google_address_autocomplete,google_calendar,google_gmail,google_recaptcha,hr,hr_attendance,hr_calendar,hr_expense,hr_fleet,hr_gamification,hr_holidays,hr_holidays_attendance,hr_holidays_homeworking,hr_homeworking,hr_homeworking_calendar,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_event,hr_skills_slides,hr_skills_survey,hr_timesheet,hr_timesheet_attendance,hr_work_entry,hr_work_entry_holidays,html_builder,html_editor,http_routing,iap,iap_crm,iap_mail,im_livechat,iot_base,l10n_vn_edi_viettel,l10n_vn_edi_viettel_pos,l10n_vn_viin,link_tracker,loyalty,lunch,mail,mail_bot,mail_bot_hr,mail_group,mail_plugin,maintenance,marketing_card,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,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_landed_costs,mrp_subcontracting_purchase,mrp_subcontracting_repair,onboarding,partner_autocomplete,partnership,payment,payment_adyen,payment_aps,payment_asiapay,payment_authorize,payment_buckaroo,payment_custom,payment_demo,payment_dpo,payment_ecpay,payment_flutterwave,payment_iyzico,payment_mercado_pago,payment_mollie,payment_nuvei,payment_paymob,payment_paypal,payment_payu,payment_razorpay,payment_redsys,payment_stripe,payment_toss_payments,payment_worldline,payment_xendit,phone_validation,point_of_sale,portal,portal_rating,pos_account_tax_python,pos_adyen,pos_cashdro,pos_cashmatic,pos_discount,pos_dpopay,pos_edi_ubl,pos_event,pos_event_sale,pos_glory_cash,pos_hr,pos_hr_restaurant,pos_imin,pos_loyalty,pos_mercado_pago,pos_mollie,pos_mrp,pos_online_payment,pos_online_payment_self_order,pos_pine_labs,pos_qfpay,pos_razorpay,pos_repair,pos_restaurant,pos_restaurant_adyen,pos_restaurant_loyalty,pos_restaurant_stripe,pos_safaricom,pos_sale,pos_sale_loyalty,pos_sale_margin,pos_self_order,pos_self_order_adyen,pos_self_order_pine_labs,pos_self_order_qfpay,pos_self_order_razorpay,pos_self_order_sale,pos_self_order_stripe,pos_self_order_viva_com,pos_sms,pos_stripe,pos_viva_com,privacy_lookup,product,product_email_template,product_expiry,product_margin,product_matrix,project,project_account,project_hr_expense,project_hr_skills,project_mail_plugin,project_mrp,project_mrp_account,project_mrp_sale,project_mrp_stock_landed_costs,project_purchase,project_purchase_stock,project_sale_expense,project_sms,project_stock,project_stock_account,project_stock_landed_costs,project_timesheet_holidays,project_todo,purchase,purchase_edi_ubl_bis3,purchase_mrp,purchase_product_matrix,purchase_repair,purchase_requisition,purchase_requisition_sale,purchase_requisition_stock,purchase_stock,rating,repair,resource,resource_mail,rpc,sale,sale_crm,sale_edi_ubl,sale_expense,sale_expense_margin,sale_gelato,sale_gelato_stock,sale_loyalty,sale_loyalty_delivery,sale_management,sale_margin,sale_mrp,sale_mrp_margin,sale_pdf_quote_builder,sale_product_matrix,sale_project,sale_project_stock,sale_project_stock_account,sale_purchase,sale_purchase_project,sale_purchase_stock,sale_service,sale_sms,sale_stock,sale_stock_margin,sale_stock_product_expiry,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_pos_restaurant,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_fleet,stock_landed_costs,stock_maintenance,stock_picking_batch,stock_sms,survey,survey_crm,test_access_rights,test_action_bindings,test_assetsbundle,test_auth_custom,test_base_automation,test_convert,test_converter,test_crm_full,test_data_module,test_data_module_install,test_discuss_full,test_event_full,test_html_field_history,test_http,test_import_export,test_inherit,test_inherit_depends,test_inherits,test_inherits_depends,test_lint,test_mail,test_mail_full,test_mail_sms,test_main_flows,test_mass_mailing,test_mimetypes,test_orm,test_read_group,test_resource,test_rpc,test_sale_product_configurators,test_sale_purchase_edi_ubl,test_search_panel,test_spreadsheet,test_testing_utilities,test_translation_import,test_uninstall,test_website,test_website_modules,test_website_slides_full,theme_default,to_account_counterpart,to_account_payment,to_attendance_device,to_base,to_config_management,to_equipment_maintenance_schedule,to_equipment_woking_frequency,to_erponline_utility,to_geo_routes,to_git,to_git_odoo_version,to_hr_employee_grade,to_invoice_tax_details,to_legal_invoice_number,to_maintenance_by_working_hours,to_maintenance_notification,to_maintenance_request_simple_mediate,to_odoo_module,to_odoo_module_sale,to_odoo_version,to_okr,to_okr_project,to_product_license,to_product_license_sale,to_product_maintenance_schedule,to_product_milestone,to_product_odoo_version,to_sale_order_advance,to_sshkey,to_stock_equipment,to_token_expiration,to_upload_file,to_web_thousand_sep,to_website_apps_store,transifex,uom,utm,viin_account,viin_account_onbehalf_payment,viin_api_request_logger,viin_backend_theme,viin_brand,viin_brand_account,viin_brand_auth_oauth,viin_brand_auth_signup,viin_brand_auth_totp,viin_brand_auth_totp_mail,viin_brand_auth_totp_portal,viin_brand_base_import,viin_brand_base_setup,viin_brand_calendar,viin_brand_contacts,viin_brand_crm,viin_brand_digest,viin_brand_fleet,viin_brand_hr,viin_brand_hr_expense,viin_brand_hr_skills,viin_brand_html_editor,viin_brand_im_livechat,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_mrp,viin_brand_onboarding,viin_brand_payment,viin_brand_payment_paypal,viin_brand_portal,viin_brand_pos,viin_brand_product,viin_brand_purchase,viin_brand_sale,viin_brand_sale_management,viin_brand_social_media,viin_brand_stock,viin_brand_web,viin_brand_web_unsplash,viin_brand_website,viin_brand_website_event,viin_brand_website_event_exhibitor,viin_brand_website_forum,viin_brand_website_links,viin_brand_website_profile,viin_brand_website_sale,viin_brand_website_slides,viin_document_parsing,viin_freight_air,viin_freight_air_consol,viin_freight_consol,viin_freight_customs,viin_freight_customs_consol,viin_freight_document_parsing,viin_freight_management,viin_freight_project,viin_freight_road,viin_freight_sale,viin_freight_sale_margin,viin_freight_sale_multi_currency,viin_freight_sale_onbehalf,viin_freight_sale_purchase,viin_hr,viin_hr_maintenance,viin_logistics,viin_logistics_account,viin_logistics_cargo_template,viin_logistics_package_type,viin_logistics_route,viin_logistics_sale,viin_logistics_sales_team,viin_mail_tracking,viin_maintenance,viin_maintenance_preventive_mode,viin_project,viin_qrcode,viin_sale_multi_currency,viin_sale_onbehalf_management,viin_sale_supplier_pricelist,viin_sale_supplier_pricelist_margin,viin_sale_supplier_pricelist_margin_timesheet,viin_spreadsheet_dashboard_freight,viin_tracking_location,viin_tracking_location_route,web,web_hierarchy,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_sale,website_event_track,website_event_track_live,website_event_track_live_quiz,website_event_track_quiz,website_forum,website_google_map,website_hr_recruitment,website_hr_recruitment_livechat,website_links,website_livechat,website_mail,website_mail_group,website_mass_mailing,website_mass_mailing_sms,website_partner,website_payment,website_profile,website_project,website_sale,website_sale_autocomplete,website_sale_collect,website_sale_collect_wishlist,website_sale_comparison,website_sale_comparison_wishlist,website_sale_gelato,website_sale_loyalty,website_sale_mass_mailing,website_sale_mondialrelay,website_sale_mrp,website_sale_slides,website_sale_stock,website_sale_stock_wishlist,website_sale_wishlist,website_slides,website_slides_forum,website_slides_survey,website_sms,website_timesheet
- 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=/purchase_stock,/rating,/repair,/resource,/resource_mail,/rpc,/sale,/sale_crm,/sale_edi_ubl,/sale_expense,/sale_expense_margin,/sale_gelato,/sale_gelato_stock,/sale_loyalty,/sale_loyalty_delivery,/sale_management,/sale_margin,/sale_mrp,/sale_mrp_margin,/sale_pdf_quote_builder,/sale_product_matrix,/sale_project,/sale_project_stock,/sale_project_stock_account,/sale_purchase,/sale_purchase_project,/sale_purchase_stock,/sale_service,/sale_sms,/sale_stock,/sale_stock_margin,/sale_stock_product_expiry,/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_pos_restaurant,/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_fleet,/stock_landed_costs,/stock_maintenance,/stock_picking_batch,/stock_sms,/survey,/survey_crm,/test_access_rights,/test_action_bindings,/test_assetsbundle,/test_auth_custom,/test_base_automation,/test_convert,/test_converter,/test_crm_full,/test_data_module,/test_data_module_install,/test_discuss_full,/test_event_full,/test_html_field_history,/test_http,/test_import_export,/test_inherit,/test_inherit_depends,/test_inherits,/test_inherits_depends,/test_lint,-at_install,-/website_event_booth_exhibitor/tests/test_wevent_booth_exhibitor.py:TestWEventBoothExhibitorCommon.test_register,-/website_sale/tests/test_website_sale_image.py:TestWebsiteSaleRemoveImage.test_website_sale_add_and_remove_main_product_image_no_variant,-:TestIndustryFsmUi.test_ui,-/sale_management/tests/test_sale_ui.py:TestUi.test_04_portal_sale_signature_without_name_tour,-:TestMigrateEmployeeWithContract,-:TestMigrateEmployee,-/l10n_pe_edi_pos/tests/test_frontend.py:TestUi.test_pos_invoice_order_and_refund,-/helpdesk/tests/test_helpdesk_rating.py:TestHelpdeskRating.test_helpdesk_dashboard,-/website/tests/test_ui.py:TestUi.test_33_website_menus,-/account/tests/test_tour.py:TestUi.test_01_account_tour,-/website_sale_wishlist/tests/test_wishlist_process.py:TestWishlistProcess.test_01_wishlist_tour,-/test_l10n_be_hr_payroll_account/tests/test_employee_job_change.py:TestEmployeeJobChange.test_employee_job_change,-/test_website_sale_full/tests/test_ui_rental_comparison.py:TestUi.test_website_sale_renting_comparison_ui,-/knowledge/tests/test_knowledge_editor_commands.py:TestKnowledgeEditorCommands.test_knowledge_calendar_command_tour,-:TestAddToCartSnippet.test_configure_product,-.test_generic_localization,-:TestPickShipBackorder.test_pick_assign_and_backorder,-/hr_holidays/tests/test_leave_requests.py:TestLeaveRequests.test_calendar_event_create_access_rights,-:TestError.test_04_multi_db,-:TestOrderEdiUbl.test_so_import_product_from_po,-:TestReportsRendering.test_report_specific_paperformat_args,-:TestKpiProvider
| Create Date | Level | Message |
|---|---|---|
| 09/06/2026 12:10:02 | INFO |
Using Docker Image Odoo 19 Ubuntu 24.04 Python 3.12:
FROM ubuntu:noble ENV LANG C.UTF-8 ENV ODOO_TEST_FAILURE_RETRIES=2 # Retrieve the target architecture to install the correct wkhtmltopdf package ARG TARGETARCH 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 file fonts-freefont-ttf fonts-noto-cjk gawk gnupg gsfonts libldap2-dev libjpeg9-dev libsasl2-dev libxslt1-dev lsb-release npm ocrmypdf sed sudo unzip xfonts-75dpi zip zlib1g-dev software-properties-common git \ && 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 publicsuffix python3 flake8 python3-dbfread python3-dev python3-gevent python3-pip python3-setuptools python3-wheel python3-markdown python3-mock python3-phonenumbers python3-websocket python3-google-auth libpq-dev pylint python3-jwt python3-asn1crypto python3-html2text python3-suds python3-xmlsec \ && rm -rf /var/lib/apt/lists/* # Install wkhtml RUN curl -o xfonts-base.deb http://archive.ubuntu.com/ubuntu/pool/main/x/xfonts-base/xfonts-base_1.0.5+nmu1_all.deb && dpkg -i xfonts-base.deb RUN curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb \ && apt-get install -y --no-install-recommends ./wkhtmltox.deb \ && rm -rf /var/lib/apt/lists/* wkhtmltox.deb xfonts-base.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/19.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 --break-system-packages --no-cache-dir setuptools wheel && \ python3 -m pip install --break-system-packages coverage==7.4.4 flamegraph # install latest postgresql-client RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main' > /etc/apt/sources.list.d/pgdg.list \ && GNUPGHOME="$(mktemp -d)" \ && export GNUPGHOME \ && repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \ && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \ && gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \ && gpgconf --kill all \ && rm -rf "$GNUPGHOME" \ && apt-get update \ && apt-get install --no-install-recommends -y postgresql-client \ && rm -f /etc/apt/sources.list.d/pgdg.list \ && rm -rf /var/lib/apt/lists/* # Install Google Chrome ARG CHROME_VERSION=150.0.7871.114 RUN set -eux; \ sed -i 's|http://archive.ubuntu.com/ubuntu|http://mirrors.digitalocean.com/ubuntu|g; s|http://security.ubuntu.com/ubuntu|http://mirrors.digitalocean.com/ubuntu|g' /etc/apt/sources.list; \ apt-mark unhold google-chrome-stable 2>/dev/null || true; \ 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; \ curl -sSLf "https://storage.googleapis.com/chrome-for-testing-public/${CHROME_VERSION}/linux64/chrome-headless-shell-linux64.zip" -o /tmp/hs.zip; \ unzip -q /tmp/hs.zip -d /opt; \ ln -sf /opt/chrome-headless-shell-linux64/chrome-headless-shell /usr/local/bin/google-chrome; \ dpkg -r google-chrome-stable; \ rm -f /tmp/chrome.deb /tmp/hs.zip /etc/apt/sources.list.d/google-chrome.list; \ rm -rf /var/lib/apt/lists/* /opt/google; \ google-chrome --version | grep -F "${CHROME_VERSION}" # 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 ENV PIP_BREAK_SYSTEM_PACKAGES=1 ADD https://raw.githubusercontent.com/Viindoo/odoo/19.0/requirements.txt /root/requirements.txt RUN python3 -m pip install --break-system-packages --no-cache-dir setuptools wheel && \ python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --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 --break-system-packages --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==6.1.0 #RUN python3 -m pip uninstall pylint pylint-odoo isort Pygments -y RUN python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --no-cache-dir --upgrade pylint-odoo==9.0.5 RUN python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --no-cache-dir --upgrade Pygments==2.15.0 --no-deps # 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@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 # Tránh warning do bug của ubuntu RUN rm -rf /usr/lib/python3.12/dist-packages/charset_normalizer-3.3.2.dist-info # Install cloc package RUN set -x ; \ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cloc pv \ && rm -rf /var/lib/apt/lists/* RUN python3 -m pip install --no-cache-dir --upgrade google-auth==2.36.0 RUN python3 -m pip install --no-cache --use-pep517 python-pkcs11~=0.7.0 |
| 09/06/2026 12:20:21 | INFO |
Post install tests: from purchase_stock to test_lint:
Command: exec_odoo args: --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=/purchase_stock,/rating,/repair,/resource,/resource_mail,/rpc,/sale,/sale_crm,/sale_edi_ubl,/sale_expense,/sale_expense_margin,/sale_gelato,/sale_gelato_stock,/sale_loyalty,/sale_loyalty_delivery,/sale_management,/sale_margin,/sale_mrp,/sale_mrp_margin,/sale_pdf_quote_builder,/sale_product_matrix,/sale_project,/sale_project_stock,/sale_project_stock_account,/sale_purchase,/sale_purchase_project,/sale_purchase_stock,/sale_service,/sale_sms,/sale_stock,/sale_stock_margin,/sale_stock_product_expiry,/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_pos_restaurant,/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_fleet,/stock_landed_costs,/stock_maintenance,/stock_picking_batch,/stock_sms,/survey,/survey_crm,/test_access_rights,/test_action_bindings,/test_assetsbundle,/test_auth_custom,/test_base_automation,/test_convert,/test_converter,/test_crm_full,/test_data_module,/test_data_module_install,/test_discuss_full,/test_event_full,/test_html_field_history,/test_http,/test_import_export,/test_inherit,/test_inherit_depends,/test_inherits,/test_inherits_depends,/test_lint,-at_install,-/website_event_booth_exhibitor/tests/test_wevent_booth_exhibitor.py:TestWEventBoothExhibitorCommon.test_register,-/website_sale/tests/test_website_sale_image.py:TestWebsiteSaleRemoveImage.test_website_sale_add_and_remove_main_product_image_no_variant,-:TestIndustryFsmUi.test_ui,-/sale_management/tests/test_sale_ui.py:TestUi.test_04_portal_sale_signature_without_name_tour,-:TestMigrateEmployeeWithContract,-:TestMigrateEmployee,-/l10n_pe_edi_pos/tests/test_frontend.py:TestUi.test_pos_invoice_order_and_refund,-/helpdesk/tests/test_helpdesk_rating.py:TestHelpdeskRating.test_helpdesk_dashboard,-/website/tests/test_ui.py:TestUi.test_33_website_menus,-/account/tests/test_tour.py:TestUi.test_01_account_tour,-/website_sale_wishlist/tests/test_wishlist_process.py:TestWishlistProcess.test_01_wishlist_tour,-/test_l10n_be_hr_payroll_account/tests/test_employee_job_change.py:TestEmployeeJobChange.test_employee_job_change,-/test_website_sale_full/tests/test_ui_rental_comparison.py:TestUi.test_website_sale_renting_comparison_ui,-/knowledge/tests/test_knowledge_editor_commands.py:TestKnowledgeEditorCommands.test_knowledge_calendar_command_tour,-:TestAddToCartSnippet.test_configure_product,-.test_generic_localization,-:TestPickShipBackorder.test_pick_assign_and_backorder,-/hr_holidays/tests/test_leave_requests.py:TestLeaveRequests.test_calendar_event_create_access_rights,-:TestError.test_04_multi_db,-:TestOrderEdiUbl.test_so_import_product_from_po,-:TestReportsRendering.test_report_specific_paperformat_args,-:TestKpiProvider |
| 09/06/2026 12:20:21 | INFO |
Docker command:
cd /data/build; mkdir -p /data/build/.pip-tmp && TMPDIR=/data/build/.pip-tmp python3 -m pip install --user --no-cache-dir --progress-bar off -r Viindoo-tvtmaaddons-19.0/requirements.txt && python3 Viindoo-odoo-19.0/odoo-bin --addons-path Viindoo-odoo-19.0/odoo/addons,Viindoo-odoo-19.0/addons,Viindoo-tvtmaaddons-19.0,rb-fc5b009-224567 -d rb-fc5b009-224567-412136 --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=/purchase_stock,/rating,/repair,/resource,/resource_mail,/rpc,/sale,/sale_crm,/sale_edi_ubl,/sale_expense,/sale_expense_margin,/sale_gelato,/sale_gelato_stock,/sale_loyalty,/sale_loyalty_delivery,/sale_management,/sale_margin,/sale_mrp,/sale_mrp_margin,/sale_pdf_quote_builder,/sale_product_matrix,/sale_project,/sale_project_stock,/sale_project_stock_account,/sale_purchase,/sale_purchase_project,/sale_purchase_stock,/sale_service,/sale_sms,/sale_stock,/sale_stock_margin,/sale_stock_product_expiry,/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_pos_restaurant,/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_fleet,/stock_landed_costs,/stock_maintenance,/stock_picking_batch,/stock_sms,/survey,/survey_crm,/test_access_rights,/test_action_bindings,/test_assetsbundle,/test_auth_custom,/test_base_automation,/test_convert,/test_converter,/test_crm_full,/test_data_module,/test_data_module_install,/test_discuss_full,/test_event_full,/test_html_field_history,/test_http,/test_import_export,/test_inherit,/test_inherit_depends,/test_inherits,/test_inherits_depends,/test_lint,-at_install,-/website_event_booth_exhibitor/tests/test_wevent_booth_exhibitor.py:TestWEventBoothExhibitorCommon.test_register,-/website_sale/tests/test_website_sale_image.py:TestWebsiteSaleRemoveImage.test_website_sale_add_and_remove_main_product_image_no_variant,-:TestIndustryFsmUi.test_ui,-/sale_management/tests/test_sale_ui.py:TestUi.test_04_portal_sale_signature_without_name_tour,-:TestMigrateEmployeeWithContract,-:TestMigrateEmployee,-/l10n_pe_edi_pos/tests/test_frontend.py:TestUi.test_pos_invoice_order_and_refund,-/helpdesk/tests/test_helpdesk_rating.py:TestHelpdeskRating.test_helpdesk_dashboard,-/website/tests/test_ui.py:TestUi.test_33_website_menus,-/account/tests/test_tour.py:TestUi.test_01_account_tour,-/website_sale_wishlist/tests/test_wishlist_process.py:TestWishlistProcess.test_01_wishlist_tour,-/test_l10n_be_hr_payroll_account/tests/test_employee_job_change.py:TestEmployeeJobChange.test_employee_job_change,-/test_website_sale_full/tests/test_ui_rental_comparison.py:TestUi.test_website_sale_renting_comparison_ui,-/knowledge/tests/test_knowledge_editor_commands.py:TestKnowledgeEditorCommands.test_knowledge_calendar_command_tour,-:TestAddToCartSnippet.test_configure_product,-.test_generic_localization,-:TestPickShipBackorder.test_pick_assign_and_backorder,-/hr_holidays/tests/test_leave_requests.py:TestLeaveRequests.test_calendar_event_create_access_rights,-:TestError.test_04_multi_db,-:TestOrderEdiUbl.test_so_import_product_from_po,-:TestReportsRendering.test_report_specific_paperformat_args,-:TestKpiProvider ; |
| 09/06/2026 12:20:21 | INFO |
Restoring from: rb-fc5b009-224567-412132
|
| 09/06/2026 12:20:21 | INFO |
Container rb-fc5b009-224567-412136 started !
|
| 09/06/2026 13:05:23 | INFO |
Container rb-fc5b009-224567-412136 stopped !
|
| 09/06/2026 13:05:23 | INFO |
Cleaning all resource
|
| 09/06/2026 13:05:23 | INFO |
Cleanup finished
|