diff --git a/.changeset/polite-falcons-sniff.md b/.changeset/polite-falcons-sniff.md new file mode 100644 index 000000000..2ba612053 --- /dev/null +++ b/.changeset/polite-falcons-sniff.md @@ -0,0 +1,6 @@ +--- +"@svenvw/fdm-core": minor +"@svenvw/fdm-app": minor +--- + +There is a new year selection drop-down in the farm creation fields page in case the farm has fields from multiple years. diff --git a/.changeset/ten-days-joke.md b/.changeset/ten-days-joke.md new file mode 100644 index 000000000..958ab333f --- /dev/null +++ b/.changeset/ten-days-joke.md @@ -0,0 +1,6 @@ +--- +"@svenvw/fdm-core": minor +"@svenvw/fdm-app": minor +--- + +When an user uploads their shapefile obtained from mijnpercelen, they are now redirected to a different year in case the farm doesn't have any fields from the current year still. diff --git a/fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.tsx b/fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.tsx index 1cbce7a1a..82c91dcaf 100644 --- a/fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.tsx +++ b/fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.tsx @@ -1,4 +1,4 @@ -import { getFarm, getFields } from "@svenvw/fdm-core" +import { getCalendarYears, getFarm, getFields } from "@svenvw/fdm-core" import { ArrowLeft } from "lucide-react" import { data, @@ -7,6 +7,7 @@ import { NavLink, Outlet, useLoaderData, + useNavigate, } from "react-router" import { Header } from "~/components/blocks/header/base" import { HeaderFarmCreate } from "~/components/blocks/header/create-farm" @@ -20,6 +21,13 @@ import { clientConfig } from "~/lib/config" import { handleLoaderError } from "~/lib/error" import { fdm } from "~/lib/fdm.server" import { cn } from "~/lib/utils" +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "~/components/ui/select" // Meta export const meta: MetaFunction = () => { @@ -91,11 +99,18 @@ export async function loader({ request, params }: LoaderFunctionArgs) { } }) + const calendarYears = await getCalendarYears( + fdm, + session.principal_id, + b_id_farm, + ) + return { sidebarPageItems: sidebarPageItems, b_id_farm: b_id_farm, b_name_farm: farm.b_name_farm, calendar: calendar, + calendarYears: calendarYears, } } catch (error) { throw handleLoaderError(error) @@ -105,7 +120,11 @@ export async function loader({ request, params }: LoaderFunctionArgs) { // Main export default function Index() { const loaderData = useLoaderData() + const navigate = useNavigate() + const handleCalendarSelect = (year: string) => { + navigate(`/farm/create/${loaderData.b_id_farm}/${year}/fields`) + } return (
@@ -147,6 +166,40 @@ export default function Index() {