2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-06-11 19:27:02 +00:00

Calendar tweaks (#12115)

* Support initial filters for UseCalendar

* [UI] Calendar updates

- Allow calendars to display completed / cancelled items also
This commit is contained in:
Oliver
2026-06-08 13:51:21 +10:00
committed by GitHub
parent e08280d9ac
commit 345fe1d67e
6 changed files with 19 additions and 9 deletions
@@ -47,12 +47,14 @@ export default function OrderCalendar({
role, role,
params, params,
filters, filters,
initialFilters,
tooltip tooltip
}: { }: {
model: ModelType; model: ModelType;
role: UserRoles; role: UserRoles;
params: Record<string, any>; params: Record<string, any>;
filters?: TableFilter[]; filters?: TableFilter[];
initialFilters?: TableFilter[];
tooltip?: (event: EventContentArg) => React.ReactNode; tooltip?: (event: EventContentArg) => React.ReactNode;
}) { }) {
const navigate = useNavigate(); const navigate = useNavigate();
@@ -94,7 +96,8 @@ export default function OrderCalendar({
const calendarState = useCalendar({ const calendarState = useCalendar({
endpoint: modelInfo.api_endpoint, endpoint: modelInfo.api_endpoint,
name: model.toString(), name: model.toString(),
queryParams: params queryParams: params,
initialFilters: initialFilters
}); });
// Build the events // Build the events
+5 -3
View File
@@ -2,7 +2,7 @@ import type FullCalendar from '@fullcalendar/react';
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useFilterSet from '@lib/hooks/UseFilterSet'; import useFilterSet from '@lib/hooks/UseFilterSet';
import type { FilterSetState } from '@lib/types/Filters'; import type { FilterSetState, TableFilter } from '@lib/types/Filters';
import type { UseModalReturn } from '@lib/types/Modals'; import type { UseModalReturn } from '@lib/types/Modals';
import type { DateValue } from '@mantine/dates'; import type { DateValue } from '@mantine/dates';
import { type UseQueryResult, useQuery } from '@tanstack/react-query'; import { type UseQueryResult, useQuery } from '@tanstack/react-query';
@@ -54,15 +54,17 @@ export type CalendarState = {
export default function useCalendar({ export default function useCalendar({
name, name,
endpoint, endpoint,
queryParams queryParams,
initialFilters
}: { }: {
name: string; name: string;
endpoint: ApiEndpoints; endpoint: ApiEndpoints;
queryParams?: any; queryParams?: any;
initialFilters?: TableFilter[];
}): CalendarState { }): CalendarState {
const ref = useRef<FullCalendar>(null as any); const ref = useRef<FullCalendar>(null as any);
const filterSet = useFilterSet(`calendar-${name}`); const filterSet = useFilterSet(`calendar-${name}`, initialFilters);
const [searchTerm, setSearchTerm] = useState<string>(''); const [searchTerm, setSearchTerm] = useState<string>('');
+2 -1
View File
@@ -48,8 +48,9 @@ function BuildOrderCalendar() {
<OrderCalendar <OrderCalendar
model={ModelType.build} model={ModelType.build}
role={UserRoles.build} role={UserRoles.build}
params={{ outstanding: true, part_detail: true }} params={{ part_detail: true }}
filters={calendarFilters} filters={calendarFilters}
initialFilters={[{ name: 'outstanding', value: 'true' }]}
tooltip={renderTooltip} tooltip={renderTooltip}
/> />
); );
@@ -51,8 +51,9 @@ function PurchaseOrderCalendar() {
<OrderCalendar <OrderCalendar
model={ModelType.purchaseorder} model={ModelType.purchaseorder}
role={UserRoles.purchase_order} role={UserRoles.purchase_order}
params={{ outstanding: true, supplier_detail: true }} params={{ supplier_detail: true }}
filters={calendarFilters} filters={calendarFilters}
initialFilters={[{ name: 'outstanding', value: 'true' }]}
tooltip={renderTooltip} tooltip={renderTooltip}
/> />
); );
+4 -2
View File
@@ -49,8 +49,9 @@ function SalesOrderCalendar() {
<OrderCalendar <OrderCalendar
model={ModelType.salesorder} model={ModelType.salesorder}
role={UserRoles.sales_order} role={UserRoles.sales_order}
params={{ outstanding: true, customer_detail: true }} params={{ customer_detail: true }}
filters={calendarFilters} filters={calendarFilters}
initialFilters={[{ name: 'outstanding', value: 'true' }]}
tooltip={renderTooltip} tooltip={renderTooltip}
/> />
); );
@@ -73,8 +74,9 @@ const ReturnOrderCalendar = () => {
<OrderCalendar <OrderCalendar
model={ModelType.returnorder} model={ModelType.returnorder}
role={UserRoles.return_order} role={UserRoles.return_order}
params={{ outstanding: true, customer_detail: true }} params={{ customer_detail: true }}
filters={calendarFilters} filters={calendarFilters}
initialFilters={[{ name: 'outstanding', value: 'true' }]}
tooltip={renderTooltip} tooltip={renderTooltip}
/> />
); );
@@ -70,8 +70,9 @@ function TransferOrderCalendar() {
<OrderCalendar <OrderCalendar
model={ModelType.transferorder} model={ModelType.transferorder}
role={UserRoles.transfer_order} role={UserRoles.transfer_order}
params={{ outstanding: true }} params={{}}
filters={calendarFilters} filters={calendarFilters}
initialFilters={[{ name: 'outstanding', value: 'true' }]}
/> />
); );
} }