mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-10 00:34:58 +00:00
Add ignore filter for accompanying period work IDs
Refactor accompanying period work fetching logic to include a new filter for ignoring specific IDs, and update related components with new prop bindings.
This commit is contained in:
@@ -231,6 +231,7 @@
|
||||
v-model:selectedAcpw="selectedAcpw"
|
||||
:accompanying-period-id="accompanyingPeriodId"
|
||||
:is-evaluation-selector="true"
|
||||
:ignore-accompanying-period-work-ids="[accompanyingPeriodWorkId]"
|
||||
@close-modal="showAccompanyingPeriodSelector = false"
|
||||
@update:selectedEvaluation="selectedEvaluation = $event"
|
||||
/>
|
||||
@@ -254,7 +255,7 @@ import {
|
||||
import { ref, watch } from "vue";
|
||||
import AccompanyingPeriodWorkSelectorModal from "ChillPersonAssets/vuejs/_components/AccompanyingPeriodWorkSelector/AccompanyingPeriodWorkSelectorModal.vue";
|
||||
|
||||
defineProps(["documents", "docAnchorId", "accompanyingPeriodId"]);
|
||||
defineProps(["documents", "docAnchorId", "accompanyingPeriodId", "accompanyingPeriodWorkId"]);
|
||||
const emit = defineEmits([
|
||||
"inputDocumentTitle",
|
||||
"removeDocument",
|
||||
|
@@ -25,6 +25,7 @@
|
||||
:documents="evaluation.documents"
|
||||
:docAnchorId="docAnchorId"
|
||||
:accompanyingPeriodId="store.state.work.accompanyingPeriod.id"
|
||||
:accompanying-period-work-id="store.state.work.id"
|
||||
@inputDocumentTitle="onInputDocumentTitle"
|
||||
@removeDocument="removeDocument"
|
||||
@duplicateDocument="duplicateDocument"
|
||||
|
@@ -75,7 +75,7 @@ import {
|
||||
ACPW_DUPLICATE_SELECT_ACCOMPANYING_PERIOD_WORK,
|
||||
CONFIRM,
|
||||
} from "translator";
|
||||
import { makeFetch } from "ChillMainAssets/lib/api/apiMethods";
|
||||
import {fetchResults, makeFetch} from "ChillMainAssets/lib/api/apiMethods";
|
||||
import AccompanyingPeriodWorkEvaluationList from "ChillPersonAssets/vuejs/_components/AccompanyingPeriodWorkSelector/AccompanyingPeriodWorkEvaluationList.vue";
|
||||
import { AccompanyingPeriodWorkEvaluation } from "../../../types";
|
||||
|
||||
@@ -85,10 +85,11 @@ const showModal = ref(false);
|
||||
const accompanyingPeriodWorks = ref<AccompanyingPeriodWork[]>([]);
|
||||
const evaluations = ref<AccompanyingPeriodWorkEvaluation[]>([]);
|
||||
|
||||
const props = defineProps({
|
||||
accompanyingPeriodId: String,
|
||||
isEvaluationSelector: Boolean,
|
||||
});
|
||||
const props = defineProps<{
|
||||
accompanyingPeriodId: string,
|
||||
isEvaluationSelector: boolean,
|
||||
ignoreAccompanyingPeriodWorkIds: number[],
|
||||
}>();
|
||||
|
||||
const emit = defineEmits<{
|
||||
pickWork: [payload: { work: AccompanyingPeriodWork | null }];
|
||||
@@ -105,22 +106,19 @@ onMounted(() => {
|
||||
|
||||
showModal.value = true;
|
||||
});
|
||||
const getAccompanyingPeriodWorks = (periodId: number) => {
|
||||
const getAccompanyingPeriodWorks = async (periodId: number) => {
|
||||
const url = `/api/1.0/person/accompanying-course/${periodId}/works.json`;
|
||||
|
||||
makeFetch<number, { results: AccompanyingPeriodWork[] }>("GET", url)
|
||||
.then((response) => {
|
||||
if (props.isEvaluationSelector) {
|
||||
accompanyingPeriodWorks.value = response.results.filter(
|
||||
(acpw) => acpw.accompanyingPeriodWorkEvaluations.length > 0,
|
||||
);
|
||||
} else {
|
||||
accompanyingPeriodWorks.value = response.results;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log(error);
|
||||
});
|
||||
const accompanyingPeriodWorksFetched = await fetchResults<AccompanyingPeriodWork>(url);
|
||||
if (props.isEvaluationSelector) {
|
||||
accompanyingPeriodWorks.value = accompanyingPeriodWorksFetched.filter(
|
||||
(acpw: AccompanyingPeriodWork) => acpw.accompanyingPeriodWorkEvaluations.length > 0
|
||||
&& typeof acpw.id !== "undefined"
|
||||
&& !props.ignoreAccompanyingPeriodWorkIds.includes(acpw.id),
|
||||
);
|
||||
} else {
|
||||
accompanyingPeriodWorks.value = accompanyingPeriodWorksFetched
|
||||
}
|
||||
};
|
||||
|
||||
watch(selectedAcpw, (newValue) => {
|
||||
|
Reference in New Issue
Block a user