2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 12:35:46 +00:00

[API] Sales order filters (#8331)

* Fix 'allocated' queryset annotation for SalesOrderLineItemSerializer

* Add 'allocated' filter for SalesOrderLineItemList

* Allow ordering by 'allocated' and 'shipped' values

* Updated unit testing

* Bump API version

* Update playwright tests
This commit is contained in:
Oliver
2024-10-23 07:16:26 +11:00
committed by GitHub
parent 2adb41f448
commit ca31bb0322
6 changed files with 146 additions and 6 deletions

View File

@ -33,6 +33,7 @@ import { apiUrl } from '../../states/ApiState';
import { useUserState } from '../../states/UserState';
import { TableColumn } from '../Column';
import { DateColumn, LinkColumn, PartColumn } from '../ColumnRenderers';
import { TableFilter } from '../Filter';
import { InvenTreeTable } from '../InvenTreeTable';
import {
RowAction,
@ -161,6 +162,7 @@ export default function SalesOrderLineItemTable({
},
{
accessor: 'allocated',
sortable: true,
render: (record: any) => (
<ProgressBar
progressLabel={true}
@ -171,6 +173,7 @@ export default function SalesOrderLineItemTable({
},
{
accessor: 'shipped',
sortable: true,
render: (record: any) => (
<ProgressBar
progressLabel={true}
@ -266,6 +269,21 @@ export default function SalesOrderLineItemTable({
}
});
const tableFilters: TableFilter[] = useMemo(() => {
return [
{
name: 'allocated',
label: t`Allocated`,
description: t`Show lines which are fully allocated`
},
{
name: 'completed',
label: t`Completed`,
description: t`Show lines which are completed`
}
];
}, []);
const tableActions = useMemo(() => {
return [
<AddItemButton
@ -404,6 +422,7 @@ export default function SalesOrderLineItemTable({
},
rowActions: rowActions,
tableActions: tableActions,
tableFilters: tableFilters,
modelType: ModelType.part,
modelField: 'part'
}}

View File

@ -80,6 +80,9 @@ test('Stock - Serial Numbers', async ({ page }) => {
await page.getByLabel('text-field-serial_numbers').fill('200-250');
await page.getByLabel('number-field-quantity').fill('10');
// Add delay to account to field debounce
await page.waitForTimeout(250);
await page.getByRole('button', { name: 'Submit' }).click();
// Expected error messages