[Erp5-report] r18851 - in /erp5/trunk/products/ERP5Form: ./ dtml/
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Jan 24 15:06:36 CET 2008
Author: nicolas
Date: Thu Jan 24 15:06:35 2008
New Revision: 18851
URL: http://svn.erp5.org?rev=18851&view=rev
Log:
Add new action to allow selection deletion for all users
Modified:
erp5/trunk/products/ERP5Form/SelectionTool.py
erp5/trunk/products/ERP5Form/dtml/SelectionTool_manageViewSelections.dtml
Modified: erp5/trunk/products/ERP5Form/SelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/SelectionTool.py?rev=18851&r1=18850&r2=18851&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/SelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/SelectionTool.py Thu Jan 24 15:06:35 2008
@@ -95,6 +95,17 @@
Relete a specified selection
"""
self._deleteSelectionFromContainer(selection_name)
+ if REQUEST is not None:
+ return REQUEST.RESPONSE.redirect('%s/%s' %
+ (self.absolute_url(), 'manage_viewSelections'))
+
+ security.declareProtected( ERP5Permissions.ManagePortal
+ , 'manage_deleteGlobalSelection' )
+ def manage_deleteGlobalSelection(self, selection_name, REQUEST=None):
+ """
+ Relete a specified selection
+ """
+ self._deleteGlobalSelectionFromContainer(selection_name)
if REQUEST is not None:
return REQUEST.RESPONSE.redirect('%s/%s' %
(self.absolute_url(), 'manage_viewSelections'))
@@ -1249,6 +1260,19 @@
else:
del(self._getPersistentContainer(user_id)[selection_name])
+ def _deleteGlobalSelectionFromContainer(self, selection_name):
+ id_list = []
+ if self.isMemcachedUsed():
+ for k in self._getMemcachedContainer().keys():
+ if k.split('-')[1] == selection_name:
+ del(self._getMemcachedContainer()[k])
+ else:
+ if getattr(aq_base(self), 'selection_data', None) is not None:
+ for user_id in self.selection_data.keys():
+ mapping = self._getPersistentContainer(user_id)
+ if mapping.has_key(selection_name):
+ del(mapping[selection_name])
+
def _getSelectionNameListFromContainer(self):
if self.isMemcachedUsed():
return []
@@ -1258,14 +1282,14 @@
return self._getPersistentContainer(user_id).keys()
def _getMemcachedContainer(self):
- value = getattr(self, '_v_selection_data', None)
+ value = getattr(aq_base(self), '_v_selection_data', None)
if value is None:
value = self.getPortalObject().portal_memcached.getMemcachedDict(key_prefix='selection_tool')
setattr(self, '_v_selection_data', value)
return value
def _getPersistentContainer(self, user_id):
- if getattr(self, 'selection_data', None) is None:
+ if getattr(aq_base(self), 'selection_data', None) is None:
self.selection_data = PersistentMapping()
if not self.selection_data.has_key(user_id):
self.selection_data[user_id] = SelectionPersistentMapping()
Modified: erp5/trunk/products/ERP5Form/dtml/SelectionTool_manageViewSelections.dtml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/dtml/SelectionTool_manageViewSelections.dtml?rev=18851&r1=18850&r2=18851&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/dtml/SelectionTool_manageViewSelections.dtml (original)
+++ erp5/trunk/products/ERP5Form/dtml/SelectionTool_manageViewSelections.dtml Thu Jan 24 15:06:35 2008
@@ -24,7 +24,8 @@
<dtml-in getSelectionNameList>
<tr>
- <td><a href="manage_deleteSelection?selection_name=<dtml-var sequence-item>">Delete</a></td>
+ <td><a href="manage_deleteSelection?selection_name=<dtml-var sequence-item>">Delete (user)</a></td>
+ <td><a href="manage_deleteGlobalSelection?selection_name=<dtml-var sequence-item>">Delete (Global)</a></td>
<td> <dtml-var sequence-item></td>
<td> <dtml-var
expr="getSelectionParams(_['sequence-item'])" html_quote></td>
More information about the Erp5-report
mailing list