-#@ MODIF V_MCLIST Validation DATE 29/05/2002 AUTEUR DURAND C.DURAND
+#@ MODIF V_MCLIST Validation DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
#
#
# ======================================================================
+
+
"""
Ce module contient la classe mixin MCList qui porte les méthodes
nécessaires pour réaliser la validation d'un objet de type MCList
class MCList:
"""
Cette classe a deux attributs de classe :
- - CR qui sert à construire l'objet compte-rendu
- - txt_nat qui sert pour les comptes-rendus liés à cette classe
+
+ - CR qui sert à construire l'objet compte-rendu
+
+ - txt_nat qui sert pour les comptes-rendus liés à cette classe
"""
CR=N_CR.CR
On n'utilise pas d'attribut pour stocker l'état et on ne remonte pas
le changement d'état au parent (pourquoi ??)
+ MCLIST est une liste de MCFACT. Les MCFACT ont le meme parent
+ que le MCLIST qui les contient. Il n'est donc pas necessaire de
+ remonter le changement d'etat au parent. C'est deja fait
+ par les MCFACT.
"""
if len(self.data) == 0 : return 0
+
+ valid= 1
+ definition=self.data[0].definition
+ # Verification du nombre des mots cles facteurs
+ if definition.min is not None and len(self.data) < definition.min :
+ valid=0
+ if cr == 'oui' :
+ self.cr.fatal("Nombre de mots cles facteurs insuffisant minimum : %s" % definition.min)
+
+ if definition.max is not None and len(self.data) > definition.max :
+ valid=0
+ if cr == 'oui' :
+ self.cr.fatal("Nombre de mots cles facteurs trop grand maximum : %s" % definition.max)
num = 0
- test = 1
for i in self.data:
num = num+1
if not i.isvalid():
- if cr=='oui':
+ valid = 0
+ if cr=='oui' and len(self) > 1:
self.cr.fatal(string.join(["L'occurrence n",`num`," du mot-clé facteur :",self.nom," n'est pas valide"]))
- test = 0
- return test
+ return valid
def report(self):
"""
Génère le rapport de validation de self
"""
- self.cr=self.CR( debut = "Mot-clé facteur multiple : "+self.nom,
+ if len(self) > 1:
+ # Mot cle facteur multiple
+ self.cr=self.CR( debut = "Mot-clé facteur multiple : "+self.nom,
fin = "Fin Mot-clé facteur multiple : "+self.nom)
- for i in self.data:
- self.cr.add(i.report())
- # XXX j'ai mis l'état en commentaire car il n'est utilisé ensuite
- #self.state = 'modified'
+ for i in self.data:
+ self.cr.add(i.report())
+ elif len(self) == 1:
+ # Mot cle facteur non multiple
+ self.cr=self.data[0].report()
+ else:
+ self.cr=self.CR( debut = "Mot-cle facteur : "+self.nom,
+ fin = "Fin Mot-cle facteur : "+self.nom)
+
try :
self.isvalid(cr='oui')
except AsException,e: