This question has been flagged
5 Replies
7280 Views

I'm looking to relate projects with notes. I can currently choose a project in a note form. I'd like to be able to list all related notes in a project. I feel like this would be solved by creating a model method in my project.py but I'm not sure what how to connect the view to the model. Any help?

Here's my project view:



my project.py:


Any help or ideas are appreciated.

Avatar
Discard
Best Answer

This should occur automatically if you change your notes field to be a one2many instead of many2one.

Then just add the following to your view which will show as the default list (tree):

<field name="notes"/>
Avatar
Discard
Author

This will be VERY helpful for me in the future but not exactly what I'm looking for now. I don't want to create a new note FROM the project itself. I'd like to only create notes in Note and list the notes in the project if that makes sense. So if I create a note "New Note" and choose "New Project" as its project, I'd like to be able to go to "New Project" and see "New Note" listed there.

Best Answer

In addition to your comment you can prevent the user from creating or editing note from one2many in python or xml


<field name="notes" readonly="1" />   
in python
notes = fields.One2many(..., readonly=True); # if you put readonly here the field will be always readonly

Avatar
Discard
Best Answer

I think you need to set default values of one2many in project model.

Avatar
Discard
Best Answer

This only can happen if note.note has a m2o to project.

At first its a good tip follow Odoo guidelines, all fields One2many must be declared as follows: xxx_ids, all Many2one xxx_id

<field name="note_ids"/>   
in python
model note.note:
project_id = fields.Many2one('project.project',string='Project')
model project.project:
note_ids = fields.One2many('note.note','project_id',string='Notes')
Avatar
Discard