Skip to content

Commit

Permalink
port models and method to api 8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
yvaucher committed Aug 25, 2014
1 parent a5d625a commit 7d11a9e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 43 deletions.
24 changes: 10 additions & 14 deletions sale_cancel_reason/model/sale.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,21 @@
#
#

from openerp.osv import orm, fields
from openerp import models, fields


class sale_order(orm.Model):
class SaleOrder(models.Model):
_inherit = 'sale.order'

_columns = {
'cancel_reason_id': fields.many2one(
'sale.order.cancel.reason',
string="Reason for cancellation",
readonly=True,
ondelete="restrict"
),
}
cancel_reason_id = fields.Many2one(
'sale.order.cancel.reason',
string="Reason for cancellation",
readonly=True,
ondelete="restrict")


class sale_order_cancel_reason(orm.Model):
class SaleOrderCancelReason(models.Model):
_name = 'sale.order.cancel.reason'
_description = 'Sale Order Cancel Reason'
_columns = {
'name': fields.char('Reason', required=True, translate=True),
}

name = fields.Char('Reason', required=True, translate=True)
44 changes: 16 additions & 28 deletions sale_cancel_reason/wizard/cancel_reason.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,35 @@
#
#

from openerp.osv import orm, fields
from openerp import netsvc
from openerp import models, fields, api

QUOTATION_STATES = ['draft', 'sent']

class logistic_requisition_cancel(orm.TransientModel):

class LogisticRequisitionCancel(models.TransientModel):

""" Ask a reason for the sale order cancellation."""
_name = 'sale.order.cancel'
_description = __doc__

quotation_states = ['draft', 'sent']

_columns = {
'reason_id': fields.many2one('sale.order.cancel.reason',
string='Reason',
required=True),
}
reason_id = fields.Many2one(
'sale.order.cancel.reason',
string='Reason',
required=True)

def confirm_cancel(self, cr, uid, ids, context=None):
if context is None:
context = {}
if isinstance(ids, (list, tuple)):
assert len(ids) == 1, "1 ID expected"
ids = ids[0]
@api.one
def confirm_cancel(self):
act_close = {'type': 'ir.actions.act_window_close'}
sale_ids = context.get('active_ids')
sale_ids = self._context.get('active_ids')
if sale_ids is None:
return act_close
assert len(sale_ids) == 1, "Only 1 sale ID expected"
form = self.browse(cr, uid, ids, context=context)
sale_obj = self.pool.get('sale.order')
sale_obj.write(cr, uid, sale_ids,
{'cancel_reason_id': form.reason_id.id},
context=context)
sale = sale_obj.browse(cr, uid, sale_ids[0], context=context)
sale = self.env['sale.order'].browse(sale_ids)
sale.cancel_reason_id = self.reason_id.id
# in the official addons, they call the signal on quotations
# but directly call action_cancel on sales orders
if sale.state in self.quotation_states:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'sale.order',
sale_ids[0], 'cancel', cr)
if sale.state in QUOTATION_STATES:
sale.signal_workflow('cancel')
else:
sale_obj.action_cancel(cr, uid, sale_ids, context=context)
sale.action_cancel()
return act_close
1 change: 0 additions & 1 deletion sale_cancel_reason/wizard/cancel_reason_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,3 @@
</record>
</data>
</openerp>

0 comments on commit 7d11a9e

Please sign in to comment.