Ajout des attributs évaluateur evalNameCreator et
evalNameInitialCreator. MAJ de la documentation.
This commit is contained in:
parent
b35d71f27f
commit
eb5830c845
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -160,10 +160,6 @@ public class commandes {
|
|||||||
if(sansFeeback) {badCommand=true;System.out.println("It is not possible to run the -nofeedback and -zipfeedback commands at the same time.");}
|
if(sansFeeback) {badCommand=true;System.out.println("It is not possible to run the -nofeedback and -zipfeedback commands at the same time.");}
|
||||||
zipfeedback=true;
|
zipfeedback=true;
|
||||||
}
|
}
|
||||||
if(args[i].equals("-d")) {
|
|
||||||
if(Command.contains(" -f ")) {badCommand=true;System.out.println("The -d and -f commands cannot be executed together.");}
|
|
||||||
fichierStudentMoodle=false;
|
|
||||||
}
|
|
||||||
if(args[i].equals("-f")) {
|
if(args[i].equals("-f")) {
|
||||||
if(Command.contains(" -d ")) {badCommand=true;System.out.println("The -f and -d commands cannot be executed together.");}
|
if(Command.contains(" -d ")) {badCommand=true;System.out.println("The -f and -d commands cannot be executed together.");}
|
||||||
fichierStudentMoodle=true;
|
fichierStudentMoodle=true;
|
||||||
@ -194,7 +190,7 @@ public class commandes {
|
|||||||
if(!args[i].equals("-use")&&!args[i].equals("-write")&&!args[i].equals("-csv")&&!args[i].equals("-verif")&&!args[i].equals("-verifcsv")
|
if(!args[i].equals("-use")&&!args[i].equals("-write")&&!args[i].equals("-csv")&&!args[i].equals("-verif")&&!args[i].equals("-verifcsv")
|
||||||
&&!args[i].contains(".csv")&&!args[i].contains(".svg")&&!args[i].contains(".xml")&&!args[i].contains("-nofeedback")&&!args[i].contains("-help")&&!args[i].equals("-aide")
|
&&!args[i].contains(".csv")&&!args[i].contains(".svg")&&!args[i].contains(".xml")&&!args[i].contains("-nofeedback")&&!args[i].contains("-help")&&!args[i].equals("-aide")
|
||||||
&&!args[i].equals("-about")&&!args[i].equals("-nonote") &&!args[i].equals("-dest")&&!args[i].equals("-sujet")&&!args[i].equals("-nologo")
|
&&!args[i].equals("-about")&&!args[i].equals("-nonote") &&!args[i].equals("-dest")&&!args[i].equals("-sujet")&&!args[i].equals("-nologo")
|
||||||
&&!args[i].equals("-licence")&&!args[i].equals("-zipfeedback")&&!args[i].equals("-newLogo")&&!args[i].equals("-f")&&!args[i].equals("-d")&&!m.find()) {
|
&&!args[i].equals("-licence")&&!args[i].equals("-zipfeedback")&&!args[i].equals("-newLogo")&&!args[i].equals("-f")&&!m.find()) {
|
||||||
badCommand=true; System.out.println("the command " + args[i] + " is unknown.");System.out.println("You can type the -help command to get help.");
|
badCommand=true; System.out.println("the command " + args[i] + " is unknown.");System.out.println("You can type the -help command to get help.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -262,12 +258,6 @@ public class commandes {
|
|||||||
System.out.println(" : \t Les fichiers des étudiants doivent être au format ODF avec l'extension .odt.");
|
System.out.println(" : \t Les fichiers des étudiants doivent être au format ODF avec l'extension .odt.");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
System.out.println(" -f : \t Permet d'indiquer que tous les fichiers des étudiants");
|
|
||||||
System.out.println(" : \t sont directement dans le dossier courant de l'application.");
|
|
||||||
System.out.println(" : \t Par défaut les fichiers des étudiants sont dans des dossiers nominatifs.");
|
|
||||||
System.out.println(" : \t Les fichiers des étudiants doivent être au format ODF avec l'extension .odt.");
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
System.out.println(" file.xml : \t Le fichier d'analyse au format XML.");
|
System.out.println(" file.xml : \t Le fichier d'analyse au format XML.");
|
||||||
System.out.println(" : \t file.xml doit être placé juste après la commande -use.");
|
System.out.println(" : \t file.xml doit être placé juste après la commande -use.");
|
||||||
System.out.println(" : \t Le fchier file.xml doit se trouver dans le dossier courant*.");
|
System.out.println(" : \t Le fchier file.xml doit se trouver dans le dossier courant*.");
|
||||||
@ -275,6 +265,12 @@ public class commandes {
|
|||||||
System.out.println(" : \t Ce fichier doit être manuellement modifié pour l'adapter à votre analyse.");
|
System.out.println(" : \t Ce fichier doit être manuellement modifié pour l'adapter à votre analyse.");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
|
System.out.println(" -f : \t Permet d'indiquer que tous les fichiers des étudiants");
|
||||||
|
System.out.println(" : \t sont directement dans le dossier courant de l'application.");
|
||||||
|
System.out.println(" : \t Par défaut les fichiers des étudiants sont dans des dossiers nominatifs.");
|
||||||
|
System.out.println(" : \t Les fichiers des étudiants doivent être au format ODF avec l'extension .odt.");
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
System.out.println(" -verif : \t Permet de comparer toutes les modifications entre les historiques du suivi de modification.");
|
System.out.println(" -verif : \t Permet de comparer toutes les modifications entre les historiques du suivi de modification.");
|
||||||
System.out.println(" : \t Si c'est la seule commande alors il n'y a pas d'analyse, pas de note, pas de feedback.");
|
System.out.println(" : \t Si c'est la seule commande alors il n'y a pas d'analyse, pas de note, pas de feedback.");
|
||||||
System.out.println(" : \t Cette commande ne dépend pas d'un fichier d'analyse (indépendant des sujets).");
|
System.out.println(" : \t Cette commande ne dépend pas d'un fichier d'analyse (indépendant des sujets).");
|
||||||
|
439
src/MEPTL/ecritureSujet.java
Normal file
439
src/MEPTL/ecritureSujet.java
Normal file
@ -0,0 +1,439 @@
|
|||||||
|
package MEPTL;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import cXML.Run;
|
||||||
|
import cXML.node;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author pablo rodriguez
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ecritureSujet {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fourni le node du sujet avec les attributs d'evaluation et les attributs de la mise en page du feedback.
|
||||||
|
* @param nod
|
||||||
|
* @param a
|
||||||
|
* @param i
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static node nodePourEcritureSujet(node nod, Run a, Integer i) {
|
||||||
|
LocalDateTime aujourdhui = LocalDateTime.now();
|
||||||
|
|
||||||
|
// fichier
|
||||||
|
nod.getAttributs().put("evaluer", "true");
|
||||||
|
nod.getAttributs().put("progression", "1");
|
||||||
|
nod.getAttributs().put("notefrom", "20");
|
||||||
|
nod.getAttributs().put("baremeABC", "false");
|
||||||
|
nod.getAttributs().put("date", String.valueOf(aujourdhui));
|
||||||
|
nod.getAttributs().put("version", commandes.version);
|
||||||
|
nod.getAttributs().put("titre", "Le titre de l'exercice");
|
||||||
|
nod.getAttributs().put("link_sujet", "https://moodle.univ-artois.fr/cours/");
|
||||||
|
nod.getAttributs().put("link_help", "https://moodle.univ-artois.fr/cours/");
|
||||||
|
nod.getAttributs().put("historiquePresent", "false");
|
||||||
|
nod.getAttributs().put("controleDateCreation", "false");
|
||||||
|
nod.getAttributs().put("controle_Initial_Creator", "false");
|
||||||
|
nod.getAttributs().put("presenceMetaSujet", "false");
|
||||||
|
node b = a.retourneName(nod.retourneFirstEnfantsByName("office:meta"),"meta:user-defined","meta:name","Sujet");
|
||||||
|
if(b!=null) { nod.getAttributs().put("metaSujet", b.getContenu());}else {nod.getAttributs().put("metaSujet", "?");}
|
||||||
|
b = nod.retourneFirstEnfantsByName("office:meta").retourneFirstEnfantsByName("meta:creation-date");
|
||||||
|
if(b!=null) {
|
||||||
|
if(b.getContenu().contains(".")) {
|
||||||
|
nod.getAttributs().put("creationDate", b.getContenu().substring(0, b.getContenu().lastIndexOf(".")));
|
||||||
|
}else {
|
||||||
|
nod.getAttributs().put("creationDate", b.getContenu());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b = nod.retourneFirstEnfantsByName("office:meta").retourneFirstEnfantsByName("meta:initial-creator");
|
||||||
|
if(b!=null) nod.getAttributs().put("Initial_Creator", b.getContenu());
|
||||||
|
nod.getAttributs().put("auteur", "votre nom et prénom");
|
||||||
|
nod.setContenu("Commentaire sur cet exercice.-NewLine-Seconde ligne de commentaire.");
|
||||||
|
nod.getAttributs().remove("dossier");
|
||||||
|
|
||||||
|
//
|
||||||
|
//metadonnées
|
||||||
|
node nodmeta = nod.retourneFirstEnfantsByName("office:meta");
|
||||||
|
if(nodmeta.getNomElt().equals("office:meta")) {
|
||||||
|
nod.getNodes().remove(nodmeta);
|
||||||
|
nodmeta.getAttributs().put("evaluer", "false");
|
||||||
|
nodmeta.getAttributs().put("addmenu", "false");
|
||||||
|
nodmeta.getAttributs().put("poids", "1");
|
||||||
|
nodmeta.getAttributs().put("titre", "Les metadonnées");
|
||||||
|
ArrayList<node> no = nodmeta.getNodes();
|
||||||
|
for(int j = 0 ; j < no.size(); j++) {
|
||||||
|
no.get(j).getAttributs().put("saut", "false");
|
||||||
|
no.get(j).getAttributs().put("evaluer", "false");
|
||||||
|
no.get(j).getAttributs().put("titre", "");
|
||||||
|
no.get(j).getAttributs().put("styletitre", "nostyle");
|
||||||
|
no.get(j).getAttributs().put("evalNameNode", "0");
|
||||||
|
if(no.get(j).getNomElt().equals("dc:creator")) no.get(j).getAttributs().put("evalNameCreator", "0");
|
||||||
|
if(no.get(j).getNomElt().equals("meta:initial-creator")) no.get(j).getAttributs().put("evalNameInitialCreator", "0");
|
||||||
|
}
|
||||||
|
nod.getNodes().add(nodmeta);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//style de page
|
||||||
|
node nodpage = nod.retourneFirstEnfantsByName("style:page");
|
||||||
|
if(nodpage.getNomElt().equals("style:page")) {
|
||||||
|
nod.getNodes().remove(nodpage);
|
||||||
|
nodpage.getAttributs().put("evaluer", "false");
|
||||||
|
nodpage.getAttributs().put("addmenu", "false");
|
||||||
|
nodpage.getAttributs().put("poids", "1");
|
||||||
|
nodpage.getAttributs().put("titre", "Les styles de page");
|
||||||
|
|
||||||
|
nodpage = addAttributsAnalyseWriter(nodpage, "style:master-page");
|
||||||
|
nod.getNodes().add(nodpage);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//style de paragraphe
|
||||||
|
node nodparagraph = nod.retourneFirstEnfantsByName("style:paragraph");
|
||||||
|
if(nodparagraph.getNomElt().equals("style:paragraph")) {
|
||||||
|
nod.getNodes().remove(nodparagraph);
|
||||||
|
nodparagraph.getAttributs().put("evaluer", "false");
|
||||||
|
nodparagraph.getAttributs().put("addmenu", "false");
|
||||||
|
nodparagraph.getAttributs().put("poids", "1");
|
||||||
|
nodparagraph.getAttributs().put("titre", "Les styles de paragraphe");
|
||||||
|
|
||||||
|
nodparagraph = addAttributsAnalyseWriter(nodparagraph, "style:style");
|
||||||
|
nod.getNodes().add(nodparagraph);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//style de texte
|
||||||
|
node nodformatage = nod.retourneFirstEnfantsByName("style:formatagedirect");
|
||||||
|
if(nodformatage.getNomElt().equals("style:formatagedirect")) {
|
||||||
|
nod.getNodes().remove(nodformatage);
|
||||||
|
nodformatage.getAttributs().put("evaluer", "false");
|
||||||
|
nodformatage.getAttributs().put("addmenu", "false");
|
||||||
|
nodformatage.getAttributs().put("poids", "1");
|
||||||
|
nodformatage.getAttributs().put("titre", "Les styles de formatage direct");
|
||||||
|
|
||||||
|
nodformatage = addAttributsAnalyseWriter(nodformatage, "style:style");
|
||||||
|
nod.getNodes().add(nodformatage);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//séquence
|
||||||
|
node nodsequence = nod.retourneFirstEnfantsByName("sequences");
|
||||||
|
if(nodsequence.getNomElt().equals("sequences")) {
|
||||||
|
nod.getNodes().remove(nodsequence);
|
||||||
|
nodsequence.getAttributs().put("evaluer", "false");
|
||||||
|
nodsequence.getAttributs().put("addmenu", "false");
|
||||||
|
nodsequence.getAttributs().put("poids", "1");
|
||||||
|
nodsequence.getAttributs().put("titre", "Les variables de séquence");
|
||||||
|
|
||||||
|
nodsequence = addAttributsAnalyseWriter(nodsequence, "text:sequence-decl");
|
||||||
|
nod.getNodes().add(nodsequence);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
//numérotation des chapitres
|
||||||
|
node nodnumerotationchapitre = nod.retourneFirstEnfantsByName("numerotationchapitre");
|
||||||
|
if(nodnumerotationchapitre.getNomElt().equals("numerotationchapitre")) {
|
||||||
|
nod.getNodes().remove(nodnumerotationchapitre);
|
||||||
|
nodnumerotationchapitre.getAttributs().put("evaluer", "false");
|
||||||
|
nodnumerotationchapitre.getAttributs().put("addmenu", "false");
|
||||||
|
nodnumerotationchapitre.getAttributs().put("poids", "1");
|
||||||
|
nodnumerotationchapitre.getAttributs().put("titre", "Numérotation des chapitres");
|
||||||
|
|
||||||
|
nodnumerotationchapitre = addAttributsAnalyseWriter(nodnumerotationchapitre, "text:outline-level-style");
|
||||||
|
nod.getNodes().add(nodnumerotationchapitre);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
//frame
|
||||||
|
node nodframe = nod.retourneFirstEnfantsByName("frames");
|
||||||
|
if(nodframe.getNomElt().equals("frames")) {
|
||||||
|
nod.getNodes().remove(nodframe);
|
||||||
|
nodframe.getAttributs().put("evaluer", "false");
|
||||||
|
nodframe.getAttributs().put("addmenu", "false");
|
||||||
|
nodframe.getAttributs().put("poids", "1");
|
||||||
|
nodframe.getAttributs().put("titre", "Les frames (cadres et images)");
|
||||||
|
|
||||||
|
nodframe = addAttributsAnalyseWriter(nodframe, "draw:frame");
|
||||||
|
nod.getNodes().add(nodframe);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//sections
|
||||||
|
node nodsection = nod.retourneFirstEnfantsByName("sections");
|
||||||
|
if(nodsection.getNomElt().equals("sections")) {
|
||||||
|
nod.getNodes().remove(nodsection);
|
||||||
|
nodsection.getAttributs().put("evaluer", "false");
|
||||||
|
nodsection.getAttributs().put("addmenu", "false");
|
||||||
|
nodsection.getAttributs().put("poids", "1");
|
||||||
|
nodsection.getAttributs().put("titre", "Les sections");
|
||||||
|
|
||||||
|
nodsection = addAttributsAnalyseWriter(nodsection, "text:section");
|
||||||
|
nod.getNodes().add(nodsection);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//biblio
|
||||||
|
node nodbiblio = nod.retourneFirstEnfantsByName("biblio");
|
||||||
|
if(nodbiblio.getNomElt().equals("biblio")) {
|
||||||
|
nod.getNodes().remove(nodbiblio);
|
||||||
|
nodbiblio.getAttributs().put("evaluer", "false");
|
||||||
|
nodbiblio.getAttributs().put("addmenu", "false");
|
||||||
|
nodbiblio.getAttributs().put("poids", "1");
|
||||||
|
nodbiblio.getAttributs().put("titre", "La bibliographie");
|
||||||
|
//nodbiblio.getAttributs().put("styletitre", "H1");
|
||||||
|
|
||||||
|
nodbiblio = addAttributsAnalyseWriter(nodbiblio, "text:bibliography");
|
||||||
|
nod.getNodes().add(nodbiblio);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//table des matières
|
||||||
|
node nodtable = nod.retourneFirstEnfantsByName("tablematieres");
|
||||||
|
if(nodtable.getNomElt().equals("tablematieres")) {
|
||||||
|
nod.getNodes().remove(nodtable);
|
||||||
|
nodtable.getAttributs().put("evaluer", "false");
|
||||||
|
nodtable.getAttributs().put("addmenu", "false");
|
||||||
|
nodtable.getAttributs().put("poids", "1");
|
||||||
|
nodtable.getAttributs().put("titre", "Les index tables des matières");
|
||||||
|
|
||||||
|
nodtable = addAttributsAnalyseWriter(nodtable, "text:table-of-content");
|
||||||
|
nod.getNodes().add(nodtable);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//table des illustrations
|
||||||
|
node nodillustrations = nod.retourneFirstEnfantsByName("tableillustrations");
|
||||||
|
if(nodillustrations.getNomElt().equals("tableillustrations")) {
|
||||||
|
nod.getNodes().remove(nodillustrations);
|
||||||
|
nodillustrations.getAttributs().put("evaluer", "false");
|
||||||
|
nodillustrations.getAttributs().put("addmenu", "false");
|
||||||
|
nodillustrations.getAttributs().put("poids", "1");
|
||||||
|
nodillustrations.getAttributs().put("titre", "Les index illustrations");
|
||||||
|
|
||||||
|
nodillustrations = addAttributsAnalyseWriter(nodillustrations, "text:illustration-index");
|
||||||
|
nod.getNodes().add(nodillustrations);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//structure document
|
||||||
|
node nodstructurepage = nod.retourneFirstEnfantsByName("structurepage");
|
||||||
|
if(nodstructurepage.getNomElt().equals("structurepage")) {
|
||||||
|
nod.getNodes().remove(nodstructurepage);
|
||||||
|
nodstructurepage.getAttributs().put("evaluer", "false");
|
||||||
|
nodstructurepage.getAttributs().put("addmenu", "false");
|
||||||
|
nodstructurepage.getAttributs().put("poids", "1");
|
||||||
|
nodstructurepage.getAttributs().put("titre", "La structure du document");
|
||||||
|
|
||||||
|
nodstructurepage = addAttributsAnalyseWriter(nodstructurepage, "page");
|
||||||
|
nod.getNodes().add(nodstructurepage);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ajoute le node setting et translation
|
||||||
|
nod = addSetting(nod);
|
||||||
|
|
||||||
|
return nod;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ajoute les différents attributs aux nodes enfants des nodes principaux.
|
||||||
|
* @param noPourPlacerEvaluer
|
||||||
|
* @param nameNodeRacine
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static node addAttributsAnalyseWriter(node noPourPlacerEvaluer, String nameNodeRacine) {
|
||||||
|
ArrayList<node> no = noPourPlacerEvaluer.retourneEnfantsByName(nameNodeRacine, new ArrayList<node>());
|
||||||
|
for(int j = 0 ; j < no.size(); j++) {
|
||||||
|
noPourPlacerEvaluer.getNodes().remove(no.get(j));
|
||||||
|
no.get(j).getAttributs().put("saut", "false");
|
||||||
|
no.get(j).getAttributs().put("evaluer", "false");
|
||||||
|
no.get(j).getAttributs().put("titre", "");
|
||||||
|
no.get(j).getAttributs().put("styletitre", "nostyle");
|
||||||
|
ArrayList<node> no1 = no.get(j).getNodes();
|
||||||
|
for(int k=0 ; k < no1.size(); k++) {
|
||||||
|
no1.get(k).getAttributs().put("evaluer", "false");
|
||||||
|
if(listeDesNodesAvecEvalNode(no1.get(k).getNomElt())) no1.get(k).getAttributs().put("evalNameNode", "0");
|
||||||
|
if(listeDesNodesSautEtTitre(no1.get(k).getNomElt())) {no1.get(k).getAttributs().put("saut", "false"); no1.get(k).getAttributs().put("titre", ""); no1.get(k).getAttributs().put("styletitre", "nostyle");}
|
||||||
|
if(listeDesNodesRecherche(no1.get(k).getNomElt())) {no1.get(k).getAttributs().put("recherche_index", "false"); no1.get(k).getAttributs().put("recherche_contenu_exact", "false");}
|
||||||
|
if(listeDesNodesAnalyseStyle(no1.get(k).getNomElt())) no1.get(k).getAttributs().put("analyseStyle", "false");
|
||||||
|
|
||||||
|
ArrayList<node> no2 = no1.get(k).getNodes();
|
||||||
|
for(int l=0 ; l < no2.size(); l++) {
|
||||||
|
no2.get(l).getAttributs().put("evaluer", "false");
|
||||||
|
if(listeDesNodesAvecEvalNode(no2.get(l).getNomElt())) no2.get(l).getAttributs().put("evalNameNode", "0");
|
||||||
|
if(listeDesNodesSautEtTitre(no2.get(l).getNomElt())) {no2.get(l).getAttributs().put("saut", "false"); no2.get(l).getAttributs().put("titre", "");no2.get(l).getAttributs().put("styletitre", "nostyle");}
|
||||||
|
if(listeDesNodesRecherche(no2.get(l).getNomElt())) {no2.get(l).getAttributs().put("recherche_index", "false"); no2.get(l).getAttributs().put("recherche_contenu_exact", "false");}
|
||||||
|
if(listeDesNodesAnalyseStyle(no2.get(l).getNomElt())) no2.get(l).getAttributs().put("analyseStyle", "false");
|
||||||
|
|
||||||
|
ArrayList<node> no3 = no2.get(l).getNodes();
|
||||||
|
for(int m=0 ; m < no3.size(); m++) {
|
||||||
|
no3.get(m).getAttributs().put("evaluer", "false");
|
||||||
|
if(listeDesNodesAvecEvalNode(no3.get(m).getNomElt())) no3.get(m).getAttributs().put("evalNameNode", "0");
|
||||||
|
if(listeDesNodesSautEtTitre(no3.get(m).getNomElt())) {no3.get(m).getAttributs().put("saut", "false"); no3.get(m).getAttributs().put("titre", "");no3.get(m).getAttributs().put("styletitre", "nostyle");}
|
||||||
|
if(listeDesNodesRecherche(no3.get(m).getNomElt())) {no3.get(m).getAttributs().put("recherche_index", "false"); no3.get(m).getAttributs().put("recherche_contenu_exact", "false");}
|
||||||
|
if(listeDesNodesAnalyseStyle(no3.get(m).getNomElt())) no3.get(m).getAttributs().put("analyseStyle", "false");
|
||||||
|
|
||||||
|
ArrayList<node> no4 = no3.get(m).getNodes();
|
||||||
|
for(int n=0 ; n < no4.size(); n++) {
|
||||||
|
no4.get(n).getAttributs().put("evaluer", "false");
|
||||||
|
if(listeDesNodesAvecEvalNode(no4.get(n).getNomElt())) no4.get(n).getAttributs().put("evalNameNode", "0");
|
||||||
|
if(listeDesNodesSautEtTitre(no4.get(n).getNomElt())) {no4.get(n).getAttributs().put("saut", "false"); no4.get(n).getAttributs().put("titre", "");no4.get(n).getAttributs().put("styletitre", "nostyle");}
|
||||||
|
if(listeDesNodesRecherche(no4.get(n).getNomElt())) {no4.get(n).getAttributs().put("recherche_index", "false"); no4.get(n).getAttributs().put("recherche_contenu_exact", "false");}
|
||||||
|
if(listeDesNodesAnalyseStyle(no4.get(n).getNomElt())) no4.get(n).getAttributs().put("analyseStyle", "false");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
noPourPlacerEvaluer.getNodes().addAll(no);
|
||||||
|
return noPourPlacerEvaluer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liste des nodes qui peuvent contenir l'attribut evalNameNode
|
||||||
|
* @param nameNode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static boolean listeDesNodesAvecEvalNode(String nameNode) {
|
||||||
|
if(nameNode.contains("meta:")) return true;
|
||||||
|
if(nameNode.contains("dc:")) return true;
|
||||||
|
if(nameNode.contains("text:")) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liste des nodes qui peuvent contenir les attributs saut et titre
|
||||||
|
* @param nameNode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static boolean listeDesNodesSautEtTitre(String nameNode) {
|
||||||
|
if(nameNode.contains("meta:")) return true;
|
||||||
|
if(nameNode.contains("dc:")) return true;
|
||||||
|
if(nameNode.contains("style:")) return true;
|
||||||
|
if(nameNode.contains("text:")) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liste des nodes qui peuvent contenir l'attribut recherche_index
|
||||||
|
* @param nameNode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static boolean listeDesNodesRecherche(String nameNode) {
|
||||||
|
if(nameNode.contains("text:")) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liste des nodes qui peuvent contenir l'attribut analyseStyle
|
||||||
|
* @param nameNode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static boolean listeDesNodesAnalyseStyle(String nameNode) {
|
||||||
|
if(nameNode.equals("text:p")) return true;
|
||||||
|
if(nameNode.equals("text:span")) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ce node permet la configuration personnalisé de l'application.<br>
|
||||||
|
* Ajoute le node setting avec les différentes valeurs par défaut.<br>
|
||||||
|
*
|
||||||
|
* @param sujet Le node du sujet.
|
||||||
|
* @return Le node du sujet avec le node setting ajouté.
|
||||||
|
*/
|
||||||
|
private static node addSetting(node sujet) {
|
||||||
|
//node setting
|
||||||
|
node setting = new node();
|
||||||
|
setting.setNomElt("setting");
|
||||||
|
setting.getAttributs().put("culture","FR");
|
||||||
|
|
||||||
|
|
||||||
|
//node csv
|
||||||
|
node csv = new node();
|
||||||
|
csv.setNomElt("csv");
|
||||||
|
csv.getAttributs().put("encoding", "UTF-8");
|
||||||
|
csv.getAttributs().put("separator", ";");
|
||||||
|
csv.setContenu("choose the encoding from this list : UTF-8 US-ASCII ISO-8859-1 UTF-16BE UTF-16LE UTF-16");
|
||||||
|
csv.setClose(true);
|
||||||
|
|
||||||
|
//node export du csv
|
||||||
|
node export = new node();
|
||||||
|
export.setNomElt("import_moodle");
|
||||||
|
export.getAttributs().put("email", "adresse");
|
||||||
|
export.getAttributs().put("id", "identification");
|
||||||
|
export.getAttributs().put("firstname", "prenom");
|
||||||
|
export.getAttributs().put("name", "nom");
|
||||||
|
export.setClose(true);
|
||||||
|
|
||||||
|
//node taille zip
|
||||||
|
node zip = new node();
|
||||||
|
zip.setNomElt("zip");
|
||||||
|
zip.getAttributs().put("size", "48000000");
|
||||||
|
zip.getAttributs().put("nameZip", "feedbackMoodle");
|
||||||
|
zip.isClose();
|
||||||
|
|
||||||
|
//node verif
|
||||||
|
node plagiarism = new node();
|
||||||
|
plagiarism.setNomElt("plagiarism");
|
||||||
|
plagiarism.getAttributs().put("number_match", "2");
|
||||||
|
plagiarism.getAttributs().put("mini_number_modification", "-1");
|
||||||
|
plagiarism.getAttributs().put("nombres_modifications_simultané_maxi", "100");
|
||||||
|
plagiarism.setClose(true);
|
||||||
|
|
||||||
|
//construction node similitude
|
||||||
|
node similarity = new node();
|
||||||
|
similarity.setNomElt("text:similarity");
|
||||||
|
similarity.getAttributs().put("tolerance_characters", "5");
|
||||||
|
similarity.getAttributs().put("tolerance_text", "0.79");
|
||||||
|
similarity.setClose(true);
|
||||||
|
|
||||||
|
//node color
|
||||||
|
node color = new node();
|
||||||
|
color.setNomElt("color");
|
||||||
|
color.getAttributs().put("tolerance_rouge", "30");
|
||||||
|
color.getAttributs().put("tolerance_vert", "30");
|
||||||
|
color.getAttributs().put("tolerance_bleu", "30");
|
||||||
|
color.setClose(true);
|
||||||
|
|
||||||
|
//construction du node setting
|
||||||
|
csv.getNodes().add(export);
|
||||||
|
setting.getNodes().add(csv);
|
||||||
|
setting.getNodes().add(zip);
|
||||||
|
setting.getNodes().add(plagiarism);
|
||||||
|
setting.getNodes().add(similarity);
|
||||||
|
setting.getNodes().add(color);
|
||||||
|
|
||||||
|
//ajoute la node translation
|
||||||
|
setting.getNodes().add(Run.translation());
|
||||||
|
|
||||||
|
|
||||||
|
// ajoute le node setting au node sujet
|
||||||
|
sujet.getNodes().add(setting);
|
||||||
|
|
||||||
|
//fermeture du node
|
||||||
|
setting.setClose(true);
|
||||||
|
|
||||||
|
return sujet;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -177,13 +177,13 @@ public class meptl {
|
|||||||
//** Chargement du format (content) et transformation en node pour l'application
|
//** Chargement du format (content) et transformation en node pour l'application
|
||||||
node nod = a.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
node nod = a.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||||
node nodStudent = LectureFichierEtudiantSousFormeDeNode(nod,a,i);
|
node nodStudent = LectureFichierEtudiantSousFormeDeNode(nod,a,i);
|
||||||
//a.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false); //écriture du node de l'étudiant
|
// a.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,""); //écriture du node de l'étudiant
|
||||||
|
|
||||||
//** Ecriture d'une fichier d'analyse.
|
//** Ecriture d'une fichier d'analyse.
|
||||||
//** commande -write
|
//** commande -write
|
||||||
if(commandes.ecritCode && ! commandes.verifHisto && !commandes.analyse) {
|
if(commandes.ecritCode && ! commandes.verifHisto && !commandes.analyse) {
|
||||||
node nodSujet = nodePourEcritureSujet(nodStudent,a,i);
|
node nodSujet = ecritureSujet.nodePourEcritureSujet(nodStudent,a,i);
|
||||||
nodSujet = addSetting(nodSujet); // ajoute le node setting et translation
|
//nodSujet = ecritureSujet.addSetting(nodSujet); // ajoute le node setting et translation
|
||||||
a.ecritureNodeEnXML(nodSujet, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,"Sujet");
|
a.ecritureNodeEnXML(nodSujet, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,"Sujet");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -284,6 +284,27 @@ public class meptl {
|
|||||||
node nodbody = a.NodeFirstName(nodecontent, "office:text");
|
node nodbody = a.NodeFirstName(nodecontent, "office:text");
|
||||||
node nodmeta = nod.retourneFirstEnfantsByName("office:meta");
|
node nodmeta = nod.retourneFirstEnfantsByName("office:meta");
|
||||||
|
|
||||||
|
// ajoute les créateurs ou éditeur dans les nodes dc:creator ou meta:initial-creator
|
||||||
|
// Pour permettre l'analyse avec les attributs evalNameCreator ou evalNameInitialCreator
|
||||||
|
if(!commandes.ecritCode) {
|
||||||
|
if(nodmeta.retourneEnfantsByNameExist("dc:creator")) {
|
||||||
|
if(a.getLectDossiers().getEC().getListeNomDossier().get(i)!=null) {
|
||||||
|
nodmeta.retourneFirstEnfantsByName("dc:creator").getAttributs().put("creator", a.getLectDossiers().getEC().getListeNomDossier().get(i));
|
||||||
|
}else {
|
||||||
|
nodmeta.retourneFirstEnfantsByName("dc:creator").getAttributs().put("creator", "null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(nodmeta.retourneEnfantsByNameExist("meta:initial-creator")) {
|
||||||
|
if(a.getLectDossiers().getEC().getListeNomDossier().get(i)!=null) {
|
||||||
|
nodmeta.retourneFirstEnfantsByName("meta:initial-creator").getAttributs().put("initial-creator", a.getLectDossiers().getEC().getListeNomDossier().get(i));
|
||||||
|
}else {
|
||||||
|
nodmeta.retourneFirstEnfantsByName("meta:initial-creator").getAttributs().put("initial-creator", "null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
node nodstyle = new node();
|
node nodstyle = new node();
|
||||||
nodstyle.setNomElt("styles");
|
nodstyle.setNomElt("styles");
|
||||||
nodstyle.addNode(a.NodeFirstName(nodecontent,"office:automatic-styles"));
|
nodstyle.addNode(a.NodeFirstName(nodecontent,"office:automatic-styles"));
|
||||||
@ -734,233 +755,7 @@ public class meptl {
|
|||||||
return fichier;
|
return fichier;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fourni le node du sujet avec les attributs d'evaluation et de mise en page pour le feedback.
|
|
||||||
* @param nod
|
|
||||||
* @param a
|
|
||||||
* @param i
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private static node nodePourEcritureSujet(node nod, Run a, Integer i) {
|
|
||||||
LocalDateTime aujourdhui = LocalDateTime.now();
|
|
||||||
|
|
||||||
// fichier
|
|
||||||
nod.getAttributs().put("evaluer", "true");
|
|
||||||
nod.getAttributs().put("progression", "1");
|
|
||||||
nod.getAttributs().put("notefrom", "20");
|
|
||||||
nod.getAttributs().put("baremeABC", "false");
|
|
||||||
nod.getAttributs().put("date", String.valueOf(aujourdhui));
|
|
||||||
nod.getAttributs().put("version", commandes.version);
|
|
||||||
nod.getAttributs().put("titre", "Le titre de l'exercice");
|
|
||||||
nod.getAttributs().put("link_sujet", "https://moodle.univ-artois.fr/cours/");
|
|
||||||
nod.getAttributs().put("link_help", "https://moodle.univ-artois.fr/cours/");
|
|
||||||
nod.getAttributs().put("historiquePresent", "false");
|
|
||||||
nod.getAttributs().put("controleDateCreation", "false");
|
|
||||||
nod.getAttributs().put("controle_Initial_Creator", "false");
|
|
||||||
nod.getAttributs().put("presenceMetaSujet", "false");
|
|
||||||
node b = a.retourneName(nod.retourneFirstEnfantsByName("office:meta"),"meta:user-defined","meta:name","Sujet");
|
|
||||||
if(b!=null) { nod.getAttributs().put("metaSujet", b.getContenu());}else {nod.getAttributs().put("metaSujet", "?");}
|
|
||||||
b = nod.retourneFirstEnfantsByName("office:meta").retourneFirstEnfantsByName("meta:creation-date");
|
|
||||||
if(b!=null) {
|
|
||||||
if(b.getContenu().contains(".")) {
|
|
||||||
nod.getAttributs().put("creationDate", b.getContenu().substring(0, b.getContenu().lastIndexOf(".")));
|
|
||||||
}else {
|
|
||||||
nod.getAttributs().put("creationDate", b.getContenu());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
b = nod.retourneFirstEnfantsByName("office:meta").retourneFirstEnfantsByName("meta:initial-creator");
|
|
||||||
if(b!=null) nod.getAttributs().put("Initial_Creator", b.getContenu());
|
|
||||||
nod.getAttributs().put("auteur", "votre nom et prénom");
|
|
||||||
nod.setContenu("Commentaire sur cet exercice.-NewLine-Seconde ligne de commentaire.");
|
|
||||||
nod.getAttributs().remove("dossier");
|
|
||||||
|
|
||||||
//
|
|
||||||
//metadonnées
|
|
||||||
node nodmeta = nod.retourneFirstEnfantsByName("office:meta");
|
|
||||||
if(nodmeta.getNomElt().equals("office:meta")) {
|
|
||||||
nod.getNodes().remove(nodmeta);
|
|
||||||
nodmeta.getAttributs().put("evaluer", "false");
|
|
||||||
nodmeta.getAttributs().put("addmenu", "false");
|
|
||||||
nodmeta.getAttributs().put("poids", "1");
|
|
||||||
nodmeta.getAttributs().put("titre", "Les metadonnées");
|
|
||||||
ArrayList<node> no = nodmeta.getNodes();
|
|
||||||
for(int j = 0 ; j < no.size(); j++) {
|
|
||||||
no.get(j).getAttributs().put("saut", "false");
|
|
||||||
no.get(j).getAttributs().put("evaluer", "false");
|
|
||||||
no.get(j).getAttributs().put("titre", "");
|
|
||||||
no.get(j).getAttributs().put("styletitre", "nostyle");
|
|
||||||
no.get(j).getAttributs().put("evalNameNode", "0");
|
|
||||||
}
|
|
||||||
nod.getNodes().add(nodmeta);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//style de page
|
|
||||||
node nodpage = nod.retourneFirstEnfantsByName("style:page");
|
|
||||||
if(nodpage.getNomElt().equals("style:page")) {
|
|
||||||
nod.getNodes().remove(nodpage);
|
|
||||||
nodpage.getAttributs().put("evaluer", "false");
|
|
||||||
nodpage.getAttributs().put("addmenu", "false");
|
|
||||||
nodpage.getAttributs().put("poids", "1");
|
|
||||||
nodpage.getAttributs().put("titre", "Les styles de page");
|
|
||||||
|
|
||||||
nodpage = addAttributsAnalyseWriter(nodpage, "style:master-page");
|
|
||||||
nod.getNodes().add(nodpage);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//style de paragraphe
|
|
||||||
node nodparagraph = nod.retourneFirstEnfantsByName("style:paragraph");
|
|
||||||
if(nodparagraph.getNomElt().equals("style:paragraph")) {
|
|
||||||
nod.getNodes().remove(nodparagraph);
|
|
||||||
nodparagraph.getAttributs().put("evaluer", "false");
|
|
||||||
nodparagraph.getAttributs().put("addmenu", "false");
|
|
||||||
nodparagraph.getAttributs().put("poids", "1");
|
|
||||||
nodparagraph.getAttributs().put("titre", "Les styles de paragraphe");
|
|
||||||
|
|
||||||
nodparagraph = addAttributsAnalyseWriter(nodparagraph, "style:style");
|
|
||||||
nod.getNodes().add(nodparagraph);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//style de texte
|
|
||||||
node nodformatage = nod.retourneFirstEnfantsByName("style:formatagedirect");
|
|
||||||
if(nodformatage.getNomElt().equals("style:formatagedirect")) {
|
|
||||||
nod.getNodes().remove(nodformatage);
|
|
||||||
nodformatage.getAttributs().put("evaluer", "false");
|
|
||||||
nodformatage.getAttributs().put("addmenu", "false");
|
|
||||||
nodformatage.getAttributs().put("poids", "1");
|
|
||||||
nodformatage.getAttributs().put("titre", "Les styles de formatage direct");
|
|
||||||
|
|
||||||
nodformatage = addAttributsAnalyseWriter(nodformatage, "style:style");
|
|
||||||
nod.getNodes().add(nodformatage);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//séquence
|
|
||||||
node nodsequence = nod.retourneFirstEnfantsByName("sequences");
|
|
||||||
if(nodsequence.getNomElt().equals("sequences")) {
|
|
||||||
nod.getNodes().remove(nodsequence);
|
|
||||||
nodsequence.getAttributs().put("evaluer", "false");
|
|
||||||
nodsequence.getAttributs().put("addmenu", "false");
|
|
||||||
nodsequence.getAttributs().put("poids", "1");
|
|
||||||
nodsequence.getAttributs().put("titre", "Les variables de séquence");
|
|
||||||
|
|
||||||
nodsequence = addAttributsAnalyseWriter(nodsequence, "text:sequence-decl");
|
|
||||||
nod.getNodes().add(nodsequence);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
//numérotation des chapitres
|
|
||||||
node nodnumerotationchapitre = nod.retourneFirstEnfantsByName("numerotationchapitre");
|
|
||||||
if(nodnumerotationchapitre.getNomElt().equals("numerotationchapitre")) {
|
|
||||||
nod.getNodes().remove(nodnumerotationchapitre);
|
|
||||||
nodnumerotationchapitre.getAttributs().put("evaluer", "false");
|
|
||||||
nodnumerotationchapitre.getAttributs().put("addmenu", "false");
|
|
||||||
nodnumerotationchapitre.getAttributs().put("poids", "1");
|
|
||||||
nodnumerotationchapitre.getAttributs().put("titre", "Numérotation des chapitres");
|
|
||||||
|
|
||||||
nodnumerotationchapitre = addAttributsAnalyseWriter(nodnumerotationchapitre, "text:outline-level-style");
|
|
||||||
nod.getNodes().add(nodnumerotationchapitre);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
//frame
|
|
||||||
node nodframe = nod.retourneFirstEnfantsByName("frames");
|
|
||||||
if(nodframe.getNomElt().equals("frames")) {
|
|
||||||
nod.getNodes().remove(nodframe);
|
|
||||||
nodframe.getAttributs().put("evaluer", "false");
|
|
||||||
nodframe.getAttributs().put("addmenu", "false");
|
|
||||||
nodframe.getAttributs().put("poids", "1");
|
|
||||||
nodframe.getAttributs().put("titre", "Les frames (cadres et images)");
|
|
||||||
|
|
||||||
nodframe = addAttributsAnalyseWriter(nodframe, "draw:frame");
|
|
||||||
nod.getNodes().add(nodframe);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//sections
|
|
||||||
node nodsection = nod.retourneFirstEnfantsByName("sections");
|
|
||||||
if(nodsection.getNomElt().equals("sections")) {
|
|
||||||
nod.getNodes().remove(nodsection);
|
|
||||||
nodsection.getAttributs().put("evaluer", "false");
|
|
||||||
nodsection.getAttributs().put("addmenu", "false");
|
|
||||||
nodsection.getAttributs().put("poids", "1");
|
|
||||||
nodsection.getAttributs().put("titre", "Les sections");
|
|
||||||
|
|
||||||
nodsection = addAttributsAnalyseWriter(nodsection, "text:section");
|
|
||||||
nod.getNodes().add(nodsection);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//biblio
|
|
||||||
node nodbiblio = nod.retourneFirstEnfantsByName("biblio");
|
|
||||||
if(nodbiblio.getNomElt().equals("biblio")) {
|
|
||||||
nod.getNodes().remove(nodbiblio);
|
|
||||||
nodbiblio.getAttributs().put("evaluer", "false");
|
|
||||||
nodbiblio.getAttributs().put("addmenu", "false");
|
|
||||||
nodbiblio.getAttributs().put("poids", "1");
|
|
||||||
nodbiblio.getAttributs().put("titre", "La bibliographie");
|
|
||||||
//nodbiblio.getAttributs().put("styletitre", "H1");
|
|
||||||
|
|
||||||
nodbiblio = addAttributsAnalyseWriter(nodbiblio, "text:bibliography");
|
|
||||||
nod.getNodes().add(nodbiblio);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//table des matières
|
|
||||||
node nodtable = nod.retourneFirstEnfantsByName("tablematieres");
|
|
||||||
if(nodtable.getNomElt().equals("tablematieres")) {
|
|
||||||
nod.getNodes().remove(nodtable);
|
|
||||||
nodtable.getAttributs().put("evaluer", "false");
|
|
||||||
nodtable.getAttributs().put("addmenu", "false");
|
|
||||||
nodtable.getAttributs().put("poids", "1");
|
|
||||||
nodtable.getAttributs().put("titre", "Les index tables des matières");
|
|
||||||
|
|
||||||
nodtable = addAttributsAnalyseWriter(nodtable, "text:table-of-content");
|
|
||||||
nod.getNodes().add(nodtable);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//table des illustrations
|
|
||||||
node nodillustrations = nod.retourneFirstEnfantsByName("tableillustrations");
|
|
||||||
if(nodillustrations.getNomElt().equals("tableillustrations")) {
|
|
||||||
nod.getNodes().remove(nodillustrations);
|
|
||||||
nodillustrations.getAttributs().put("evaluer", "false");
|
|
||||||
nodillustrations.getAttributs().put("addmenu", "false");
|
|
||||||
nodillustrations.getAttributs().put("poids", "1");
|
|
||||||
nodillustrations.getAttributs().put("titre", "Les index illustrations");
|
|
||||||
|
|
||||||
nodillustrations = addAttributsAnalyseWriter(nodillustrations, "text:illustration-index");
|
|
||||||
nod.getNodes().add(nodillustrations);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//structure document
|
|
||||||
node nodstructurepage = nod.retourneFirstEnfantsByName("structurepage");
|
|
||||||
if(nodstructurepage.getNomElt().equals("structurepage")) {
|
|
||||||
nod.getNodes().remove(nodstructurepage);
|
|
||||||
nodstructurepage.getAttributs().put("evaluer", "false");
|
|
||||||
nodstructurepage.getAttributs().put("addmenu", "false");
|
|
||||||
nodstructurepage.getAttributs().put("poids", "1");
|
|
||||||
nodstructurepage.getAttributs().put("titre", "La structure du document");
|
|
||||||
|
|
||||||
nodstructurepage = addAttributsAnalyseWriter(nodstructurepage, "page");
|
|
||||||
nod.getNodes().add(nodstructurepage);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return nod;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Chargement du sujet.<br>
|
* Chargement du sujet.<br>
|
||||||
@ -2748,13 +2543,33 @@ public class meptl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(k.equals("evalNameNode")) {
|
if(!sujet.getAttributs().get(k).equals("0")) {
|
||||||
|
if(k.equals("evalNameNode") && !sujet.getAttributs().get(k).equals("0")) {
|
||||||
if(nodeStudent!=null) {
|
if(nodeStudent!=null) {
|
||||||
retour = analyseNameNode(retour,nodeStudent, sujet.getNomElt(), sujet.getAttributs().get("evalNameNode"),sujet.getNomElt());
|
retour = analyseNameNode(retour,nodeStudent, sujet.getNomElt(), sujet.getAttributs().get("evalNameNode"),sujet.getNomElt());
|
||||||
}else {
|
}else {
|
||||||
retour = analyseNameNode(retour,null, sujet.getNomElt(), sujet.getAttributs().get("evalNameNode"),sujet.getNomElt());
|
retour = analyseNameNode(retour,null, sujet.getNomElt(), sujet.getAttributs().get("evalNameNode"),sujet.getNomElt());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(k.equals("evalNameCreator") && sujet.getNomElt().equals("dc:creator")) {
|
||||||
|
if(nodeStudent!=null) {
|
||||||
|
retour = analyseNameCreator(retour,nodeStudent, nodeStudent.getContenu(), sujet.getAttributs().get("evalNameCreator"),"Editeur");
|
||||||
|
}else {
|
||||||
|
retour = analyseNameCreator(retour,null, "Editeur inconnu", sujet.getAttributs().get("evalNameCreator"),"Editeur");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(k.equals("evalNameInitialCreator") && sujet.getNomElt().equals("meta:initial-creator")) {
|
||||||
|
if(nodeStudent!=null) {
|
||||||
|
retour = analyseNameInitialCreator(retour,nodeStudent, nodeStudent.getContenu(), sujet.getAttributs().get("evalNameInitialCreator"),"Créateur");
|
||||||
|
}else {
|
||||||
|
retour = analyseNameInitialCreator(retour,null, "Créateur inconnu", sujet.getAttributs().get("evalNameInitialCreator"),"Créateur");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//avec l'attribut allContent="strict1" ou allContent="environ1" alors analyse tout le contenu du node
|
//avec l'attribut allContent="strict1" ou allContent="environ1" alors analyse tout le contenu du node
|
||||||
if(sujet.getAttributs().get("allContent")!=null) if(!sujet.getAttributs().get("allContent").isEmpty()){
|
if(sujet.getAttributs().get("allContent")!=null) if(!sujet.getAttributs().get("allContent").isEmpty()){
|
||||||
@ -3293,7 +3108,7 @@ public class meptl {
|
|||||||
fichier.write(HTML.H2("Synthèse"));
|
fichier.write(HTML.H2("Synthèse"));
|
||||||
|
|
||||||
fichier.write(HTML.TableEnteteTableurSynthese());
|
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)
|
String IdError = ""; // permet de récupérer les id des menus ou la proportion correct est NaN. (à cause de l'attribut analyseStyle=true)
|
||||||
for(int k = 0 ; k < nodana.getNodes().size();k++) {
|
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("addmenu")!=null) if(nodana.getNodes().get(k).getAttributs().get("addmenu").equals("true")) {
|
||||||
if(!nodana.getNodes().get(k).getAttributs().get("proportioncorrect").equals("NaN")) {
|
if(!nodana.getNodes().get(k).getAttributs().get("proportioncorrect").equals("NaN")) {
|
||||||
@ -4792,162 +4607,8 @@ public class meptl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static node addAttributsAnalyseWriter(node noPourPlacerEvaluer, String nameNodeRacine) {
|
|
||||||
ArrayList<node> no = noPourPlacerEvaluer.retourneEnfantsByName(nameNodeRacine, new ArrayList<node>());
|
|
||||||
for(int j = 0 ; j < no.size(); j++) {
|
|
||||||
noPourPlacerEvaluer.getNodes().remove(no.get(j));
|
|
||||||
no.get(j).getAttributs().put("saut", "false");
|
|
||||||
no.get(j).getAttributs().put("evaluer", "false");
|
|
||||||
no.get(j).getAttributs().put("titre", "");
|
|
||||||
no.get(j).getAttributs().put("styletitre", "nostyle");
|
|
||||||
ArrayList<node> no1 = no.get(j).getNodes();
|
|
||||||
for(int k=0 ; k < no1.size(); k++) {
|
|
||||||
no1.get(k).getAttributs().put("evaluer", "false");
|
|
||||||
if(listeDesNodesAvecEvalNode(no1.get(k).getNomElt())) no1.get(k).getAttributs().put("evalNameNode", "0");
|
|
||||||
if(listeDesNodesSautEtTitre(no1.get(k).getNomElt())) {no1.get(k).getAttributs().put("saut", "false"); no1.get(k).getAttributs().put("titre", ""); no1.get(k).getAttributs().put("styletitre", "nostyle");}
|
|
||||||
if(listeDesNodesRecherche(no1.get(k).getNomElt())) {no1.get(k).getAttributs().put("recherche_index", "false"); no1.get(k).getAttributs().put("recherche_contenu_exact", "false");}
|
|
||||||
if(listeDesNodesAnalyseStyle(no1.get(k).getNomElt())) no1.get(k).getAttributs().put("analyseStyle", "false");
|
|
||||||
|
|
||||||
ArrayList<node> no2 = no1.get(k).getNodes();
|
|
||||||
for(int l=0 ; l < no2.size(); l++) {
|
|
||||||
no2.get(l).getAttributs().put("evaluer", "false");
|
|
||||||
if(listeDesNodesAvecEvalNode(no2.get(l).getNomElt())) no2.get(l).getAttributs().put("evalNameNode", "0");
|
|
||||||
if(listeDesNodesSautEtTitre(no2.get(l).getNomElt())) {no2.get(l).getAttributs().put("saut", "false"); no2.get(l).getAttributs().put("titre", "");no2.get(l).getAttributs().put("styletitre", "nostyle");}
|
|
||||||
if(listeDesNodesRecherche(no2.get(l).getNomElt())) {no2.get(l).getAttributs().put("recherche_index", "false"); no2.get(l).getAttributs().put("recherche_contenu_exact", "false");}
|
|
||||||
if(listeDesNodesAnalyseStyle(no2.get(l).getNomElt())) no2.get(l).getAttributs().put("analyseStyle", "false");
|
|
||||||
|
|
||||||
ArrayList<node> no3 = no2.get(l).getNodes();
|
|
||||||
for(int m=0 ; m < no3.size(); m++) {
|
|
||||||
no3.get(m).getAttributs().put("evaluer", "false");
|
|
||||||
if(listeDesNodesAvecEvalNode(no3.get(m).getNomElt())) no3.get(m).getAttributs().put("evalNameNode", "0");
|
|
||||||
if(listeDesNodesSautEtTitre(no3.get(m).getNomElt())) {no3.get(m).getAttributs().put("saut", "false"); no3.get(m).getAttributs().put("titre", "");no3.get(m).getAttributs().put("styletitre", "nostyle");}
|
|
||||||
if(listeDesNodesRecherche(no3.get(m).getNomElt())) {no3.get(m).getAttributs().put("recherche_index", "false"); no3.get(m).getAttributs().put("recherche_contenu_exact", "false");}
|
|
||||||
if(listeDesNodesAnalyseStyle(no3.get(m).getNomElt())) no3.get(m).getAttributs().put("analyseStyle", "false");
|
|
||||||
|
|
||||||
ArrayList<node> no4 = no3.get(m).getNodes();
|
|
||||||
for(int n=0 ; n < no4.size(); n++) {
|
|
||||||
no4.get(n).getAttributs().put("evaluer", "false");
|
|
||||||
if(listeDesNodesAvecEvalNode(no4.get(n).getNomElt())) no4.get(n).getAttributs().put("evalNameNode", "0");
|
|
||||||
if(listeDesNodesSautEtTitre(no4.get(n).getNomElt())) {no4.get(n).getAttributs().put("saut", "false"); no4.get(n).getAttributs().put("titre", "");no4.get(n).getAttributs().put("styletitre", "nostyle");}
|
|
||||||
if(listeDesNodesRecherche(no4.get(n).getNomElt())) {no4.get(n).getAttributs().put("recherche_index", "false"); no4.get(n).getAttributs().put("recherche_contenu_exact", "false");}
|
|
||||||
if(listeDesNodesAnalyseStyle(no4.get(n).getNomElt())) no4.get(n).getAttributs().put("analyseStyle", "false");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
noPourPlacerEvaluer.getNodes().addAll(no);
|
|
||||||
return noPourPlacerEvaluer;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean listeDesNodesAvecEvalNode(String nameNode) {
|
|
||||||
if(nameNode.contains("meta:")) return true;
|
|
||||||
if(nameNode.contains("dc:")) return true;
|
|
||||||
if(nameNode.contains("text:")) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean listeDesNodesSautEtTitre(String nameNode) {
|
|
||||||
if(nameNode.contains("meta:")) return true;
|
|
||||||
if(nameNode.contains("dc:")) return true;
|
|
||||||
if(nameNode.contains("style:")) return true;
|
|
||||||
if(nameNode.contains("text:")) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean listeDesNodesRecherche(String nameNode) {
|
|
||||||
if(nameNode.contains("text:")) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean listeDesNodesAnalyseStyle(String nameNode) {
|
|
||||||
if(nameNode.equals("text:p")) return true;
|
|
||||||
if(nameNode.equals("text:span")) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ce node permet la configuration personnalisé de l'application.<br>
|
|
||||||
* Ajoute le node setting avec les différentes valeurs.<br>
|
|
||||||
*
|
|
||||||
* @param sujet Le node du sujet.
|
|
||||||
* @return Le node du sujet avec le node setting ajouté.
|
|
||||||
*/
|
|
||||||
private static node addSetting(node sujet) {
|
|
||||||
//node setting
|
|
||||||
node setting = new node();
|
|
||||||
setting.setNomElt("setting");
|
|
||||||
setting.getAttributs().put("culture","FR");
|
|
||||||
|
|
||||||
|
|
||||||
//node csv
|
|
||||||
node csv = new node();
|
|
||||||
csv.setNomElt("csv");
|
|
||||||
csv.getAttributs().put("encoding", "UTF-8");
|
|
||||||
csv.getAttributs().put("separator", ";");
|
|
||||||
csv.setContenu("choose the encoding from this list : UTF-8 US-ASCII ISO-8859-1 UTF-16BE UTF-16LE UTF-16");
|
|
||||||
csv.setClose(true);
|
|
||||||
|
|
||||||
//node export du csv
|
|
||||||
node export = new node();
|
|
||||||
export.setNomElt("import_moodle");
|
|
||||||
export.getAttributs().put("email", "adresse");
|
|
||||||
export.getAttributs().put("id", "identification");
|
|
||||||
export.getAttributs().put("firstname", "prenom");
|
|
||||||
export.getAttributs().put("name", "nom");
|
|
||||||
export.setClose(true);
|
|
||||||
|
|
||||||
//node taille zip
|
|
||||||
node zip = new node();
|
|
||||||
zip.setNomElt("zip");
|
|
||||||
zip.getAttributs().put("size", "48000000");
|
|
||||||
zip.getAttributs().put("nameZip", "feedbackMoodle");
|
|
||||||
zip.isClose();
|
|
||||||
|
|
||||||
//node verif
|
|
||||||
node plagiarism = new node();
|
|
||||||
plagiarism.setNomElt("plagiarism");
|
|
||||||
plagiarism.getAttributs().put("number_match", "2");
|
|
||||||
plagiarism.getAttributs().put("mini_number_modification", "-1");
|
|
||||||
plagiarism.getAttributs().put("nombres_modifications_simultané_maxi", "100");
|
|
||||||
plagiarism.setClose(true);
|
|
||||||
|
|
||||||
//construction node similitude
|
|
||||||
node similarity = new node();
|
|
||||||
similarity.setNomElt("text:similarity");
|
|
||||||
similarity.getAttributs().put("tolerance_characters", "5");
|
|
||||||
similarity.getAttributs().put("tolerance_text", "0.79");
|
|
||||||
similarity.setClose(true);
|
|
||||||
|
|
||||||
//node color
|
|
||||||
node color = new node();
|
|
||||||
color.setNomElt("color");
|
|
||||||
color.getAttributs().put("tolerance_rouge", "30");
|
|
||||||
color.getAttributs().put("tolerance_vert", "30");
|
|
||||||
color.getAttributs().put("tolerance_bleu", "30");
|
|
||||||
color.setClose(true);
|
|
||||||
|
|
||||||
//construction du node setting
|
|
||||||
csv.getNodes().add(export);
|
|
||||||
setting.getNodes().add(csv);
|
|
||||||
setting.getNodes().add(zip);
|
|
||||||
setting.getNodes().add(plagiarism);
|
|
||||||
setting.getNodes().add(similarity);
|
|
||||||
setting.getNodes().add(color);
|
|
||||||
|
|
||||||
//ajoute la node translation
|
|
||||||
setting.getNodes().add(Run.translation());
|
|
||||||
|
|
||||||
|
|
||||||
// ajoute le node setting au node sujet
|
|
||||||
sujet.getNodes().add(setting);
|
|
||||||
|
|
||||||
//fermeture du node
|
|
||||||
setting.setClose(true);
|
|
||||||
|
|
||||||
return sujet;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* recherche en cascade des nodes en fonction de leur contenu.
|
* recherche en cascade des nodes en fonction de leur contenu.
|
||||||
@ -5251,6 +4912,7 @@ public class meptl {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Analyse le nom du node
|
||||||
*
|
*
|
||||||
* @param retour : le node retour qui contient l'item ajouté
|
* @param retour : le node retour qui contient l'item ajouté
|
||||||
* @param nodStudent : le node Student qui peut être null
|
* @param nodStudent : le node Student qui peut être null
|
||||||
@ -5271,6 +4933,29 @@ public class meptl {
|
|||||||
return retour;
|
return retour;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static node analyseNameCreator(node retour, node nodStudent, String nameCreator, String point, String nameElt) {
|
||||||
|
node item = null;
|
||||||
|
if(nodStudent!=null) {
|
||||||
|
item = retourneNoteAvecResultatsAnalyse(nameCreator,"name", nodStudent.getAttributs().get("creator"),nameCreator + "↑‽" +point, nameElt );
|
||||||
|
}else {
|
||||||
|
outils.IncrementPointTotal(Integer.valueOf(point));
|
||||||
|
item = new node(nameCreator, "Erreur", "Nom du l'éditeur" , "null", nameCreator, 2, outils.getPointEnJeu(),nameElt);
|
||||||
|
}
|
||||||
|
retour.getNodes().add(item);
|
||||||
|
return retour;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static node analyseNameInitialCreator(node retour, node nodStudent, String nameCreator, String point, String nameElt) {
|
||||||
|
node item = null;
|
||||||
|
if(nodStudent!=null) {
|
||||||
|
item = retourneNoteAvecResultatsAnalyse(nameCreator,"name", nodStudent.getAttributs().get("initial-creator"),nameCreator + "↑‽" +point, nameElt );
|
||||||
|
}else {
|
||||||
|
outils.IncrementPointTotal(Integer.valueOf(point));
|
||||||
|
item = new node(nameCreator, "Erreur", "Nom du créateur" , "null", nameCreator, 2, outils.getPointEnJeu(),nameElt);
|
||||||
|
}
|
||||||
|
retour.getNodes().add(item);
|
||||||
|
return retour;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -702,7 +702,7 @@ public class outils {
|
|||||||
A = A.replace("'", "");
|
A = A.replace("'", "");
|
||||||
A = A.replace(""", "");
|
A = A.replace(""", "");
|
||||||
|
|
||||||
Pattern pt = Pattern.compile("[^a-zA-Z0-9]"); // avec les chiffres "[^a-zA-Z0-9]"
|
Pattern pt = Pattern.compile("[^a-z]"); // avec les chiffres "[^a-zA-Z0-9]"
|
||||||
Matcher match= pt.matcher(A);
|
Matcher match= pt.matcher(A);
|
||||||
while(match.find()){
|
while(match.find()){
|
||||||
String s= match.group();
|
String s= match.group();
|
||||||
|
Loading…
Reference in New Issue
Block a user