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:
@ -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
|
||||
|
@ -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`}>
|
||||
|
@ -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`
|
||||
}
|
||||
];
|
||||
}, []);
|
||||
|
@ -34,6 +34,7 @@ function stockItemTableColumns(): TableColumn[] {
|
||||
}),
|
||||
{
|
||||
accessor: 'quantity',
|
||||
ordering: 'stock',
|
||||
sortable: true,
|
||||
title: t`Stock`,
|
||||
render: (record) => {
|
||||
|
Reference in New Issue
Block a user