diff options
| author | Xavier Morel <xmo@openerp.com> | 2012-11-12 13:49:04 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2012-11-12 13:49:04 +0100 |
| commit | e001c965a5aa5ee4d96cd2f531a5a439ae48aba5 (patch) | |
| tree | 91c6bae6077922a700e02acdfa837a2d790bc089 /addons/web/controllers/main.py | |
| parent | 7959c832cd27606d6826e07e7b57e738329b3867 (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.py | 108 |
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: |
