to excel table and filters

dev
RekHoto 2 years ago
parent 5622b3fbd6
commit 50acdb7fb8

@ -58,11 +58,11 @@ export const getPoints = async (params, region, dbTable = "placement_points") =>
return data; return data;
}; };
export const exportPoints = async (params, region) => { export const exportPoints = async (params, region, dbTable = "placement_points") => {
const resultParams = enrichParamsWithRegionFilter(params, region); const resultParams = enrichParamsWithRegionFilter(params, region);
const { data } = await api.get( const { data } = await api.get(
`/api/placement_points/to_excel?${resultParams.toString()}`, `/api/${dbTable}/to_excel/?${resultParams.toString()}`,
{ responseType: "arraybuffer" } { responseType: "arraybuffer" }
); );

@ -1,6 +1,6 @@
import { useQuery } from "@tanstack/react-query"; import { useQuery } from "@tanstack/react-query";
import { STATUSES } from "../../../config"; import { STATUSES } from "../../../config";
import { exportPoints } from "../../../api"; import { exportPoints, useDbTableName } from "../../../api";
import { handleExportSuccess } from "../ExportButton"; import { handleExportSuccess } from "../ExportButton";
import { useOnApprovalPointsFilters } from "../../../stores/useOnApprovalPointsFilters"; import { useOnApprovalPointsFilters } from "../../../stores/useOnApprovalPointsFilters";
@ -8,6 +8,7 @@ export const useExportOnApprovalData = (enabled, onSettled) => {
const { const {
filters: { region }, filters: { region },
} = useOnApprovalPointsFilters(); } = useOnApprovalPointsFilters();
const dbTable = useDbTableName();
return useQuery( return useQuery(
["export-on-approval", region], ["export-on-approval", region],
@ -16,7 +17,7 @@ export const useExportOnApprovalData = (enabled, onSettled) => {
"status[]": [STATUSES.onApproval, STATUSES.working], "status[]": [STATUSES.onApproval, STATUSES.working],
}); });
return await exportPoints(params, region); return await exportPoints(params, region, dbTable);
}, },
{ {
enabled, enabled,

@ -1,25 +1,31 @@
import { usePointSelection } from "../../../stores/usePointSelection"; import { usePointSelection } from "../../../stores/usePointSelection";
import { useQuery } from "@tanstack/react-query"; import { useQuery } from "@tanstack/react-query";
import { exportPoints } from "../../../api"; import { exportPoints, useDbTableName } from "../../../api";
import { handleExportSuccess } from "../ExportButton"; import { handleExportSuccess } from "../ExportButton";
import { usePendingPointsFilters } from "../../../stores/usePendingPointsFilters"; import { usePendingPointsFilters } from "../../../stores/usePendingPointsFilters";
import { STATUSES } from "../../../config.js"; import { STATUSES } from "../../../config.js";
import { appendFiltersInUse } from "../../../utils.js";
export const useExportPendingData = (enabled, onSettled) => { export const useExportPendingData = (enabled, onSettled) => {
const { filters } = usePendingPointsFilters(); const { filters, ranges } = usePendingPointsFilters();
const { prediction, categories, region } = filters; const { categories, region } = filters;
const { selection } = usePointSelection(); const { selection } = usePointSelection();
const includedArr = [...selection.included]; const includedArr = [...selection.included];
const excludedArr = [...selection.excluded]; const excludedArr = [...selection.excluded];
const dbTable = useDbTableName();
return useQuery( return useQuery(
["export-initial", filters, selection], ["export-initial", filters, selection],
async () => { async () => {
const getParams = () => {
const params = new URLSearchParams({ const params = new URLSearchParams({
"prediction_current[]": prediction,
"status[]": [STATUSES.pending], "status[]": [STATUSES.pending],
}); });
appendFiltersInUse(params, filters, ranges);
params.append("status[]", [STATUSES.pending, STATUSES.cancelled].join(","));
if (categories.length) { if (categories.length) {
params.append("categories[]", categories); params.append("categories[]", categories);
} }
@ -32,7 +38,10 @@ export const useExportPendingData = (enabled, onSettled) => {
params.append("excluded[]", excludedArr); params.append("excluded[]", excludedArr);
} }
return await exportPoints(params, region); return params;
}
return await exportPoints(getParams(), region, dbTable);
}, },
{ {
enabled, enabled,

Loading…
Cancel
Save