[Erp5-report] r35359 romain - /erp5/trunk/products/ERP5Form/ListBox.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri May 14 16:58:13 CEST 2010


Author: romain
Date: Fri May 14 16:58:02 2010
New Revision: 35359

URL: http://svn.erp5.org?rev=35359&view=rev
Log:
Add setDisplayedColumnIdList to allow the page template to display only some
specific columns.
Work by FX Algrain.

TODO: a functional test is needed

Modified:
    erp5/trunk/products/ERP5Form/ListBox.py

Modified: erp5/trunk/products/ERP5Form/ListBox.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ListBox.py?rev=35359&r1=35358&r2=35359&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ListBox.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/ListBox.py [utf8] Fri May 14 16:58:02 2010
@@ -477,6 +477,7 @@
     self.field = field
     self.request = REQUEST
     self.render_prefix = render_prefix
+    self.displayed_column_id_list = None
 
   def getPhysicalPath(self):
     """
@@ -1030,13 +1031,46 @@
     return set(self.getCheckedUidList())
 
   getCheckedUidSet = lazyMethod(getCheckedUidSet)
+  
+  def setDisplayedColumnIdList(self, displayed_column_id_list):
+    """Set the column to be displayed.
+       Impact the result of getSelectedColumnList.
+       Parameter : 
+       displayed_column_id_list : List of id. Exemple : ('id', 'title')
+    """
+    self.displayed_column_id_list = displayed_column_id_list
+
+  def getDisplayedColumnIdList(self):
+    """Return the list of displayed column id
+    """
+    return self.displayed_column_id_list
 
   def getSelectedColumnList(self):
     """Return the list of selected columns.
     """
-    return self.getSelectionTool().getSelectionColumns(self.getSelectionName(),
+    column_list = []
+
+    #Parameter allow to select column temporary
+    if self.getDisplayedColumnIdList() != None:
+      available_column = self.getAllColumnList()
+
+      #Create a dict to make a easy search
+      available_column_dict = dict()
+      for id,title in available_column:
+        available_column_dict[id] = (id,title)
+
+      #We check columns are present
+      for id in self.getDisplayedColumnIdList():
+        if available_column_dict.has_key(id):
+          column_list.append(available_column_dict[id])
+        else:
+          raise AttributeError, "Column %s is not avaible" % id
+
+    else:
+      column_list = self.getSelectionTool().getSelectionColumns(self.getSelectionName(),
                                                        columns = self.getColumnList(),
                                                        REQUEST = self.request)
+    return column_list
 
   getSelectedColumnList = lazyMethod(getSelectedColumnList)
 




More information about the Erp5-report mailing list