[Erp5-report] r13325 - /erp5/trunk/products/ERP5/ERP5Site.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Mar 12 09:28:08 CET 2007


Author: jp
Date: Mon Mar 12 09:28:07 2007
New Revision: 13325

URL: http://svn.erp5.org?rev=13325&view=rev
Log:
Added new portal type groups. Provide sorted result by default whenever user tries to access list of portal types (taking into account selected language).

Modified:
    erp5/trunk/products/ERP5/ERP5Site.py

Modified: erp5/trunk/products/ERP5/ERP5Site.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/ERP5Site.py?rev=13325&r1=13324&r2=13325&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/ERP5Site.py (original)
+++ erp5/trunk/products/ERP5/ERP5Site.py Mon Mar 12 09:28:07 2007
@@ -389,18 +389,32 @@
   def _getPortalGroupedTypeList(self, group):
     """
     Return a list of portal types classified to a specific group.
+    The result is sorted by language (using the user language
+    as default)
     """
     def getTypeList(group):
       type_list = []
       for pt in self.portal_types.objectValues():
         if group in getattr(pt, 'group_list', ()):
           type_list.append(pt.getId())
+
+      def sortByTranslation(a, b):
+        return cmp(localizer_tool.translate('ui', a),
+                   localizer_tool.translate('ui', b))
+
+      type_list.sort(sortByTranslation)
       return tuple(type_list)
 
+    localizer_tool = getToolByName(self, 'Localizer')
+    language = localizer_tool.get_selected_language()
+    # language should be cached in Transaction Cache if performance issue
+
     getTypeList = CachingMethod(getTypeList,
-                                id=('_getPortalGroupedTypeList', group),
+                                id=(('_getPortalGroupedTypeList', language), group),
                                 cache_factory='erp5_content_medium')
-    return getTypeList(group)
+
+    return getTypeList(group) # Although this method is called get*List, it
+                              # returns a tuple - renaming to be considered
 
   def _getPortalGroupedCategoryList(self, group):
     """
@@ -611,6 +625,38 @@
       Return web page types.
     """
     return self._getPortalGroupedTypeList('web_document')
+
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getPortalFileDocumentTypeList')
+  def getPortalFileDocumentTypeList(self):
+    """
+      Return web page types.
+    """
+    return self._getPortalGroupedTypeList('file_document')
+
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getPortalRecentDocumentTypeList')
+  def getPortalRecentDocumentTypeList(self):
+    """
+      Return web page types.
+    """
+    return self._getPortalGroupedTypeList('recent_document')
+
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getPortalTemplateDocumentTypeList')
+  def getPortalTemplateDocumentTypeList(self):
+    """
+      Return web page types.
+    """
+    return self._getPortalGroupedTypeList('template_document')
+
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getPortalMyDocumentTypeList')
+  def getPortalMyDocumentTypeList(self):
+    """
+      Return web page types.
+    """
+    return self._getPortalGroupedTypeList('my_document')
 
   security.declareProtected(Permissions.AccessContentsInformation,
                             'getPortalSupplyPathTypeList')




More information about the Erp5-report mailing list