diff --git a/document_page_reference/models/document_page.py b/document_page_reference/models/document_page.py index 1f5a6709..f75fa666 100644 --- a/document_page_reference/models/document_page.py +++ b/document_page_reference/models/document_page.py @@ -74,21 +74,25 @@ class DocumentPage(models.Model): document = self.search([('reference', '=', code)]) if document: return document - return False + else: + return self.env[self._name] def get_reference(self, code): element = self._get_document(code) - if not element: - return code if self.env.context.get('raw_reference', False): return html_escape(element.display_name) - text = '%s' - return text % ( + text = """%s + """ + if not element: + text = '%s' % text + res = text % ( element._name, - element.id, - html_escape(element.display_name) + element and element.id or '', + code, + html_escape(element.display_name or code), ) + return res def _get_template_variables(self): return {'ref': self.get_reference} diff --git a/document_page_reference/static/src/js/editor.js b/document_page_reference/static/src/js/editor.js index b3533a87..4ac073a9 100644 --- a/document_page_reference/static/src/js/editor.js +++ b/document_page_reference/static/src/js/editor.js @@ -14,11 +14,18 @@ odoo.define('document_page_reference.backend', function (require) { event.preventDefault(); event.stopPropagation(); var element = $(event.target).closest('.oe_direct_line')[0]; + var default_reference = element.name; + var model = $(event.target).data('oe-model'); + var id = $(event.target).data('oe-id'); + var context = this.record.getContext(this.recordParams); + if (default_reference){ + context['default_reference'] = default_reference + } this._rpc({ - model: element.name, + model: model, method: 'get_formview_action', - args: [[parseInt(element.dataset.id)]], - context: this.record.getContext(this.recordParams), + args: [[parseInt(id)]], + context: context, }) .then(function (action) { self.trigger_up('do_action', {action: action});