[REF] Hr_expense: added track on state, _track for subtypes, removed extra chatter messages.

bzr revid: tde@openerp.com-20121218165708-iij5o20k78m4xyax
This commit is contained in:
Thibault Delavallée 2012-12-18 17:57:08 +01:00
parent 6dc32eb287
commit 1efb2d6b0b
3 changed files with 24 additions and 33 deletions

View File

@ -64,6 +64,14 @@ class hr_expense_expense(osv.osv):
_inherit = ['mail.thread']
_description = "Expense"
_order = "id desc"
_track = {
'state': {
'hr_expense.mt_expense_approved': lambda self, cr, uid, obj, ctx=None: obj.state == 'accepted',
'hr_expense.mt_expense_refused': lambda self, cr, uid, obj, ctx=None: obj.state == 'cancelled',
'hr_expense.mt_expense_confirmed': lambda self, cr, uid, obj, ctx=None: obj.state == 'confirm',
},
}
_columns = {
'name': fields.char('Description', size=128, required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
'id': fields.integer('Sheet ID', readonly=True),
@ -89,7 +97,8 @@ class hr_expense_expense(osv.osv):
('accepted', 'Approved'),
('done', 'Done'),
],
'Status', readonly=True, help='When the expense request is created the status is \'Draft\'.\n It is confirmed by the user and request is sent to admin, the status is \'Waiting Confirmation\'.\
'Status', readonly=True, track_visibility=1,
help='When the expense request is created the status is \'Draft\'.\n It is confirmed by the user and request is sent to admin, the status is \'Waiting Confirmation\'.\
\nIf the admin accepts it, the status is \'Accepted\'.\n If a receipt is made for the expense request, the status is \'Done\'.'),
}
_defaults = {
@ -124,33 +133,17 @@ class hr_expense_expense(osv.osv):
company_id = employee.company_id.id
return {'value': {'department_id': department_id, 'company_id': company_id}}
def expense_confirm(self, cr, uid, ids, *args):
def expense_confirm(self, cr, uid, ids, context=None):
for expense in self.browse(cr, uid, ids):
if expense.employee_id and expense.employee_id.parent_id.user_id:
self.message_subscribe_users(cr, uid, [expense.id], user_ids=[expense.employee_id.parent_id.user_id.id])
self.message_post(cr, uid, ids, body=_("The request is <b>waiting for Approval</b>"),
subtype="hr_expense.mt_expense_approve")
self.write(cr, uid, ids, {
'state':'confirm',
'date_confirm': time.strftime('%Y-%m-%d')
})
return True
return self.write(cr, uid, ids, {'state': 'confirm', 'date_confirm': time.strftime('%Y-%m-%d')}, context=context)
def expense_accept(self, cr, uid, ids, *args):
self.message_post(cr, uid, ids, body=_("The request has been <b>approved</b>"),
subtype="hr_expense.mt_expense_approved")
self.write(cr, uid, ids, {
'state':'accepted',
'date_valid':time.strftime('%Y-%m-%d'),
'user_valid': uid,
})
return True
def expense_accept(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'state': 'accepted', 'date_valid': time.strftime('%Y-%m-%d'), 'user_valid': uid}, context=context)
def expense_canceled(self, cr, uid, ids, *args):
self.message_post(cr, uid, ids, body=_("Request <b>refused</b>"),
subtype="hr_expense.mt_expense_refused")
self.write(cr, uid, ids, {'state':'cancelled'})
return True
def expense_canceled(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'state': 'cancelled'}, context=context)
def action_receipt_create(self, cr, uid, ids, context=None):
property_obj = self.pool.get('ir.property')

View File

@ -18,23 +18,21 @@
<field name="name">Expenses</field>
</record>
<!--subtype for expense -->
<record id="mt_expense_approve" model="mail.message.subtype">
<field name="name">To Approve</field>
<field name="res_model">hr.expense.expense</field>
<field name="default" eval="False"/>
</record>
<!-- Expense-related subtypes for messaging / Chatter -->
<record id="mt_expense_approved" model="mail.message.subtype">
<field name="name">Approved</field>
<field name="res_model">hr.expense.expense</field>
<field name="default" eval="False"/>
<field name="description">Expense &lt;b&gt;approved&lt;/b&gt;</field>
</record>
<record id="mt_expense_refused" model="mail.message.subtype">
<field name="name">Refused</field>
<field name="res_model">hr.expense.expense</field>
<field name="default" eval="False"/>
<field name="description">Expense &lt;b&gt;refused&lt;/b&gt;</field>
</record>
<record id="mt_expense_confirmed" model="mail.message.subtype">
<field name="name">To Approve</field>
<field name="res_model">hr.expense.expense</field>
<field name="description">Expense &lt;b&gt;confirmed&lt;/b&gt;, waiting confirmation</field>
</record>
</data>

View File

@ -375,7 +375,7 @@ class hr_holidays(osv.osv):
for record in self.browse(cr, uid, ids, context=context):
if record.employee_id and record.employee_id.parent_id and record.employee_id.parent_id.user_id:
self.message_subscribe_users(cr, uid, [record.id], user_ids=[record.employee_id.parent_id.user_id.id], context=context)
return self.write(cr, uid, ids, {'state':'confirm'})
return self.write(cr, uid, ids, {'state': 'confirm'})
def holidays_refuse(self, cr, uid, ids, context=None):
obj_emp = self.pool.get('hr.employee')