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
|
<a
|
||||||
class="dropdown-item"
|
class="dropdown-item"
|
||||||
@click="prepareDocumentDuplicationToWork(d)"
|
@click="prepareDocumentDuplicationToWork(d)"
|
||||||
>{{ trans(EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_WORK) }}</a
|
>{{ trans(EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_EVALUATION) }}</a
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -183,7 +183,7 @@ import {
|
|||||||
EVALUATION_DOCUMENTS,
|
EVALUATION_DOCUMENTS,
|
||||||
EVALUATION_DOCUMENT_DUPLICATE,
|
EVALUATION_DOCUMENT_DUPLICATE,
|
||||||
EVALUATION_DOCUMENT_DUPLICATE_HERE,
|
EVALUATION_DOCUMENT_DUPLICATE_HERE,
|
||||||
EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_WORK,
|
EVALUATION_DOCUMENT_DUPLICATE_TO_OTHER_EVALUATION,
|
||||||
trans,
|
trans,
|
||||||
} from "translator";
|
} from "translator";
|
||||||
import { ref, watch } from "vue";
|
import { ref, watch } from "vue";
|
||||||
|
@@ -52,9 +52,7 @@ import TimeSpentInput from "./TimeSpentInput.vue";
|
|||||||
import CommentInput from "./CommentInput.vue";
|
import CommentInput from "./CommentInput.vue";
|
||||||
import DocumentsList from "./DocumentsList.vue";
|
import DocumentsList from "./DocumentsList.vue";
|
||||||
import DocumentActions from "./DocumentActions.vue";
|
import DocumentActions from "./DocumentActions.vue";
|
||||||
import { makeFetch } from "ChillMainAssets/lib/api/apiMethods";
|
|
||||||
import { useToast } from "vue-toast-notification";
|
import { useToast } from "vue-toast-notification";
|
||||||
import { DOCUMENT_DUPLICATE_TO_EVALUATION_SUCCESS, trans } from "translator";
|
|
||||||
|
|
||||||
const props = defineProps(["evaluation", "docAnchorId"]);
|
const props = defineProps(["evaluation", "docAnchorId"]);
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
@@ -242,17 +240,10 @@ function duplicateDocument(document) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function duplicateDocumentToEvaluation({ evaluation, document }) {
|
function duplicateDocumentToEvaluation({ evaluation, document }) {
|
||||||
const url = `/api/1.0/person/accompanying-course-work-evaluation-document/${document.id}/evaluation/${evaluation.id}/duplicate`;
|
store.dispatch("duplicateDocumentToEvaluation", {
|
||||||
// console.log('document id', document.id, 'evaluation id', evaluation.id)
|
evaluation: evaluation,
|
||||||
|
document: document,
|
||||||
makeFetch("POST", url)
|
});
|
||||||
.then((response) => {
|
|
||||||
console.log("new document", response);
|
|
||||||
toast.open({ message: trans(DOCUMENT_DUPLICATE_TO_EVALUATION_SUCCESS) });
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
console.log(error);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onStatusDocumentChanged(newStatus) {
|
function onStatusDocumentChanged(newStatus) {
|
||||||
|
@@ -11,7 +11,7 @@ import { findSocialActionsBySocialIssue } from "ChillPersonAssets/vuejs/_api/Soc
|
|||||||
import { create } from "ChillPersonAssets/vuejs/_api/AccompanyingCourseWork.js";
|
import { create } from "ChillPersonAssets/vuejs/_api/AccompanyingCourseWork.js";
|
||||||
import { fetchResults, makeFetch } from "ChillMainAssets/lib/api/apiMethods.ts";
|
import { fetchResults, makeFetch } from "ChillMainAssets/lib/api/apiMethods.ts";
|
||||||
import { fetchTemplates } from "ChillDocGeneratorAssets/api/pickTemplate.js";
|
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 debug = process.env.NODE_ENV !== "production";
|
||||||
const evalFQDN = encodeURIComponent(
|
const evalFQDN = encodeURIComponent(
|
||||||
@@ -302,6 +302,13 @@ const store = createStore({
|
|||||||
document.key = evaluation.documents.length + 1;
|
document.key = evaluation.documents.length + 1;
|
||||||
evaluation.documents.splice(0, 0, document);
|
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.
|
* Replaces a document in the state with a new document.
|
||||||
*
|
*
|
||||||
@@ -598,6 +605,10 @@ const store = createStore({
|
|||||||
const newDoc = await duplicate(document.id);
|
const newDoc = await duplicate(document.id);
|
||||||
commit("addDuplicatedDocument", { document: newDoc, evaluation_key });
|
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) {
|
removeDocument({ commit }, payload) {
|
||||||
commit("removeDocument", payload);
|
commit("removeDocument", payload);
|
||||||
},
|
},
|
||||||
|
@@ -9,3 +9,13 @@ export const duplicate = async (
|
|||||||
`/api/1.0/person/accompanying-course-work-evaluation-document/${id}/duplicate`,
|
`/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:
|
document:
|
||||||
duplicate: Dupliquer
|
duplicate: Dupliquer
|
||||||
duplicate_here: Dupliquer ici
|
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:
|
goal:
|
||||||
|
Reference in New Issue
Block a user