[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