From 1c15af6f61780e03bccc36547f223c8e700f5773 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Sun, 29 May 2016 16:21:59 +0200 Subject: Bugfix : Equipement/edit only show available Ipmgmt (as in Equipement/add) --- generator/after-bake/src/Controller/EquipementsController.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/generator/after-bake/src/Controller/EquipementsController.php b/generator/after-bake/src/Controller/EquipementsController.php index 7bc423a..216fe64 100644 --- a/generator/after-bake/src/Controller/EquipementsController.php +++ b/generator/after-bake/src/Controller/EquipementsController.php @@ -127,8 +127,12 @@ class EquipementsController extends AppController } } $equipements = $this->Equipements->Equipements->find('list', array('order' => array('mac' => 'asc'))); - $services = $this->Equipements->Services->find('list'); - $ipmgmt = $this->Equipements->Ipmgmt->find('list'); + $services = $this->Equipements->Services->find('list'); + // IPmgmt list : own IP + unused IP + // XXX Cake bug ->orWhere(['Ipmgmt.ip4' => $equipement->ipmgmt_id]) does a AND WHERE after ->notMatching('Equipements') so forced to use leftJoinWith() + $ipmgmt = $this->Equipements->Ipmgmt->find('list')->distinct()->leftJoinWith('Equipements'); + $ipmgmt->where(['Equipements.id IS' => NULL])->orWhere(['Ipmgmt.ip4' => $equipement->ipmgmt_id]); + $ipmgmt->order($ipmgmt->newExpr()->add(['INET_ATON(ip4)'])); $equipementModeles = $this->Equipements->EquipementModeles->find('list'); $equipementModes = $this->Equipements->EquipementModes->find('list'); $relais = $this->Equipements->Relais->find('list'); -- cgit v1.1