From 20c7a5b5b84702a4eaa33c891b84fcc801c7a220 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 11 Dec 2025 16:19:47 +1100 Subject: [PATCH] Barcode scan tweaks (#10992) * Remove duplicate tooltip * Adjust default value * docs update * Tweak unit test * Fix playwright tests --- .../images/barcode/barcode_allocate_stock.png | Bin 0 -> 26307 bytes docs/docs/barcodes/index.md | 10 ++++++- src/backend/InvenTree/common/setting/user.py | 2 +- .../src/components/buttons/ScanButton.tsx | 1 - src/frontend/tests/api.ts | 10 +++++-- src/frontend/tests/helpers.ts | 2 +- src/frontend/tests/pages/pui_scan.spec.ts | 25 ++++++++++++++++++ src/frontend/tests/pui_settings.spec.ts | 8 +++--- src/frontend/tests/settings.ts | 4 +-- 9 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 docs/docs/assets/images/barcode/barcode_allocate_stock.png diff --git a/docs/docs/assets/images/barcode/barcode_allocate_stock.png b/docs/docs/assets/images/barcode/barcode_allocate_stock.png new file mode 100644 index 0000000000000000000000000000000000000000..676efcb1e392474849868f259a311c2fdb9714d7 GIT binary patch literal 26307 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 literal 0 HcmV?d00001 diff --git a/docs/docs/barcodes/index.md b/docs/docs/barcodes/index.md index b9e53b38b6..6d5eb04d76 100644 --- a/docs/docs/barcodes/index.md +++ b/docs/docs/barcodes/index.md @@ -69,7 +69,7 @@ To access this page, select *Scan Barcode* from the main navigation menu: {{ image("barcode/barcode_nav_menu.png", "Barcode menu item") }} {{ image("barcode/barcode_scan_page.png", "Barcode scan page") }} -### Barcodes in Forms +## Barcodes in Forms The InvenTree user interface supports direct scanning of barcodes within certain forms in the web UI. This means that any form field which points to a model which supports barcodes can accept barcode input. If barcode scanning is supported for a particular field, a barcode icon will be displayed next to the input field: @@ -83,6 +83,14 @@ Once scanned, the form field will be automatically populated with the correct it {{ image("barcode/barcode_field_filled.png", "Barcode field populated") }} +Any field which supports barcode input will have this functionality, such as allocating stock items to an order: + +{{ image("barcode/barcode_allocate_stock.png", "Allocate stock via barcode") }} + +### User Configuration + +By default, barcode scanning in form fields is disabled. Each user can enable this feature via their [user preferences](../settings/user.md#display-settings). + ## App Integration Barcode scanning is a key feature of the [companion mobile app](../app/barcode.md). When running on a device with an integrated camera, the app can scan barcodes directly from the camera feed. diff --git a/src/backend/InvenTree/common/setting/user.py b/src/backend/InvenTree/common/setting/user.py index b318a00213..23dee7e5bd 100644 --- a/src/backend/InvenTree/common/setting/user.py +++ b/src/backend/InvenTree/common/setting/user.py @@ -44,7 +44,7 @@ USER_SETTINGS: dict[str, InvenTreeSettingsKeyType] = { 'BARCODE_IN_FORM_FIELDS': { 'name': _('Barcode Scanner in Form Fields'), 'description': _('Allow barcode scanner input in form fields'), - 'default': True, + 'default': False, 'validator': bool, }, 'SEARCH_PREVIEW_SHOW_PARTS': { diff --git a/src/frontend/src/components/buttons/ScanButton.tsx b/src/frontend/src/components/buttons/ScanButton.tsx index 542656aed1..286f3ef4ac 100644 --- a/src/frontend/src/components/buttons/ScanButton.tsx +++ b/src/frontend/src/components/buttons/ScanButton.tsx @@ -29,7 +29,6 @@ export function ScanButton({ aria-label={`barcode-scan-button-${modelType ?? 'any'}`} onClick={open} variant='transparent' - title={t`Open Barcode Scanner`} > diff --git a/src/frontend/tests/api.ts b/src/frontend/tests/api.ts index 7d4e694a65..7c609fd5e4 100644 --- a/src/frontend/tests/api.ts +++ b/src/frontend/tests/api.ts @@ -1,10 +1,16 @@ import { request } from '@playwright/test'; import { adminuser, apiUrl } from './defaults'; -export const createApi = () => +export const createApi = ({ + username, + password +}: { + username?: string; + password?: string; +}) => request.newContext({ baseURL: apiUrl, extraHTTPHeaders: { - Authorization: `Basic ${btoa(`${adminuser.username}:${adminuser.password}`)}` + Authorization: `Basic ${btoa(`${username || adminuser.username}:${password || adminuser.password}`)}` } }); diff --git a/src/frontend/tests/helpers.ts b/src/frontend/tests/helpers.ts index a7dfed6e8a..4cb02129d2 100644 --- a/src/frontend/tests/helpers.ts +++ b/src/frontend/tests/helpers.ts @@ -152,7 +152,7 @@ export const globalSearch = async (page: Page, query: string) => { }; export const deletePart = async (name: string) => { - const api = await createApi(); + const api = await createApi({}); const parts = await api .get('part/', { params: { search: name } diff --git a/src/frontend/tests/pages/pui_scan.spec.ts b/src/frontend/tests/pages/pui_scan.spec.ts index 139e122724..5db51523fc 100644 --- a/src/frontend/tests/pages/pui_scan.spec.ts +++ b/src/frontend/tests/pages/pui_scan.spec.ts @@ -1,4 +1,5 @@ import type { Page } from '@playwright/test'; +import { createApi } from '../api'; import { test } from '../baseFixtures'; import { doCachedLogin } from '../login'; @@ -128,9 +129,33 @@ test('Barcode Scanning - Build', async ({ browser }) => { test('Barcode Scanning - Forms', async ({ browser }) => { const page = await doCachedLogin(browser, { + username: 'admin', + password: 'inventree', url: '/stock/location/index/stock-items' }); + // Ensure the user setting is enabled + const api = await createApi({}); + + let patched = false; + + await api + .patch('/api/settings/user/BARCODE_IN_FORM_FIELDS/', { + data: { + value: true + } + }) + .then((response) => { + patched = response.status() === 200; + }); + + // Assert that the setting was patched successfully + if (!patched) { + throw new Error('Could not patch user setting: BARCODE_IN_FORM_FIELDS'); + } + + await page.reload(); + // Open the "Add Stock Item" form await page .getByRole('button', { name: 'action-button-add-stock-item' }) diff --git a/src/frontend/tests/pui_settings.spec.ts b/src/frontend/tests/pui_settings.spec.ts index fbdd590b6c..f30415af2b 100644 --- a/src/frontend/tests/pui_settings.spec.ts +++ b/src/frontend/tests/pui_settings.spec.ts @@ -332,7 +332,7 @@ test('Settings - Admin - Barcode History', async ({ browser }) => { // Scan some barcodes (via API calls) const barcodes = ['ABC1234', 'XYZ5678', 'QRS9012']; - const api = await createApi(); + const api = await createApi({}); for (let i = 0; i < barcodes.length; i++) { const barcode = barcodes[i]; @@ -349,8 +349,8 @@ test('Settings - Admin - Barcode History', async ({ browser }) => { }, timeout: 5000 }) - .then(() => { - result = true; + .then((response) => { + result = response.status() === 200; }); if (result) { @@ -478,8 +478,6 @@ test('Settings - Admin - Parameter', async ({ browser }) => { await page.getByRole('option', { name: 'my custom parameter' }).click(); await page.getByLabel('choice-field-data').fill('2'); await page.getByRole('button', { name: 'Submit' }).click(); - - await page.waitForTimeout(2500); }); test('Settings - Admin - Unauthorized', async ({ browser }) => { diff --git a/src/frontend/tests/settings.ts b/src/frontend/tests/settings.ts index a8fcdc0a68..72d3126808 100644 --- a/src/frontend/tests/settings.ts +++ b/src/frontend/tests/settings.ts @@ -16,7 +16,7 @@ export const setSettingState = async ({ type?: 'global' | 'plugin'; plugin?: string; }) => { - const api = await createApi(); + const api = await createApi({}); const url = type === 'global' ? `settings/global/${setting}/` @@ -37,7 +37,7 @@ export const setPluginState = async ({ plugin: string; state: boolean; }) => { - const api = await createApi(); + const api = await createApi({}); const response = await api.patch(`plugins/${plugin}/activate/`, { data: { active: state