[Erp5-report] r23188 - /erp5/trunk/utils/oood/mimemapper.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Aug 27 13:31:45 CEST 2008


Author: kazuhiko
Date: Wed Aug 27 13:31:37 2008
New Revision: 23188

URL: http://svn.erp5.org?rev=23188&view=rev
Log:
* include the original format in getAllowedTo() results.
* sort the format list somehow similar to OOo's save/export dialog.

Modified:
    erp5/trunk/utils/oood/mimemapper.py

Modified: erp5/trunk/utils/oood/mimemapper.py
URL: http://svn.erp5.org/erp5/trunk/utils/oood/mimemapper.py?rev=23188&r1=23187&r2=23188&view=diff
==============================================================================
--- erp5/trunk/utils/oood/mimemapper.py (original)
+++ erp5/trunk/utils/oood/mimemapper.py Wed Aug 27 13:31:37 2008
@@ -212,6 +212,23 @@
           return x
       return None
 
+    def sort_index(flags, extension):
+      num = 0
+      flag_list = flags.split(' ')
+      if 'OWN' not in flag_list:
+        num += 10000
+      if 'ALIEN' in flag_list:
+        num += 1000
+      if '3RDPARTYFILTER' in flag_list:
+        num += 100
+      elif 'SUPPORTSSELECTION' in flag_list:
+        num += 200
+      if 'PREFERRED' not in flag_list:
+        num += 10
+      if 'TEMPLATEPATH' in flag_list:
+        num += 1
+      return '%05.f.%s' % (num, extension)
+
     type_list = []
     for x in type_file_list:
       type_list.extend(
@@ -294,7 +311,8 @@
         'document_type':document_type,
         'extension':extension,
         'mime_type':media_type,
-        'label':ui_name
+        'label':ui_name,
+        'sort_index':sort_index(flags, extension),
         }
 
     self.export_filter_by_extension_dict = {}
@@ -305,7 +323,9 @@
     for document_type in self.document_type_list:
       self.document_type_dict[document_type] = \
         [self.extension_by_export_filter_dict[k] for k, v in \
-         self.filter_property_dict.items() if v['document_type'] == document_type]
+         sorted(self.filter_property_dict.items(),
+                lambda a,b:cmp(a[1]['sort_index'], b[1]['sort_index']))
+         if v['document_type'] == document_type]
 
   def setFilterInfo(self):
     # specify more properties for several filters
@@ -368,8 +388,7 @@
       return []
     return [(ext,
              self.getTypePropertyDict(extension=ext)['label']) \
-            for ext in self.document_type_dict[document_type] \
-            if ext != extension]
+            for ext in self.document_type_dict[document_type]]
 
   def _mimeToType(self, mimetype):
     """




More information about the Erp5-report mailing list