Salome HOME
chgt copyright
[tools/eficas.git] / Validation / V_MCBLOC.py
1 # coding=utf-8
2 # ======================================================================
3 # Copyright (C) 2007-2021   EDF R&D
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
8 #
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13 #
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17 #
18 #
19 # ======================================================================
20
21
22 """
23    Ce module contient la classe mixin MCBLOC qui porte les methodes
24    necessaires pour realiser la validation d'un objet de type MCBLOC
25    derive de OBJECT.
26
27    Une classe mixin porte principalement des traitements et est
28    utilisee par heritage multiple pour composer les traitements.
29 """
30 from __future__ import absolute_import
31 # Modules EFICAS
32 from . import V_MCCOMPO
33
34
35 class MCBLOC(V_MCCOMPO.MCCOMPO):
36
37     """
38        Cette classe a un attribut de classe :
39
40        - txt_nat qui sert pour les comptes-rendus lies a cette classe
41     """
42
43     txt_nat = u"Bloc :"
44
45     def isValid(self, sd='oui', cr='non'):
46         """
47            Methode pour verifier la validite du MCBLOC. Cette methode
48            peut etre appelee selon plusieurs modes en fonction de la valeur
49            de sd et de cr.
50
51            Si cr vaut oui elle cree en plus un compte-rendu
52            sd est present pour compatibilite de l'interface mais ne sert pas
53         """
54         if self.state == 'unchanged':
55             return self.valid
56         else:
57             valid = 1
58             if hasattr(self, 'valid'):
59                 old_valid = self.valid
60             else:
61                 old_valid = None
62             for child in self.mcListe:
63                 if not child.isValid():
64                     valid = 0
65                     break
66             # Apres avoir verifie la validite de tous les sous-objets, on verifie
67             # la validite des regles
68             text_erreurs, test_regles = self.verifRegles()
69             if not test_regles:
70                 if cr == 'oui':
71                     self.cr.fatal( "Regle(s) non respectee(s) : %s" % text_erreurs)
72                 valid = 0
73             self.valid = valid
74             self.state = 'unchanged'
75             if not old_valid or old_valid != self.valid:
76                 self.initModifUp()
77             return self.valid