~vauxoo/addons-vauxoo/8.0-import_tax_tariff-dev-yani-rev-2

« back to all changes in this revision

Viewing changes to issue_load/workflow/wizard/migrate.py

  • Committer: Nhomar Hernandez
  • Date: 2013-04-19 20:33:12 UTC
  • mfrom: (542.1.314 addons-vauxoo)
  • Revision ID: nhomar@gmail.com-20130419203312-o35v7dn79l6vur0t
[MERGE - PEP8 AND V7-MIG] All migrated to V7 Just
improved osv.osv => osv.Model, osv.osv_memory => osv.TransientModel
import inside openerp.* enviroment
Erased class instansiation no necesarry anymore in V7
AUTOPEP8 run, Left PEP8 long lines manually.

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
import xmlrpclib
10
10
from datetime import datetime
11
11
 
12
 
def loadProjectsTasks(fileName,HOST,PORT,DB,USER,PASS):
 
12
 
 
13
def loadProjectsTasks(fileName, HOST, PORT, DB, USER, PASS):
13
14
    ISSUES_PAGE = 0
14
15
    TASKS_PAGE = 1
15
16
    WORKS_PAGE = 2
16
 
    
 
17
 
17
18
    ''' Objects needed for rpc calls '''
18
 
    url ='http://%s:%d/xmlrpc/' % (HOST,PORT)
 
19
    url = 'http://%s:%d/xmlrpc/' % (HOST, PORT)
19
20
    common_proxy = xmlrpclib.ServerProxy(url+'common')
20
21
    object_proxy = xmlrpclib.ServerProxy(url+'object')
21
22
    wizard_proxy = xmlrpclib.ServerProxy(url+'wizard')
22
23
    workflow_proxy = xmlrpclib.ServerProxy(url+'workflow')
23
 
    uid = common_proxy.login(DB,USER,PASS)
24
 
    
 
24
    uid = common_proxy.login(DB, USER, PASS)
 
25
 
25
26
    ID_ADDR = 1
26
 
    
 
27
 
27
28
    def clean(cadena):
28
29
        if isinstance(cadena, str):
29
30
            return cadena and cadena.encode('ascii', 'ignore').strip() or None
30
31
        return cadena
31
 
    
 
32
 
32
33
    def cleanDict(d):
33
34
        res = {}
34
35
        for k in d:
35
36
            if not d[k] is None:
36
 
                res.update({k:d[k]})
 
37
                res.update({k: d[k]})
37
38
        return res
38
 
    
 
39
 
39
40
    def readSheet(fileName, nSheet):
40
41
        # Open workbook
41
 
        book = xlrd.open_workbook(fileName,formatting_info=True)
 
42
        book = xlrd.open_workbook(fileName, formatting_info=True)
42
43
        sheet = book.sheet_by_index(nSheet)
43
44
        values = []
44
45
        for T in range(sheet.nrows):
45
46
            values.append([clean(v) for v in sheet.row_values(T)])
46
 
        
 
47
 
47
48
        return values
48
 
    
 
49
 
49
50
    def searchTasks(project_id, tasks):
50
51
        res = []
51
52
        for t in tasks:
53
54
                if int(t[1]) == project_id:
54
55
                    res.append(t)
55
56
        return res
56
 
    
 
57
 
57
58
    def searchWorks(task_id, works):
58
59
        res = []
59
60
        for w in works:
70
71
    for issue in issues:
71
72
        if issue[0] != 'ID':
72
73
            if issue[4]:
73
 
                user_mail = object_proxy.execute(DB, uid, PASS, 'res.users', 'read', int(issue[4]), ['user_email'])
 
74
                user_mail = object_proxy.execute(
 
75
                    DB, uid, PASS, 'res.users', 'read', int(issue[4]), ['user_email'])
74
76
            else:
75
77
                user_mail['user_email'] = None
76
 
            addr = issue[7] and (int(issue[7])==3 and ID_ADDR or int(issue[7])) or None
 
78
            addr = issue[7] and (int(issue[
 
79
                                 7]) == 3 and ID_ADDR or int(issue[7])) or None
