mirror of
https://github.com/inventree/InvenTree.git
synced 2026-04-04 10:31:03 +00:00
Add "updated_at" field to Orders model (#11374)
* add "updated_at" field to PurchaseOrder model * change to use abstract po instead * add api filters * add show, order and filter by po updated_at date to frontend * add tests and increment api_version * change updated_at to null by default * never trust github conflict resolution * bump docker image to python 3.14 (#11414) * chore(deps): bump the dependencies group across 1 directory with 4 updates (#11416) Bumps the dependencies group with 4 updates in the / directory: [depot/setup-action](https://github.com/depot/setup-action), [depot/build-push-action](https://github.com/depot/build-push-action), [anchore/sbom-action](https://github.com/anchore/sbom-action) and [actions/stale](https://github.com/actions/stale). Updates `depot/setup-action` from 1.6.0 to 1.7.1 - [Release notes](https://github.com/depot/setup-action/releases) - [Commits](b0b1ea4f69...15c09a5f77) Updates `depot/build-push-action` from 1.16.2 to 1.17.0 - [Release notes](https://github.com/depot/build-push-action/releases) - [Commits](9785b135c3...5f3b3c2e5a) Updates `anchore/sbom-action` from 0.21.1 to 0.22.2 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md) - [Commits](0b82b0b1a2...28d71544de) Updates `actions/stale` from 10.1.1 to 10.2.0 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](997185467f...b5d41d4e1d) --- updated-dependencies: - dependency-name: depot/setup-action dependency-version: 1.7.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: depot/build-push-action dependency-version: 1.17.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: anchore/sbom-action dependency-version: 0.22.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: actions/stale dependency-version: 10.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [UI] Copy cells expansion (#11410) * Prevent copy button if copy value is null * Add "link" columns to order tables * Support copy for default column types * Tweak padding to avoid flickering issues * Refactor IPNColumn * Adjust visual styling * Copy for SKU and MPN columns * Add more copy columns * More tweaks * Tweak playwright testing * Further cleanup * More copy cols * Fix auto pricing overwriting manual purchase price #10846 (#11411) * Fix auto pricing overwriting manual purchase price #10846 * Added entry to api_version.py --------- Co-authored-by: Oliver <oliver.henry.walters@gmail.com> * [UI] Default locale (#11412) * [UI] Support default server language * Handle faulty theme * Add option for default language * Improve language selection * Brief docs entry * Fix typo * Fix yarn build * Remove debug msg * Fix calendar locale * feat(backend): ensure restore of backups only works in correct enviroments (#11372) * [FR] ensure restore of backups only works in correct enviroments Fixes #11214 * update PR nbr * fix wrong ty detection * fix link * ensure tracing does not enagage while running backup ops * fix import * remove debugging string * add error codes * add tests for backup and restore * complete test for restore * we do not need e2e on every matrix entry there is no realy db dep here * fix changelog format * add flag to allow bypass * update CHANGELOG.md --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Oliver <oliver.henry.walters@gmail.com> Co-authored-by: Matthias Mair <code@mjmair.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: JustusRijke <53965859+JustusRijke@users.noreply.github.com>
This commit is contained in:
@@ -54,10 +54,16 @@ export type DetailsField = {
|
||||
type BadgeType = 'owner' | 'user' | 'group';
|
||||
type ValueFormatterReturn = string | number | null | React.ReactNode;
|
||||
|
||||
type StringDetailField = {
|
||||
type: 'string' | 'text' | 'date';
|
||||
unit?: boolean;
|
||||
};
|
||||
type StringDetailField =
|
||||
| {
|
||||
type: 'string' | 'text';
|
||||
unit?: boolean;
|
||||
}
|
||||
| {
|
||||
type: 'date';
|
||||
unit?: boolean;
|
||||
showTime?: boolean;
|
||||
};
|
||||
|
||||
type NumberDetailField = {
|
||||
type: 'number';
|
||||
@@ -260,7 +266,13 @@ function NameBadge({
|
||||
}
|
||||
|
||||
function DateValue(props: Readonly<FieldProps>) {
|
||||
return <Text size='sm'>{formatDate(props.field_value?.toString())}</Text>;
|
||||
return (
|
||||
<Text size='sm'>
|
||||
{formatDate(props.field_value?.toString(), {
|
||||
showTime: props.field_data?.showTime
|
||||
})}
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
||||
// Return a formatted "number" value, with optional unit
|
||||
|
||||
@@ -304,6 +304,15 @@ export default function PurchaseOrderDetail() {
|
||||
label: t`Completion Date`,
|
||||
copy: true,
|
||||
hidden: !order.complete_date
|
||||
},
|
||||
{
|
||||
type: 'date',
|
||||
name: 'updated_at',
|
||||
label: t`Last Updated`,
|
||||
icon: 'calendar',
|
||||
copy: true,
|
||||
showTime: true,
|
||||
hidden: !order.updated_at
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -282,6 +282,15 @@ export default function ReturnOrderDetail() {
|
||||
label: t`Completion Date`,
|
||||
copy: true,
|
||||
hidden: !order.complete_date
|
||||
},
|
||||
{
|
||||
type: 'date',
|
||||
name: 'updated_at',
|
||||
label: t`Last Updated`,
|
||||
icon: 'calendar',
|
||||
copy: true,
|
||||
showTime: true,
|
||||
hidden: !order.updated_at
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -273,6 +273,15 @@ export default function SalesOrderDetail() {
|
||||
label: t`Completion Date`,
|
||||
hidden: !order.shipment_date,
|
||||
copy: true
|
||||
},
|
||||
{
|
||||
type: 'date',
|
||||
name: 'updated_at',
|
||||
label: t`Last Updated`,
|
||||
icon: 'calendar',
|
||||
copy: true,
|
||||
showTime: true,
|
||||
hidden: !order.updated_at
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -725,6 +725,16 @@ export function ShipmentDateColumn(props: TableColumnProps): TableColumn {
|
||||
});
|
||||
}
|
||||
|
||||
export function UpdatedAtColumn(props: TableColumnProps): TableColumn {
|
||||
return DateColumn({
|
||||
accessor: 'updated_at',
|
||||
title: t`Updated`,
|
||||
defaultVisible: false,
|
||||
extra: { showTime: true },
|
||||
...props
|
||||
});
|
||||
}
|
||||
|
||||
export function CurrencyColumn({
|
||||
accessor,
|
||||
title,
|
||||
|
||||
@@ -286,6 +286,24 @@ export function CompletedAfterFilter(): TableFilter {
|
||||
};
|
||||
}
|
||||
|
||||
export function UpdatedAfterFilter(): TableFilter {
|
||||
return {
|
||||
name: 'updated_after',
|
||||
label: t`Updated After`,
|
||||
description: t`Show orders updated after this date`,
|
||||
type: 'date'
|
||||
};
|
||||
}
|
||||
|
||||
export function UpdatedBeforeFilter(): TableFilter {
|
||||
return {
|
||||
name: 'updated_before',
|
||||
label: t`Updated Before`,
|
||||
description: t`Show orders updated before this date`,
|
||||
type: 'date'
|
||||
};
|
||||
}
|
||||
|
||||
export function HasProjectCodeFilter(): TableFilter {
|
||||
const globalSettings = useGlobalSettingsState.getState();
|
||||
const enabled = globalSettings.isSet('PROJECT_CODES_ENABLED', true);
|
||||
|
||||
@@ -25,7 +25,8 @@ import {
|
||||
ResponsibleColumn,
|
||||
StartDateColumn,
|
||||
StatusColumn,
|
||||
TargetDateColumn
|
||||
TargetDateColumn,
|
||||
UpdatedAtColumn
|
||||
} from '../ColumnRenderers';
|
||||
import {
|
||||
AssignedToMeFilter,
|
||||
@@ -45,7 +46,9 @@ import {
|
||||
StartDateAfterFilter,
|
||||
StartDateBeforeFilter,
|
||||
TargetDateAfterFilter,
|
||||
TargetDateBeforeFilter
|
||||
TargetDateBeforeFilter,
|
||||
UpdatedAfterFilter,
|
||||
UpdatedBeforeFilter
|
||||
} from '../Filter';
|
||||
import { InvenTreeTable } from '../InvenTreeTable';
|
||||
|
||||
@@ -99,6 +102,8 @@ export function PurchaseOrderTable({
|
||||
},
|
||||
CompletedBeforeFilter(),
|
||||
CompletedAfterFilter(),
|
||||
UpdatedBeforeFilter(),
|
||||
UpdatedAfterFilter(),
|
||||
ProjectCodeFilter(),
|
||||
HasProjectCodeFilter(),
|
||||
ResponsibleFilter(),
|
||||
@@ -142,6 +147,9 @@ export function PurchaseOrderTable({
|
||||
CompletionDateColumn({
|
||||
accessor: 'complete_date'
|
||||
}),
|
||||
UpdatedAtColumn({
|
||||
defaultVisible: false
|
||||
}),
|
||||
{
|
||||
accessor: 'total_price',
|
||||
title: t`Total Price`,
|
||||
|
||||
@@ -25,7 +25,8 @@ import {
|
||||
ResponsibleColumn,
|
||||
StartDateColumn,
|
||||
StatusColumn,
|
||||
TargetDateColumn
|
||||
TargetDateColumn,
|
||||
UpdatedAtColumn
|
||||
} from '../ColumnRenderers';
|
||||
import {
|
||||
AssignedToMeFilter,
|
||||
@@ -46,7 +47,9 @@ import {
|
||||
StartDateAfterFilter,
|
||||
StartDateBeforeFilter,
|
||||
TargetDateAfterFilter,
|
||||
TargetDateBeforeFilter
|
||||
TargetDateBeforeFilter,
|
||||
UpdatedAfterFilter,
|
||||
UpdatedBeforeFilter
|
||||
} from '../Filter';
|
||||
import { InvenTreeTable } from '../InvenTreeTable';
|
||||
|
||||
@@ -99,6 +102,8 @@ export function ReturnOrderTable({
|
||||
},
|
||||
CompletedBeforeFilter(),
|
||||
CompletedAfterFilter(),
|
||||
UpdatedBeforeFilter(),
|
||||
UpdatedAfterFilter(),
|
||||
HasProjectCodeFilter(),
|
||||
ProjectCodeFilter(),
|
||||
ResponsibleFilter(),
|
||||
@@ -146,6 +151,9 @@ export function ReturnOrderTable({
|
||||
CompletionDateColumn({
|
||||
accessor: 'complete_date'
|
||||
}),
|
||||
UpdatedAtColumn({
|
||||
defaultVisible: false
|
||||
}),
|
||||
ResponsibleColumn({}),
|
||||
{
|
||||
accessor: 'total_price',
|
||||
|
||||
@@ -27,7 +27,8 @@ import {
|
||||
ShipmentDateColumn,
|
||||
StartDateColumn,
|
||||
StatusColumn,
|
||||
TargetDateColumn
|
||||
TargetDateColumn,
|
||||
UpdatedAtColumn
|
||||
} from '../ColumnRenderers';
|
||||
import {
|
||||
AssignedToMeFilter,
|
||||
@@ -48,7 +49,9 @@ import {
|
||||
StartDateAfterFilter,
|
||||
StartDateBeforeFilter,
|
||||
TargetDateAfterFilter,
|
||||
TargetDateBeforeFilter
|
||||
TargetDateBeforeFilter,
|
||||
UpdatedAfterFilter,
|
||||
UpdatedBeforeFilter
|
||||
} from '../Filter';
|
||||
import { InvenTreeTable } from '../InvenTreeTable';
|
||||
|
||||
@@ -97,6 +100,8 @@ export function SalesOrderTable({
|
||||
},
|
||||
CompletedBeforeFilter(),
|
||||
CompletedAfterFilter(),
|
||||
UpdatedBeforeFilter(),
|
||||
UpdatedAfterFilter(),
|
||||
HasProjectCodeFilter(),
|
||||
ProjectCodeFilter(),
|
||||
ResponsibleFilter(),
|
||||
@@ -182,6 +187,9 @@ export function SalesOrderTable({
|
||||
}),
|
||||
TargetDateColumn({}),
|
||||
ShipmentDateColumn({}),
|
||||
UpdatedAtColumn({
|
||||
defaultVisible: false
|
||||
}),
|
||||
ResponsibleColumn({}),
|
||||
{
|
||||
accessor: 'total_price',
|
||||
|
||||
Reference in New Issue
Block a user