You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.2 KiB

  1. # -*- coding: utf-8 -*-
  2. ##############################################################################
  3. #
  4. # Odoo, Open Source Management Solution
  5. # This module copyright (C) 2015 Savoir-faire Linux
  6. # (<http://www.savoirfairelinux.com>).
  7. #
  8. # This program is free software: you can redistribute it and/or modify
  9. # it under the terms of the GNU Affero General Public License as
  10. # published by the Free Software Foundation, either version 3 of the
  11. # License, or (at your option) any later version.
  12. #
  13. # This program is distributed in the hope that it will be useful,
  14. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. # GNU Affero General Public License for more details.
  17. #
  18. # You should have received a copy of the GNU Affero General Public License
  19. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  20. #
  21. ##############################################################################
  22. from openerp.osv import orm, fields
  23. class IrActionsReportXml(orm.Model):
  24. _inherit = 'ir.actions.report.xml'
  25. _columns = {
  26. 'use_secondary_logo': fields.boolean('Use Secondary Logo')
  27. }
  28. _defaults = {
  29. 'use_secondary_logo': False
  30. }
  31. def write(self, cr, uid, ids, vals, context=None):
  32. context = context or {}
  33. company = self.pool['res.users'].browse(
  34. cr, uid, uid, context=context).company_id
  35. logo_name = company.has_logo_secondary and company.name_secondary or False
  36. if 'use_secondary_logo' in vals:
  37. if logo_name:
  38. assert len(ids) == 1, "you can only modify the report logo " \
  39. "one at a time"
  40. name = vals.get('name', False) or self.browse(
  41. cr, uid, ids[0], context=context).name
  42. if vals['use_secondary_logo']:
  43. vals['name'] = ' '.join([name.strip(logo_name), logo_name])
  44. else:
  45. vals['name'] = name.strip(logo_name)
  46. else:
  47. vals.pop('use_secondary_logo')
  48. return super(IrActionsReportXml, self).write(
  49. cr, uid, ids, vals, context=context)