Modification sur la procèdure de Vérification historique - des feedbacks

Notation  - si pas assez de modification dans le fichier
Génère le jar
progression sur la documentation
This commit is contained in:
pablo rodriguez 2022-04-09 19:14:49 +02:00
parent 0bc5e3251a
commit f2f006eafd
5 changed files with 266 additions and 203 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -82,7 +82,7 @@ public class meptl {
if(verificationFichierAnalyse.erreur==true) verificationFichierAnalyse.clotureWithErrorInanalyzeFile();
//a.ecritureNodeEnXML(nodeSujet, "sujet","",false); // ecriture du node sujet
if(commandes.ecritSujet) {
a.ecritureNodeEnXML(nodeSujet, "sujet","",false); // ecriture du node sujet
a.ecritureNodeEnXML(nodeSujet, "sujet","",false, "Sujet"); // ecriture du node sujet
System.out.println();
System.out.println("\tWriting of the \"sujet.xml\" file completed.");
commandes.clotureApplication();
@ -141,7 +141,7 @@ public class meptl {
}
//a.ecritureNodeEnXML(verification, "VerificationHistorique","",false); //écriture du node de l'étudiant
verif = verificationHistorique(verification, a); // vérification des correspondances entre les fichiers
a.ecritureNodeEnXML(verif, "Verif",commandes.pathDestination,commandes.fourniDossierDestination); //écriture du node de vérification
a.ecritureNodeEnXML(verif, "Verif",commandes.pathDestination,commandes.fourniDossierDestination, "Verif"); //écriture du node de vérification
if(!commandes.analyse) {commandes.clotureApplication();System.exit(0);}
}
@ -171,7 +171,7 @@ public class meptl {
if(commandes.ecritCode && ! commandes.verifHisto && !commandes.analyse) {
node nodSujet = nodePourEcritureSujet(nodStudent,a,i);
nodSujet = addSetting(nodSujet); // ajoute le node setting et translation
a.ecritureNodeEnXML(nodSujet, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false);
a.ecritureNodeEnXML(nodSujet, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,"Sujet");
}
// analyse des fichiers student
@ -2943,8 +2943,10 @@ public class meptl {
Date aujourdhui = new Date();
int number_match = 2;
int mini_modification = 0;
boolean plagiat = false;
boolean copiercoller = false;
boolean pasAssezDeModification =false;
boolean baremeABC = false;
boolean producteur = false;
String SuiteBureautique = "";
@ -2953,13 +2955,16 @@ public class meptl {
node verifStudent = null;
if((commandes.verifHisto||commandes.verifHisto2)&&commandes.ecritNoteCSV&&commandes.fourniCSV) {
if(verif.getAttributs().get("number_match") != null) number_match = Integer.valueOf(verif.getAttributs().get("number_match"));
if(verif.getAttributs().get("mini_number_modification") != null) mini_modification = Integer.valueOf(verif.getAttributs().get("mini_number_modification"));
//verification du plagiat
verifStudent = verif.retourneFirstNodeByNameAndAttributValue("fichier", "dossier", nodana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"));
if(verifStudent != null) {
if(verifStudent.getAttributs().get("filename").equals(nodana.retourneFirstEnfantsByName("ouverture").getAttributs().get("filename"))) {
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondance"))>number_match) plagiat=true;
if(!verifStudent.getAttributs().get("first_modification_identique").equals("null")) plagiat=true;
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondances_consecutives"))>number_match) plagiat=true;
if(!verifStudent.getAttributs().get("first_modification_identique").equals("null") && Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondances_consecutives"))>=number_match) plagiat=true;
if(verifStudent.getAttributs().get("copier_coller")!=null) copiercoller=true;
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_modification"))<=mini_modification) pasAssezDeModification=true;
}
}
}
@ -2984,11 +2989,13 @@ public class meptl {
if(!plagiat&&!copiercoller)cheminFeedBack = cheminFeedBack + "-" + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("note") + ".html";
if(plagiat) cheminFeedBack = cheminFeedBack + "- plagiat.html";
if(copiercoller) cheminFeedBack = cheminFeedBack + "- copier-coller.html";
if(pasAssezDeModification) cheminFeedBack = cheminFeedBack + "- pas assez de modification.html";
}
if(!commandes.noNote&&baremeABC) {
if(!plagiat)cheminFeedBack = cheminFeedBack + "-" + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("noteABC") + ".html";
if(copiercoller) cheminFeedBack = cheminFeedBack + "- copier-coller.html";
if(plagiat) cheminFeedBack = cheminFeedBack + "- plagiat.html";
if(pasAssezDeModification) cheminFeedBack = cheminFeedBack + "- pas assez de modification.html";
}
if(commandes.noNote) {
cheminFeedBack = cheminFeedBack + ".html";
@ -3107,10 +3114,15 @@ public class meptl {
node notation = nodana.retourneFirstEnfantsByName("bodyetnotation");
if(!baremeABC) {
if(noteFrom ==null) noteFrom="20";
if(!commandes.noNote) if(!plagiat) fichier.write("<p><spanpablo>" + notation.getAttributs().get("note") + " / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(plagiat) fichier.write("<p><spanpablo> Plagiat / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append("<p><spanpablo> Copiés Collés / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.write("<p><spanpablo>" + notation.getAttributs().get("note") + " / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(plagiat || copiercoller || pasAssezDeModification) {
notation.getAttributs().put("note","0");
String AffichageNote = "";
if(plagiat) AffichageNote = " Plagiat ";
if(copiercoller) AffichageNote = AffichageNote + " Copier Coller ";
if(pasAssezDeModification) AffichageNote = AffichageNote + " Pas assez de modification ";
if(!commandes.noNote) fichier.write("<p><spanpablo>" + AffichageNote + " / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
}
}else {
String imageNote = "";
switch (notation.getAttributs().get("noteABC")) {
@ -3133,10 +3145,17 @@ public class meptl {
imageNote = "";
break;
}
if(!commandes.noNote) if(!plagiat) fichier.append("<p><spanpablo>" + imageNote +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(plagiat) fichier.append("<p><spanpablo> Plagiat / " + "<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append("<p><spanpablo> Copiés Collés / " +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
}
if(!commandes.noNote) if(!plagiat&& !copiercoller &&!pasAssezDeModification) fichier.write("<p><spanpablo>" + imageNote +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(plagiat || copiercoller || pasAssezDeModification) {
notation.getAttributs().put("note","0");
notation.getAttributs().put("noteABC","E");
String AffichageNote = "";
if(plagiat) AffichageNote = " Plagiat ";
if(copiercoller) AffichageNote = AffichageNote + " Copier Coller ";
if(pasAssezDeModification) AffichageNote = AffichageNote + " Pas assez de modification ";
if(!commandes.noNote) fichier.write("<p><spanpablo>" + AffichageNote + " / " + "<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
}
}
//producteur
if(ouvre.getAttributs().get("producteur")!=null) {
@ -3179,9 +3198,18 @@ public class meptl {
fichier.write(" - Système : <span style=\"color:coral;\">"+ SystemeStudent + "</span><br>");
}
if(!auteurSujet.isEmpty()) {fichier.write("Sujet créé par : <span style=\"color:indigo\">"+ auteurSujet + "</span><br>");}else {fichier.write("<br>");}
if(!commandes.noNote) if(!plagiat&&!copiercoller) fichier.write("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"<br>");
if(!commandes.noNote) if(plagiat || copiercoller) fichier.append("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : Plagiat <br>");
if(!commandes.noNote) {
if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.write("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"<br>");
if(plagiat || copiercoller || pasAssezDeModification) {
String AffichageNote = "";
if(plagiat) AffichageNote = " Plagiat ";
if(copiercoller) AffichageNote = AffichageNote + " Copier Coller ";
if(pasAssezDeModification) AffichageNote = AffichageNote + " Pas assez de modification ";
fichier.write("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : "+ AffichageNote +"<br>");
}
}
if(baremeABC) {
fichier.append("Barème : <div class=\"tooltip\"><font color=\"#0000ff\">0% → E → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneE"))*100) + "% → D → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneD"))*100) + "% → C → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneC"))*100) + "% → B → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneB"))*100) + "% → A → 100%</font><span class=\"tooltiptext\">Prendre en compte le coefficient de progression.</span></div>");
}
@ -3232,84 +3260,91 @@ public class meptl {
fichier.write(HTML.SautLigne());
//Ajoute de commentaire de l'exercice
fichier.write(HTML.H3(nodana.getContenu()).replace("-NewLine-", "<br>"));
fichier.write(HTML.SautLigne());
fichier.write(HTML.H2("Synthèse"));
fichier.write(HTML.TableEnteteTableurSynthese());
String IdError = ""; // permet de récupérer les id des menu ou la proportioncorrect est NaN. (à cause de l'attribut analyseStyle=true)
for(int k = 0 ; k < nodana.getNodes().size();k++) {
if(nodana.getNodes().get(k).getAttributs().get("addmenu")!=null) if(nodana.getNodes().get(k).getAttributs().get("addmenu").equals("true")) {
if(!nodana.getNodes().get(k).getAttributs().get("proportioncorrect").equals("NaN")) {
fichier.write(HTML.TablePointsSyntheseStyle(nodana.getNodes().get(k).getAttributs().get("titre"),Double.valueOf(nodana.getNodes().get(k).getAttributs().get("proportioncorrect")),nodana.getNodes().get(k).getAttributs().get("pointtotal") + " pt",nodana.getNodes().get(k).getAttributs().get("pointgagner") + " pt", nodana.getNodes().get(k).getAttributs().get("poids"),nodana.getNodes().get(k).getAttributs().get("id")));
}else {
IdError = IdError + nodana.getNodes().get(k).getAttributs().get("id");
}
if(!plagiat && !copiercoller && !pasAssezDeModification) {
//Ajoute de commentaire de l'exercice
fichier.write(HTML.H3(nodana.getContenu()).replace("-NewLine-", "<br>"));
fichier.write(HTML.SautLigne());
fichier.write(HTML.H2("Synthèse"));
fichier.write(HTML.TableEnteteTableurSynthese());
String IdError = ""; // permet de récupérer les id des menu ou la proportioncorrect est NaN. (à cause de l'attribut analyseStyle=true)
for(int k = 0 ; k < nodana.getNodes().size();k++) {
if(nodana.getNodes().get(k).getAttributs().get("addmenu")!=null) if(nodana.getNodes().get(k).getAttributs().get("addmenu").equals("true")) {
if(!nodana.getNodes().get(k).getAttributs().get("proportioncorrect").equals("NaN")) {
fichier.write(HTML.TablePointsSyntheseStyle(nodana.getNodes().get(k).getAttributs().get("titre"),Double.valueOf(nodana.getNodes().get(k).getAttributs().get("proportioncorrect")),nodana.getNodes().get(k).getAttributs().get("pointtotal") + " pt",nodana.getNodes().get(k).getAttributs().get("pointgagner") + " pt", nodana.getNodes().get(k).getAttributs().get("poids"),nodana.getNodes().get(k).getAttributs().get("id")));
}else {
IdError = IdError + nodana.getNodes().get(k).getAttributs().get("id");
}
}
}
//Metadonnées
if(nodana.retourneFirstEnfantsByName("meta")!=null) if(nodana.retourneFirstEnfantsByName("meta").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("meta")));
}
}
//Metadonnées
if(nodana.retourneFirstEnfantsByName("meta")!=null) if(nodana.retourneFirstEnfantsByName("meta").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("meta")));
}
//style de paragraphe
if(nodana.retourneFirstEnfantsByName("paragraphs")!=null) if(nodana.retourneFirstEnfantsByName("paragraphs").isClose()) {
//il est possible qu'il n'y ai aucun point car passé par analyseStyle dans le node structurepage
if(!IdError.contains(nodana.retourneFirstEnfantsByName("paragraphs").getAttributs().get("id"))){
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("paragraphs")));
//style de paragraphe
if(nodana.retourneFirstEnfantsByName("paragraphs")!=null) if(nodana.retourneFirstEnfantsByName("paragraphs").isClose()) {
//il est possible qu'il n'y ai aucun point car passé par analyseStyle dans le node structurepage
if(!IdError.contains(nodana.retourneFirstEnfantsByName("paragraphs").getAttributs().get("id"))){
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("paragraphs")));
}
}
}
//pages
if(nodana.retourneFirstEnfantsByName("pages")!=null) if(nodana.retourneFirstEnfantsByName("pages").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("pages")));
}
//sequences
if(nodana.retourneFirstEnfantsByName("sequences")!=null) if(nodana.retourneFirstEnfantsByName("sequences").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("sequences")));
}
//pages
if(nodana.retourneFirstEnfantsByName("pages")!=null) if(nodana.retourneFirstEnfantsByName("pages").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("pages")));
}
//sequences
if(nodana.retourneFirstEnfantsByName("sequences")!=null) if(nodana.retourneFirstEnfantsByName("sequences").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("sequences")));
}
//numerotationchapitre
if(nodana.retourneFirstEnfantsByName("numerotationchapitre")!=null) if(nodana.retourneFirstEnfantsByName("numerotationchapitre").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("numerotationchapitre")));
}
//frames
if(nodana.retourneFirstEnfantsByName("frames")!=null) if(nodana.retourneFirstEnfantsByName("frames").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("frames")));
}
//section
if(nodana.retourneFirstEnfantsByName("sections")!=null) if(nodana.retourneFirstEnfantsByName("sections").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("sections")));
}
//bibliographies
if(nodana.retourneFirstEnfantsByName("bibliographies")!=null) if(nodana.retourneFirstEnfantsByName("bibliographies").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("bibliographies")));
}
//tablematieres
if(nodana.retourneFirstEnfantsByName("tablematieres")!=null) if(nodana.retourneFirstEnfantsByName("tablematieres").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("tablematieres")));
}
//numerotationchapitre
if(nodana.retourneFirstEnfantsByName("numerotationchapitre")!=null) if(nodana.retourneFirstEnfantsByName("numerotationchapitre").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("numerotationchapitre")));
}
//frames
if(nodana.retourneFirstEnfantsByName("frames")!=null) if(nodana.retourneFirstEnfantsByName("frames").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("frames")));
}
//section
if(nodana.retourneFirstEnfantsByName("sections")!=null) if(nodana.retourneFirstEnfantsByName("sections").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("sections")));
}
//bibliographies
if(nodana.retourneFirstEnfantsByName("bibliographies")!=null) if(nodana.retourneFirstEnfantsByName("bibliographies").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("bibliographies")));
}
//tablematieres
if(nodana.retourneFirstEnfantsByName("tablematieres")!=null) if(nodana.retourneFirstEnfantsByName("tablematieres").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("tablematieres")));
}
//tableillustrations
if(nodana.retourneFirstEnfantsByName("tableillustrations")!=null) if(nodana.retourneFirstEnfantsByName("tableillustrations").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("tableillustrations")));
//tableillustrations
if(nodana.retourneFirstEnfantsByName("tableillustrations")!=null) if(nodana.retourneFirstEnfantsByName("tableillustrations").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("tableillustrations")));
}
//structurepage
if(nodana.retourneFirstEnfantsByName("structurepage")!=null) if(nodana.retourneFirstEnfantsByName("structurepage").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("structurepage")));
}
}
//structurepage
if(nodana.retourneFirstEnfantsByName("structurepage")!=null) if(nodana.retourneFirstEnfantsByName("structurepage").isClose()) {
fichier.write(HTML.Table(nodana.retourneFirstEnfantsByName("structurepage")));
}
fichier.write("<p><br><br></p>");
@ -3409,15 +3444,25 @@ public class meptl {
System.getProperty("file.encoding","UTF-8");
int number_match = 2;
int mini_modification = 0;
boolean plagiat = false;
boolean copiercoller = false;
boolean pasAssezDeModification =false;
node verifStudent = null;
if((commandes.verifHisto||commandes.verifHisto2)&&commandes.ecritNoteCSV&&commandes.fourniCSV) {
if((commandes.verifHisto||commandes.verifHisto2)) { //&&commandes.ecritNoteCSV&&commandes.fourniCSV
if(verif.getAttributs().get("number_match") != null) number_match = Integer.valueOf(verif.getAttributs().get("number_match"));
if(verif.getAttributs().get("mini_number_modification") != null) mini_modification = Integer.valueOf(verif.getAttributs().get("mini_number_modification"));
//verification du plagiat
verifStudent = verif.retourneFirstNodeByNameAndAttributValue("fichier", "dossier", nodana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"));
if(verifStudent != null) {
if(verifStudent.getAttributs().get("filename").equals(nodana.retourneFirstEnfantsByName("ouverture").getAttributs().get("filename"))) {
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondance"))>number_match) plagiat=true;
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondances_consecutives"))>number_match) plagiat=true;
if(!verifStudent.getAttributs().get("first_modification_identique").equals("null") && Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondances_consecutives"))>=number_match) plagiat=true;
if(verifStudent.getAttributs().get("copier_coller")!=null) copiercoller=true;
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_modification"))<=mini_modification) pasAssezDeModification=true;
}
}
}
@ -3441,6 +3486,8 @@ public class meptl {
if(!commandes.noNote) {
if(!plagiat) cheminFeedBack = cheminFeedBack + "-" + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("note") + ".html";
if(plagiat) cheminFeedBack = cheminFeedBack + "-Plagiat.html";
if(copiercoller) cheminFeedBack = cheminFeedBack + "-Copier-Coller.html";
if(pasAssezDeModification) cheminFeedBack = cheminFeedBack + "-Pas assez de modification.html";
}else {
cheminFeedBack = cheminFeedBack + ".html";
}
@ -3448,6 +3495,8 @@ public class meptl {
if(!commandes.noNote) {
if(!plagiat) cheminFeedBack = cheminFeedBack + "-" + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("noteABC") + ".html";
if(plagiat) cheminFeedBack = cheminFeedBack + "-Plagiat.html";
if(copiercoller) cheminFeedBack = cheminFeedBack + "-Copier-Coller.html";
if(pasAssezDeModification) cheminFeedBack = cheminFeedBack + "-Pas assez de modification.html";
}else {
cheminFeedBack = cheminFeedBack + ".html";
}
@ -3471,23 +3520,28 @@ public class meptl {
Date aujourdhui = new Date();
int number_match = 2;
int mini_modification = 0;
boolean plagiat = false;
boolean copiercoller = false;
boolean pasAssezDeModification =false;
boolean baremeABC = false;
boolean producteur =false;
String SuiteBureautique="";
String VersionLibreOffice="";
String SystemeStudent="";
node verifStudent = null;
if((commandes.verifHisto||commandes.verifHisto2)&&commandes.ecritNoteCSV&&commandes.fourniCSV) {
if((commandes.verifHisto||commandes.verifHisto2)) { //&&commandes.ecritNoteCSV&&commandes.fourniCSV
if(verif.getAttributs().get("number_match") != null) number_match = Integer.valueOf(verif.getAttributs().get("number_match"));
if(verif.getAttributs().get("mini_number_modification") != null) mini_modification = Integer.valueOf(verif.getAttributs().get("mini_number_modification"));
//verification du plagiat
verifStudent = verif.retourneFirstNodeByNameAndAttributValue("fichier", "dossier", nodana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"));
if(verifStudent != null) {
if(verifStudent.getAttributs().get("filename").equals(nodana.retourneFirstEnfantsByName("ouverture").getAttributs().get("filename"))) {
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondance"))>number_match) plagiat=true;
if(!verifStudent.getAttributs().get("first_modification_identique").equals("null")) plagiat=true;
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondances_consecutives"))>number_match) plagiat=true;
if(!verifStudent.getAttributs().get("first_modification_identique").equals("null") && Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondances_consecutives"))>=number_match) plagiat=true;
if(verifStudent.getAttributs().get("copier_coller")!=null) copiercoller=true;
if(Integer.valueOf(verifStudent.getAttributs().get("nombre_modification"))<=mini_modification) pasAssezDeModification=true;
}
}
}
@ -3607,9 +3661,15 @@ public class meptl {
node notation = nodana.retourneFirstEnfantsByName("bodyetnotation");
if(!baremeABC) {
if(noteFrom ==null) noteFrom="20";
if(!commandes.noNote) if(!plagiat&&!copiercoller) fichier.append("<p><spanpablo>" + notation.getAttributs().get("note") + " / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(plagiat&&!copiercoller) fichier.append("<p><spanpablo> Plagiat / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append("<p><spanpablo> Copiés Collés / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.append("<p><spanpablo>" + notation.getAttributs().get("note") + " / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(plagiat || copiercoller || pasAssezDeModification) {
notation.getAttributs().put("note","0");
String AffichageNote = "";
if(plagiat) AffichageNote = " Plagiat ";
if(copiercoller) AffichageNote = AffichageNote + " Copier Coller ";
if(pasAssezDeModification) AffichageNote = AffichageNote + " Pas assez de modification ";
if(!commandes.noNote) fichier.append("<p><spanpablo>" + AffichageNote + " / " + noteFrom +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
}
}else {
String imageNote = "";
switch (notation.getAttributs().get("noteABC")) {
@ -3632,10 +3692,16 @@ public class meptl {
imageNote = "";
break;
}
if(!commandes.noNote) if(!plagiat) fichier.append("<p><spanpablo>" + imageNote +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(plagiat) fichier.append("<p><spanpablo> Plagiat / " + "<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append("<p><spanpablo> Copiés Collés / " +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(!commandes.noNote) if(!plagiat&& !copiercoller &&!pasAssezDeModification) fichier.append("<p><spanpablo>" + imageNote +"<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
if(plagiat || copiercoller || pasAssezDeModification) {
notation.getAttributs().put("note","0");
notation.getAttributs().put("noteABC","E");
String AffichageNote = "";
if(plagiat) AffichageNote = " Plagiat ";
if(copiercoller) AffichageNote = AffichageNote + " Copier Coller ";
if(pasAssezDeModification) AffichageNote = AffichageNote + " Pas assez de modification ";
if(!commandes.noNote) fichier.append("<p><spanpablo>" + AffichageNote + " / " + "<br><span style=\"color:blue; font-size:30px\">"+ ouvre.getAttributs().get("metaSujet") +"</span></spanpablo></p>\r");
}
}
@ -3681,8 +3747,17 @@ public class meptl {
}
if(!auteurSujet.isEmpty()) {fichier.append("Sujet créé par : <span style=\"color:indigo\">"+ auteurSujet + "</span><br>");}else {fichier.append("<br>");}
if(!commandes.noNote) if(!plagiat&&!copiercoller) fichier.append("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"<br>");
if(!commandes.noNote) if(plagiat || copiercoller) fichier.append("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : Plagiat <br>");
if(!commandes.noNote) {
if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.append("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"<br>");
if(plagiat || copiercoller || pasAssezDeModification) {
String AffichageNote = "";
if(plagiat) AffichageNote = " Plagiat ";
if(copiercoller) AffichageNote = AffichageNote + " Copier Coller ";
if(pasAssezDeModification) AffichageNote = AffichageNote + " Pas assez de modification ";
fichier.append("Méthode : <div class=\"tooltip\"><font color=\"#0000ff\">Progression " + ouvre.getAttributs().get("progression") + "</font><span class=\"tooltiptext\">Explication<br>"+ HTML.imgProgression() +"</span></div> - Pourcentage correcte : "+ AffichageNote +"<br>");
}
}
if(baremeABC) {
fichier.append("Barème : <div class=\"tooltip\"><font color=\"#0000ff\">0% → E → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneE"))*100) + "% → D → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneD"))*100) + "% → C → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneC"))*100) + "% → B → " + Math.round(Double.valueOf(notation.getAttributs().get("BorneB"))*100) + "% → A → 100%</font><span class=\"tooltiptext\">Prendre en compte le coefficient de progression.</span></div>");
}
@ -3732,84 +3807,89 @@ public class meptl {
}
fichier.append(HTML.SautLigne());
//Ajoute de commentaire de l'exercice
fichier.append(HTML.H3(nodana.getContenu()).replace("-NewLine-", "<br>"));
fichier.append(HTML.SautLigne());
fichier.append(HTML.H2("Synthèse"));
fichier.append(HTML.TableEnteteTableurSynthese());
String IdError = ""; // permet de récupérer les id des menu ou la proportioncorrect est NaN. (à cause de l'attribut analyseStyle=true)
for(int k = 0 ; k < nodana.getNodes().size();k++) {
if(nodana.getNodes().get(k).getAttributs().get("addmenu")!=null) if(nodana.getNodes().get(k).getAttributs().get("addmenu").equals("true")) {
if(!nodana.getNodes().get(k).getAttributs().get("proportioncorrect").equals("NaN")) {
fichier.append(HTML.TablePointsSyntheseStyle(nodana.getNodes().get(k).getAttributs().get("titre"),Double.valueOf(nodana.getNodes().get(k).getAttributs().get("proportioncorrect")),nodana.getNodes().get(k).getAttributs().get("pointtotal") + " pt",nodana.getNodes().get(k).getAttributs().get("pointgagner") + " pt", nodana.getNodes().get(k).getAttributs().get("poids"),nodana.getNodes().get(k).getAttributs().get("id")));
}else {
IdError = IdError + nodana.getNodes().get(k).getAttributs().get("id");
}
fichier.append(HTML.SautLigne());
if(!plagiat && !copiercoller && !pasAssezDeModification) {
//Ajoute de commentaire de l'exercice
fichier.append(HTML.H3(nodana.getContenu()).replace("-NewLine-", "<br>"));
fichier.append(HTML.SautLigne());
fichier.append(HTML.H2("Synthèse"));
fichier.append(HTML.TableEnteteTableurSynthese());
String IdError = ""; // permet de récupérer les id des menu ou la proportioncorrect est NaN. (à cause de l'attribut analyseStyle=true)
for(int k = 0 ; k < nodana.getNodes().size();k++) {
if(nodana.getNodes().get(k).getAttributs().get("addmenu")!=null) if(nodana.getNodes().get(k).getAttributs().get("addmenu").equals("true")) {
if(!nodana.getNodes().get(k).getAttributs().get("proportioncorrect").equals("NaN")) {
fichier.append(HTML.TablePointsSyntheseStyle(nodana.getNodes().get(k).getAttributs().get("titre"),Double.valueOf(nodana.getNodes().get(k).getAttributs().get("proportioncorrect")),nodana.getNodes().get(k).getAttributs().get("pointtotal") + " pt",nodana.getNodes().get(k).getAttributs().get("pointgagner") + " pt", nodana.getNodes().get(k).getAttributs().get("poids"),nodana.getNodes().get(k).getAttributs().get("id")));
}else {
IdError = IdError + nodana.getNodes().get(k).getAttributs().get("id");
}
}
}
//Metadonnées
if(nodana.retourneFirstEnfantsByName("meta")!=null) if(nodana.retourneFirstEnfantsByName("meta").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("meta")));
}
}
//style de paragraphe
if(nodana.retourneFirstEnfantsByName("paragraphs")!=null) if(nodana.retourneFirstEnfantsByName("paragraphs").isClose()) {
//il est possible qu'il n'y ai aucun point car passé par analyseStyle dans le node structurepage
if(!IdError.contains(nodana.retourneFirstEnfantsByName("paragraphs").getAttributs().get("id"))){
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("paragraphs")));
}
}
//pages
if(nodana.retourneFirstEnfantsByName("pages")!=null) if(nodana.retourneFirstEnfantsByName("pages").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("pages")));
}
//sequences
if(nodana.retourneFirstEnfantsByName("sequences")!=null) if(nodana.retourneFirstEnfantsByName("sequences").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("sequences")));
}
//numerotationchapitre
if(nodana.retourneFirstEnfantsByName("numerotationchapitre")!=null) if(nodana.retourneFirstEnfantsByName("numerotationchapitre").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("numerotationchapitre")));
}
//frames
if(nodana.retourneFirstEnfantsByName("frames")!=null) if(nodana.retourneFirstEnfantsByName("frames").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("frames")));
}
//bibliographies
if(nodana.retourneFirstEnfantsByName("bibliographies")!=null) if(nodana.retourneFirstEnfantsByName("bibliographies").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("bibliographies")));
}
//tablematieres
if(nodana.retourneFirstEnfantsByName("tablematieres")!=null) if(nodana.retourneFirstEnfantsByName("tablematieres").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("tablematieres")));
}
//tableillustrations
if(nodana.retourneFirstEnfantsByName("tableillustrations")!=null) if(nodana.retourneFirstEnfantsByName("tableillustrations").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("tableillustrations")));
}
//structurepage
if(nodana.retourneFirstEnfantsByName("structurepage")!=null) if(nodana.retourneFirstEnfantsByName("structurepage").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("structurepage")));
}
fichier.append("<p><br><br></p>");
}
//Metadonnées
if(nodana.retourneFirstEnfantsByName("meta")!=null) if(nodana.retourneFirstEnfantsByName("meta").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("meta")));
}
//style de paragraphe
if(nodana.retourneFirstEnfantsByName("paragraphs")!=null) if(nodana.retourneFirstEnfantsByName("paragraphs").isClose()) {
//il est possible qu'il n'y ai aucun point car passé par analyseStyle dans le node structurepage
if(!IdError.contains(nodana.retourneFirstEnfantsByName("paragraphs").getAttributs().get("id"))){
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("paragraphs")));
}
}
//pages
if(nodana.retourneFirstEnfantsByName("pages")!=null) if(nodana.retourneFirstEnfantsByName("pages").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("pages")));
}
//sequences
if(nodana.retourneFirstEnfantsByName("sequences")!=null) if(nodana.retourneFirstEnfantsByName("sequences").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("sequences")));
}
//numerotationchapitre
if(nodana.retourneFirstEnfantsByName("numerotationchapitre")!=null) if(nodana.retourneFirstEnfantsByName("numerotationchapitre").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("numerotationchapitre")));
}
//frames
if(nodana.retourneFirstEnfantsByName("frames")!=null) if(nodana.retourneFirstEnfantsByName("frames").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("frames")));
}
//bibliographies
if(nodana.retourneFirstEnfantsByName("bibliographies")!=null) if(nodana.retourneFirstEnfantsByName("bibliographies").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("bibliographies")));
}
//tablematieres
if(nodana.retourneFirstEnfantsByName("tablematieres")!=null) if(nodana.retourneFirstEnfantsByName("tablematieres").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("tablematieres")));
}
//tableillustrations
if(nodana.retourneFirstEnfantsByName("tableillustrations")!=null) if(nodana.retourneFirstEnfantsByName("tableillustrations").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("tableillustrations")));
}
//structurepage
if(nodana.retourneFirstEnfantsByName("structurepage")!=null) if(nodana.retourneFirstEnfantsByName("structurepage").isClose()) {
fichier.append(HTML.Table(nodana.retourneFirstEnfantsByName("structurepage")));
}
fichier.append("<p><br><br></p>");
//footer
fichier.append("<div class=\"footer\">");
@ -3913,7 +3993,6 @@ public class meptl {
System.out.println("\t Grade : " + notation.getAttributs().get("note") + "/" + ouverture.getAttributs().get("notefrom"));
}
if(flagError) {
System.out.println("\t ERROR in student's file.");
if(Boolean.valueOf(erreurs.getAttributs().get("manqueHistorique"))) System.out.println("\t ERROR : There is no historic in the file. Perhaps, the file has not been modified or it has been reset by the student.");
@ -4302,7 +4381,7 @@ public class meptl {
if(commandes.fourniDossierDestination) System.out.println(patch +"\\"+ commandes.pathDestination + "\\DateLong" + aujourdhui.getTime()+ "-Notes.csv");
BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, encoding);
fichier.write("prénom nom"+separator+"email"+separator+"identifiant"+separator+"date modification"+separator+"producteur"+separator+"durée edition"+separator+"sujet"+separator+"nbr modification" + separator + "nbr modifications date unique" + separator+ "nbr match" + separator +"note" + separator +"commentaire\n");
fichier.write("prénom nom"+separator+"email"+separator+"identifiant"+separator+"date modification"+separator+"producteur"+separator+"durée edition"+separator+"sujet"+separator+"nbr modification" + separator + "nbr modifications date unique" + separator+ "nbr match consecutif" + separator +"note" + separator +"commentaire\n");
for (int i = 0 ; i < ana.getNodes().size() ; i++) {
node nodouverture = ana.getNodes().get(i).retourneFirstEnfantsByName("ouverture");
@ -4392,7 +4471,7 @@ public class meptl {
if(commandes.verifHisto2) if(verifStudent!=null) {
int nbreCorrespondance = Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondance"));
int nbreCorrespondanceConsecutive = Integer.valueOf(verifStudent.getAttributs().get("nombre_correspondances_consecutives"));
int nbrDateModificationUnique = Integer.valueOf(verifStudent.getAttributs().get("nombre_modifications_date_unique"));
note = bodyetnotation.getAttributs().get("note");
if(bodyetnotation.getAttributs().get("baremeABC")!=null) {
@ -4404,33 +4483,17 @@ public class meptl {
}
}
if(nbreCorrespondance>=commandes.number_match) {
bodyetnotation.getAttributs().put("commentaire","pas assez de modification");
// if(bodyetnotation.getAttributs().get("baremeABC")!=null) {
// try {
// if(Boolean.valueOf(bodyetnotation.getAttributs().get("baremeABC"))) {
// note = bodyetnotation.getAttributs().get("noteABC") + separator + "pas assez de modification";
// }
// }catch (Exception e) {
//
// }
// }
if(nbreCorrespondanceConsecutive>commandes.number_match) {
bodyetnotation.getAttributs().put("commentaire","Echange de fichier - plagiat");
note = "0" ;
}
if(nbrDateModificationUnique<=commandes.mini_number_modification) {
bodyetnotation.getAttributs().put("commentaire","probable copy");
// if(bodyetnotation.getAttributs().get("baremeABC")!=null) {
// try {
// if(Boolean.valueOf(bodyetnotation.getAttributs().get("baremeABC"))) {
// note = bodyetnotation.getAttributs().get("noteABC") + separator + "probable copy";
// }
// }catch (Exception e) {
//
// }
// }
bodyetnotation.getAttributs().put("commentaire","pas assez de modification.");
note="0";
}
if(!verifStudent.getAttributs().get("first_modification_identique").equals("null")) {
if(!verifStudent.getAttributs().get("first_modification_identique").equals("null") && nbreCorrespondanceConsecutive>=commandes.number_match) {
note = "0" ;
bodyetnotation.getAttributs().put("commentaire","échange de fichier");
bodyetnotation.getAttributs().put("commentaire","Echange de fichier - plagiat");
}
if(verifStudent.getAttributs().get("copier_coller")!=null){
bodyetnotation.getAttributs().put("commentaire","des copiés et des collés");
@ -4438,7 +4501,7 @@ public class meptl {
String nbrModification = verifStudent.getAttributs().get("nombre_modification");
String nombre_modifications_date_unique = verifStudent.getAttributs().get("nombre_modifications_date_unique");
fichier.write(identification + separator + mail + separator + numeroEtudiant + separator + dateModif + separator + producteur + separator + traitementDureeEdition(dureeEdition) + separator + sujet + separator + nbrModification +separator + nombre_modifications_date_unique + separator + nbreCorrespondance + separator + traitementNote(note) + separator + bodyetnotation.getAttributs().get("commentaire")+"\n");
fichier.write(identification + separator + mail + separator + numeroEtudiant + separator + dateModif + separator + producteur + separator + traitementDureeEdition(dureeEdition) + separator + sujet + separator + nbrModification +separator + nombre_modifications_date_unique + separator + nbreCorrespondanceConsecutive + separator + traitementNote(note) + separator + bodyetnotation.getAttributs().get("commentaire")+"\n");
}
if(!commandes.verifHisto2) {