Advertisement
Guest User

odoo chatter message on demand

a guest
Sep 19th, 2016
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. def _message_order_formatter(subj, line, changed, old):
  2.     """Format mail msg for update order lines log.
  3.  
  4.    @param subj: subject of the message
  5.    @param line: order line
  6.    @param changed: mapping of changed field values
  7.    @param old: mapping of old field values
  8.    """
  9.     mess = subj + "<ul>"
  10.     for fname, value in changed.iteritems():
  11.         mess += """
  12.        <li>{label}: {old_value} -> {new_value}</li>
  13.        """.format(
  14.             # TODO: translate label
  15.             label=line._fields[fname].string,
  16.             old_value=old[fname],
  17.             new_value=value,
  18.         )
  19.     mess += "<ul>"
  20.     return mess
  21.  
  22.  
  23. [...]
  24. fnames = (
  25.     'name', 'product_id',
  26.     'product_uom', 'product_uom_qty',
  27. )
  28. changed = {}
  29. current = self.order_line_id.read(
  30.     fnames, load='_classic_write')[0]
  31. for fname in fnames:
  32.     if not current[fname] == line_values[fname]:
  33.         # build mapping of changed field
  34.         # values are ($old, $new)
  35.         changed[fname] = line_values[fname]
  36. if changed:
  37.     self.order_line_id.write(changed)
  38.     subj = 'Line {} updated'.format(self.order_line_id.name)
  39.     self.order_id.message_post(
  40.         body=_message_order_formatter(
  41.             subj,
  42.             self.order_line_id,
  43.             changed,
  44.             current
  45.         ),
  46.     )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement