From fd3db4f0b71e8a271e0a1776216c20abfa0ca5df Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Wed, 21 Oct 2020 14:33:49 +0200
Subject: [PATCH] FEAT #15011 TIME 0:10 update indexing model in admin removed
 diffusionList in children indexingModels

---
 .../controllers/IndexingModelController.php   | 24 ++++++-------------
 1 file changed, 7 insertions(+), 17 deletions(-)

diff --git a/src/app/indexingModel/controllers/IndexingModelController.php b/src/app/indexingModel/controllers/IndexingModelController.php
index 8098cccd876..c52b4e85594 100755
--- a/src/app/indexingModel/controllers/IndexingModelController.php
+++ b/src/app/indexingModel/controllers/IndexingModelController.php
@@ -171,17 +171,17 @@ class IndexingModelController
             // if field in master is not in child, return an error
             // if field is not in master but in child, is ignored
             $arrayTmp = [];
-            $diffusionListFound = false;
             foreach ($fieldsMaster as $field) {
-                if ($field['identifier'] == 'diffusionList' && $diffusionListFound) {
-                    continue;
-                }
                 $found = false;
                 foreach ($body['fields'] as $value) {
-                    if ($value['identifier'] == $field['identifier'] && $value['mandatory'] == $field['mandatory'] && $value['unit'] == $field['unit']) {
+                    if (($field['identifier'] == 'destination' && $value['identifier'] == 'diffusionList')
+                            || ($value['identifier'] == $field['identifier'] && $value['mandatory'] == $field['mandatory'] && $value['unit'] == $field['unit'])) {
                         if (!$field['enabled']) {
                             $value = $field;
                         }
+                        if ($field['identifier'] == 'destination' && $value['identifier'] == 'diffusionList') {
+                            $value['unit'] = $field['unit'];
+                        }
 
                         array_push($arrayTmp, $value);
                         $found = true;
@@ -189,17 +189,6 @@ class IndexingModelController
                             break;
                         }
                     }
-                    if ($field['identifier'] == 'destination' && $value['identifier'] == 'diffusionList') {
-                        if (!$field['enabled']) {
-                            $value = $field;
-                        }
-                        $diffusionListFound = true;
-                        $value['unit']      = $field['unit'];
-
-                        array_push($arrayTmp, $value);
-                        $found = true;
-                        break;
-                    }
                 }
 
                 if (!$found) {
@@ -345,7 +334,8 @@ class IndexingModelController
                 foreach ($body['fields'] as $field) {
                     $found = false;
                     foreach ($childFields as $value) {
-                        if ($value['identifier'] == $field['identifier'] && $value['mandatory'] == $field['mandatory'] && $value['unit'] == $field['unit'] && $value['enabled'] == $field['enabled']) {
+                        if (($field['identifier'] == 'destination' && $value['identifier'] == 'diffusionList')
+                                || ($value['identifier'] == $field['identifier'] && $value['mandatory'] == $field['mandatory'] && $value['unit'] == $field['unit'] && $value['enabled'] == $field['enabled'])) {
                             $fieldsToKeep[] = $value;
                             $found = true;
                         }
-- 
GitLab