# -*- coding: iso-8859-1 -*- # Copyright 20003 - 2008: Julien Bourdaillet (julien.bourdaillet@lip6.fr), Jean-Gabriel Ganascia (jean-gabriel.ganascia@lip6.fr) # This file is part of MEDITE. # # MEDITE is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # MEDITE is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Foobar; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from Utile.constantesDonnees import * from Donnees.donnees import * from Controleurs.cInformations import * from Controleurs.cDossierGenetique import * from Donnees.auteur import * from Donnees.oeuvre import * from Donnees.arbre import * import os, posixpath # C'est la classe de type 'Controleur' qui fait le lien entre les donnees et l'interface class CDonnees : # Constructeur de la classe def __init__(self): self.__don = Donnees() if not posixpath.exists(LEURREP) : os.mkdir(LEURREP) # Methode qui renvoie la liste des noms des auteurs de la base def getListeNomsAuteurs(self): ## print 'dans Cdonnees.getlisteNomsAuteurs' return self.__don.getListeNomsAuteurs() # Methode qui renvoie la liste des titres d'un auteur def getListeTitresByAuteur(self, pNom): ## print 'dans Cdonnees.getlisteTitresByAuteurs' return self.__don.getListeTitresByAuteur(pNom) # Methode qui ajoute un auteur def addAuteur(self, pNom, pPrenom,pNais, pDeces): ## print 'dans Cdonnees.addAuteur' auteur = Auteur(pNom,pPrenom,pNais,pDeces) self.__don.addAuteur(auteur) # creation du dossier de l'auteur rep = os.path.join(LEURREP,pNom) if not os.path.exists(rep): os.mkdir(rep) # Methode qui met a jour les donnees d'un auteur # Nous ne pouvons pas modifier le nom de l'auteur def updateAuteur(self, pNom, pPrenom, pNais, pDeces): ## print 'dans Cdonnees.updateAuteur' # mise a jour au niveau des donnees enregistrees auteur = Auteur(pNom,pPrenom,pNais,pDeces) self.__don.updateAuteur(auteur) # mise a jour des fichiers xml lies a l'auteur cInfo = CInformations() cInfo.majAuteurFInfos(pNom) # Methode qui supprime un auteur def deleteAuteur(self, pNom): ## print 'dans Cdonnees.deleteAuteur' # mise a jour au niveau des donnees enregistrees self.__don.deleteAuteur(pNom) # suppression du dossier de l'auteur et tout ce qu'il contient cDos = CDossierGenetique() cDos.supprimerDossierAuteur(pNom) # Methode qui ajoute une oeuvre a un auteur def addOeuvre(self, pNom, pTitre, pEdition, pPublication): ## print 'dans Cdonnees.addOeuvre' nomDG = self.__creerNomDG(pTitre) oeuvre = Oeuvre(pTitre, pEdition, pPublication, nomDG) #arbre = Arbre() #oeuvre.addArbre(arbre) self.__don.addOeuvre(pNom, oeuvre) # creation du dossier genetique rep = os.path.join(LEURREP, pNom, nomDG) if not os.path.exists(rep): os.mkdir(rep) # creation du fichier 'informations.xml' cInfo = CInformations() cInfo.creerFichierInformations(pNom, pTitre) # Methode privee qui creer le nom du dossier genetique a partir du titre de l'oeuvre # la methode enleve les espaces et garde au maximum 30 caracteres def __creerNomDG(self, pTitre): i = 0 nomDG = '' for c in pTitre : if (i<30) & (c!= ' ') : nomDG +=c i+=1 return nomDG # Methode qui met a jour les donnees d'une oeuvre # Nous ne pouvons pas modifier le titre ou le nom du dossier genetique def updateOeuvre(self, pNom, pTitre, pEdition, pPublication): ## print 'dans Cdonnees.updateOeuvre' oeuvre = Oeuvre(pTitre, pEdition, pPublication,'') self.__don.updateOeuvre(pNom, oeuvre) # mise a jour des fichiers xml lies a l'oeuvre cInfo = CInformations() cInfo.majOeuvreFInfos(pNom, pTitre) # Methode qui supprimme une oeuvre def deleteOeuvre(self, pNom, pTitre): ## print 'dans Cdonnees.deleteOeuvre' nomDG = self.__don.getNomDG(pNom, pTitre) self.__don.deleteOeuvre(pNom, pTitre) # suppression du dossier genetique et tout ce qu'il contient cDos = CDossierGenetique() cDos.supprimerDossierOeuvre(pNom, nomDG)