[Erp5-report] r29934 - in /erp5/trunk/products/ERP5Form: ./ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Oct 22 17:16:05 CEST 2009


Author: luke
Date: Thu Oct 22 17:16:03 2009
New Revision: 29934

URL: http://svn.erp5.org?rev=29934&view=rev
Log:
 - implement selection deletion for given user with test

Modified:
    erp5/trunk/products/ERP5Form/SelectionTool.py
    erp5/trunk/products/ERP5Form/tests/testSelectionTool.py

Modified: erp5/trunk/products/ERP5Form/SelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/SelectionTool.py?rev=29934&r1=29933&r2=29934&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/SelectionTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/SelectionTool.py [utf8] Thu Oct 22 17:16:03 2009
@@ -91,6 +91,17 @@
     security.declareProtected( ERP5Permissions.ManagePortal
                              , 'manage_configure' )
     manage_configure = DTMLFile( 'SelectionTool_configure', _dtmldir )
+
+    security.declareProtected( ERP5Permissions.ManagePortal
+                             , 'manage_deleteSelectionForUser' )
+    def manage_deleteSelectionForUser(self, selection_name, user_id, REQUEST=None):
+      """
+        Delete a specified selection
+      """
+      self._deleteSelectionForUserFromContainer(selection_name, user_id)
+      if REQUEST is not None:
+        return REQUEST.RESPONSE.redirect('%s/%s' %
+                (self.absolute_url(), 'manage_viewSelections'))
 
     security.declareProtected( ERP5Permissions.ManagePortal
                              , 'manage_deleteSelection' )
@@ -1376,13 +1387,16 @@
       else:
         self._getPersistentContainer(user_id)[selection_name] = aq_base(selection)
 
-    def _deleteSelectionFromContainer(self, selection_name):
-      user_id = self._getUserId()
+    def _deleteSelectionForUserFromContainer(self, selection_name, user_id):
       if user_id is None: return None
       if self.isMemcachedUsed():
         del(self._getMemcachedContainer()['%s-%s' % (user_id, selection_name)])
       else:
         del(self._getPersistentContainer(user_id)[selection_name])
+
+    def _deleteSelectionFromContainer(self, selection_name):
+      user_id = self._getUserId()
+      self._deleteSelectionForUserFromContainer(selection_name, user_id)
 
     def _deleteGlobalSelectionFromContainer(self, selection_name):
       if not self.isMemcachedUsed():

Modified: erp5/trunk/products/ERP5Form/tests/testSelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testSelectionTool.py?rev=29934&r1=29933&r2=29934&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testSelectionTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/tests/testSelectionTool.py [utf8] Thu Oct 22 17:16:03 2009
@@ -234,6 +234,16 @@
     selection = self.portal_selections.getSelectionFor('test_selection')
     self.assertEqual(selection, None)
 
+  def testDeleteSelectionForUser(self):
+    # XXX: There is side effect, that manager, running user, is the same use
+    #      and there is no way (for now) to get selections per user...
+    selection = self.portal_selections.getSelectionFor('test_selection')
+    self.assert_(isinstance(selection, Selection))
+    self.portal_selections.manage_deleteSelectionForUser('test_selection',
+        'manager')
+    selection = self.portal_selections.getSelectionFor('test_selection')
+    self.assertEqual(selection, None)
+
   def testDeleteGlobalSelection(self):
     selection = self.portal_selections.getSelectionFor('test_selection')
     self.assert_(isinstance(selection, Selection))




More information about the Erp5-report mailing list