From fc1a56ea7785d62bdd22baf4f61c66f7ab1bf988 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@enhancesoft.com>
Date: Fri, 27 Mar 2015 15:58:50 +0000
Subject: [PATCH] bug: Consider list when looking up list item

List item are only unique within the list.
---
 include/ajax.forms.php | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/include/ajax.forms.php b/include/ajax.forms.php
index d9e61dbd5..e61ddec81 100644
--- a/include/ajax.forms.php
+++ b/include/ajax.forms.php
@@ -163,7 +163,8 @@ class DynamicFormsAjaxAPI extends AjaxController {
             $item->extra = $basic['extra'];
             $item->value = $basic['value'];
 
-            if ($_item = DynamicListItem::lookup(array('value'=>$item->value)))
+            if ($_item = DynamicListItem::lookup(array(
+                            'list_id' => $list->getId(), 'value'=>$item->value)))
                 if ($_item && $_item->id != $item->id)
                     $item_form->getField('value')->addError(
                         __('Value already in use'));
@@ -218,11 +219,12 @@ class DynamicFormsAjaxAPI extends AjaxController {
 
         if ($_POST && ($valid = $item_form->isValid())) {
             $data = $item_form->getClean();
-            if ($_item = DynamicListItem::lookup(array('value'=>$data['value'])))
+            if ($_item = DynamicListItem::lookup(array(
+                            'list_id' => $list->getId(), 'value'=>$data['value'])))
                 if ($_item && $_item->id)
                     $item_form->getField('value')->addError(
                         __('Value already in use'));
-            $data['list_id'] = $list_id;
+            $data['list_id'] = $list->getId();
             $item = DynamicListItem::create($data);
             if ($item->save() && $item->setConfiguration())
                 Http::response(201, $this->encode(array('success' => true)));
-- 
GitLab