From 305cb6581d4eb6bc8d8cf3b719d6dfb763187dbd Mon Sep 17 00:00:00 2001 From: fpeters <> Date: Mon, 20 Sep 2004 08:05:26 +0000 Subject: [PATCH] added uniqueValues property to Multi fields --- shared/common/widgets.py | 6 ++++++ shared/web/widgets.py | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/shared/common/widgets.py b/shared/common/widgets.py index f9239638..ad4cc0c6 100644 --- a/shared/common/widgets.py +++ b/shared/common/widgets.py @@ -279,6 +279,12 @@ class Multi(BaseWidget): reorderingButtons_kindName = 'Boolean' thingPublicName = N_('Multi-Line Field') + + uniqueValues = 0 + uniqueValues_kind_importExport = 'private' + uniqueValues_kind_stateInEditMode = 'hidden' + uniqueValues_kind_stateInViewMode = 'hidden' + uniqueValues_kindName = 'Boolean' register(Multi) diff --git a/shared/web/widgets.py b/shared/web/widgets.py index e0c1e25c..a07f4cc0 100644 --- a/shared/web/widgets.py +++ b/shared/web/widgets.py @@ -920,7 +920,10 @@ class Multi(WidgetMixin, proxyWidgets.Multi): fieldset += X.li(childWidget) if kind.canAddItem(slot, fields): addButtonName = slot.getFieldOptionName('addButton') - layout += X.buttonInForm('add', addButtonName) + if self.addButtonLabel: + layout += X.buttonInForm(self.addButtonLabel, addButtonName) + else: + layout += X.buttonInForm('add', addButtonName) if self.apply: layout += X.buttonInForm('apply', 'applyButton') return layout @@ -978,6 +981,12 @@ class Multi(WidgetMixin, proxyWidgets.Multi): continue value.append(itemValue) + if self.uniqueValues: + uniq = {} + for v in value: + uniq[v] = 1 + value = uniq.keys() + addButtonName = slot.getFieldOptionName('addButton') if isButtonSelected(addButtonName, fields): itemSlot = kind.getItemSlot(slot, count)