|
|
@@ -209,6 +209,7 @@ models = [Artere, Cable, Equipement, Noeud, Tranchee, Zapbo]
|
|
|
|
|
|
class Prise(QgsModel):
|
|
|
layername = "FTTH_SITES_GEO_VALIDE"
|
|
|
+ layername_bis = "SITE_GEO"
|
|
|
|
|
|
####### Validateur
|
|
|
|
|
|
@@ -245,13 +246,14 @@ class Mn2Checker(BaseChecker):
|
|
|
|
|
|
self.prises = []
|
|
|
Prise.layer = next((l for l in QgsProject.instance().mapLayers().values() \
|
|
|
- if l.name().lower() == Prise.layername.lower()), None)
|
|
|
+ if l.name().lower() in [Prise.layername.lower(), Prise.layername_bis.lower()]), None)
|
|
|
|
|
|
def _load_prises(self):
|
|
|
""" on charge la couche des prises si elle existe """
|
|
|
self.prises = []
|
|
|
if Prise.layer:
|
|
|
- self.prises = [QgsModel(f) for f in Prise.layer.getFeatures()]
|
|
|
+ self.prises = [Prise(f) for f in Prise.layer.getFeatures() if f.attribute("T_ETAT").lower() != "obsolete"]
|
|
|
+
|
|
|
|
|
|
def test_load_layers(self):
|
|
|
""" Chargement des données
|
|
|
@@ -704,7 +706,7 @@ class Mn2Checker(BaseChecker):
|
|
|
continue
|
|
|
|
|
|
#zapbos englobant l'equipement
|
|
|
- candidates = [z for z in self.zapbos if z.geom.contains(equipement.geom)]
|
|
|
+ candidates = [z for z in self.zapbos if z.geom.contains(equipement.noeud.geom)]
|
|
|
|
|
|
# le pbo doit être contenu dans une zapbo
|
|
|
if not candidates:
|
|
|
@@ -712,11 +714,9 @@ class Mn2Checker(BaseChecker):
|
|
|
continue
|
|
|
|
|
|
# On se base sur le nom pour trouver la zapbo correspondante
|
|
|
- try:
|
|
|
- equipement.zapbo = next((z for z in candidates if equipement.EQ_CODE in z.ID_ZAPBO))
|
|
|
- except StopIteration:
|
|
|
+ equipement.zapbo = next((z for z in candidates if equipement.EQ_CODE in z.ID_ZAPBO), None)
|
|
|
+ if not equipement.zapbo:
|
|
|
self.log_error("Le nom du PBO ne coincide avec le nom d'aucune des ZAPBO qui le contiennent", item=equipement)
|
|
|
- break
|
|
|
|
|
|
def test_zapbos_prises(self):
|
|
|
""" Topologie: Zapbos / Prises
|
|
|
@@ -745,7 +745,7 @@ class Mn2Checker(BaseChecker):
|
|
|
continue
|
|
|
|
|
|
zapbo = self._za_for_pbo(equipement)
|
|
|
- zapbo.nb_prises = len([prise for prise in self.prises if zapbo.geom.contains(prise.geom)])
|
|
|
+ zapbo.nb_prises = sum([int(prise.NB_PRISE) for prise in self.prises if zapbo.geom.contains(prise.geom) and prise.NB_PRISE])
|
|
|
|
|
|
# Controle du dimensionnement des PBO
|
|
|
if equipement.EQ_TYPE_PH == 'PBO 6' and not zapbo.nb_prises < 6:
|