~vauxoo/addons-vauxoo/6.0-trunk

« back to all changes in this revision

Viewing changes to message_post_model/model/message_post.py

  • Committer: Moises Lopez
  • Date: 2014-10-09 21:30:17 UTC
  • mfrom: (879.1.7 trunk-addons-vauxoo)
  • Revision ID: moylop260@vauxoo.com-20141009213017-u3jicyg8xery3r8c
[MERGE] upforward 7.0
-Fix unused import
-Fix relative import
-Fix full path import
-Fix trailing whitespace pylint error C0303
-Fix autopep8 ignoring E501 & E128
-Fix reimported
-Fix __openerp__.py files
-Translate update

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
24
##########################################################################
25
25
 
26
 
from openerp.osv import osv, fields
 
26
from openerp.osv import osv
27
27
from openerp.tools.translate import _
28
28
 
29
29
 
30
 
 
31
 
 
32
30
class message_post_show_all(osv.Model):
 
31
 
33
32
    '''
34
33
    With this object you can add an extensive log in your model like the
35
34
    traditional message log don't does
66
65
        else:
67
66
            value = field and model_brw[field] or ''
68
67
 
69
 
 
70
68
        return field and value or ''
71
69
 
72
70
    def prepare_many_info(self, cr, uid, id, records, string, n_obj, last=None,
73
71
                          context=None):
74
72
        context = context or {}
75
73
        info = {
76
 
                0: _('Created New Line'),
77
 
                1: _('Updated Line'),
78
 
                2: _('Removed Line'),
79
 
                3: _('Removed Line'),
80
 
                6: _('many2many'),
81
 
                 }
 
74
            0: _('Created New Line'),
 
75
            1: _('Updated Line'),
 
76
            2: _('Removed Line'),
 
77
            3: _('Removed Line'),
 
78
            6: _('many2many'),
 
79
        }
82
80
        message = '<ul>'
83
81
        obj = self.pool.get(n_obj)
84
82
        r_name = obj._rec_name
88
86
                if val[0] == 0:
89
87
                    value = val[2]
90
88
                    message = u'%s\n<li><b>%s<b>: %s</li>' % \
91
 
                                                (message,
92
 
                                                 info.get(val[0]),
93
 
                                                 value.get(r_name),
94
 
                                                 )
 
89
                        (message,
 
90
                     info.get(val[0]),
 
91
                     value.get(r_name),
 
92
                         )
95
93
                elif val[0] in (2, 3):
96
 
                    model_brw =  obj.browse(cr, uid, val[1], context=context)
 
94
                    model_brw = obj.browse(cr, uid, val[1], context=context)
97
95
                    last_value = model_brw.name_get()
98
96
                    last_value = last_value and last_value[0][1]
99
97
                    value = val[1]
100
98
                    message = u'%s\n<li><b>%s<b>: %s</li>' % \
101
 
                                                (message,
102
 
                                                 info.get(val[0]),
103
 
                                                 last_value)
 
99
                        (message,
 
100
                     info.get(val[0]),
 
101
                     last_value)
104
102
 
105
103
                elif val[0] == 6:
106
104
                    lastv = list(set(val[2]) - set(last))
112
110
                        dele = [obj.name_get(cr, uid, [i])[0][1] for i in lastv]
113
111
                        mes = ' - '.join(dele)
114
112
                        message = u'%s\n<li><b>%s %s<b>: %s</li>' % \
115
 
                                                    (message,
116
 
                                                     add,
117
 
                                                     string,
118
 
                                                     mes)
 
113
                            (message,
 
114
                         add,
 
115
                         string,
 
116
                         mes)
119
117
                    if not lastv and new:
120
118
 
121
119
                        dele = [obj.name_get(cr, uid, [i])[0][1] for i in new]
122
120
                        mes = '-'.join(dele)
123
121
                        message = u'%s\n<li><b>%s %s<b>: %s</li>' % \
124
 
                                                    (message,
125
 
                                                     delete,
126
 
                                                     string,
127
 
                                                     mes)
 
122
                            (message,
 
123
                         delete,
 
124
                         string,
 
125
                         mes)
128
126
 
129
127
                elif val[0] == 1:
130
128
                    vals = val[2]
135
133
                            MANY = obj._columns[field]._type == 'many2many'
136
134
 
137
135
                            LAST = MANY and self.get_last_value(cr, uid,
138
 
                                                                 val[1],
139
 
                                                                 n_obj,
140
 
                                                                 field,
141
 
                                                                 'many2many',
142
 
                                                                 context)
 
136
                                                                val[1],
 
137
                                                                n_obj,
 
138
                                                                field,
 
139
                                                                'many2many',
 
140
                                                                context)
143
141
                            ST = obj._columns[field].string
144
142
                            N_OBJ = obj._columns[field]._obj
145
143
                            mes = self.prepare_many_info(cr, uid, val[1],
149
147
                                                         LAST,
150
148
                                                         context)
151
149
 
152
 
                        elif obj._columns[field]._type == 'many2one' :
 
150
                        elif obj._columns[field]._type == 'many2one':
153
151
                            mes = self.prepare_many2one_info(cr, uid, val[1],
154
152
                                                             n_obj,
155
153
                                                             field,
165
163
                            message = '%s\n%s' % (message, mes)
166
164
                            id_line = val[1]
167
165
 
168
 
 
169
166
        message = '%s\n</ul>' % message
170
167
        return message
171
168
 
181
178
                                         obj._columns[field]._type,
182
179
                                         context)
183
180
        model_obj = self.pool.get(obj._columns[field]._obj)
184
 
        model_brw =  model_obj.browse(cr, uid, vals[field], context=context)
 
181
        model_brw = model_obj.browse(cr, uid, vals[field], context=context)
185
182
        new_value = model_brw.name_get()
186
183
        new_value = new_value and new_value[0][1]
187
184
 
188
185
        if not (last_value == new_value) and any((new_value, last_value)):
189
186
            message = u'<li><b>%s<b>: %s → %s</li>' % \
190
 
                                        (obj._columns[field].string,
191
 
                                         last_value,
192
 
                                         new_value)
 
187
                (obj._columns[field].string,
 
188
                 last_value,
 
189
                 new_value)
193
190
        return message
194
191
 
195
 
 
196
192
    def prepare_simple_info(self, cr, uid, id, n_obj, field,
197
193
                            vals, context=None):
198
194
        context = context or {}
199
 
        obj =  self.pool.get(n_obj)
 
195
        obj = self.pool.get(n_obj)
200
196
        message = '<p>'
201
197
        last_value = self.get_last_value(cr, uid, id,
202
198
                                         obj._name,
206
202
 
207
203
        if not (unicode(last_value) == unicode(vals[field])) and any((last_value, vals[field])):
208
204
            message = u'<li><b>%s<b>: %s → %s</li>' % \
209
 
                                        (obj._columns[field].string,
210
 
                                         last_value,
211
 
                                         vals[field])
 
205
                (obj._columns[field].string,
 
206
                 last_value,
 
207
                 vals[field])
212
208
        return message
213
209
 
214
210
    def write(self, cr, uid, ids, vals, context=None):
229
225
                    N_OBJ = self._columns[field]._obj
230
226
                    message = self.prepare_many_info(cr, uid, id, vals[field],
231
227
                                                     ST, N_OBJ, LAST, context)
232
 
                    body = len(message.split('\n'))  > 2 and '%s\n%s: %s' % (body, ST, message)
233
 
                elif self._columns[field]._type == 'many2one' :
 
228
                    body = len(message.split('\n')) > 2 and '%s\n%s: %s' % (body, ST, message)
 
229
                elif self._columns[field]._type == 'many2one':
234
230
                    message = self.prepare_many2one_info(cr, uid, id,
235
231
                                                         self._name,
236
232
                                                         field,
246
242
 
247
243
            body = body and '%s\n</ul>' % body
248
244
            body and message and \
249
 
                   self.message_post(cr, uid, [id], body,
250
 
                                     _('Changes in Fields'))
 
245
                self.message_post(cr, uid, [id], body,
 
246
                              _('Changes in Fields'))
251
247
        res = super(message_post_show_all, self).write(cr, uid, ids, vals,
252
248
                                                 context=context)
253
249
        return res
254