mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-20 08:12:09 +02:00
Initial commit: Core packages
This commit is contained in:
commit
12c29a983b
9512 changed files with 8379910 additions and 0 deletions
|
|
@ -0,0 +1,91 @@
|
|||
|
||||
odoo.define('resource.section_backend', function (require) {
|
||||
// The goal of this file is to contain JS hacks related to allowing
|
||||
// section on resource calendar.
|
||||
|
||||
"use strict";
|
||||
var FieldOne2Many = require('web.relational_fields').FieldOne2Many;
|
||||
var fieldRegistry = require('web.field_registry');
|
||||
var ListRenderer = require('web.ListRenderer');
|
||||
|
||||
var SectionListRenderer = ListRenderer.extend({
|
||||
/**
|
||||
* We want section to take the whole line (except handle and trash)
|
||||
* to look better and to hide the unnecessary fields.
|
||||
*
|
||||
* @override
|
||||
*/
|
||||
_renderBodyCell: function (record, node, index, options) {
|
||||
var $cell = this._super.apply(this, arguments);
|
||||
|
||||
var isSection = record.data.display_type === 'line_section';
|
||||
|
||||
if (isSection) {
|
||||
if (node.attrs.widget === "handle") {
|
||||
return $cell;
|
||||
} else if (node.attrs.name === "display_name") {
|
||||
var nbrColumns = this._getNumberOfCols();
|
||||
if (this.handleField) {
|
||||
nbrColumns--;
|
||||
}
|
||||
if (this.addTrashIcon) {
|
||||
nbrColumns--;
|
||||
}
|
||||
$cell.attr('colspan', nbrColumns);
|
||||
} else {
|
||||
return $cell.addClass('o_hidden');
|
||||
}
|
||||
}
|
||||
|
||||
return $cell;
|
||||
},
|
||||
/**
|
||||
* We add the o_is_{display_type} class to allow custom behaviour both in JS and CSS.
|
||||
*
|
||||
* @override
|
||||
*/
|
||||
_renderRow: function (record, index) {
|
||||
var $row = this._super.apply(this, arguments);
|
||||
|
||||
if (record.data.display_type) {
|
||||
$row.addClass('o_is_' + record.data.display_type);
|
||||
}
|
||||
|
||||
return $row;
|
||||
},
|
||||
/**
|
||||
* We want to add .o_section_list_view on the table to have stronger CSS.
|
||||
*
|
||||
* @override
|
||||
* @private
|
||||
*/
|
||||
_renderView: function () {
|
||||
var self = this;
|
||||
return this._super.apply(this, arguments).then(function () {
|
||||
self.$('.o_list_table').addClass('o_section_list_view');
|
||||
// Discard the possibility to remove the sections
|
||||
self.$('.o_is_line_section .o_list_record_remove').remove()
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
// We create a custom widget because this is the cleanest way to do it:
|
||||
// to be sure this custom code will only impact selected fields having the widget
|
||||
// and not applied to any other existing ListRenderer.
|
||||
var SectionFieldOne2Many = FieldOne2Many.extend({
|
||||
/**
|
||||
* We want to use our custom renderer for the list.
|
||||
*
|
||||
* @override
|
||||
*/
|
||||
_getRenderer: function () {
|
||||
if (this.view.arch.tag === 'tree') {
|
||||
return SectionListRenderer;
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
fieldRegistry.add('section_one2many', SectionFieldOne2Many);
|
||||
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue