summaryrefslogtreecommitdiff
path: root/addons/web/controllers/main.py
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-11-12 13:49:04 +0100
committerXavier Morel <xmo@openerp.com>2012-11-12 13:49:04 +0100
commite001c965a5aa5ee4d96cd2f531a5a439ae48aba5 (patch)
tree91c6bae6077922a700e02acdfa837a2d790bc089 /addons/web/controllers/main.py
parent7959c832cd27606d6826e07e7b57e738329b3867 (diff)
[REM] unused import controller
bzr revid: xmo@openerp.com-20121112124904-4ubf9d17d2whq1ln
Diffstat (limited to 'addons/web/controllers/main.py')
-rw-r--r--addons/web/controllers/main.py108
1 files changed, 0 insertions, 108 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index ad8d91ed1dd..2d2ee30783c 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -2010,112 +2010,4 @@ class Reports(View):
('Content-Length', len(report))],
cookies={'fileToken': int(token)})
-class Import(View):
- _cp_path = "/web/import"
-
- def fields_get(self, req, model):
- Model = req.session.model(model)
- fields = Model.fields_get(False, req.session.eval_context(req.context))
- return fields
-
- @openerpweb.httprequest
- def detect_data(self, req, csvfile, csvsep=',', csvdel='"', csvcode='utf-8', jsonp='callback'):
- try:
- data = list(csv.reader(
- csvfile, quotechar=str(csvdel), delimiter=str(csvsep)))
- except csv.Error, e:
- csvfile.seek(0)
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps({'error': {
- 'message': 'Error parsing CSV file: %s' % e,
- # decodes each byte to a unicode character, which may or
- # may not be printable, but decoding will succeed.
- # Otherwise simplejson will try to decode the `str` using
- # utf-8, which is very likely to blow up on characters out
- # of the ascii range (in range [128, 256))
- 'preview': csvfile.read(200).decode('iso-8859-1')}}))
-
- try:
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps(
- {'records': data[:10]}, encoding=csvcode))
- except UnicodeDecodeError:
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps({
- 'message': u"Failed to decode CSV file using encoding %s, "
- u"try switching to a different encoding" % csvcode
- }))
-
- @openerpweb.httprequest
- def import_data(self, req, model, csvfile, csvsep, csvdel, csvcode, jsonp,
- meta):
- modle_obj = req.session.model(model)
- skip, indices, fields = operator.itemgetter('skip', 'indices', 'fields')(
- simplejson.loads(meta))
-
- error = None
- if not (csvdel and len(csvdel) == 1):
- error = u"The CSV delimiter must be a single character"
-
- if not indices and fields:
- error = u"You must select at least one field to import"
-
- if error:
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps({'error': {'message': error}}))
-
- # skip ignored records (@skip parameter)
- # then skip empty lines (not valid csv)
- # nb: should these operations be reverted?
- rows_to_import = itertools.ifilter(
- None,
- itertools.islice(
- csv.reader(csvfile, quotechar=str(csvdel), delimiter=str(csvsep)),
- skip, None))
-
- # if only one index, itemgetter will return an atom rather than a tuple
- if len(indices) == 1: mapper = lambda row: [row[indices[0]]]
- else: mapper = operator.itemgetter(*indices)
-
- data = None
- error = None
- try:
- # decode each data row
- data = [
- [record.decode(csvcode) for record in row]
- for row in itertools.imap(mapper, rows_to_import)
- # don't insert completely empty rows (can happen due to fields
- # filtering in case of e.g. o2m content rows)
- if any(row)
- ]
- except UnicodeDecodeError:
- error = u"Failed to decode CSV file using encoding %s" % csvcode
- except csv.Error, e:
- error = u"Could not process CSV file: %s" % e
-
- # If the file contains nothing,
- if not data:
- error = u"File to import is empty"
- if error:
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps({'error': {'message': error}}))
-
- try:
- (code, record, message, _nope) = modle_obj.import_data(
- fields, data, 'init', '', False,
- req.session.eval_context(req.context))
- except xmlrpclib.Fault, e:
- error = {"message": u"%s, %s" % (e.faultCode, e.faultString)}
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps({'error':error}))
-
- if code != -1:
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps({'success':True}))
-
- msg = u"Error during import: %s\n\nTrying to import record %r" % (
- message, record)
- return '<script>window.top.%s(%s);</script>' % (
- jsonp, simplejson.dumps({'error': {'message':msg}}))
-
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: