2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-16 12:05:53 +00:00

Fixes for test result updates (#6514)

* Fix ordering of "stock" column in StockItemTable

* Handle table.activeFilters

- Can be passed undefined value in some cases

* Fix legacy test result table

- Add in "pass test" button

* Improve logic for creating templates

- Only look at ancestor parts *above* the existing part

* Update migration

- Only look above!

* Improve matching in template

* New data migration

- Fixes (probably rare) edge case in previous data migration

* Table tweak

- Embolden required test templates

* Add assertion check to data migration

* Update API version

- Add filter for "has_results" on the PartTestTemplate API endpoint

* Logic fix
This commit is contained in:
Oliver
2024-02-19 16:04:10 +11:00
committed by GitHub
parent 7dab02555d
commit a74b29f059
11 changed files with 173 additions and 19 deletions

View File

@ -83,7 +83,8 @@ function FilterAddGroup({
availableFilters: TableFilter[];
}) {
const filterOptions = useMemo(() => {
let activeFilterNames = tableState.activeFilters.map((flt) => flt.name);
let activeFilterNames =
tableState.activeFilters?.map((flt) => flt.name) ?? [];
return availableFilters
.filter((flt) => !activeFilterNames.includes(flt.name))
@ -120,9 +121,10 @@ function FilterAddGroup({
return;
}
let filters = tableState.activeFilters.filter(
(flt) => flt.name !== selectedFilter
);
let filters =
tableState.activeFilters?.filter(
(flt) => flt.name !== selectedFilter
) ?? [];
let newFilter: TableFilter = {
...filter,
@ -188,10 +190,13 @@ export function FilterSelectDrawer({
title={<StylishText size="lg">{t`Table Filters`}</StylishText>}
>
<Stack spacing="xs">
{tableState.activeFilters.map((f) => (
<FilterItem key={f.name} flt={f} tableState={tableState} />
))}
{tableState.activeFilters.length > 0 && <Divider />}
{tableState.activeFilters &&
tableState.activeFilters.map((f) => (
<FilterItem key={f.name} flt={f} tableState={tableState} />
))}
{tableState.activeFilters && tableState.activeFilters.length > 0 && (
<Divider />
)}
{addFilter && (
<Stack spacing="xs">
<FilterAddGroup

View File

@ -278,9 +278,11 @@ export function InvenTreeTable<T = any>({
};
// Add custom filters
tableState.activeFilters.forEach(
(flt) => (queryParams[flt.name] = flt.value)
);
if (tableState.activeFilters) {
tableState.activeFilters.forEach(
(flt) => (queryParams[flt.name] = flt.value)
);
}
// Add custom search term
if (tableState.searchTerm) {
@ -560,8 +562,8 @@ export function InvenTreeTable<T = any>({
{tableProps.enableFilters && filters.length > 0 && (
<Indicator
size="xs"
label={tableState.activeFilters.length}
disabled={tableState.activeFilters.length == 0}
label={tableState.activeFilters?.length ?? 0}
disabled={tableState.activeFilters?.length == 0}
>
<ActionIcon>
<Tooltip label={t`Table filters`}>

View File

@ -33,7 +33,12 @@ export default function PartTestTemplateTable({ partId }: { partId: number }) {
{
accessor: 'test_name',
switchable: false,
sortable: true
sortable: true,
render: (record: any) => {
return (
<Text weight={record.required && 700}>{record.test_name}</Text>
);
}
},
{
accessor: 'results',
@ -77,6 +82,11 @@ export default function PartTestTemplateTable({ partId }: { partId: number }) {
name: 'include_inherited',
label: t`Include Inherited`,
description: t`Show tests from inherited templates`
},
{
name: 'has_results',
label: t`Has Results`,
description: t`Show tests which have recorded results`
}
];
}, []);

View File

@ -34,6 +34,7 @@ function stockItemTableColumns(): TableColumn[] {
}),
{
accessor: 'quantity',
ordering: 'stock',
sortable: true,
title: t`Stock`,
render: (record) => {