2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-31 17:11:34 +00:00

Handle date type fields

This commit is contained in:
Oliver Walters
2023-07-27 18:39:09 +10:00
parent 6da240e07f
commit a0a9b0c4e6
2 changed files with 60 additions and 7 deletions

View File

@@ -10,6 +10,7 @@ import {
TextInput TextInput
} from '@mantine/core'; } from '@mantine/core';
import { Button, Center, Group, Loader, Stack, Text } from '@mantine/core'; import { Button, Center, Group, Loader, Stack, Text } from '@mantine/core';
import { DateInput } from '@mantine/dates';
import { UseFormReturnType, useForm } from '@mantine/form'; import { UseFormReturnType, useForm } from '@mantine/form';
import { useDebouncedValue } from '@mantine/hooks'; import { useDebouncedValue } from '@mantine/hooks';
import { IconAlertCircle } from '@tabler/icons-react'; import { IconAlertCircle } from '@tabler/icons-react';
@@ -77,6 +78,17 @@ function constructField({
def.value = value; def.value = value;
} }
// Change value to a date object if required
switch (def.fieldType) {
case 'date':
if (def.value) {
def.value = new Date(def.value);
}
break;
default:
break;
}
return def; return def;
} }
@@ -189,6 +201,15 @@ function ApiFormField({
onChange={(event) => onChange(event.currentTarget.checked)} onChange={(event) => onChange(event.currentTarget.checked)}
/> />
); );
case 'date':
return (
<DateInput
radius="sm"
{...definition}
date={undefined}
onChange={(value) => onChange(value)}
/>
);
case 'integer': case 'integer':
case 'decimal': case 'decimal':
case 'float': case 'float':

View File

@@ -8,9 +8,10 @@ import { PlaceholderPill } from '../../components/items/Placeholder';
import { StylishText } from '../../components/items/StylishText'; import { StylishText } from '../../components/items/StylishText';
export default function Home() { export default function Home() {
const [formOpened, setFormOpened] = useState(false); const [partFormOpened, setPartFormOpened] = useState(false);
const [poFormOpened, setPoFormOpened] = useState(false);
const fields: ApiFormFieldType[] = [ const partFields: ApiFormFieldType[] = [
{ {
name: 'name' name: 'name'
}, },
@@ -37,6 +38,18 @@ export default function Home() {
} }
]; ];
const poFields: ApiFormFieldType[] = [
{
name: 'reference'
},
{
name: 'supplier'
},
{
name: 'target_date'
}
];
return ( return (
<> <>
<Group> <Group>
@@ -47,21 +60,40 @@ export default function Home() {
</Group> </Group>
<ApiForm <ApiForm
name="part-edit" name="part-edit"
url="/part/1/" url="/part/"
fields={fields} pk={1}
fields={partFields}
method="PUT" method="PUT"
title="Edit Part" title="Edit Part"
opened={formOpened} opened={partFormOpened}
onClose={() => setFormOpened(false)} onClose={() => setPartFormOpened(false)}
fetchInitialData={true}
/>
<ApiForm
name="po-edit"
url="/order/po/"
pk={1}
fields={poFields}
method="PUT"
title="Edit Purchase Order"
opened={poFormOpened}
onClose={() => setPoFormOpened(false)}
fetchInitialData={true} fetchInitialData={true}
/> />
<Button <Button
onClick={() => setFormOpened(true)} onClick={() => setPartFormOpened(true)}
variant="outline" variant="outline"
color="blue" color="blue"
> >
Edit Part Form Edit Part Form
</Button> </Button>
<Button
variant="outline"
color="blue"
onClick={() => setPoFormOpened(true)}
>
Edit Purchase Order Form
</Button>
</> </>
); );
} }