This question has been flagged

I've created a link between certain modules and Notes. At first I made all relationships One2many. The client has asked for them to be Many2many. My issues come when I click on a Project's (for example) note. When it was a One2many, the context="{'search_default_project': [active_id], 'default_project': active_id}" would use its title. Since I switched it to a Many2many, it now uses its numerical ID. If it uses its ID, I cannot create new notes because it needs the title value, not the ID value. Images below for reference:

Directed from Project's note smart button \\\\\

\\\\\

\enter image description here

Is there some way to point this "active_id" to the title for Many2many? Hope this all makes sense!

I thought maybe it has to do with the relationship in note.note. project = fields.Many2many(comodel_name="project.project", rel="project_note_rel", column1="note_id", column2="project_id", string="Project") Change the value of column2 to something besides project_id but I don't really know what the options are.

Avatar
Discard
Author

Well, it didn't add 2 of my pictures and I can't edit my post or add images in the comments. I'll have to create a new post...

Best Answer

Hi,

you are right, you should create a backward relation in notes. It should use the same rel_table, column2 should equal column 1, column2 should equal column1. Thus, make sure 'project_note_rel'  is the same in 'project' model, 'note_id' is used in 'project' as column2, and 'project_id' is used in 'project_id' as column1.

Then, you should define the context as follows:

context="{'search_default_project': [active_id], 'default_project': [(4, active_id)]}"
Avatar
Discard
Author

Unfortunately, the active_id still returns the numerical ID and not the name of the Project. Can you explain what the [(4, active_id)] means in your answer?

What do you mean not the same of a project? If you click a button on a project form view, it must be its ID disregarding any m2m fields. 'search_default_project': [active_id] such search should work, since Odoo searches fine among records of m2m. [(4, active_id)] - means link a new record to m2m table project with ID 'active_id'. It is how defaults for m2m work

Author

Maybe my question will make more sense if you see all the images. You can see my SO post here: http://stackoverflow.com/questions/43638293/id-for-many2many-fields.

Before I changed these fields to m2m, when I clicked on a smart button, it filtered by the name of the project, not the ID number. I'm looking to recreate that using a m2m field.

Thanks for the explanation. I understand about the active_id part of it. I was wondering more about the "4" in the second part.

Author

FYI, this answer DID work for me. The numerical ID is still in the search filter but it does autopopulate the project field for me in notes and saves without an error. Thanks for the help!