diff --git a/analyseWriter.jar b/analyseWriter.jar
index d6f95d5..80bb481 100644
Binary files a/analyseWriter.jar and b/analyseWriter.jar differ
diff --git a/bin/MEPTL/meptl.class b/bin/MEPTL/meptl.class
index fa20e00..934bbce 100644
Binary files a/bin/MEPTL/meptl.class and b/bin/MEPTL/meptl.class differ
diff --git a/documentation analyseWriter.odt b/documentation analyseWriter.odt
index 7d1ad4d..06e1ff1 100644
Binary files a/documentation analyseWriter.odt and b/documentation analyseWriter.odt differ
diff --git a/documentation analyseWriter.pdf b/documentation analyseWriter.pdf
new file mode 100644
index 0000000..fe4b37d
Binary files /dev/null and b/documentation analyseWriter.pdf differ
diff --git a/src/MEPTL/meptl.java b/src/MEPTL/meptl.java
index dddaaec..8e4eda8 100644
--- a/src/MEPTL/meptl.java
+++ b/src/MEPTL/meptl.java
@@ -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("
" + notation.getAttributs().get("note") + " / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(plagiat) fichier.write(" Plagiat / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append(" Copiés Collés / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
-
+ if(!commandes.noNote) if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.write("" + notation.getAttributs().get("note") + " / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\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("" + AffichageNote + " / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\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("" + imageNote +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(plagiat) fichier.append(" Plagiat / " + "
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append(" Copiés Collés / " +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- }
+ if(!commandes.noNote) if(!plagiat&& !copiercoller &&!pasAssezDeModification) fichier.write("" + imageNote +"
"+ ouvre.getAttributs().get("metaSujet") +"
\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("" + AffichageNote + " / " + "
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
+ }
+ }
//producteur
if(ouvre.getAttributs().get("producteur")!=null) {
@@ -3179,9 +3198,18 @@ public class meptl {
fichier.write(" - Système : "+ SystemeStudent + "
");
}
if(!auteurSujet.isEmpty()) {fichier.write("Sujet créé par : "+ auteurSujet + "
");}else {fichier.write("
");}
-
- if(!commandes.noNote) if(!plagiat&&!copiercoller) fichier.write("Méthode : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"
");
- if(!commandes.noNote) if(plagiat || copiercoller) fichier.append("Méthode : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : Plagiat
");
+
+ if(!commandes.noNote) {
+ if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.write("Méthode : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"
");
+ 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 : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : "+ AffichageNote +"
");
+ }
+ }
+
if(baremeABC) {
fichier.append("Barème : 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%Prendre en compte le coefficient de progression.
");
}
@@ -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-", "
"));
- 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-", "
"));
+
+ 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("
");
@@ -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("" + notation.getAttributs().get("note") + " / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(plagiat&&!copiercoller) fichier.append(" Plagiat / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append(" Copiés Collés / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
+ if(!commandes.noNote) if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.append("" + notation.getAttributs().get("note") + " / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\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("" + AffichageNote + " / " + noteFrom +"
"+ ouvre.getAttributs().get("metaSujet") +"
\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("" + imageNote +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(plagiat) fichier.append(" Plagiat / " + "
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
- if(!commandes.noNote) if(!plagiat&&copiercoller) fichier.append(" Copiés Collés / " +"
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
-
+ if(!commandes.noNote) if(!plagiat&& !copiercoller &&!pasAssezDeModification) fichier.append("" + imageNote +"
"+ ouvre.getAttributs().get("metaSujet") +"
\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("" + AffichageNote + " / " + "
"+ ouvre.getAttributs().get("metaSujet") +"
\r");
+ }
}
@@ -3681,8 +3747,17 @@ public class meptl {
}
if(!auteurSujet.isEmpty()) {fichier.append("Sujet créé par : "+ auteurSujet + "
");}else {fichier.append("
");}
- if(!commandes.noNote) if(!plagiat&&!copiercoller) fichier.append("Méthode : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"
");
- if(!commandes.noNote) if(plagiat || copiercoller) fichier.append("Méthode : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : Plagiat
");
+ if(!commandes.noNote) {
+ if(!plagiat&&!copiercoller&&!pasAssezDeModification) fichier.append("Méthode : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : " + nodana.retourneFirstEnfantsByName("bodyetnotation").getAttributs().get("proportioncorrect") +"
");
+ 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 : Progression " + ouvre.getAttributs().get("progression") + "Explication
"+ HTML.imgProgression() +"
- Pourcentage correcte : "+ AffichageNote +"
");
+ }
+ }
+
if(baremeABC) {
fichier.append("Barème : 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%Prendre en compte le coefficient de progression.
");
}
@@ -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-", "
"));
-
- 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-", "
"));
+
+ 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("
");
+ }
- //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("
");
+
//footer
fichier.append("