2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-06 21:50:55 +00:00

Additional filters for incomplete build outputs (#9943)

This commit is contained in:
Oliver
2025-07-03 10:57:15 +10:00
committed by GitHub
parent 8b74a40ad5
commit ccc62255c4
3 changed files with 83 additions and 37 deletions

View File

@ -69,6 +69,58 @@ export function StatusFilterOptions(
// Define some commonly used filters // Define some commonly used filters
export function HasBatchCodeFilter(): TableFilter {
return {
name: 'has_batch',
label: t`Has Batch Code`,
description: t`Show items which have a batch code`
};
}
export function BatchFilter(): TableFilter {
return {
name: 'batch',
label: t`Batch Code`,
description: t`Filter items by batch code`,
type: 'text'
};
}
export function IsSerializedFilter(): TableFilter {
return {
name: 'serialized',
label: t`Is Serialized`,
description: t`Show items which have a serial number`
};
}
export function SerialFilter(): TableFilter {
return {
name: 'serial',
label: t`Serial`,
description: t`Filter items by serial number`,
type: 'text'
};
}
export function SerialLTEFilter(): TableFilter {
return {
name: 'serial_lte',
label: t`Serial Below`,
description: t`Show items with serial numbers less than or equal to a given value`,
type: 'text'
};
}
export function SerialGTEFilter(): TableFilter {
return {
name: 'serial_gte',
label: t`Serial Above`,
description: t`Show items with serial numbers greater than or equal to a given value`,
type: 'text'
};
}
export function AssignedToMeFilter(): TableFilter { export function AssignedToMeFilter(): TableFilter {
return { return {
name: 'assigned_to_me', name: 'assigned_to_me',

View File

@ -46,7 +46,15 @@ import { useTable } from '../../hooks/UseTable';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import type { TableColumn } from '../Column'; import type { TableColumn } from '../Column';
import { LocationColumn, PartColumn, StatusColumn } from '../ColumnRenderers'; import { LocationColumn, PartColumn, StatusColumn } from '../ColumnRenderers';
import { StatusFilterOptions } from '../Filter'; import {
BatchFilter,
HasBatchCodeFilter,
IsSerializedFilter,
SerialFilter,
SerialGTEFilter,
SerialLTEFilter,
StatusFilterOptions
} from '../Filter';
import { InvenTreeTable } from '../InvenTreeTable'; import { InvenTreeTable } from '../InvenTreeTable';
import { type RowAction, RowEditAction, RowViewAction } from '../RowActions'; import { type RowAction, RowEditAction, RowViewAction } from '../RowActions';
import { TableHoverCard } from '../TableHoverCard'; import { TableHoverCard } from '../TableHoverCard';
@ -350,7 +358,13 @@ export default function BuildOutputTable({
label: t`Status`, label: t`Status`,
description: t`Filter by stock status`, description: t`Filter by stock status`,
choiceFunction: StatusFilterOptions(ModelType.stockitem) choiceFunction: StatusFilterOptions(ModelType.stockitem)
} },
HasBatchCodeFilter(),
BatchFilter(),
IsSerializedFilter(),
SerialFilter(),
SerialLTEFilter(),
SerialGTEFilter()
]; ];
}, []); }, []);

View File

@ -36,7 +36,15 @@ import {
PathColumn, PathColumn,
StatusColumn StatusColumn
} from '../ColumnRenderers'; } from '../ColumnRenderers';
import { StatusFilterOptions } from '../Filter'; import {
BatchFilter,
HasBatchCodeFilter,
IsSerializedFilter,
SerialFilter,
SerialGTEFilter,
SerialLTEFilter,
StatusFilterOptions
} from '../Filter';
import { InvenTreeTable } from '../InvenTreeTable'; import { InvenTreeTable } from '../InvenTreeTable';
import { TableHoverCard } from '../TableHoverCard'; import { TableHoverCard } from '../TableHoverCard';
@ -376,40 +384,12 @@ function stockItemTableFilters({
label: t`Sent to Customer`, label: t`Sent to Customer`,
description: t`Show items which have been sent to a customer` description: t`Show items which have been sent to a customer`
}, },
{ HasBatchCodeFilter(),
name: 'serialized', BatchFilter(),
label: t`Is Serialized`, IsSerializedFilter(),
description: t`Show items which have a serial number` SerialFilter(),
}, SerialLTEFilter(),
{ SerialGTEFilter(),
name: 'batch',
label: t`Batch Code`,
description: t`Filter items by batch code`,
type: 'text'
},
{
name: 'serial',
label: t`Serial Number`,
description: t`Filter items by serial number`,
type: 'text'
},
{
name: 'serial_lte',
label: t`Serial Number LTE`,
description: t`Show items with serial numbers less than or equal to a given value`,
type: 'text'
},
{
name: 'serial_gte',
label: t`Serial Number GTE`,
description: t`Show items with serial numbers greater than or equal to a given value`,
type: 'text'
},
{
name: 'has_batch',
label: t`Has Batch Code`,
description: t`Show items which have a batch code`
},
{ {
name: 'tracked', name: 'tracked',
label: t`Tracked`, label: t`Tracked`,