Merge lp:~unifield-team/unifield-web/UF_659_real_sum into lp:unifield-web

Proposed by jftempo
Status: Merged
Merged at revision: 4594
Proposed branch: lp:~unifield-team/unifield-web/UF_659_real_sum
Merge into: lp:unifield-web
Diff against target: 116 lines (+40/-4)
2 files modified
addons/openerp/widgets/listgrid.py (+33/-3)
addons/openerp/widgets/templates/listgrid/listgrid.mako (+7/-1)
To merge this branch: bzr merge lp:~unifield-team/unifield-web/UF_659_real_sum
Reviewer Review Type Date Requested Status
UniField Dev Team Pending
Review via email: mp+86970@code.launchpad.net
To post a comment you must log in.
4585. By Matthieu Dietrich <mdietrich@chloups211>

UF-659: [IMP] merge with current unifield-web

4586. By Matthieu Dietrich <mdietrich@chloups211>

UF-659: [IMP] merge with UF_536

4587. By Matthieu Dietrich <mdietrich@chloups211>

removed UF_536 for the time being

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'addons/openerp/widgets/listgrid.py'
--- addons/openerp/widgets/listgrid.py 2011-11-28 16:19:08 +0000
+++ addons/openerp/widgets/listgrid.py 2011-12-29 10:44:27 +0000
@@ -41,12 +41,13 @@
41 template = "/openerp/widgets/templates/listgrid/listgrid.mako"41 template = "/openerp/widgets/templates/listgrid/listgrid.mako"
42 params = ['name', 'data', 'columns', 'headers', 'model', 'selectable', 'editable', 'noteditable', 42 params = ['name', 'data', 'columns', 'headers', 'model', 'selectable', 'editable', 'noteditable',
43 'pageable', 'selector', 'source', 'offset', 'limit', 'show_links', 'editors', 'view_mode',43 'pageable', 'selector', 'source', 'offset', 'limit', 'show_links', 'editors', 'view_mode',
44 'hiddens', 'edit_inline', 'field_total', 'link', 'checkbox_name', 'm2m', 'min_rows', 'string', 'o2m', 'dashboard', 'impex', 'hide_new_button', 'hide_delete_button']44 'hiddens', 'edit_inline', 'field_total', 'field_real_total', 'link', 'checkbox_name', 'm2m', 'min_rows', 'string', 'o2m', 'dashboard', 'impex', 'hide_new_button', 'hide_delete_button']
4545
46 member_widgets = ['pager', 'buttons', 'editors', 'concurrency_info']46 member_widgets = ['pager', 'buttons', 'editors', 'concurrency_info']
4747
48 pager = None48 pager = None
49 field_total = {}49 field_total = {}
50 field_real_total = {}
50 editors = {}51 editors = {}
51 hiddens = []52 hiddens = []
52 buttons = []53 buttons = []
@@ -207,11 +208,15 @@
207 data = kw['default_data']208 data = kw['default_data']
208209
209 self.values = copy.deepcopy(data)210 self.values = copy.deepcopy(data)
210 self.headers, self.hiddens, self.data, self.field_total, self.buttons = self.parse(root, fields, data)211 self.headers, self.hiddens, self.data, self.field_total, self.field_real_total, self.buttons = self.parse(root, fields, data)
211 212
212 for k, v in self.field_total.items():213 for k, v in self.field_total.items():
213 if(len([test[0] for test in self.hiddens if test[0] == k])) <= 0:214 if(len([test[0] for test in self.hiddens if test[0] == k])) <= 0:
214 self.field_total[k][1] = self.do_sum(self.data, k)215 self.field_total[k][1] = self.do_sum(self.data, k)
216
217 for k, v in self.field_real_total.items():
218 if(len([test[0] for test in self.hiddens if test[0] == k])) <= 0:
219 self.field_real_total[k][1] = self.do_real_sum(self.data, k)
215220
216 self.columns = len(self.headers)221 self.columns = len(self.headers)
217222
@@ -277,6 +282,27 @@
277 integer, digit = digits282 integer, digit = digits
278 return format.format_decimal(sum or 0.0, digit)283 return format.format_decimal(sum or 0.0, digit)
279284
285 def do_real_sum(self, data, field):
286 sum = 0.0
287
288 for d in data:
289 if d['line_type'].value != 'view':
290 value = d[field].value
291 sum += value
292
293 attrs = {}
294 if data:
295 d = data[0]
296 attrs = d[field].attrs
297
298 digits = attrs.get('digits', (16,2))
299 if isinstance(digits, basestring):
300 digits = eval(digits)
301
302 integer, digit = digits
303 return format.format_decimal(sum or 0.0, digit)
304
305
280 def display(self, value=None, **params):306 def display(self, value=None, **params):
281307
282 # set editor values308 # set editor values
@@ -354,6 +380,7 @@
354 buttons = []380 buttons = []
355381
356 field_total = {}382 field_total = {}
383 field_real_total = {}
357 values = [row.copy() for row in data]384 values = [row.copy() for row in data]
358385
359 myfields = [] # check for duplicate fields386 myfields = [] # check for duplicate fields
@@ -416,6 +443,9 @@
416443
417 if 'sum' in attrs:444 if 'sum' in attrs:
418 field_total[name] = [attrs['sum'], 0.0]445 field_total[name] = [attrs['sum'], 0.0]
446
447 if 'real_sum' in attrs:
448 field_real_total[name] = [attrs['real_sum'], 0.0]
419449
420 for i, row in enumerate(data):450 for i, row in enumerate(data):
421 row_value = values[i]451 row_value = values[i]
@@ -440,7 +470,7 @@
440470
441 headers += [(name, fields[name])]471 headers += [(name, fields[name])]
442472
443 return headers, hiddens, data, field_total, buttons473 return headers, hiddens, data, field_total, field_real_total, buttons
444474
445class Char(TinyWidget):475class Char(TinyWidget):
446 template = "/openerp/widgets/templates/listgrid/char.mako"476 template = "/openerp/widgets/templates/listgrid/char.mako"
447477
=== modified file 'addons/openerp/widgets/templates/listgrid/listgrid.mako'
--- addons/openerp/widgets/templates/listgrid/listgrid.mako 2011-11-23 16:17:27 +0000
+++ addons/openerp/widgets/templates/listgrid/listgrid.mako 2011-12-29 10:44:27 +0000
@@ -278,7 +278,7 @@
278 </tr>278 </tr>
279 % endfor279 % endfor
280 </tbody>280 </tbody>
281 % if field_total:281 % if field_total or field_real_total:
282 <tfoot>282 <tfoot>
283 <tr class="field_sum">283 <tr class="field_sum">
284 % if selector:284 % if selector:
@@ -298,6 +298,12 @@
298 <span class="sum_value_field" id="${field}">${val[1]}</span>298 <span class="sum_value_field" id="${field}">${val[1]}</span>
299 % endif299 % endif
300 % endfor300 % endfor
301 % elif 'real_sum' in field_attrs:
302 % for key, val in field_real_total.items():
303 % if field == key:
304 <span class="sum_value_field" id="${field}">${val[1]}</span>
305 % endif
306 % endfor
301 % else:307 % else:
302 &nbsp;308 &nbsp;
303 % endif309 % endif

Subscribers

People subscribed via source and target branches

to all changes: