I've got this function
def add_default_docs(self):
for r in self:
id = self.id
labs_archive_journal_type_id = r.journal_type_id.id
archive_doc_name_ids = self.env['labs.archive.journal_type'].search([('id', '=', labs_archive_journal_type_id)]).archive_doc_name_ids
for n in archive_doc_name_ids:
self.env['labs.archive.document'].create({
"archive_journal_id": id,
"name": n.id
})
How could I call it when I press 'Create' button and create new record?
Whichever model you want to fire this function on creation on new model, inherit that model if that model is odoo built-in or if your own model, within that model definition inherit create
method as following:
class ClassName(models.Model)
_inherit = 'model.name'
@api.multi
def create(self, vals):
records = super(ClassName, self).create(vals)
records.add_default_docs()
return records
If your model is defined in your own custom module, you can just insert this create function within that model definition, you won't need to inherit in new class.