~akretion-team/openobject-extension/openobject-extension-repository-70

« back to all changes in this revision

Viewing changes to file_exchange/file_exchange_osv.py

  • Committer: Sébastien Beau
  • Date: 2013-05-20 10:22:35 UTC
  • Revision ID: sebastien.beau@akretion.com-20130520102235-6c0smluu4xycxwzs
[REF] remove deprecated module, all file-exchange module are now in the projetc file-exchange

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- encoding: utf-8 -*-
2
 
###############################################################################
3
 
#                                                                             #
4
 
#   ftp_external_referential for OpenERP                                      #
5
 
#   Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com>  #
6
 
#                                                                             #
7
 
#   This program is free software: you can redistribute it and/or modify      #
8
 
#   it under the terms of the GNU Affero General Public License as            #
9
 
#   published by the Free Software Foundation, either version 3 of the        #
10
 
#   License, or (at your option) any later version.                           #
11
 
#                                                                             #
12
 
#   This program is distributed in the hope that it will be useful,           #
13
 
#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
14
 
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
15
 
#   GNU Affero General Public License for more details.                       #
16
 
#                                                                             #
17
 
#   You should have received a copy of the GNU Affero General Public License  #
18
 
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
19
 
#                                                                             #
20
 
###############################################################################
21
 
 
22
 
from openerp.osv.orm import Model
23
 
from base_external_referentials.decorator import only_for_referential, catch_error_in_report
24
 
 
25
 
Model._feo_record_one_external_resource = Model._record_one_external_resource #feo mean file_exchange_original
26
 
 
27
 
@only_for_referential(ref_categ ='File Exchange', super_function = Model._feo_record_one_external_resource)
28
 
@catch_error_in_report
29
 
def _record_one_external_resource(self, cr, uid, external_session, resource, **kwargs):
30
 
    context=kwargs.get('context')
31
 
    method = self.pool.get('file.exchange').browse(cr, uid, context['file_exchange_id'], context=context)
32
 
    check = method.start_action('check_if_import', self, None, resource, context=context)
33
 
    res = {}
34
 
    if check:
35
 
        method.start_action('action_before_each', self, None, resource, context=context)
36
 
        res = self._feo_record_one_external_resource(cr, uid, external_session, resource, **kwargs)
37
 
        res_id = res.get('create_id', False) or res.get('write_id', False)
38
 
        if res_id:
39
 
            method.start_action('action_after_each', self, [res_id], resource, context=context)
40
 
    return res
41
 
 
42
 
Model._record_one_external_resource = _record_one_external_resource
43
 
 
44
 
Model._feo_get_default_import_values = Model._get_default_import_values #feo mean file_exchange_original
45
 
 
46
 
@only_for_referential(ref_categ ='File Exchange', super_function = Model._feo_get_default_import_values)
47
 
def _get_default_import_values(self, cr, uid, external_session, mapping_id=None, defaults=None, context=None):
48
 
    if not defaults:
49
 
        defaults = {}
50
 
    method = external_session.sync_from_object
51
 
    mapping = self.pool.get('external.mapping').browse(cr, uid, mapping_id, context=context)
52
 
    for field in method.import_default_fields:
53
 
        if field.mapping_id.id == mapping.id:
54
 
            if field.type == 'integer':
55
 
                defaults[field.import_default_field.name] = int(field.import_default_value)
56
 
            elif field.type == 'float':
57
 
                defaults[field.import_default_field.name] = float(field.import_default_value.replace(',','.'))
58
 
            elif field.type in ['list','dict']:
59
 
                defaults[field.import_default_field.name] = eval(field.import_default_value)
60
 
            else:
61
 
                defaults[field.import_default_field.name] = str(field.import_default_value)
62
 
    return defaults
63
 
 
64
 
Model._get_default_import_values = _get_default_import_values
65
 
 
66
 
def _get_oe_resources_into_external_format(self, cr, uid, external_session, ids, mapping=None, mapping_id=None, mapping_line_filter_ids=None, fields=[], defaults=None, context=None):
67
 
    result = []
68
 
    for resource in self.read_w_order(cr, uid, ids, fields, context):
69
 
        result.append(self._transform_one_resource(cr, uid, external_session, 'from_openerp_to_external', resource, mapping, mapping_id, mapping_line_filter_ids=mapping_line_filter_ids, parent_data=None, previous_result=None, defaults=defaults, context=context))
70
 
    return result
71
 
Model._get_oe_resources_into_external_format = _get_oe_resources_into_external_format
72