2
0
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:
Jack
2026-02-28 09:07:02 +11:00
committed by GitHub
parent 23d60bf05f
commit 3d9104e9a5
16 changed files with 385 additions and 18 deletions

View File

@@ -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

View File

@@ -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
}
];

View File

@@ -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
}
];

View File

@@ -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
}
];

View File

@@ -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,

View File

@@ -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);

View File

@@ -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`,

View File

@@ -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',

View File

@@ -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',