I am developing a custom module that adds a team of users to task. I've based my code on project.task.work model.
Here is my code for the team:
class paga_task_team(osv.Model):
_name = 'paga_task_team'
_columns = {
'paga_task_id': fields.many2one('project.task', string="Task", ondelete="set null", select="1"),
'paga_user_id': fields.many2one('res.users','User', required=True),
'paga_booking': fields.selection(
(('OK','OK'),
('UN','Pending'),
('NO','Declined')),
'Booking'),
'paga_mail': fields.boolean('Mail?'),
'paga_sms': fields.boolean('SMS?'),
}
_default = {
'paga_booking': 'UN',
'paga_mail': False,
'paga_sms': False,
}
paga_task_team()
And this parts extends the project.task
class paga_task_booking(osv.Model):
_name = "project.task"
_inherit = ["project.task", "mail.compose.message"]
_columns = {
'date_deadline': fields.datetime('Deadline',select=True),
'paga_task_duration': fields.float('Duration'),
'paga_team_size': fields.integer('Team Size'),
'paga_team_ids': fields.one2many('paga_task_team','paga_task_id','Team',
states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
}
paga_task_booking()
These codes only works if I make paga_task_team into a TransientModel, but then the datas are not saved permanently. If it is cvs.Model I get the error "Many2One relationships from non-transient Model to TransientModel are forbidden". I cannot see what is wrong, since this should be quite simple structure...
in both models you need to have a name field or provide something like for eg:
_rec_name ='date_deadline'
I added a field called 'name' to paga_task_team -model, but it does not change the error. I assume project.task has a name field already. Also tried with _rec_name.
I hope someone will be able to help me with this - I have been banging my head into it for a month and running out of ideas. Any additional information will provided if needed!
I think that you will have to put osv.memory instead of osv.model.