This question has been flagged
1 Reply
2495 Views

in the object  hr.analytic.timesheet there is the _check method 

def _check(self, cr, uid, ids):
        for att in self.browse(cr, uid, ids):
            if att.sheet_id and att.sheet_id.state not in ('draft', 'new'):
                raise osv.except_osv(_('Error!'), _('You cannot modify an entry in a confirmed timesheet.'))
        return True

and method _check_sheet_state

def _check_sheet_state(self, cr, uid, ids, context=None):

        if context is None:

            context = {}

        for timesheet_line in self.browse(cr, uid, ids, context=context):

            if timesheet_line.sheet_id and timesheet_line.sheet_id.state not in ('draft', 'new'):

                return False

        return True

_constraints = [

(_check_sheet_state, 'You cannot modify an entry in a Confirmed/Done timesheet !', ['state']),


i've create a new module that inherits the hr.analytic.timesheet object and I redefine the _check and _check_sheet_state method by :

def _check(self, cr, uid, ids):

        for att in self.browse(cr, uid, ids):

            if att.sheet_id and att.sheet_id.state not in ('draft', 'new','confirm'):

                raise osv.except_osv(_('Error!'), _('You cannot modify an entry in a confirmed timesheet.'))

        return True

and method _check_sheet_state

def _check_sheet_state(self, cr, uid, ids, context=None):

        if context is None:

            context = {}

        for timesheet_line in self.browse(cr, uid, ids, context=context):

            if timesheet_line.sheet_id and timesheet_line.sheet_id.state not in ('draft', 'new','confirm'):

                return False

        return True

_constraints = [

(_check_sheet_state, 'You cannot modify an entry in a Confirmed/Done timesheet !', ['state']),


if you see i just add value state 'confirm' in method, for when the state confirm the constraint is not showing.


i want use method that i have made but my method doesnt work.


anyone can help me how to code this? Thanks for your Help

Avatar
Discard
Best Answer

hai,

Try to Change browse method to read method, for example change from

 self.browse(cr, uid, ids, context=context) to

self.read(cr, uid, ids, ['state'], context=context)

Avatar
Discard