~unifield-team/unifield-wm/us-826

« back to all changes in this revision

Viewing changes to delete_button/delete_button.py

  • Committer: Olivier DOSSMANN
  • Date: 2013-05-31 14:22:09 UTC
  • mto: This revision was merged to the branch mainline in revision 1687.
  • Revision ID: od@tempo-consulting.fr-20130531142209-sbcwvzuema11guzz
UF-1991 [FIX] Problem with wizard on "msg" field. Change it to "name".

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) 2004-2010 Tiny SPRL (<http://tiny.be>).
 
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 osv import fields, osv
 
23
from tools.translate import _
 
24
 
 
25
class stock_picking(osv.osv):
 
26
    """
 
27
    Override the class stock_picking to replace the standard 
 
28
    delete button by a delete button of type "object"
 
29
    """
 
30
    _name = 'stock.picking'
 
31
    _inherit = 'stock.picking'
 
32
    
 
33
    def unlink(self, cr, uid, ids, context=None):
 
34
        """
 
35
        The deletion is possible only for draft document that are not generated by the system, 
 
36
        i.e. that doesn't come from a PO or a SO => the check is done in msf_outgoing>msf_outgoing.py
 
37
        """
 
38
        if isinstance(ids, (int, long)):
 
39
            ids = [ids]
 
40
        for sp  in self.read(cr, uid, ids,['state'], context=context):
 
41
            if sp['state'] == 'draft':
 
42
                return super(stock_picking, self).unlink(cr, uid, ids, context)
 
43
            else:
 
44
                raise osv.except_osv(_('Warning !'), _('You can only delete documents which are in "Draft" state.'))
 
45
    
 
46
    def delete_button(self, cr, uid, ids, context=None):
 
47
        """
 
48
        This method is called on the button of type object in tree view.
 
49
        The aim is to be able to display the delete button only in draft state, which is not possible with the standard delete button.
 
50
        """
 
51
        if isinstance(ids, (int, long)):
 
52
            ids = [ids]
 
53
        return self.unlink(cr, uid, ids, context)
 
54
    
 
55
stock_picking()
 
56
 
 
57
class purchase_order(osv.osv):
 
58
    """
 
59
    Override the class purchase_order to replace the standard 
 
60
    delete button by a delete button of type "object"
 
61
    """
 
62
    _name = 'purchase.order'
 
63
    _inherit = 'purchase.order'
 
64
    
 
65
    def unlink(self, cr, uid, ids, context=None):
 
66
        """
 
67
        Don't allow user to delete purchase order in draft state
 
68
        """
 
69
        if isinstance(ids, (int, long)):
 
70
            ids = [ids]
 
71
        for p  in self.read(cr, uid, ids,['state'], context=context):
 
72
            if p['state'] == 'draft':
 
73
                return super(purchase_order, self).unlink(cr, uid, ids, context)
 
74
            else:
 
75
                raise osv.except_osv(_('Warning !'), _('You can only delete documents which are in "Draft" state.'))
 
76
    
 
77
    def delete_button(self, cr, uid, ids, context=None):
 
78
        """
 
79
        This method is called on the button of type object in tree view.
 
80
        The aim is to be able to display the delete button only in draft state, which is not possible with the standard delete button.
 
81
        """
 
82
        if isinstance(ids, (int, long)):
 
83
            ids = [ids]
 
84
        return self.unlink(cr, uid, ids, context)
 
85
    
 
86
purchase_order()
 
87
 
 
88
class sale_order(osv.osv):
 
89
    """
 
90
    Override the class sale_order to replace the standard 
 
91
    delete button by a delete button of type "object"
 
92
    """
 
93
    _name = 'sale.order'
 
94
    _inherit = 'sale.order'
 
95
    
 
96
    def unlink(self, cr, uid, ids, context=None):
 
97
        """
 
98
        Do not allow user to delete sale order in draft state
 
99
        """
 
100
        if isinstance(ids, (int, long)):
 
101
            ids = [ids]
 
102
        for order in self.read(cr, uid, ids,['state'], context=context):
 
103
            if order['state'] == 'draft':
 
104
                return super(sale_order, self).unlink(cr, uid, ids, context)
 
105
            else:
 
106
                raise osv.except_osv(_('Warning !'), _('You can only delete documents which are in "Draft" state.'))
 
107
    
 
108
    def delete_button(self, cr, uid, ids, context=None):
 
109
        """
 
110
        This method is called on the button of type object in tree view.
 
111
        The aim is to be able to display the delete button only in draft state, which is not possible with the standard delete button.
 
112
        """
 
113
        if isinstance(ids, (int, long)):
 
114
            ids = [ids]
 
115
        return self.unlink(cr, uid, ids, context)
 
116
    
 
117
sale_order()
 
118
 
 
119
class tender(osv.osv):
 
120
    """
 
121
    Override the class tender to replace the standard 
 
122
    delete button by a delete button of type "object"
 
123
    """
 
124
    _name = 'tender'
 
125
    _inherit = 'tender'
 
126
    
 
127
    def unlink(self, cr, uid, ids, context=None):
 
128
        """
 
129
        Do not allow user to delete tender in draft state
 
130
        """
 
131
        if isinstance(ids, (int, long)):
 
132
            ids = [ids]
 
133
        for order in self.read(cr, uid, ids,['state'], context=context):
 
134
            if order['state'] == 'draft':
 
135
                return super(tender, self).unlink(cr, uid, ids, context)
 
136
            else:
 
137
                raise osv.except_osv(_('Warning !'), _('You can only delete documents which are in "Draft" state.'))
 
138
    
 
139
    def delete_button(self, cr, uid, ids, context=None):
 
140
        """
 
141
        This method is called on the button of type object in tree view.
 
142
        The aim is to be able to display the delete button only in draft state, which is not possible with the standard delete button.
 
143
        """
 
144
        if isinstance(ids, (int, long)):
 
145
            ids = [ids]
 
146
        return self.unlink(cr, uid, ids, context)
 
147
    
 
148
tender()
 
149
 
 
150
class composition_kit(osv.osv):
 
151
    """
 
152
    Override the class composition_kit to replace the standard 
 
153
    delete button by a delete button of type "object"
 
154
    """
 
155
    _name = 'composition.kit'
 
156
    _inherit = 'composition.kit'
 
157
    
 
158
    def unlink(self, cr, uid, ids, context=None):
 
159
        """
 
160
        Do not allow user to delete composition_kit in draft state
 
161
        """
 
162
        if isinstance(ids, (int, long)):
 
163
            ids = [ids]
 
164
        for order in self.read(cr, uid, ids,['state'], context=context):
 
165
            if order['state'] == 'draft':
 
166
                return super(composition_kit, self).unlink(cr, uid, ids, context)
 
167
            else:
 
168
                raise osv.except_osv(_('Warning !'), _('You can only delete documents which are in "Draft" state.'))
 
169
    
 
170
    def delete_button(self, cr, uid, ids, context=None):
 
171
        """
 
172
        This method is called on the button of type object in tree view.
 
173
        The aim is to be able to display the delete button only in draft state, which is not possible with the standard delete button.
 
174
        """
 
175
        if isinstance(ids, (int, long)):
 
176
            ids = [ids]
 
177
        return self.unlink(cr, uid, ids, context)
 
178
    
 
179
composition_kit()
 
180
 
 
181
class real_average_consumption(osv.osv):
 
182
    _name = 'real.average.consumption'
 
183
    _inherit = 'real.average.consumption'
 
184
 
 
185
    def delete_button(self, cr, uid, ids, context=None):
 
186
        """
 
187
        This method is called on the button of type object in tree view.
 
188
        The aim is to be able to display the delete button only in draft state, which is not possible with the standard delete button.
 
189
        """
 
190
        if isinstance(ids, (int, long)):
 
191
            ids = [ids]
 
192
        return self.unlink(cr, uid, ids, context)
 
193
 
 
194
real_average_consumption()
 
195