[FIX] problem in database manager when db list is desactivated
[odoo/odoo.git] / addons / web / controllers / main.py
index 6919def..93e08db 100644 (file)
@@ -1,9 +1,11 @@
 # -*- coding: utf-8 -*-
+
 import ast
 import base64
 import csv
 import glob
 import itertools
+import logging
 import operator
 import datetime
 import hashlib
@@ -28,6 +30,7 @@ except ImportError:
     xlwt = None
 
 import openerp
+import openerp.modules.registry
 from openerp.tools.translate import _
 
 from .. import http
@@ -278,8 +281,9 @@ def concat_files(file_list, reader=None, intersperse=""):
 
     if reader is None:
         def reader(f):
-            with open(f, 'rb') as fp:
-                return fp.read()
+            import codecs
+            with codecs.open(f, 'rb', "utf-8-sig") as fp:
+                return fp.read().encode("utf-8")
 
     files_content = []
     for fname in file_list:
@@ -1367,7 +1371,7 @@ class Binary(openerpweb.Controller):
         else:
             try:
                 # create an empty registry
-                registry = openerp.modules.registry.Registry(dbname.lower())
+                registry = openerp.modules.registry.Registry(dbname)
                 with registry.cursor() as cr:
                     cr.execute("""SELECT c.logo_web
                                     FROM res_users u
@@ -1427,7 +1431,6 @@ class Action(openerpweb.Controller):
         else:
             return False
 
-
 class Export(openerpweb.Controller):
     _cp_path = "/web/export"
 
@@ -1569,13 +1572,7 @@ class Export(openerpweb.Controller):
             (prefix + '/' + k, prefix_string + '/' + v)
             for k, v in self.fields_info(req, model, export_fields).iteritems())
 
-
 class ExportFormat(object):
-    """
-    Superclass for export formats, should probably be an abc and have a way to
-    generate _cp_path from fmt but it's a pain to deal with conflicts with
-    ControllerType
-    """
     @property
     def content_type(self):
         """ Provides the format's content type """
@@ -1616,13 +1613,13 @@ class ExportFormat(object):
         else:
             columns_headers = [val['label'].strip() for val in fields]
 
+
         return req.make_response(self.from_data(columns_headers, import_data),
             headers=[('Content-Disposition',
                             content_disposition(self.filename(model), req)),
                      ('Content-Type', self.content_type)],
             cookies={'fileToken': int(token)})
 
-
 class CSVExport(ExportFormat, http.Controller):
     _cp_path = '/web/export/csv'
     fmt = {'tag': 'csv', 'label': 'CSV'}
@@ -1658,7 +1655,6 @@ class CSVExport(ExportFormat, http.Controller):
         fp.close()
         return data
 
-
 class ExcelExport(ExportFormat, http.Controller):
     _cp_path = '/web/export/xls'
     fmt = {
@@ -1698,7 +1694,6 @@ class ExcelExport(ExportFormat, http.Controller):
         fp.close()
         return data
 
-
 class Reports(openerpweb.Controller):
     _cp_path = "/web/report"
     POLLING_DELAY = 0.25