mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[14.0][MIG] agreement_legal (Version 12.0 to 14.0)
[MIG] Black & Cleanup [IMP] Reviewer Requested Changes [IMP] Black [IMP] Reviewer Suggestion [FIX] Tests [FIX] Multiple Issues - Added 'is_old_version' field to better display old versions. Before these were marked as inactive therefore not showing in the agreement. - 'is_template' field now copies when making a template revision or copying a template. - New Versions now retain original create date. - Moved version/revision and created on/by fields out of footer to top in order to have the save buttons when creating children. - Moved demo data out of data folder into the demo.xml [FIX] demo data [FIX] Revert back to only migration [FIX] Report dynamic field rendering [FIX] Test
This commit is contained in:
85
agreement_legal/static/src/js/domain_widget_ext.js
Normal file
85
agreement_legal/static/src/js/domain_widget_ext.js
Normal file
@@ -0,0 +1,85 @@
|
||||
odoo.define("agreement_legal.domain_widget_ext", function (require) {
|
||||
"use strict";
|
||||
|
||||
var basic_fields = require("web.basic_fields");
|
||||
var DomainSelector = require("web.DomainSelector");
|
||||
var session = require("web.session");
|
||||
var core = require("web.core");
|
||||
var qweb = core.qweb;
|
||||
|
||||
basic_fields.FieldDomain.include({
|
||||
/**
|
||||
* Init
|
||||
*/
|
||||
init: function () {
|
||||
this._super.apply(this, arguments);
|
||||
// Add Additional options
|
||||
this.partialUse = this.nodeOptions.partial_use || false;
|
||||
},
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Private
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @override _render from AbstractField
|
||||
* @returns {Deferred}
|
||||
*/
|
||||
_render: function () {
|
||||
// If there is no model, only change the non-domain-selector content
|
||||
if (!this._domainModel) {
|
||||
this._replaceContent();
|
||||
return $.when();
|
||||
}
|
||||
|
||||
// Convert char value to array value
|
||||
var value = this.value || "[]";
|
||||
|
||||
// Create the domain selector or change the value of the current
|
||||
// one...
|
||||
var def = null;
|
||||
if (this.domainSelector) {
|
||||
def = this.domainSelector.setDomain(value);
|
||||
} else {
|
||||
this.domainSelector = new DomainSelector(
|
||||
this,
|
||||
this._domainModel,
|
||||
value,
|
||||
{
|
||||
readonly: this.mode === "readonly" || this.inDialog,
|
||||
filters: this.fsFilters,
|
||||
debugMode: session.debug,
|
||||
partialUse: this.partialUse || false,
|
||||
}
|
||||
);
|
||||
def = this.domainSelector.prependTo(this.$el);
|
||||
}
|
||||
// ... then replace the other content (matched records, etc)
|
||||
return def.then(this._replaceContent.bind(this));
|
||||
},
|
||||
/**
|
||||
* Render the field DOM except for the domain selector part. The full
|
||||
* field DOM is composed of a DIV which contains the domain selector
|
||||
* widget, followed by other content. This other content is handled by
|
||||
* this method.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_replaceContent: function () {
|
||||
if (this._$content) {
|
||||
this._$content.remove();
|
||||
}
|
||||
this._$content = $(
|
||||
qweb.render("FieldDomain.content", {
|
||||
hasModel: Boolean(this._domainModel),
|
||||
isValid: Boolean(this._isValidForModel),
|
||||
nbRecords: this.record.specialData[this.name].nbRecords || 0,
|
||||
inDialogEdit: this.inDialog && this.mode === "edit",
|
||||
partialUse: this.partialUse || false,
|
||||
})
|
||||
);
|
||||
this._$content.appendTo(this.$el);
|
||||
},
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user