Item item = new Item(type: ItemService.ITEM_TYPE_CDT)
item.save()
- // crée l'autorisation et specifie que l'autorité et le propriétaire de l'item
+ // crée l'autorisation et specifie que l'autorité est le propriétaire de l'item
Autorisation autorisation = autorisationService.creeAutorisation(
proprietaire,
item,
String description
// Représente le contenu du cahier de textes sous la forme d'une liste plate contenant les
- // chapitres & activités triés avec l'information de profondeur dans l'arbre
- List<CahierDeTextesContenuElementInfo> contenuListePlate
+ // chapitres & activités triés avec l'information de profondeur dans l'arbre
+ List<CahierDeTextesContenuElementInfo> contenuListePlate
}
import org.lilie.services.eliot.scolarite.StructureEnseignement
import org.lilie.services.eliot.scolarite.AnneeScolaire
import org.lilie.services.eliot.scolarite.anneescolaire.AnneeScolaireService
+import org.lilie.services.eliot.applications.textes.importexport.rapport.TextesImportRapport
/**
* Sous module de l'import de cahiers de textes au format XML
}
if (!chapitre.save(flush: true)) {
- throw new CreationContenuException(("""Echec de la création du chapitre ${chapitre?.nom}
- (cahier: ${cdt?.nom}, chapitre parent: ${chapitre?.chapitre?.nom}) :
- "${chapitre.errors}""").toString())
+ throw new CreationContenuException(("""Echec de la création du chapitre
+ '${chapitre?.nom}' (cahier: ${cdt?.nom},
+ chapitre parent: ${chapitre?.chapitre?.nom}) :
+ ${chapitre.errors}""").toString())
}
}
if (!activite.save(flush: true)) {
throw new CreationContenuException(
- ("""Echec de la création de l'activité ${activite?.titre}
+ ("""Echec de la création de l'activité '${activite?.titre}'
(cahier: ${cdt?.nom}, chapitre parent: ${activite?.chapitre?.nom}) :
${activite.errors}""").toString()
)
if (listePersonnes.size() > 1) {
throw new RecherchePersonneUniqueException(
- "Plusieurs personnes ont le même \n Nom : "
- + proprietaireInfo.nom + "\n même Prénom : " + proprietaireInfo.prenom +
- "\n même Date de naissance : " + proprietaireInfo.dateNaissance
+ "Plusieurs personnes ont le même \n nom : "
+ + proprietaireInfo.nom + ",\n même prénom : " + proprietaireInfo.prenom +
+ " et \n même date de naissance : " + proprietaireInfo.dateNaissance
)
}
if (listePersonnes.size() == 0) {
throw new RecherchePersonneUniqueException(
- "Aucune personne trouvée : \n Nom : " +
- proprietaireInfo.nom + "\n Prénom : " + proprietaireInfo.prenom +
- "\n Date de naissance : " + proprietaireInfo.dateNaissance
+ "Aucune personne trouvée : \n nom : " +
+ proprietaireInfo.nom + ",\n prénom : " + proprietaireInfo.prenom +
+ ",\n date de naissance : " + proprietaireInfo.dateNaissance
)
}
}
CahierDeTextes rechercheCahier(Personne proprietaire,
- CahierDeTextesInfo cahierInfo) {
+ CahierDeTextesInfo cahierInfo,
+ TextesImportRapport rapportPrincipal) {
String codeEtablissement = cahierInfo.etablissementInfo?.codeEtablissement
Etablissement etablissement = null
etablissement = Etablissement.findByUai(codeEtablissement)
}
if (!etablissement){
- throw new CahierDeTextesInvalideException("""Le cahier ne peut pas être importé
-car il n'est lié à aucun établissement""")
+ throw new CahierDeTextesInvalideException("Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' " +
+ "n'est lié à aucun établissement")
}
Matiere matiere = null
matiere = Matiere.findByCodeGestion(codeGestionMatiere)
}
if (!matiere){
- //TODO: ajouter warning dans rapport précisant qu'un cahier privé est créé
- log.error("""La matière liée au cahier de classe à importer n'existe pas""")
+ log.info("La matière '${codeGestionMatiere}' du cahier de textes " +
+ "à importer n'existe pas")
+ rapportPrincipal.ajouterWarning("Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' " +
+ "a été importé en tant que cahier privé " +
+ "car sa matière (code : ${codeGestionMatiere}) " +
+ "n'existe pas")
return null
}
etablissement,
false)
if (!structureEnseignement){
- //TODO: ajouter warning dans rapport précisant qu'un cahier privé est créé
- log.error("""La structure d'enseignement liée au cahier de classe à importer
-n'existe pas""")
+ log.info("La structure d'enseignement de code " +
+ "'${structureEnseignementCode}', " +
+ "de type '${structureEnseignementType}' " +
+ "dans l'établissement '${etablissement.nomAffichage}' " +
+ "du cahier de textes à importer n'existe pas")
+ rapportPrincipal.ajouterWarning("Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' " +
+ "a été importé en tant que cahier privé " +
+ "car sa structure d'enseignement de code " +
+ "'${structureEnseignementCode}', " +
+ "de type '${structureEnseignementType}' " +
+ "dans l'établissement '${etablissement.uai}' " +
+ "n'existe pas")
return null
}
return cahier
} else {
- // TODO : gérer les cahiers de classe d'archives
- return null
+ throw new CahierDeTextesInvalideException("Le cahier de textes de classe " +
+ "appartenant à ${proprietaire.prenom} ${proprietaire.nom} et " +
+ "correspondant à l'année ${anneeScolaireCode} " +
+ "ne peut pas être importé car il ne concerne pas l'année en cours")
}
}
}
import org.lilie.services.eliot.applications.textes.importexport.erreur.TextesErreurXmlInvalide
import org.lilie.services.eliot.applications.textes.importexport.erreur.TextesErreurInconnue
import org.lilie.services.eliot.applications.textes.importexport.erreur.TextesErreurConnue
+import org.lilie.services.eliot.securite.AutorisationException
/**
* Service principal des imports de cahiers de textes depuis des fichiers XML
cheminImport
)
}
- catch (Exception e) {
+ catch (TextesInvalideXmlException e) {
traiteErreurXmlInvalide(e, rapportPrincipal)
return rapportPrincipal
}
importeCdt(securiteSession, cdt, rapportPrincipal)
}
+ // si un seul cahier est en échec, l'import de tous les cahiers sera rollbacké
+ if (rapportPrincipal.nombreCdtCreer < rapportPrincipal.nombreCdtParse){
+ rapportPrincipal.nombreCdtCreer = 0
+ rapportPrincipal.listWarnings = []
+ }
+
return rapportPrincipal
}
rapportPrincipal.incNombreCdtParse()
ImportCahierCommand cahierCommand = textesImportTransformService.transform(
- cahierInfo
+ cahierInfo,
+ rapportPrincipal
)
textesImportLoaderService.load(securiteSession, cahierCommand)
rapportPrincipal.incNombreCdtCreer()
}
catch (CahierDeTextesInvalideException e) {
- log.error("Erreur durant l'import d'un cahier", e)
-
- rapportPrincipal.ajouterErreur(new TextesErreurConnue(erreur: e))
+ traiteErreurConnue(e, rapportPrincipal)
}
catch (RecherchePersonneUniqueException e) {
- log.error("Erreur durant l'import d'un cahier", e)
-
- rapportPrincipal.ajouterErreur(new TextesErreurConnue(erreur: e))
+ traiteErreurConnue(e, rapportPrincipal)
}
catch (CreationContenuException e) {
- log.error("Erreur durant l'import d'un cahier", e)
-
- rapportPrincipal.ajouterErreur(new TextesErreurConnue(erreur: e))
+ traiteErreurConnue(e, rapportPrincipal)
+ }
+ catch (AutorisationException e){
+ traiteErreurConnue(e, rapportPrincipal)
}
catch (Exception e) {
- log.error("Erreur durant l'import d'un cahier", e)
-
- rapportPrincipal.ajouterErreur(new TextesErreurInconnue(erreur: e))
+ traiteErreurInconnue(e, rapportPrincipal)
}
}
* @param e : exception
* @param rapportPrincipal : rapport principal affiche cette erreur
*/
- private void traiteErreurXmlInvalide(Exception e,
+ private void traiteErreurXmlInvalide(TextesInvalideXmlException e,
TextesImportRapport rapportPrincipal) {
log.error("Le fichier XML est invalide", e)
new TextesErreurXmlInvalide(erreur: e)
)
}
+
+ private void traiteErreurConnue(Exception e,
+ TextesImportRapport rapportPrincipal) {
+ log.error("Erreur de type durant l'import d'un cahier", e)
+
+ rapportPrincipal.ajouterErreur(new TextesErreurConnue(erreur: e))
+ }
+
+ private void traiteErreurInconnue(Exception e,
+ TextesImportRapport rapportPrincipal) {
+ log.error("Erreur durant l'import d'un cahier", e)
+
+ rapportPrincipal.ajouterErreur(new TextesErreurInconnue(erreur: e))
+ }
}
import org.lilie.services.eliot.applications.textes.CahierDeTextesService
import org.lilie.services.eliot.textes.Activite
import org.lilie.services.eliot.textes.Chapitre
+import org.lilie.services.eliot.applications.textes.importexport.rapport.TextesImportRapport
/**
* Sous module de l'import des cahiers de textes au format XML.
TextesImportLoaderService textesImportLoaderService
CahierDeTextesService cahierDeTextesService
- ImportCahierCommand transform(CahierDeTextesInfo cahierInfo) {
+ ImportCahierCommand transform(CahierDeTextesInfo cahierInfo,
+ TextesImportRapport rapportPrincipal) {
Personne proprietaire = textesImportLoaderService.rechercheProprietaireCdt(
cahierInfo.proprietaireInfo
CahierDeTextes cahierCible
if (!cahierInfo.estPrive) {
- cahierCible = textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo)
+ cahierCible = textesImportLoaderService.rechercheCahier(proprietaire,
+ cahierInfo,
+ rapportPrincipal)
if (cahierCible){
- List<Activite> activiteList = cahierDeTextesService.findAllActiviteByCahierDeTextes(cahierCible, true)
- List<Chapitre> chapitreList = cahierDeTextesService.findAllChapitreByCahierDeTextes(cahierCible)
- if (activiteList?.size() > 0 || chapitreList?.size() > 0){
+ List<Activite> activiteList =
+ cahierDeTextesService.findAllActiviteByCahierDeTextes(cahierCible, true)
+ List<Chapitre> chapitreList =
+ cahierDeTextesService.findAllChapitreByCahierDeTextes(cahierCible)
+ if (activiteList.size() > 0 || chapitreList.size() > 0){
// le contenu d'un cahier de classe ne doit pas être importé si ce
// cahier a déjà du contenu -> on crée un cahier privé
cahierCible = null
- // TODO: ajouter warning dans rapport
+ rapportPrincipal.ajouterWarning("Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' a été " +
+ "importé en tant que cahier privé car " +
+ "il dispose déjà d'un contenu")
}
}
}
Exception erreur
public String getMessage(){
- return "Le cahier de textes n'a pas été créé : ${erreur.message}"
+ return "Erreur - Le cahier de textes n'a pas été importé : ${erreur.message}"
}
}
\ No newline at end of file
TextesImportActiviteInfo activiteInfo
public String getMessage() {
- String message = "Echec de la création de l'activité ${activiteInfo?.titre} "+
+ String message = "Erreur - Echec de la création de l'activité ${activiteInfo?.titre} "+
"(cahier: ${cdt?.nom}, chapitre parent: ${chapitreParent?.nom})"
return message
Personne proprietaire
public String getMessage() {
- String message = "Echec de la création du cahier de textes "+
+ String message = "Erreur - Echec de la création du cahier de textes "+
"${proprietaire.prenom} ${proprietaire.nom} : "+exception.cause
return message
String titreChapitre
public String getMessage() {
- String message = "Echec de la création du chapitre ${titreChapitre} "+
+ String message = "Erreur - Echec de la création du chapitre ${titreChapitre} "+
"(cahier: ${cdt?.nom}, chapitre parent: ${chapitreParent?.nom})"
return message
Exception erreur
public String getMessage(){
- return "Une erreur inattendue s'est produite durant l'import : ${erreur.message}"
+ return "Erreur - Une erreur inattendue s'est produite durant l'import : ${erreur.message}"
}
}
\ No newline at end of file
Chapitre chapitreParent
public String getMessage() {
- String message = "Les informations d'une activité n'ont pas pu être récupérées "+
+ String message = "Erreur - Les informations d'une activité n'ont pas pu être récupérées "+
"(cahier de textes : ${cdt.nom}"
if(chapitreParent) {
Chapitre chapitreParent
public String getMessage() {
- String message = "Les informations d'un chapitre n'ont pas pu être récupérées "+
+ String message = "Erreur - Les informations d'un chapitre n'ont pas pu être récupérées "+
"(cahier de textes : ${cdt.nom}"
if(chapitreParent) {
public class TextesErreurParseMetaDonnees implements TextesErreurImport{
public String getMessage() {
- String message = "Les informations de méta données n'ont pas pu être récupérées"
+ String message = "Erreur - Les informations de méta données n'ont pas pu être récupérées"
return message
}
}
\ No newline at end of file
RecherchePersonneUniqueException erreur
public String getMessage() {
- String message = erreur.message
+ String message = "Erreur - " + erreur.message
return message
}
RecherchePersonneUniqueException erreur
public String getMessage() {
- String message = erreur.message
+ String message = "Erreur : " + erreur.message
return message
}
String uai
public String getMessage() {
- String message = """Le répertoire $urlRacine/$uai n'existe pas"""
+ String message = """Erreur - Le répertoire $urlRacine/$uai n'existe pas"""
return message
}
Exception erreur
public String getMessage() {
- String message = "Le fichier XML n'est pas valide : " + erreur.cause.message
+ String message = "Erreur - Le fichier XML n'est pas valide : " + erreur.cause.message
return message
}
p(erreurImport.getMessage())
}
br {}
+
+ rapport.listWarnings.each {
+ String warningImport ->
+ p(warningImport)
+ }
+ br {}
}
br {}
br {}
int tempsExecution = 0
List<TextesErreurImport> listTexteErreursImport = (List) []
+ List<String> listWarnings = (List) []
public void ajouterErreur(TextesErreurImport erreur) {
this.listTexteErreursImport << erreur
}
+ public void ajouterWarning(String warning) {
+ this.listWarnings << "Information - " + warning
+ }
+
public void setDateImport(String date) {
this.dateImport = date
}
", nombreCdtCreer=" + nombreCdtCreer +
", tempsExecution=" + tempsExecution +
", listTexteErreursImport=" + listTexteErreursImport +
+ ", listWarnings=" + listWarnings +
'}';
}
}
// PATCH
// Si l'objet n'a pas été indexé api-recherce jete une exception
// Fait index l'objet au lieu de le reeindexerContenuUniquement
- log.warn("Apelle de reindexeContenuCahierDeTexte a levé une exception: " +
+ log.warn("L'appel de reindexeContenuCahierDeTexte a levé une exception: " +
e + ". L'indexation du cahier de textes va être lancée.")
lancerIndexeCahierDeTexte = true
}
<xs:all>
<xs:element minOccurs="1" ref="proprietaire"/>
<xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:element minOccurs="0" ref="etablissement"/>
+ <xs:element minOccurs="1" ref="etablissement"/>
<xs:element minOccurs="0" ref="niveau"/>
<xs:element minOccurs="0" ref="structure-enseignement"/>
<xs:element minOccurs="0" ref="matiere"/>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="external-id"/>
- <xs:element minOccurs="0" ref="denomination"/>
<xs:element minOccurs="0" ref="nom"/>
<xs:element minOccurs="0" ref="prenom"/>
<xs:element minOccurs="0" ref="date-naissance"/>
<xs:element name="matiere">
<xs:complexType>
<xs:attribute name="code" type="xs:string"/>
- <xs:attribute name="libelle" type="xs:string"/>
</xs:complexType>
</xs:element>
<?xml version="1.0" encoding="UTF-8"?>
<cahiers-de-textes xmlns="http://lilie.org/services/eliot/interoperabilite/textes/0.2">
- <cahier-de-textes titre='PHILOSOPHIE - TES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000099000</external-id>
- <denomination>SOPHIE PHILO</denomination>
- <nom>PHILO</nom>
- <prenom>SOPHIE</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu></contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='GEOGRAPHIE - TES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000099000</external-id>
- <denomination>GUILLEROT BENOIT</denomination>
- <nom>GUILLEROT</nom>
- <prenom>BENOIT</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu></contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='ANGLAIS-2NDE3 - vide'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000054000</external-id>
- <denomination>SACHA BAGIEU</denomination>
- <nom>BAGIEU</nom>
- <prenom>SACHA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu></contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='ANGLAIS-1ES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000054000</external-id>
- <denomination>SACHA BAGIEU</denomination>
- <nom>BAGIEU</nom>
- <prenom>SACHA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <activite contexte='MAI' etat='non-publiee'>
- <titre>1ère activité</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>1ère activité du 1er cahier & c'est la meilleure plus</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date></date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='CLA' etat='publiee'>
- <titre>2ème activité & compagnie</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>2ème activité, publiée celle-là</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>30</duree>
- <date-realisation>2010-08-05T14:10:00</date-realisation>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='ANGLAIS-2NDE4'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000057000</external-id>
- <denomination>SACHA MARTIN</denomination>
- <nom>MARTIN</nom>
- <prenom>SACHA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <activite contexte='CLA' etat='publiee'>
- <titre>Activité avec des supports</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Essai d'activité avec des supports</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-08-05T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1166/images.jpg' />
- <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1167/ISI%200-4%20Cahier%20de%20texte.pdf' />
- </ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='CLA' etat='publiee'>
- <titre>activité avec 2 dates</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Activité avec 2 dates</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>60</duree>
- <date-realisation>2010-10-01T10:10:00</date-realisation>
- </date>
- <date>
- <duree>60</duree>
- <date-realisation>2010-10-08T10:10:00</date-realisation>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='MAI' etat='publiee'>
- <titre>Activité avec objectif et annotations</titre>
- <type-activite>INT</type-activite>
- <description>
- <description-generale>Activité avec objectif et annotations - en description</description-generale>
- <objectifs>Ce sont les objectifs de l'activités.</objectifs>
- <annotation-privee>Ce sont les annotations de l'activités.</annotation-privee>
- </description>
- <dates>
- <date>
- <duree>30</duree>
- <date-echeance>2010-09-04T15:10:00</date-echeance>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='MATHEMATIQUES - 1ES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000066000</external-id>
- <denomination>ANNA ROUSSEAU</denomination>
- <nom>ROUSSEAU</nom>
- <prenom>ANNA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <chapitre titre='Trigonométrie' />
- <chapitre titre='Calcul différentiel' />
- <chapitre titre='Calcul exponentiel' />
- <chapitre titre='Statistiques'>
- <chapitre titre='Application : le loto' />
- <chapitre titre='Les probabilités appliquées' />
- </chapitre>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='MATHEMATIQUES - 1ES2'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000066000</external-id>
- <denomination>ANNA ROUSSEAU</denomination>
- <nom>ROUSSEAU</nom>
- <prenom>ANNA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <chapitre titre='Statistiques'>
- <activite contexte='MAI' etat='publiee'>
- <titre>Recherche sur le loto</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Trouver les bon numéros</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-echeance>2010-08-05T15:00:00</date-echeance>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' url='http://www.fdjeux.com' />
- </ressources>
- <matiere></matiere>
- </activite>
- </chapitre>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='SCIENCES ECO - 1ES7'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000067000</external-id>
- <denomination>MURIEL CURIE</denomination>
- <nom>CURIE</nom>
- <prenom>MURIEL</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <activite contexte='CLA' etat='publiee'>
- <titre>Vision de l'avenir de l'économie</titre>
- <type-activite>TP</type-activite>
- <description>
- <description-generale></description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-08-10T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- <chapitre titre='L économie souterraine'>
- <activite contexte='CLA' etat='publiee'>
- <titre>Le réseau russe</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Ce que cache la mafia</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-09-06T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' url='http://www.tf1.fr' />
- </ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='CLA' etat='non-publiee'>
- <titre>Le réseau italien</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Ce que cache les nappolitains</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-08-20T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006710/f1265/progression%201ere%20S%202008-2009.pdf' />
- </ressources>
- <matiere></matiere>
- </activite>
- </chapitre>
- </contenu>
- </cahier-de-textes>
-</cahiers-de-textes>
+ <cahier-de-textes titre='ANGLAIS-2NDE3 - vide'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000054000</external-id>
+ <nom>BAGIEU</nom>
+ <prenom>SACHA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu />
+ </cahier-de-textes>
+ <cahier-de-textes titre='ANGLAIS-1ES1'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000054000</external-id>
+ <nom>BAGIEU</nom>
+ <prenom>SACHA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu>
+ <activite contexte='MAI' etat='non-publiee'>
+ <titre>1ère activité</titre>
+ <type-activite />
+ <description>
+ <description-generale>1ère activité du 1er cahier & c'est la meilleure plus</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date />
+ </dates>
+ <ressources />
+ </activite>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>2ème activité & compagnie</titre>
+ <type-activite />
+ <description>
+ <description-generale>2ème activité, publiée celle-là</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>30</duree>
+ <date-realisation>2010-08-05T14:10:00</date-realisation>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='ANGLAIS-2NDE4'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000057000</external-id>
+ <nom>MARTIN</nom>
+ <prenom>SACHA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>Activité avec des supports</titre>
+ <type-activite />
+ <description>
+ <description-generale>Essai d'activité avec des supports</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-08-05T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1166/images.jpg' />
+ <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1167/ISI%200-4%20Cahier%20de%20texte.pdf' />
+ </ressources>
+ </activite>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>activité avec 2 dates</titre>
+ <type-activite />
+ <description>
+ <description-generale>Activité avec 2 dates</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>60</duree>
+ <date-realisation>2010-10-01T10:10:00</date-realisation>
+ </date>
+ <date>
+ <duree>60</duree>
+ <date-realisation>2010-10-08T10:10:00</date-realisation>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ <activite contexte='MAI' etat='publiee'>
+ <titre>Activité avec objectif et annotations</titre>
+ <type-activite>INT</type-activite>
+ <description>
+ <description-generale>Activité avec objectif et annotations - en description</description-generale>
+ <objectifs>Ce sont les objectifs de l'activités.</objectifs>
+ <annotation-privee>Ce sont les annotations de l'activités.</annotation-privee>
+ </description>
+ <dates>
+ <date>
+ <duree>30</duree>
+ <date-echeance>2010-09-04T15:10:00</date-echeance>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='MATHEMATIQUES - 1ES1'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000066000</external-id>
+ <nom>ROUSSEAU</nom>
+ <prenom>ANNA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <matiere code='MATHS'/>
+ <structure-enseignement type='classe' code='1ES1'/>
+ <annee-scolaire>2011-2012</annee-scolaire>
+ </meta-donnees>
+ <contenu>
+ <chapitre titre='Trigonométrie' />
+ <chapitre titre='Calcul différentiel' />
+ <chapitre titre='Calcul exponentiel' />
+ <chapitre titre='Statistiques'>
+ <chapitre titre='Application : le loto' />
+ <chapitre titre='Les probabilités appliquées' />
+ </chapitre>
+ <chapitre titre='test pour import cdt classe' />
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='MATHEMATIQUES - 1ES2'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000066000</external-id>
+ <nom>ROUSSEAU</nom>
+ <prenom>ANNA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <matiere code='MATHS'/>
+ <structure-enseignement type='classe' code='1ES2'/>
+ <annee-scolaire>2011-2012</annee-scolaire>
+ </meta-donnees>
+ <contenu>
+ <chapitre titre='Statistiques'>
+ <activite contexte='MAI' etat='publiee'>
+ <titre>Recherche sur le loto</titre>
+ <type-activite />
+ <description>
+ <description-generale>Trouver les bon numéros</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-echeance>2010-08-05T15:00:00</date-echeance>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' url='http://www.fdjeux.com' />
+ </ressources>
+ </activite>
+ </chapitre>
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='SCIENCES ECO - 1ES7'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000067000</external-id>
+ <nom>CURIE</nom>
+ <prenom>MURIEL</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>Vision de l'avenir de l'économie</titre>
+ <type-activite>TP</type-activite>
+ <description>
+ <description-generale />
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-08-10T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ <chapitre titre='L économie souterraine'>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>Le réseau russe</titre>
+ <type-activite />
+ <description>
+ <description-generale>Ce que cache la mafia</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-09-06T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' url='http://www.tf1.fr' />
+ </ressources>
+ </activite>
+ <activite contexte='CLA' etat='non-publiee'>
+ <titre>Le réseau italien</titre>
+ <type-activite />
+ <description>
+ <description-generale>Ce que cache les nappolitains</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-08-20T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006710/f1265/progression%201ere%20S%202008-2009.pdf' />
+ </ressources>
+ </activite>
+ </chapitre>
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='PHILOSOPHIE - TES1'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000099000</external-id>
+ <nom>PHILO</nom>
+ <prenom>SOPHIE</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu />
+ </cahier-de-textes>
+ <cahier-de-textes titre='GEOGRAPHIE - TES1'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000099000</external-id>
+ <nom>GUILLEROT</nom>
+ <prenom>BENOIT</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu />
+ </cahier-de-textes>
+</cahiers-de-textes>
\ No newline at end of file
def setup() {
fichierUtilsService = Mock()
fichierService = Mock()
- abstractTextesXmlService = new TextesXml02Service(
+ abstractTextesXmlService = new TextesXml03Service(
fichierUtilsService: fichierUtilsService,
fichierService : fichierService
)
File xsdFile = new File("test/resources/eliot-textes-0.3.xsd")
FileInputStream xsdFileInputStream = new FileInputStream(xsdFile)
fichierUtilsService.getResourceAsStream(
- TextesImportExportConstantes.URI_XSD_IMPORT_TEXTES_V2
+ TextesImportExportConstantes.URI_XSD_IMPORT_TEXTES_V3
) >> xsdFileInputStream
when:
File xsdFile = new File("test/resources/eliot-textes-0.3.xsd")
FileInputStream xsdFileInputStream = new FileInputStream(xsdFile)
fichierUtilsService.getResourceAsStream(
- TextesImportExportConstantes.URI_XSD_IMPORT_TEXTES_V2
+ TextesImportExportConstantes.URI_XSD_IMPORT_TEXTES_V3
) >> xsdFileInputStream
when:
import org.lilie.services.eliot.scolarite.AnneeScolaire
import org.lilie.services.eliot.scolarite.structureenseignement.LocalStructureEnseignementService
import org.lilie.services.eliot.scolarite.anneescolaire.AnneeScolaireService
+import org.lilie.services.eliot.applications.textes.importexport.rapport.TextesImportRapport
/**
* @author jbui
then:
RecherchePersonneUniqueException e = thrown(RecherchePersonneUniqueException)
- e.message == "Plusieurs personnes ont le même \n Nom : $nom\n même Prénom : $prenom\n même Date de naissance : $dateNaissance"
+ e.message == "Plusieurs personnes ont le même \n nom : $nom," +
+ "\n même prénom : $prenom " +
+ "et \n même date de naissance : $dateNaissance"
where:
nom = "durand"
then:
RecherchePersonneUniqueException e = thrown(RecherchePersonneUniqueException)
- e.message == "Aucune personne trouvée : \n Nom : $nom\n Prénom : $prenom\n Date de naissance : $dateNaissance"
+ e.message == "Aucune personne trouvée : \n nom : $nom,\n prénom : $prenom," +
+ "\n date de naissance : $dateNaissance"
where:
nom = "durand"
structureEnseignement: structureEnseignement,
matiere: matiere
)
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
anneeScolaireService.anneeScolaireEnCours() >> new AnneeScolaire (
code: codeAnneeScolaire
)
)
when:
- CahierDeTextes cahierDeClasse = textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo)
+ CahierDeTextes cahierDeClasse = textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal)
then:
notThrown(Exception)
where:
codeEtablissement = "000D"
+ idAutorite = 10
+ idProprietaire = 1
codeAnneeScolaire = "2011-2012"
+ matiereCodeGestion = "12C"
structureEnseignementType = "classe"
structureEnseignementCode = "003"
idMatiere = 6
- matiereCodeGestion = "12C"
- idProprietaire = 1
- idAutorite = 10
idStructureEnseignement = 4
forceCreation = false
}
def 'rechercheCahier - cahier de classe inexistant'() {
setup:
- Etablissement etablissement = new Etablissement(
+ Etablissement etablissement = new Etablissement(
uai: codeEtablissement
)
mockDomain(Etablissement, [etablissement])
etablissement: etablissement,
anneeScolaire: anneeScolaire
)
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
anneeScolaireService.anneeScolaireEnCours() >> new AnneeScolaire (
code: codeAnneeScolaire
)
structureEnseignementCode,
structureEnseignementType,
etablissement,
- false
+ forceCreation
) >> structureEnseignement
cahierDeTextesService.findCahierDeTextesClasse(
proprietaire,
) >> null
when:
- textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo)
+ textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal)
then:
CahierDeTextesInvalideException e = thrown(CahierDeTextesInvalideException)
where:
codeEtablissement = "000D"
- codeAnneeScolaire = "2011-2012"
- idMatiere = 6
- idProprietaire = 1
idAutorite = 10
- idStructureEnseignement = 4
+ idProprietaire = 1
+ codeAnneeScolaire = "2011-2012"
matiereCodeGestion = "12C"
structureEnseignementType = "classe"
structureEnseignementCode = "003"
+ idMatiere = 6
+ idStructureEnseignement = 4
+ forceCreation = false
}
def 'rechercheCahier - établissement inexistant'() {
codeEtablissement: codeEtablissement
)
CahierDeTextesInfo cahierInfo = new CahierDeTextesInfo(
+ nomAffichage: nomAffichage,
etablissementInfo: etablissementInfo
)
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
when:
- textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo)
+ textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal)
then:
CahierDeTextesInvalideException e = thrown(CahierDeTextesInvalideException)
- e.message == """Le cahier ne peut pas être importé
-car il n'est lié à aucun établissement"""
+ e.message == "Le cahier de classe '${cahierInfo.nomAffichage}' n'est lié à aucun établissement"
where:
- codeEtablissement = "000D"
- idProprietaire = 1
idAutorite = 10
+ idProprietaire = 1
+ codeEtablissement = "000D"
+ nomAffichage = "ANGLAIS-2NDE4"
}
autorite: autorite
)
Matiere matiere = new Matiere (
- id: idMatiere
+ codeGestion: codeGestion
)
mockDomain(Matiere, [matiere])
mockDomain(StructureEnseignement, null)
codeEtablissement: codeEtablissement
)
CahierDeTextesInfo cahierInfo = new CahierDeTextesInfo(
- etablissementInfo: etablissementInfo
+ nomAffichage: nomAffichage,
+ etablissementInfo: etablissementInfo,
+ matiereCodeGestion: codeGestion
)
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
when:
- CahierDeTextes cahierDeClasse = textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo)
+ CahierDeTextes cahierDeClasse = textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal)
then:
notThrown(Exception)
cahierDeClasse == null
+ rapportPrincipal.listWarnings.get(0) == "Information - Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' " +
+ "a été importé en tant que cahier privé " +
+ "car sa structure d'enseignement de code " +
+ "'${structureEnseignementCode}', " +
+ "de type '${structureEnseignementType}' " +
+ "dans l'établissement '${etablissement.uai}' " +
+ "n'existe pas"
where:
codeEtablissement = "000D"
- idMatiere = 6
- idProprietaire = 1
idAutorite = 10
+ idProprietaire = 1
+ codeGestion = "MATHS"
+ nomAffichage = "ANGLAIS-2NDE4"
+ structureEnseignementCode = null
+ structureEnseignementType = null
}
def 'rechercheCahier - matière inexistante'() {
codeEtablissement: codeEtablissement
)
CahierDeTextesInfo cahierInfo = new CahierDeTextesInfo(
+ nomAffichage: nomAffichage,
etablissementInfo: etablissementInfo
)
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
when:
- CahierDeTextes cahierDeClasse = textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo)
+ CahierDeTextes cahierDeClasse = textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal)
then:
notThrown(Exception)
cahierDeClasse == null
+ rapportPrincipal.listWarnings.get(0) == "Information - Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' " +
+ "a été importé en tant que cahier privé " +
+ "car sa matière (code : ${codeGestionMatiere}) " +
+ "n'existe pas"
where:
codeEtablissement = "000D"
- idProprietaire = 1
idAutorite = 10
+ idProprietaire = 1
+ nomAffichage = "ANGLAIS-2NDE4"
+ codeGestionMatiere = null
}
}
structureEnseignementType: structureEnseignementType,
structureEnseignementCode: structureEnseignementCode
)
- textesImportTransformService.transform(cahierDeTextesInfo) >>
+ textesImportTransformService.transform(
+ cahierDeTextesInfo,
+ rapportPrincipal) >>
{throw new NullPointerException(erreurMessage)}
when:
rapportPrincipal.listTexteErreursImport.size() == 1
TextesErreurImport erreur = rapportPrincipal.listTexteErreursImport.get(0)
erreur.getMessage() ==
- "Une erreur inattendue s'est produite durant l'import : ${erreurMessage}"
+ "Erreur - Une erreur inattendue s'est produite durant l'import : ${erreurMessage}"
where:
niveau = 1
structureEnseignementType: structureEnseignementType,
structureEnseignementCode: structureEnseignementCode
)
- textesImportTransformService.transform(cahierDeTextesInfo) >>
+ textesImportTransformService.transform(
+ cahierDeTextesInfo,
+ rapportPrincipal) >>
{throw new RecherchePersonneUniqueException(erreurMessage)}
when:
rapportPrincipal.listTexteErreursImport.size() == 1
TextesErreurImport erreur = rapportPrincipal.listTexteErreursImport.get(0)
erreur.getMessage() ==
- "Le cahier de textes n'a pas été créé : ${erreurMessage}"
+ "Erreur - Le cahier de textes n'a pas été importé : ${erreurMessage}"
where:
niveau = 1
structureEnseignementType = "classe"
structureEnseignementCode = "003"
- erreurMessage = "Plusieurs personnes ont le même \n Nom : PHILO" +
- "\n même Prénom : Sophie" +
- "\n même Date de naissance : null"
+ erreurMessage = "Plusieurs personnes ont le même \n nom : PHILO," +
+ "\n même prénom : Sophie," +
+ "\n même date de naissance : null"
}
def 'importeCdt - erreur connue : CreationContenuException'() {
structureEnseignementType: structureEnseignementType,
structureEnseignementCode: structureEnseignementCode
)
- textesImportTransformService.transform(cahierDeTextesInfo) >>
+ textesImportTransformService.transform(
+ cahierDeTextesInfo,
+ rapportPrincipal) >>
{throw new CreationContenuException(erreurMessage)}
when:
rapportPrincipal.listTexteErreursImport.size() == 1
TextesErreurImport erreur = rapportPrincipal.listTexteErreursImport.get(0)
erreur.getMessage() ==
- "Le cahier de textes n'a pas été créé : ${erreurMessage}"
+ "Erreur - Le cahier de textes n'a pas été importé : ${erreurMessage}"
where:
niveau = 1
def 'traiteErreurXmlInvalide'() {
setup:
Throwable cause = new Throwable(causeMessage)
- Exception e = new Exception(erreurMessage, cause)
+ TextesInvalideXmlException e = new TextesInvalideXmlException(
+ erreurMessage,
+ cause)
TextesImportRapport rapportPrincipal = new TextesImportRapport()
when:
rapportPrincipal.listTexteErreursImport.size == 1
rapportPrincipal.listTexteErreursImport.get(0) instanceof TextesErreurImport
rapportPrincipal.listTexteErreursImport.get(0).getMessage() ==
- "Le fichier XML n'est pas valide : ${e.cause.message}"
+ "Erreur - Le fichier XML n'est pas valide : ${e.cause.message}"
where:
erreurMessage = "mon exception"
import org.lilie.services.eliot.textes.Chapitre
import org.lilie.services.eliot.applications.textes.CahierDeTextesService
import org.lilie.services.eliot.textes.Activite
+import org.lilie.services.eliot.applications.textes.importexport.rapport.TextesImportRapport
+import org.lilie.services.eliot.scolarite.Matiere
/**
* @author agia
nomAffichage : nomAffichage,
contenuListePlate : contenuListePlate
)
- Autorite autorite = new Autorite(
- id : id,
- type : type,
- idExterne : idExterne
- )
- Civilite civilite = new Civilite(
- libelle: "Mlle"
- )
Personne proprietaire = new Personne (
- autorite : autorite,
nom : nom,
- prenom : prenom,
- civilite : civilite
+ prenom : prenom
)
CahierDeTextes cahierCible = new CahierDeTextes(
- id : idCahierCible,
- nom : nomCahierCible
+ id: idCahierCible,
+ nom: nomCahierCible
)
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
textesImportLoaderService.rechercheProprietaireCdt(
cahierInfo.proprietaireInfo
) >> proprietaire
- textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo) >>
- cahierCible
+ textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal) >> cahierCible
cahierDeTextesService.findAllActiviteByCahierDeTextes(cahierCible, true) >>
- null
+ listActivites
cahierDeTextesService.findAllChapitreByCahierDeTextes(cahierCible) >>
- null
+ listChapitres
when:
ImportCahierCommand importCahierCommand = textesImportTransformService.transform(
- cahierInfo
+ cahierInfo,
+ rapportPrincipal
)
then:
ordreChapitre1 = 1
nomChapitre2 = "Géographie - Allemagne"
ordreChapitre2 = 2
- id = 1
- type = Autorite.TYPE_ACTEUR
- idExterne = "12345"
+ estPrive = false
+ nomAffichage = "Mon Cahier"
nom = "durand"
prenom = "elodie"
- estPrive = false
- idCahierCible = 2
nomCahierCible = "mon cahier"
- nomAffichage = "Mon Cahier"
+ idCahierCible = 2
+ listActivites = []
+ listChapitres = []
}
def 'transform - cahier de classe existant et avec activites'() {
nomAffichage : nomAffichage,
contenuListePlate : contenuListePlate
)
- Autorite autorite = new Autorite(
- id : id,
- type : type,
- idExterne : idExterne
- )
- Civilite civilite = new Civilite(
- libelle: "Mlle"
- )
Personne proprietaire = new Personne (
- autorite : autorite,
nom : nom,
- prenom : prenom,
- civilite : civilite
- )
- CahierDeTextes cahierCible = new CahierDeTextes(
- id : idCahierCible,
- nom : nomCahierCible
+ prenom : prenom
)
+ CahierDeTextes cahierCible = new CahierDeTextes()
Activite activite = new Activite()
List<Activite> activiteList = [activite]
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
textesImportLoaderService.rechercheProprietaireCdt(
cahierInfo.proprietaireInfo
) >> proprietaire
- textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo) >>
- cahierCible
+ textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal) >> cahierCible
cahierDeTextesService.findAllActiviteByCahierDeTextes(cahierCible, true) >>
activiteList
cahierDeTextesService.findAllChapitreByCahierDeTextes(cahierCible) >>
- null
+ chapitreList
when:
ImportCahierCommand importCahierCommand = textesImportTransformService.transform(
- cahierInfo
+ cahierInfo,
+ rapportPrincipal
)
then:
importCahierCommand.nom == nomAffichage
importCahierCommand.description == "<p>Cahier de texte importé</p>"
importCahierCommand.contenuListePlate.size() == 2
+ rapportPrincipal.listWarnings.get(0) == "Information - Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' a été " +
+ "importé en tant que cahier privé car " +
+ "il dispose déjà d'un contenu"
where:
nomChapitre1 = "Géographie - France"
ordreChapitre1 = 1
nomChapitre2 = "Géographie - Allemagne"
ordreChapitre2 = 2
- id = 1
- type = Autorite.TYPE_ACTEUR
- idExterne = "12345"
- nom = "durand"
- prenom = "elodie"
estPrive = false
- idCahierCible = 2
- nomCahierCible = "mon cahier"
nomAffichage = "Mon Cahier"
+ nom = "durand"
+ prenom = "elodie"
+ chapitreList = []
}
def 'transform - cahier de classe existant et avec chapitres'() {
)
List<CahierDeTextesContenuElementInfo> contenuListePlate =
[chapitre1, chapitre2]
+ Matiere matiere = new Matiere (
+ codeGestion: codeGestion
+ )
+ mockDomain(Matiere, [matiere])
CahierDeTextesInfo cahierInfo = new CahierDeTextesInfo(
proprietaireInfo: new TextesImportProprietaireInfo(),
estPrive: estPrive,
nomAffichage : nomAffichage,
- contenuListePlate : contenuListePlate
- )
- Autorite autorite = new Autorite(
- id : id,
- type : type,
- idExterne : idExterne
- )
- Civilite civilite = new Civilite(
- libelle: "Mlle"
+ contenuListePlate : contenuListePlate,
+ matiereCodeGestion: codeGestion
)
Personne proprietaire = new Personne (
- autorite : autorite,
nom : nom,
- prenom : prenom,
- civilite : civilite
- )
- CahierDeTextes cahierCible = new CahierDeTextes(
- id : idCahierCible,
- nom : nomCahierCible
+ prenom : prenom
)
+ CahierDeTextes cahierCible = new CahierDeTextes()
List<Chapitre> chapitreList = [chapitre1, chapitre2]
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
textesImportLoaderService.rechercheProprietaireCdt(
cahierInfo.proprietaireInfo
) >> proprietaire
- textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo) >>
- cahierCible
+ textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal) >> cahierCible
cahierDeTextesService.findAllActiviteByCahierDeTextes(cahierCible, true) >>
- null
+ activiteList
cahierDeTextesService.findAllChapitreByCahierDeTextes(cahierCible) >>
chapitreList
when:
ImportCahierCommand importCahierCommand = textesImportTransformService.transform(
- cahierInfo
+ cahierInfo,
+ rapportPrincipal
)
then:
importCahierCommand.nom == nomAffichage
importCahierCommand.description == "<p>Cahier de texte importé</p>"
importCahierCommand.contenuListePlate.size() == 2
+ rapportPrincipal.listWarnings.get(0) == "Information - Le cahier de classe " +
+ "'${cahierInfo.nomAffichage}' a été " +
+ "importé en tant que cahier privé car " +
+ "il dispose déjà d'un contenu"
where:
nomChapitre1 = "Géographie - France"
ordreChapitre1 = 1
nomChapitre2 = "Géographie - Allemagne"
ordreChapitre2 = 2
- id = 1
- type = Autorite.TYPE_ACTEUR
- idExterne = "12345"
- nom = "durand"
- prenom = "elodie"
+ codeGestion = "MATHS"
estPrive = false
- idCahierCible = 2
- nomCahierCible = "mon cahier"
nomAffichage = "Mon Cahier"
+ nom = "durand"
+ prenom = "elodie"
+ activiteList = []
}
def 'transform - cahier de classe inexistant'() {
nomAffichage : nomAffichage,
contenuListePlate : contenuListePlate
)
- Autorite autorite = new Autorite(
- id : id,
- type : type,
- idExterne : idExterne
- )
- Civilite civilite = new Civilite(
- libelle: "Mlle"
- )
Personne proprietaire = new Personne (
- autorite : autorite,
nom : nom,
- prenom : prenom,
- civilite : civilite
+ prenom : prenom
)
+ TextesImportRapport rapportPrincipal = new TextesImportRapport()
textesImportLoaderService.rechercheProprietaireCdt(
cahierInfo.proprietaireInfo
) >> proprietaire
- textesImportLoaderService.rechercheCahier(proprietaire, cahierInfo) >>
- null
+ textesImportLoaderService.rechercheCahier(
+ proprietaire,
+ cahierInfo,
+ rapportPrincipal) >> null
when:
ImportCahierCommand importCahierCommand = textesImportTransformService.transform(
- cahierInfo
+ cahierInfo,
+ rapportPrincipal
)
then:
niveau = 1
structureEnseignementType = "classe"
structureEnseignementCode = "003"
- id = 1
- type = Autorite.TYPE_ACTEUR
- idExterne = "12345"
- nom = "durand"
- prenom = "elodie"
estPrive = false
- idCahierCible = 2
- nomCahierCible = "mon cahier"
nomAffichage = "Mon Cahier"
+ nom = "durand"
+ prenom = "elodie"
description =
"<p>Cahier de texte importé</p><p>Niveau : 1</p><p>classe : 003</p>"
}
<?xml version="1.0" encoding="UTF-8"?>
<cahiers-de-textes xmlns="http://lilie.org/services/eliot/interoperabilite/textes/0.2">
- <cahier-de-textes titre='PHILOSOPHIE - TES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000099000</external-id>
- <denomination>SOPHIE PHILO</denomination>
- <nom>PHILO</nom>
- <prenom>SOPHIE</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu></contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='GEOGRAPHIE - TES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000099000</external-id>
- <denomination>GUILLEROT BENOIT</denomination>
- <nom>GUILLEROT</nom>
- <prenom>BENOIT</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu></contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='ANGLAIS-2NDE3 - vide'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000054000</external-id>
- <denomination>SACHA BAGIEU</denomination>
- <nom>BAGIEU</nom>
- <prenom>SACHA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu></contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='ANGLAIS-1ES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000054000</external-id>
- <denomination>SACHA BAGIEU</denomination>
- <nom>BAGIEU</nom>
- <prenom>SACHA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <activite contexte='MAI' etat='non-publiee'>
- <titre>1ère activité</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>1ère activité du 1er cahier & c'est la meilleure plus</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date></date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='CLA' etat='publiee'>
- <titre>2ème activité & compagnie</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>2ème activité, publiée celle-là</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>30</duree>
- <date-realisation>2010-08-05T14:10:00</date-realisation>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='ANGLAIS-2NDE4'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000057000</external-id>
- <denomination>SACHA MARTIN</denomination>
- <nom>MARTIN</nom>
- <prenom>SACHA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <activite contexte='CLA' etat='publiee'>
- <titre>Activité avec des supports</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Essai d'activité avec des supports</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-08-05T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1166/images.jpg' />
- <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1167/ISI%200-4%20Cahier%20de%20texte.pdf' />
- </ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='CLA' etat='publiee'>
- <titre>activité avec 2 dates</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Activité avec 2 dates</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>60</duree>
- <date-realisation>2010-10-01T10:10:00</date-realisation>
- </date>
- <date>
- <duree>60</duree>
- <date-realisation>2010-10-08T10:10:00</date-realisation>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='MAI' etat='publiee'>
- <titre>Activité avec objectif et annotations</titre>
- <type-activite>INT</type-activite>
- <description>
- <description-generale>Activité avec objectif et annotations - en description</description-generale>
- <objectifs>Ce sont les objectifs de l'activités.</objectifs>
- <annotation-privee>Ce sont les annotations de l'activités.</annotation-privee>
- </description>
- <dates>
- <date>
- <duree>30</duree>
- <date-echeance>2010-09-04T15:10:00</date-echeance>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='MATHEMATIQUES - 1ES1'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000066000</external-id>
- <denomination>ANNA ROUSSEAU</denomination>
- <nom>ROUSSEAU</nom>
- <prenom>ANNA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <chapitre titre='Trigonométrie' />
- <chapitre titre='Calcul différentiel' />
- <chapitre titre='Calcul exponentiel' />
- <chapitre titre='Statistiques'>
- <chapitre titre='Application : le loto' />
- <chapitre titre='Les probabilités appliquées' />
- </chapitre>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='MATHEMATIQUES - 1ES2'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000066000</external-id>
- <denomination>ANNA ROUSSEAU</denomination>
- <nom>ROUSSEAU</nom>
- <prenom>ANNA</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <description></description>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <chapitre titre='Statistiques'>
- <activite contexte='MAI' etat='publiee'>
- <titre>Recherche sur le loto</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Trouver les bon numéros</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-echeance>2010-08-05T15:00:00</date-echeance>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' url='http://www.fdjeux.com' />
- </ressources>
- <matiere></matiere>
- </activite>
- </chapitre>
- </contenu>
- </cahier-de-textes>
- <cahier-de-textes titre='SCIENCES ECO - 1ES7'>
- <meta-donnees>
- <proprietaire>
- <external-id source='Inconnue'>110000000000067000</external-id>
- <denomination>MURIEL CURIE</denomination>
- <nom>CURIE</nom>
- <prenom>MURIEL</prenom>
- <date-naissance></date-naissance>
- </proprietaire>
- <etablissement>
- <uai>0000000D</uai>
- <denomination>LYCEE LEONARD DE VINCI</denomination>
- </etablissement>
- <niveau></niveau>
- <structure-enseignement></structure-enseignement>
- <matiere></matiere>
- <annee-scolaire></annee-scolaire>
- </meta-donnees>
- <contenu>
- <activite contexte='CLA' etat='publiee'>
- <titre>Vision de l'avenir de l'économie</titre>
- <type-activite>TP</type-activite>
- <description>
- <description-generale></description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-08-10T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources></ressources>
- <matiere></matiere>
- </activite>
- <chapitre titre='L économie souterraine'>
- <activite contexte='CLA' etat='publiee'>
- <titre>Le réseau russe</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Ce que cache la mafia</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-09-06T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' url='http://www.tf1.fr' />
- </ressources>
- <matiere></matiere>
- </activite>
- <activite contexte='CLA' etat='non-publiee'>
- <titre>Le réseau italien</titre>
- <type-activite></type-activite>
- <description>
- <description-generale>Ce que cache les nappolitains</description-generale>
- <objectifs></objectifs>
- <annotation-privee></annotation-privee>
- </description>
- <dates>
- <date>
- <duree>45</duree>
- <date-realisation>2010-08-20T15:00:00</date-realisation>
- </date>
- </dates>
- <ressources>
- <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006710/f1265/progression%201ere%20S%202008-2009.pdf' />
- </ressources>
- <matiere></matiere>
- </activite>
- </chapitre>
- </contenu>
- </cahier-de-textes>
-</cahiers-de-textes>
+ <cahier-de-textes titre='ANGLAIS-2NDE3 - vide'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000054000</external-id>
+ <nom>BAGIEU</nom>
+ <prenom>SACHA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu />
+ </cahier-de-textes>
+ <cahier-de-textes titre='ANGLAIS-1ES1'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000054000</external-id>
+ <nom>BAGIEU</nom>
+ <prenom>SACHA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu>
+ <activite contexte='MAI' etat='non-publiee'>
+ <titre>1ère activité</titre>
+ <type-activite />
+ <description>
+ <description-generale>1ère activité du 1er cahier & c'est la meilleure plus</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date />
+ </dates>
+ <ressources />
+ </activite>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>2ème activité & compagnie</titre>
+ <type-activite />
+ <description>
+ <description-generale>2ème activité, publiée celle-là</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>30</duree>
+ <date-realisation>2010-08-05T14:10:00</date-realisation>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='ANGLAIS-2NDE4'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000057000</external-id>
+ <nom>MARTIN</nom>
+ <prenom>SACHA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>Activité avec des supports</titre>
+ <type-activite />
+ <description>
+ <description-generale>Essai d'activité avec des supports</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-08-05T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1166/images.jpg' />
+ <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006709/f1167/ISI%200-4%20Cahier%20de%20texte.pdf' />
+ </ressources>
+ </activite>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>activité avec 2 dates</titre>
+ <type-activite />
+ <description>
+ <description-generale>Activité avec 2 dates</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>60</duree>
+ <date-realisation>2010-10-01T10:10:00</date-realisation>
+ </date>
+ <date>
+ <duree>60</duree>
+ <date-realisation>2010-10-08T10:10:00</date-realisation>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ <activite contexte='MAI' etat='publiee'>
+ <titre>Activité avec objectif et annotations</titre>
+ <type-activite>INT</type-activite>
+ <description>
+ <description-generale>Activité avec objectif et annotations - en description</description-generale>
+ <objectifs>Ce sont les objectifs de l'activités.</objectifs>
+ <annotation-privee>Ce sont les annotations de l'activités.</annotation-privee>
+ </description>
+ <dates>
+ <date>
+ <duree>30</duree>
+ <date-echeance>2010-09-04T15:10:00</date-echeance>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='MATHEMATIQUES - 1ES1'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000066000</external-id>
+ <nom>ROUSSEAU</nom>
+ <prenom>ANNA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <matiere code='MATHS'/>
+ <structure-enseignement type='classe' code='1ES1'/>
+ <annee-scolaire>2011-2012</annee-scolaire>
+ </meta-donnees>
+ <contenu>
+ <chapitre titre='Trigonométrie' />
+ <chapitre titre='Calcul différentiel' />
+ <chapitre titre='Calcul exponentiel' />
+ <chapitre titre='Statistiques'>
+ <chapitre titre='Application : le loto' />
+ <chapitre titre='Les probabilités appliquées' />
+ </chapitre>
+ <chapitre titre='test pour import cdt classe' />
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='MATHEMATIQUES - 1ES2'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000066000</external-id>
+ <nom>ROUSSEAU</nom>
+ <prenom>ANNA</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <matiere code='MATHS'/>
+ <structure-enseignement type='classe' code='1ES2'/>
+ <annee-scolaire>2011-2012</annee-scolaire>
+ </meta-donnees>
+ <contenu>
+ <chapitre titre='Statistiques'>
+ <activite contexte='MAI' etat='publiee'>
+ <titre>Recherche sur le loto</titre>
+ <type-activite />
+ <description>
+ <description-generale>Trouver les bon numéros</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-echeance>2010-08-05T15:00:00</date-echeance>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' url='http://www.fdjeux.com' />
+ </ressources>
+ </activite>
+ </chapitre>
+ </contenu>
+ </cahier-de-textes>
+ <cahier-de-textes titre='SCIENCES ECO - 1ES7'>
+ <meta-donnees>
+ <proprietaire>
+ <external-id source='Inconnue'>110000000000067000</external-id>
+ <nom>CURIE</nom>
+ <prenom>MURIEL</prenom>
+ </proprietaire>
+ <etablissement>
+ <uai>0000000D</uai>
+ <denomination>LYCEE LEONARD DE VINCI</denomination>
+ </etablissement>
+ <niveau></niveau>
+ <structure-enseignement />
+ <annee-scolaire />
+ </meta-donnees>
+ <contenu>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>Vision de l'avenir de l'économie</titre>
+ <type-activite>TP</type-activite>
+ <description>
+ <description-generale />
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-08-10T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources />
+ </activite>
+ <chapitre titre='L économie souterraine'>
+ <activite contexte='CLA' etat='publiee'>
+ <titre>Le réseau russe</titre>
+ <type-activite />
+ <description>
+ <description-generale>Ce que cache la mafia</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-09-06T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' url='http://www.tf1.fr' />
+ </ressources>
+ </activite>
+ <activite contexte='CLA' etat='non-publiee'>
+ <titre>Le réseau italien</titre>
+ <type-activite />
+ <description>
+ <description-generale>Ce que cache les nappolitains</description-generale>
+ <objectifs />
+ <annotation-privee />
+ </description>
+ <dates>
+ <date>
+ <duree>45</duree>
+ <date-realisation>2010-08-20T15:00:00</date-realisation>
+ </date>
+ </dates>
+ <ressources>
+ <ressource etat='publiee' chemin-relatif='STORAGE/cdt/006700/u006710/f1265/progression%201ere%20S%202008-2009.pdf' />
+ </ressources>
+ </activite>
+ </chapitre>
+ </contenu>
+ </cahier-de-textes>
+</cahiers-de-textes>
\ No newline at end of file