Merge branch 'feature/to_excel_table' into 'dev'

to excel table and filters

See merge request spatial/postamates_frontend!52
dev
Anton Vlasov 2 years ago
commit 2e4461074b

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

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

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

Loading…
Cancel
Save