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});