77
80
            values_issue = {
78
 
                'name' : issue[1].encode('ascii','ignore'),
 
81
                'name': issue[1].encode('ascii', 'ignore'),
79
82
                'categ_id': int(issue[3]),
80
83
                'project_id': int(issue[2]),
81
84
                'assigned_to': issue[4] and int(issue[4]) or None,
83
86
                'partner_id': int(issue[6]),
84
87
                'partner_address_id': addr,
85
88
                'state':  'open',
86
 
                'description': issue[8].encode('ascii','ignore'),
 
89
                'description': issue[8].encode('ascii', 'ignore'),
87
90
                'email_from': issue[4] and user_mail['user_email'] or None,
88
91
                'active': True,
89
92
            }
90
93
            values_issue = cleanDict(values_issue)
91
 
            project_id = object_proxy.execute(DB, uid, PASS, 'project.issue', 'create', values_issue)
 
94
            project_id = object_proxy.execute(
 
95
                DB, uid, PASS, 'project.issue', 'create', values_issue)
92
96
            if project_id:
93
97
                if issue[4]:
94
 
                    object_proxy.execute(DB, uid, PASS, 'project.issue', 'write', [project_id], {'assigned_to': int(issue[4]), 'user_id': int(issue[4])})
 
98
                    object_proxy.execute(DB, uid, PASS, 'project.issue', 'write', [
 
99
                                         project_id], {'assigned_to': int(issue[4]), 'user_id': int(issue[4])})
95
100
                project_tasks = searchTasks(int(issue[0]), tasks)
96
101
                if project_tasks:
97
102
                    for task in project_tasks:
98
103
                        values_tasks = {
99
104
                            'name': values_issue['name'],
100
105
                            'project_id': values_issue['project_id'],
101
 
                            'assigned_to':values_issue['assigned_to'],
102
 
                            'user_id':values_issue['assigned_to'],
 
106
                            'assigned_to': values_issue['assigned_to'],
 
107
                            'user_id': values_issue['assigned_to'],
103
108
                            'planned_hours': task[2],
104
109
                            'remaining_hours': task[3],
105
110
                            'type_id': values_issue['type_id'],
106
111
                            'partner_id': values_issue['partner_id'],
107
112
                            'state': 'open',
108
 
                            'date_start':datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
109
 
                            'date_end':datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
 
113
                            'date_start': datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
 
114
                            'date_end': datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
110
115
                            'description': values_issue['description'],
111
116
                        }
112
117
                        values_tasks = cleanDict(values_tasks)
113
 
                        task_id = object_proxy.execute(DB, uid, PASS, 'project.task', 'create', values_tasks)
 
118
                        task_id = object_proxy.execute(
 
119
                            DB, uid, PASS, 'project.task', 'create', values_tasks)
114
120
                        if task_id:
115
 
                            object_proxy.execute(DB, uid, PASS, 'project.issue', 'write', [project_id], {'task_id': task_id})
 
121
                            object_proxy.execute(DB, uid, PASS, 'project.issue', 'write', [
 
122
                                                 project_id], {'task_id': task_id})
116
123
                            task_works = searchWorks(int(task[0]), works)
117
124
                            if task_works:
118
125
                                for work in task_works:
119
126
                                    values_works = {
120
 
                                        'name': work[1].encode('ascii','ignore'),
121
 
                                        'hours' : work[2],
122
 
                                        'date' : datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
 
127
                                        'name': work[1].encode('ascii', 'ignore'),
 
128
                                        'hours': work[2],
 
129
                                        'date': datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
123
130
                                        'user_id': values_issue['assigned_to'],
124
131
                                        'task_id': task_id,
125
132
                                    }
126
 
                                    work_id = object_proxy.execute(DB, uid, PASS, 'project.task.work', 'create', values_works)
 
133
                                    work_id = object_proxy.execute(
 
134
                                        DB, uid, PASS, 'project.task.work', 'create', values_works)
127
135
                                    if work_id:
128
 
                                        object_proxy.execute(DB, uid, PASS, 'project.task', 'write', [task_id], {'state': task[4]})
129
 
                object_proxy.execute(DB, uid, PASS, 'project.issue', 'write', [project_id], {'state': issue[9]})
130
 
                
131
 
                
 
136
                                        object_proxy.execute(DB, uid, PASS, 'project.task', 'write', [
 
137
                                                             task_id], {'state': task[4]})
 
138
                object_proxy.execute(DB, uid, PASS, 'project.issue', 'write', [
 
139
                                     project_id], {'state': issue[9]})