Verification du statut avant la creation d'un contrat
This commit is contained in:
19
gestion_projet/static/gestion_projet/js/creation_projet.js
Normal file
19
gestion_projet/static/gestion_projet/js/creation_projet.js
Normal file
@@ -0,0 +1,19 @@
|
||||
const boutonEnregistrerProjet = $("btnEnregistrerProjet");
|
||||
|
||||
boutonEnregistrerProjet.addEventListener("click", function() {
|
||||
const formulaire = $("formCreationProjet");
|
||||
const formData = new FormData(formulaire);
|
||||
fetch(formulaire.action, {
|
||||
method: "POST",
|
||||
body: formData,
|
||||
headers: {
|
||||
"X-CSRFToken": formData.get("csrfmiddlewaretoken")
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
if (response.ok) {
|
||||
window.location.reload();
|
||||
alert("Projet enregistré avec succès !");
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,23 @@
|
||||
const btnEnregistrerBailleur = document.getElementById('btnEnregistrerBailleur');
|
||||
|
||||
btnEnregistrerBailleur.addEventListener('click', function() {
|
||||
const form = document.getElementById('formBailleur');
|
||||
const formData = new FormData(form);
|
||||
|
||||
fetch(form.action, {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
headers: {
|
||||
'X-CSRFToken': formData.get('csrfmiddlewaretoken')
|
||||
}
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
alert('Bailleur enregistré avec succès !');
|
||||
window.location.reload();
|
||||
} else {
|
||||
alert('Ce bailleur existe déjà dans la base de données.');
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,22 @@
|
||||
const btn_enregistrer_financement = document.getElementById('btn_enregistrer_financement');
|
||||
|
||||
btn_enregistrer_financement.addEventListener('click', function() {
|
||||
const form = document.getElementById('form_financement');
|
||||
const formData = new FormData(form);
|
||||
fetch(form.action, {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
headers: {
|
||||
'X-CSRFToken': formData.get('csrfmiddlewaretoken')
|
||||
}
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
alert(data.message);
|
||||
window.location.reload();
|
||||
}else {
|
||||
alert(data.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
64
gestion_projet/static/gestion_projet/js/index.js
Normal file
64
gestion_projet/static/gestion_projet/js/index.js
Normal file
@@ -0,0 +1,64 @@
|
||||
const $ = (element) => document.getElementById(element)
|
||||
const url_liste_projet = $("tableau-liste-projet").dataset.url;
|
||||
const tableau_liste_projet = new Tabulator("#tableau-liste-projet", {
|
||||
fitColumns: true,
|
||||
responsiveLayout : true,
|
||||
columns: [
|
||||
{title: "Projet", field: "nom_projet"},
|
||||
{title: "Source de financement", field: "source_financement"},
|
||||
{title: "Budget Total", field: "budget"},
|
||||
{title: "Budget RH", field: "budget_RH"},
|
||||
{title: "Avancement", field: "avancement", formatter: "progress"},
|
||||
{title: "Statut", field: "statut"},
|
||||
],
|
||||
ajaxURL: url_liste_projet
|
||||
})
|
||||
|
||||
const employes_affectes_projet = new Tabulator("#employes_affectes_projet", {
|
||||
columns: [
|
||||
{title: "Employé", field: "employe"},
|
||||
{title: "Pourcentage d'affectation", field: "pourcentage_affectation"},
|
||||
],
|
||||
placeholder: "Aucun employé affecté pour ce projet",
|
||||
})
|
||||
|
||||
const bailleurs_projet = new Tabulator("#bailleurs_projet", {
|
||||
columns: [
|
||||
{title: "Bailleur", field: "bailleur"},
|
||||
{title: "Pourcentage de financement", field: "pourcentage_financement"},
|
||||
],
|
||||
placeholder: "Aucun bailleur attribué pour ce projet",
|
||||
})
|
||||
|
||||
tableau_liste_projet.on("rowClick", function (row, rowData) {
|
||||
const data = rowData.getData();
|
||||
const modal = new bootstrap.Modal($("modalDetailProjet"));
|
||||
|
||||
$("detail_id_projet").value = data.id_projet;
|
||||
$("detail_nom_projet").value = data.nom_projet;
|
||||
$("detail_date_debut").value = data.date_debut;
|
||||
$("detail_date_fin").value = data.date_fin;
|
||||
$("detail_numero_convention").value = data.numero_convention;
|
||||
$("detail_type_projet").value = data.type_projet;
|
||||
Array.from($("detail_domaine_recherche").options).forEach(option => {
|
||||
if (data.domaine_recherche.includes(option.value)) {
|
||||
option.selected = true;
|
||||
} else {
|
||||
option.selected = false;
|
||||
}
|
||||
});
|
||||
$("detail_budget").value = data.budget;
|
||||
$("detail_budget_rh").value = data.budget_RH;
|
||||
$("detail_description").value = data.description;
|
||||
$("detail_statut").value = data.statut;
|
||||
|
||||
employes_affectes_projet.setData(`projet/liste-employes-par-projet/${$("detail_id_projet").value}`);
|
||||
bailleurs_projet.setData(`projet/bailleurs/${data.id_projet}/`);
|
||||
|
||||
modal.show();
|
||||
})
|
||||
|
||||
// $('detail-projet-form').addEventListener('submit', (e) => {
|
||||
// e.preventDefault();
|
||||
// new FormData($("detail-projet-form"));
|
||||
// })
|
||||
@@ -0,0 +1,20 @@
|
||||
const urlListeDocument = document.getElementById('listeDocuments').dataset.urllistedocument;
|
||||
|
||||
const table_liste_documents = new Tabulator(document.getElementById('listeDocuments'), {
|
||||
layout: "fitColumns",
|
||||
placeholder: "Aucun document trouvé",
|
||||
columns: [
|
||||
{ title: "Nom du Document", field: "nom_document" },
|
||||
{ title: "Numéro", field: "numero" },
|
||||
{ title: "Date de Validité", field: "date_validite", formatter: "datetime", formatterParams: {
|
||||
inputFormat: "yyyy-MM-dd",
|
||||
outputFormat: "dd/MM/yyyy"
|
||||
}
|
||||
},
|
||||
{ title: "Lien vers le Document", field: "lien_document", formatter:"link", formatterParams:{
|
||||
target:"_blank",
|
||||
}
|
||||
},
|
||||
],
|
||||
ajaxURL: urlListeDocument,
|
||||
});
|
||||
59
gestion_projet/static/gestion_projet/js/suivi-activites.js
Normal file
59
gestion_projet/static/gestion_projet/js/suivi-activites.js
Normal file
@@ -0,0 +1,59 @@
|
||||
const $ = (element) => document.getElementById(element)
|
||||
|
||||
const url_liste_activite = $("tableau-liste-activite").dataset.urllisteactivite
|
||||
const tableau_liste_activite = new Tabulator("#tableau-liste-activite", {
|
||||
columns: [
|
||||
{title: "Activité", field: "titre"},
|
||||
{title: "Date début", field: "date_debut"},
|
||||
{title: "Date fin", field: "date_fin"},
|
||||
{title: "Budget prévu", field: "budget_prevu"},
|
||||
{title: "Budget dépensé", field: "budget_depense"},
|
||||
{title: "Motif de changement de budget", field: "motif_changement_budget"},
|
||||
{title: "Statut", field: "statut"},
|
||||
],
|
||||
ajaxURL: url_liste_activite,
|
||||
})
|
||||
tableau_liste_activite.on("rowClick", function (row, rowData) {
|
||||
const data = rowData.getData();
|
||||
$("idDetailActivite").value = data.id;
|
||||
$("titreDetailActivite").value = data.titre;
|
||||
$("descriptionDetailActivite").value = data.description;
|
||||
$("date_debutDetailActivite").value = data.date_debut;
|
||||
$("date_finDetailActivite").value = data.date_fin;
|
||||
$("statutDetailActivite").value = data.statut;
|
||||
$("budget_prevuDetailActivite").value = data.budget_prevu;
|
||||
$("besoin_ressources_materiellesDetailActivite").value = data.besoin_ressource_materielle;
|
||||
const modal = new bootstrap.Modal($("modalDetailActivite"));
|
||||
modal.show();
|
||||
|
||||
fetch(`liste-des-livrables/${data.id}/`)
|
||||
.then(response => response.json())
|
||||
.then(livrables => {
|
||||
tableau_liste_livrable.setData(livrables);
|
||||
})
|
||||
})
|
||||
|
||||
const tableau_liste_livrable = new Tabulator("#listeLivrables", {
|
||||
columns: [
|
||||
{title: "Livrable", field: "titre"},
|
||||
{title: "Lien du livrable", field: "lien", formatter: "link", formatterParams: {blank: true}},
|
||||
],
|
||||
placeholder: "Aucun livrable trouvé",
|
||||
})
|
||||
|
||||
$("btnMiseAJourDepense").addEventListener("click", function() {
|
||||
const modal = new bootstrap.Modal($("modalDepenseActivite"));
|
||||
bootstrap.Modal.getOrCreateInstance($("modalDetailActivite")).hide();
|
||||
const idActivite = $("idDetailActivite").value;
|
||||
const budgetPrevu = $("budget_prevuDetailActivite").value;
|
||||
|
||||
$("id_activite_depense").value = idActivite;
|
||||
$("budget_prevu").value = budgetPrevu;
|
||||
modal.show();
|
||||
})
|
||||
|
||||
$("btnAnnulerActivite").addEventListener("click", function(event) {
|
||||
new bootstrap.Modal($("modalAnnulerActivite")).show();
|
||||
$("id_activite_annulation").value = $("idDetailActivite").value;
|
||||
bootstrap.Modal.getOrCreateInstance($("modalDetailActivite")).hide();
|
||||
})
|
||||
Reference in New Issue
Block a user