When a task is completed on a project the state is set to done. But when on the task the 'timesheet_available' is checked the 'timesheet_end_date' should also be set. Because it doesn't make sense and IMO is wrong the user is still able to add timesheet lines to a work which already been set to done.
The question is: should I create a on_change_state function or add the end date on validation? Personally I prefer to add the date with the on_change.