← Back to team overview

openerp-india team mailing list archive

[Bug 1001634] [NEW] Errors in followup templates silently fail

 

Public bug reported:

Hi, 
Here is an easy improvement for account_followup that could save hours for some people:

If someone configures a followup message with a parsing error, for
example by including 'Dear % (partner_name)s,' instead of 'Dear
%(partner_name)s', then the message creation silently fails  :

(Pdb) 
> /home/dadafkas/projets/anybox/buildout/parts/openerp-6.1-1/openerp/addons/account_followup/report/account_followup_print.py(117)_get_text()
-> 'user_signature': pooler.get_pool(self.cr.dbname).get('res.users').browse(self.cr, self.uid, self.uid, context).signature or '',
ValueError: "unsupported format character '(' (0x28) at index 7"

The consequence is that the followup report is printed anyway, but
without any message :(

The easy fix is to enclose the string formatting in a try: except:, and
replace the message with a prominent warning in case the formatting
fails :

        if text:
            try:
                text = text % {
                    'partner_name': stat_line.partner_id.name,
                    'date': time.strftime('%Y-%m-%d'),
                    'company_name': stat_line.company_id.name,
                    'user_signature': pooler.get_pool(self.cr.dbname).get('res.users').browse(self.cr, self.uid, self.uid, context).signature or '',
                }
            except:
                text = 'WARNING!!! ERROR IN FOLLOWUP MESSAGE TEMPLATE. Please fix you followup configuration: \n%r' % text

        return text

** Affects: openobject-addons
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/1001634

Title:
  Errors in followup templates silently fail

Status in OpenERP Addons (modules):
  New

Bug description:
  Hi, 
  Here is an easy improvement for account_followup that could save hours for some people:

  If someone configures a followup message with a parsing error, for
  example by including 'Dear % (partner_name)s,' instead of 'Dear
  %(partner_name)s', then the message creation silently fails  :

  (Pdb) 
  > /home/dadafkas/projets/anybox/buildout/parts/openerp-6.1-1/openerp/addons/account_followup/report/account_followup_print.py(117)_get_text()
  -> 'user_signature': pooler.get_pool(self.cr.dbname).get('res.users').browse(self.cr, self.uid, self.uid, context).signature or '',
  ValueError: "unsupported format character '(' (0x28) at index 7"

  The consequence is that the followup report is printed anyway, but
  without any message :(

  The easy fix is to enclose the string formatting in a try: except:,
  and replace the message with a prominent warning in case the
  formatting fails :

          if text:
              try:
                  text = text % {
                      'partner_name': stat_line.partner_id.name,
                      'date': time.strftime('%Y-%m-%d'),
                      'company_name': stat_line.company_id.name,
                      'user_signature': pooler.get_pool(self.cr.dbname).get('res.users').browse(self.cr, self.uid, self.uid, context).signature or '',
                  }
              except:
                  text = 'WARNING!!! ERROR IN FOLLOWUP MESSAGE TEMPLATE. Please fix you followup configuration: \n%r' % text

          return text

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/1001634/+subscriptions


Follow ups

References