2 # person_in_charge: mathieu.courtois at edf.fr
3 # ======================================================================
4 # COPYRIGHT (C) 2007-2021 EDF R&D
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20 # ======================================================================
24 Ce module contient la classe mixin MCBLOC qui porte les methodes
25 necessaires pour realiser la validation d'un objet de type MCBLOC
28 Une classe mixin porte principalement des traitements et est
29 utilisee par heritage multiple pour composer les traitements.
31 from __future__ import absolute_import
33 from . import V_MCCOMPO
36 class MCBLOC(V_MCCOMPO.MCCOMPO):
39 Cette classe a un attribut de classe :
41 - txt_nat qui sert pour les comptes-rendus lies a cette classe
46 def isValid(self, sd='oui', cr='non'):
48 Methode pour verifier la validite du MCBLOC. Cette methode
49 peut etre appelee selon plusieurs modes en fonction de la valeur
52 Si cr vaut oui elle cree en plus un compte-rendu
53 sd est present pour compatibilite de l'interface mais ne sert pas
55 if self.state == 'unchanged':
59 if hasattr(self, 'valid'):
60 old_valid = self.valid
63 for child in self.mcListe:
64 if not child.isValid():
67 # Apres avoir verifie la validite de tous les sous-objets, on verifie
68 # la validite des regles
69 text_erreurs, test_regles = self.verifRegles()
72 self.cr.fatal( "Regle(s) non respectee(s) : %s" % text_erreurs)
75 self.state = 'unchanged'
76 if not old_valid or old_valid != self.valid: