mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-22 15:43:51 +00:00
feat: enable document duplication to another evaluation
- Introduce API method for duplicating a document to a different evaluation - Add Vuex actions and mutations to handle duplication logic to another evaluation
This commit is contained in:
@@ -129,7 +129,7 @@
|
||||
<a
|
||||
class="dropdown-item"
|
||||
@click="prepareDocumentDuplicationToWork(d)"
|
||||
>{{ trans(EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_WORK) }}</a
|
||||
>{{ trans(EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_EVALUATION) }}</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -183,7 +183,7 @@ import {
|
||||
EVALUATION_DOCUMENTS,
|
||||
EVALUATION_DOCUMENT_DUPLICATE,
|
||||
EVALUATION_DOCUMENT_DUPLICATE_HERE,
|
||||
EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_WORK,
|
||||
EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_EVALUATION,
|
||||
trans,
|
||||
} from "translator";
|
||||
import { ref, watch } from "vue";
|
||||
|
@@ -52,9 +52,7 @@ import TimeSpentInput from "./TimeSpentInput.vue";
|
||||
import CommentInput from "./CommentInput.vue";
|
||||
import DocumentsList from "./DocumentsList.vue";
|
||||
import DocumentActions from "./DocumentActions.vue";
|
||||
import { makeFetch } from "ChillMainAssets/lib/api/apiMethods";
|
||||
import { useToast } from "vue-toast-notification";
|
||||
import { DOCUMENT_DUPLICATE_TO_EVALUATION_SUCCESS, trans } from "translator";
|
||||
|
||||
const props = defineProps(["evaluation", "docAnchorId"]);
|
||||
const store = useStore();
|
||||
@@ -242,16 +240,9 @@ function duplicateDocument(document) {
|
||||
}
|
||||
|
||||
function duplicateDocumentToEvaluation({ evaluation, document }) {
|
||||
const url = `/api/1.0/person/accompanying-course-work-evaluation-document/${document.id}/evaluation/${evaluation.id}/duplicate`;
|
||||
// console.log('document id', document.id, 'evaluation id', evaluation.id)
|
||||
|
||||
makeFetch("POST", url)
|
||||
.then((response) => {
|
||||
console.log("new document", response);
|
||||
toast.open({ message: trans(DOCUMENT_DUPLICATE_TO_EVALUATION_SUCCESS) });
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log(error);
|
||||
store.dispatch("duplicateDocumentToEvaluation", {
|
||||
evaluation: evaluation,
|
||||
document: document,
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -11,7 +11,7 @@ import { findSocialActionsBySocialIssue } from "ChillPersonAssets/vuejs/_api/Soc
|
||||
import { create } from "ChillPersonAssets/vuejs/_api/AccompanyingCourseWork.js";
|
||||
import { fetchResults, makeFetch } from "ChillMainAssets/lib/api/apiMethods.ts";
|
||||
import { fetchTemplates } from "ChillDocGeneratorAssets/api/pickTemplate.js";
|
||||
import { duplicate } from "../_api/accompanyingCourseWorkEvaluationDocument";
|
||||
import { duplicate, duplicateDocumentToEvaluation } from "../_api/accompanyingCourseWorkEvaluationDocument";
|
||||
|
||||
const debug = process.env.NODE_ENV !== "production";
|
||||
const evalFQDN = encodeURIComponent(
|
||||
@@ -302,6 +302,13 @@ const store = createStore({
|
||||
document.key = evaluation.documents.length + 1;
|
||||
evaluation.documents.splice(0, 0, document);
|
||||
},
|
||||
addDuplicatedDocumentToEvaluation(state, { document, evaluation }) {
|
||||
let evaluationDest = state.evaluationsPicked.find(
|
||||
(e) => e.id === evaluation.id,
|
||||
);
|
||||
document.key = evaluationDest.documents.length + 1;
|
||||
evaluationDest.documents.splice(0, 0, document);
|
||||
},
|
||||
/**
|
||||
* Replaces a document in the state with a new document.
|
||||
*
|
||||
@@ -598,6 +605,10 @@ const store = createStore({
|
||||
const newDoc = await duplicate(document.id);
|
||||
commit("addDuplicatedDocument", { document: newDoc, evaluation_key });
|
||||
},
|
||||
async duplicateDocumentToEvaluation({ commit }, { document, evaluation }) {
|
||||
const newDoc = await duplicateDocumentToEvaluation(document.id, evaluation.id);
|
||||
commit("addDuplicatedDocumentToEvaluation", { document: newDoc, evaluation });
|
||||
},
|
||||
removeDocument({ commit }, payload) {
|
||||
commit("removeDocument", payload);
|
||||
},
|
||||
|
@@ -9,3 +9,13 @@ export const duplicate = async (
|
||||
`/api/1.0/person/accompanying-course-work-evaluation-document/${id}/duplicate`,
|
||||
);
|
||||
};
|
||||
|
||||
export const duplicateDocumentToEvaluation = async (
|
||||
document_id: number,
|
||||
evaluation_id: number,
|
||||
): Promise<AccompanyingPeriodWorkEvaluationDocument> => {
|
||||
return makeFetch<null, AccompanyingPeriodWorkEvaluationDocument>(
|
||||
"POST",
|
||||
`/api/1.0/person/accompanying-course-work-evaluation-document/${document_id}/evaluation/${evaluation_id}/duplicate`,
|
||||
);
|
||||
};
|
||||
|
@@ -775,7 +775,7 @@ evaluation:
|
||||
document:
|
||||
duplicate: Dupliquer
|
||||
duplicate_here: Dupliquer ici
|
||||
duplicate_to_other_work: Dupliquer vers un autre actions d'accompagnement
|
||||
duplicate_to_other_evaluation: Dupliquer vers une autre évaluation
|
||||
|
||||
|
||||
goal:
|
||||
|
Reference in New Issue
Block a user