~credativ/credativ-openerp/stock_inventory_sale_uom

« back to all changes in this revision

Viewing changes to product_name_get_simple/product.py

  • Committer: Ondřej Kuzník
  • Date: 2014-06-20 11:21:42 UTC
  • mfrom: (28.2.4 credativ-addons-rm6678)
  • Revision ID: ondrej.kuznik@credativ.co.uk-20140620112142-ld6tu32u0e5adllv
[MRG] PRoduct name view customizations

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: utf-8 -*-
 
2
##############################################################################
 
3
#
 
4
#    OpenERP, Open Source Management Solution
 
5
#    Copyright (C) 2014 credativ Ltd (<http://credativ.co.uk>).
 
6
#
 
7
#    This program is free software: you can redistribute it and/or modify
 
8
#    it under the terms of the GNU Affero General Public License as
 
9
#    published by the Free Software Foundation, either version 3 of the
 
10
#    License, or (at your option) any later version.
 
11
#
 
12
#    This program is distributed in the hope that it will be useful,
 
13
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
#    GNU Affero General Public License for more details.
 
16
#
 
17
#    You should have received a copy of the GNU Affero General Public License
 
18
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
19
#
 
20
##############################################################################
 
21
 
 
22
from openerp.osv import osv
 
23
 
 
24
class Product(osv.Model):
 
25
    _inherit = 'product.product'
 
26
 
 
27
    def name_get(self, cr, uid, ids, context=None):
 
28
        """
 
29
        Return the product name.
 
30
 
 
31
        :param dict context: the ``product_display_format`` key can be used to
 
32
                             select a shorter version:
 
33
                                 - ``'code'``: return just ``default_code``
 
34
                                 - ``'name'``: return just the ``name`` field
 
35
                                 - ``'default'``: use the default name_get()
 
36
        """
 
37
        if context is None:
 
38
            context = {}
 
39
        if isinstance(ids, (int, long)):
 
40
            ids = [ids]
 
41
 
 
42
        display_format = context.get('product_display_format', 'default')
 
43
 
 
44
        if display_format == 'name':
 
45
            return [ (record['id'], record[display_format])
 
46
                    for record in self.read(cr, uid, ids, [display_format], context=context) ]
 
47
        elif display_format == 'code':
 
48
            return [ (record['id'], record.get('default_code') or record.get('name'))
 
49
                    for record in self.read(cr, uid, ids, ['default_code', 'name'], context=context) ]
 
50
        else:
 
51
            return super(Product, self).name_get(cr, uid, ids, context=context)
 
52
 
 
53
Product()