Skip to Content
Pending: 0 Building: 0 Running: 0 Failed: 9
Created Date Type Name Commit Description State Age Up Time Life Time Action
merged [FIX] web_responsive: make the mobile apps menu one-handed [FIX] web_responsive: make the mobile apps menu one-handed - On phones the navbar shows a visible, labelled apps grid icon (it was an invisible tap area). - The apps sidebar slides in from the left, next to the icon that opens it, and swipe-left closes it. - "All Apps" in the sidebar opens the full-screen app menu with its search box, like on desktop. - Tapping the icon while the app menu covers a screen closes it; when the app menu is the only screen (redirect-to-home users) it opens the sidebar instead. - The redundant sidebar button in the user menu is removed. - The app title now shortens before the user menu is pushed off narrow (360px) screens. - Vietnamese translation added; template refreshed. Signed-off-by: David Tran <david.tran@tvtmarine.com> Failed
merged [FIX] viin_brand_{pos,stock,mrp}: remove Odoo wording from user-facing messages [FIX] viin_brand_mrp: remove Odoo wording from Manufacturing help texts Manufacturing shows Odoo in the help of the automatic printing options of the manufacturing operation type, in the help of Operation Dependencies and of the manual consumption of components, and in a note that sends the user to the Odoo IoT App and Odoo's documentation. Say 'the system' in the help texts. Replace the note with a plain statement that a PDF preview opens by default: the Viindoo IoT box does not route these reports to a printer, so the advice does not apply. The work center control panel digest tip is already rewritten by this module. Bump the module version and update the .pot/.po. Signed-off-by: David Tran <david.tran@tvtmarine.com> Failed
merged [FIX] viin_brand_{pos,stock,mrp}: remove Odoo wording from user-facing messages [FIX] viin_brand_pos: remove Odoo wording from POS user-facing messages The POS 'Connection to the printer failed' dialog told cashiers to follow Odoo's documentation. Replace it with the same advice in Viindoo words and no documentation link; this also covers the Epson ePOS path, which reuses the base printer message. Same kind of user-facing Odoo mentions covered in this module: - the generic 'Odoo Server Error' dialog title is now 'Server Error'; - the customer display 'Powered by' badge shows the Viindoo logo instead of the Odoo one; - the IoT customer display failure notice no longer talks about an Odoo database subscription. It is swapped on the notification the core service raises, and the module's terms are now sent to that public page so the Vietnamese wording is applied there. Bump the module version and update the .pot/.po. Signed-off-by: David Tran <david.tran@tvtmarine.com> Killed
merged [FIX] viin_brand_{pos,stock,mrp}: remove Odoo wording from user-facing messages [FIX] viin_brand_pos: remove Odoo wording from POS user-facing messages The POS 'Connection to the printer failed' dialog told cashiers to follow Odoo's documentation. Replace it with the same advice in Viindoo words and no documentation link; this also covers the Epson ePOS path, which reuses the base printer message. Same kind of user-facing Odoo mentions covered in this module: - the generic 'Odoo Server Error' dialog title is now 'Server Error'; - the customer display 'Powered by' badge shows the Viindoo logo instead of the Odoo one; - the IoT customer display failure notice no longer talks about an Odoo database subscription. It is swapped on the notification the core service raises, and the module's terms are now sent to that public page so the Vietnamese wording is applied there. Bump the module version and update the .pot/.po. Signed-off-by: David Tran <david.tran@tvtmarine.com> Killed Not started
merged [FIX] viin_brand_{pos,stock,mrp}: remove Odoo wording from user-facing messages [FIX] viin_brand_pos: remove Odoo wording from printer error dialog The POS 'Connection to the printer failed' dialog told cashiers to follow Odoo's documentation. Replace it with the same advice in Viindoo words and no documentation link; this also covers the Epson ePOS path, which reuses the base printer message. Same kind of user-facing Odoo mentions covered in this module: - the generic 'Odoo Server Error' dialog title is now 'Server Error'; - the customer display 'Powered by' badge shows the Viindoo logo instead of the Odoo one. Bump the module version and update the .pot/.po. Signed-off-by: David Tran <david.tran@tvtmarine.com> Killed Not started
merged [I18N] *: align Vietnamese terminology with the corrected core catalogs [I18N] *: align Vietnamese terminology with the corrected core catalogs Odoo 18 core's Vietnamese catalogs were corrected against a glossary researched per business domain (Viindoo/odoo#1299). This brings this repository's catalogs in line, so a Vietnamese user sees one term for one concept across core and Viindoo modules: - Records shared with core (model names, re-declared fields, selection values) now carry core's corrected wording exactly; before, the module loaded last decided which label users saw. - Records shared between Viindoo modules read the same in every module that declares them, following the module that defines them. - Key terms applied in context, e.g. Đơn bán / Đơn mua, Phiếu kho, Loại nghiệp vụ, Hoàn thành, Duyệt / Đã duyệt / Chờ duyệt, Thiết lập, Nháp, Ghi sổ, Phát sinh kế toán, Tài khoản quản trị, Chế độ thuế, Hóa đơn điều chỉnh giảm, Trung tâm sản xuất, Lệnh công đoạn, Làm thêm giờ, Bảng giờ công, Đối chiếu, Danh sách chặn, Công cụ (wizards), plus the creator/updater boilerplate. - Definite errors fixed: reversed or wrong meanings, broken placeholders and markup, garbled text and typos. - Old-style tone marks throughout (hóa, hủy, khóa). Only msgstr content changes; untranslated entries are left as they are. Failed
merged [FIX] viin_brand_crm: depend on viin_brand_digest to fix install-order crash [FIX] viin_brand_crm: depend on viin_brand_digest to fix install-order crash Installing modules in some environments could abort partway through with: ParseError: .../viin_brand_crm/data/digest_data.xml:5 ValueError: Invalid field 'active' on model 'digest.tip' digest_data.xml writes digest.tip.active, but that field is defined by the sibling module viin_brand_digest, not by viin_brand_crm or by crm. Both modules are auto_install: True with no dependency edge between them, so Odoo's loader has no ordering guarantee and can process viin_brand_crm before viin_brand_digest has added the field - observed on a real build aborting at module 72 of 126. Add viin_brand_digest to viin_brand_crm's depends so the loader is forced to install it first. This does not widen who gets auto-installed: core crm already depends on digest, so whenever crm is installed, digest is installed too, which means viin_brand_digest (depends ['digest'], auto_install) was already an install candidate in exactly the same situations. The new edge only constrains order, which is precisely what was missing. digest_data.xml itself is untouched - the data is correct; it was only running too early. Killed Not started Not finished
merged [IMP] viin_brand: own the module-icon and favicon branding mechanism [IMP] viin_brand: own the module-icon and favicon branding mechanism Moved from to_base (tvtmaaddons), where it ran for every database served by a process that had viin_brand on its addons path and forced to_base to be loaded server wide. The functions, hooks, models (company favicon, settings-page icon RPC, menu web_icon rewrite, session marker), data, views, assets and the QUnit mock server come over unchanged apart from their imports; the uninstall hook now actually restores the core functions it replaced. viin_brand is the module to load server wide from now on (--load=base,web,viin_brand); it warns when it is not. Killed
merged [FIX] web_responsive, viin_brand_common: unbreak apps-menu search selection and stale brand repaints [FIX] web_responsive: dismiss the apps menu when a search result is chosen Searching the apps menu and choosing a result appeared to do nothing: the menus filtered, but clicking one or pressing Enter left the user where they were. Navigation was in fact succeeding. The controller changed and the URL moved to the target, with no JS error and every RPC returning 200 - but the full-screen overlay stayed mounted over the destination and, being position:fixed with pointer-events:auto, swallowed clicks on the view underneath. The overlay must be dismissed explicitly. When the apps menu became an overlay-service render independent of the action stack, dismiss() was added before selectMenu() on the app-icon path but not on the search paths, and core's selectMenu() only mutates the action stack. Three call sites needed it, not one: the canonical search bar (whose handler the Enter key also reaches, so click and Enter are one path), the fuse variant that inherits it, and the command-palette variant, which fails through a different mechanism because openMainPalette was passed no onClose. The command-palette path dismisses only when a menu was actually selected. onClose fires on every palette close, Escape included, so dismissing unconditionally would tear the apps menu down when a user merely backs out of the palette - trading one surprise for another. It also registers that callback once per open palette session: core's command service ignores onClose on every call after the first while its palette is open, so re-passing it per keystroke orphaned a patch layer on the session-lifetime menu service each time. The app-tile route, which every core tour uses to reach an app, was already correct and is untouched. Signed-off-by: David Tran <david.tran@tvtmarine.com> Killed
merged [FIX] web_responsive, viin_brand_common: unbreak apps-menu search selection and stale brand repaints [FIX] viin_brand_common: withdraw the square-corners brand decision The product owner withdrew the "square corners are part of the Viindoo brand identity" decision. This module forced Bootstrap's global $border-radius to 0 in bootstrap_overridden.scss; drop that override so Odoo's own product-wide border-radius default applies again across buttons, inputs, cards, badges, dropdowns and modals. No sibling radius variable ($border-radius-sm/lg/xl/xxl) is touched - those are independent Bootstrap literals this module never overrode. viin_brand_square_corners_tour and its Python HttpCase driver (test_real_backend_buttons_keep_the_brand_square_corners) existed solely to guard the withdrawn contract, so both are retired together with it. Every other assertion in the same tour file and test class (brand primary colour, theme secondary colour, base font-size, statusbar outline/fill, discuss sidebar, settings tab) is untouched. Verified: before this change the retired assertion measured .btn border-top-left-radius = 0px (passing, as designed). After this change the full --test-tags /viin_brand_common suite is green (0 failed, 0 error, 0 skipped, 20/20), and a fresh computed-style probe measures .btn border-top-left-radius = 4px - Odoo core's own $o-border-radius default - confirming the product-wide change took effect. Bump manifest version 0.3.4 -> 0.3.5. Signed-off-by: David Tran <david.tran@tvtmarine.com> Failed
merged [FIX] web_responsive, viin_brand_common: unbreak apps-menu search selection and stale brand repaints [FIX] web_responsive: stop leaking a patch layer per command-palette keystroke A prior fix on this branch (05b40f6) made the command-palette search variant dismiss the apps-menu overlay only when a menu was actually selected, using a temporary patch() on the menu service to detect the selection. That patch was re-applied on every keystroke, but core's command service silently drops the onClose callback on every call after the first while its palette stays open - so only the first keystroke's patch layer was ever unwound, and each keystroke after that permanently leaked one more wrapper layer onto the menu service for the rest of the browser session. Track whether an open-palette session is already being watched and only patch the menu service + register the dismiss callback once per session; later keystrokes in the same session now only update the palette's search value. Adds a Hoot test covering the character-by-character search-typing path (the one the prior tests bypassed) and trims two test comments per the repo's comment convention. Signed-off-by: David Tran <david.tran@tvtmarine.com> Killed Not finished
open [FWD] forward-port 17.0 -> 18.0: store URLs + web_responsive apps_menu guard + is_redirect_home restoration [FIX] web_responsive: correct a false idempotency comment + bind the session_info test Three review findings from the forward-port batch. The migration's comment claimed the is_redirect_home filter makes a re-run match nothing, so an opted-out user is never silently re-opted-in. The second half was false: an opted-out user holds False, which is exactly what the domain selects. Odoo compiles a boolean "= False" to (col IS NULL OR col = FALSE), so the domain provably cannot tell "never backfilled" from "deliberately opted out" - the manifest version gate is what makes this run once. The comment now says that. The domain and the logic are unchanged and correct: that same collapse is what lets the backfill match the NULL rows every pre-existing user actually has. test_session_info only ever exercised the preference at True, so a hardcoded True in the session_info transport would have passed it. It now also flips the preference to False and re-asserts, binding the assertion to the user's real stored value on both sides. The new JS test file carried an OCA sibling's copyright header; it is Viindoo's own 2026 file. The LGPL-3 license line stays - the module is OCA. Killed