diff --git a/one2many_mass_select_delete/README.rst b/one2many_mass_select_delete/README.rst index cd0c81ce5..9c60c2447 100644 --- a/one2many_mass_select_delete/README.rst +++ b/one2many_mass_select_delete/README.rst @@ -22,6 +22,6 @@ Features Credits ======= Developer: Nilmar Shereef @ cybrosys, shereef@cybrosys.in - version 16: Midilaj VK@cybrosys + version 16: Gayathri@cybrosys diff --git a/one2many_mass_select_delete/__manifest__.py b/one2many_mass_select_delete/__manifest__.py index a6fe36671..2b8dc1437 100644 --- a/one2many_mass_select_delete/__manifest__.py +++ b/one2many_mass_select_delete/__manifest__.py @@ -21,7 +21,7 @@ ############################################################################# { 'name': 'One2many Mass Select Delete Widget', - 'version': "16.0.1.0.0", + 'version': "16.0.1.0.1", 'summary': """One2many Mass Select/Deselect Widget""", 'description': """One2many Mass Select/ Deselect Widget""", 'category': 'Tools', @@ -29,13 +29,11 @@ 'company': 'Cybrosys Techno Solutions', 'maintainer': 'Cybrosys Techno Solutions', 'website': "https://www.cybrosys.com", - 'depends': ['web'], + 'depends': ['web','base'], 'assets': { 'web.assets_backend': [ - 'one2many_mass_select_delete/static/src/js/widget.js', - ], - 'web.assets_qweb': [ 'one2many_mass_select_delete/static/src/xml/widget_view.xml', + 'one2many_mass_select_delete/static/src/js/widget.js', ], }, 'images': ['static/description/banner.png'], diff --git a/one2many_mass_select_delete/static/src/js/widget.js b/one2many_mass_select_delete/static/src/js/widget.js index 6d6a86a76..00ce9ae43 100644 --- a/one2many_mass_select_delete/static/src/js/widget.js +++ b/one2many_mass_select_delete/static/src/js/widget.js @@ -1,146 +1,55 @@ -odoo.define('one2many_mass_select_delete.form_widgets', function (require) { - "use strict"; - - var core = require('web.core'); - var utils = require('web.utils'); - var fieldRegistry = require('web.field_registry'); - var ListRenderer = require('web.ListRenderer'); - var rpc = require('web.rpc'); - var FieldOne2Many = require('web.relational_fields').FieldOne2Many; - var _t = core._t; - - ListRenderer.include({ - _updateSelection: function () { - this.selection = []; - var self = this; - var $inputs = this.$('tbody .o_list_record_selector input:visible:not(:disabled)'); - var allChecked = $inputs.length > 0; - $inputs.each(function (index, input) { - if (input.checked) { - self.selection.push($(input).closest('tr').data('id')); - } else { - allChecked = false; - } - }); - if(this.selection.length > 0){ - $('.button_delete_order_lines').show() - $('.button_select_order_lines').show() - - }else{ - $('.button_delete_order_lines').hide() - $('.button_select_order_lines').hide() - } - this.$('thead .o_list_record_selector input').prop('checked', allChecked); - this.trigger_up('selection_changed', { selection: this.selection }); - this._updateFooter(); - }, - }) - - var One2manyDelete = FieldOne2Many.extend({ - template: 'One2manyDelete', - events: { - "click .button_delete_order_lines": "delete_selected_lines", - "click .button_select_order_lines": "selected_lines", - }, - init: function() { - this._super.apply(this, arguments); - }, - delete_selected_lines: function() - { - var self=this; - var current_model = this.recordData[this.name].model; - var selected_lines = self.find_deleted_lines(); - if (selected_lines.length === 0) - { - return this.displayNotification({ message: _t('Please Select at least One Record.'), type: 'danger' }); - } - - var w_response = confirm("Dou You Want to Delete ?"); - if (w_response) { - rpc.query({ - 'model': current_model, - 'method': 'unlink', - 'args': [selected_lines], - }).then(function(result){ - self.trigger_up('reload'); - }); - } - }, - selected_lines: function() - { - var self=this; - var current_model = this.recordData[this.name].model; - var selected_lines = self.find_selected_lines(); - if (selected_lines.length === 0) - { - return this.displayNotification({ message: _t('Please Select at least One Record.'), type: 'danger' }); - } - var w_response = confirm("Dou You Want to Select ?"); - if (w_response) { - - rpc.query({ - 'model': current_model, - 'method': 'unlink', - 'args': [selected_lines], - }).then(function(result){ - self.trigger_up('reload'); - }); - } - }, - _getRenderer: function () { - if (this.view.arch.tag === 'kanban') { - return One2ManyKanbanRenderer; +/** @odoo-module */ + +import { X2ManyField } from "@web/views/fields/x2many/x2many_field"; +import { registry } from "@web/core/registry"; +import { standardFieldProps } from "@web/views/fields/standard_field_props"; +import { ListRenderer } from "@web/views/list/list_renderer"; +import {listView} from '@web/views/list/list_view'; +import { patch } from "@web/core/utils/patch"; + +export class TestListRenderer extends ListRenderer { + get hasSelectors() { + this.props.allowSelectors = true + this.props.list.selection = true + return this.props.allowSelectors && !this.env.isSmall; + } + toggleRecordSelection(record) { + record.toggleSelection(); + } + +} +export class TestX2ManyField extends X2ManyField { + get hasSelected(){ + return this.list.records.filter((rec) => rec.selected).length + } + deleteSelected(){ + var w_response = confirm("Dou You Want to Delete ?"); + if (w_response){ + console.log(this.list.records) + let selected = this.list.records.filter((rec) => rec.selected) + if (this.activeActions.onDelete) { + selected.forEach((rec) => { + this.activeActions.onDelete(rec); + }) } - if (this.view.arch.tag === 'tree') { - return ListRenderer.extend({ - init: function (parent, state, params) { - this._super.apply(this, arguments); - this.hasSelectors = true; - }, - }); + } + } + deleteUnselected(){ + var w_response = confirm("Dou You Want to Select?"); + if (w_response){ + let unselected = this.list.records.filter((rec) => !rec.selected) + if (this.activeActions.onDelete) { + unselected.forEach((rec) => { + this.activeActions.onDelete(rec); + }) } - return this._super.apply(this, arguments); - }, - find_deleted_lines: function () { - var self=this; - var selected_list =[]; - this.$el.find('td.o_list_record_selector input:checked') - .closest('tr').each(function () { - selected_list.push(parseInt(self._getResId($(this).data('id')))); - }); - return selected_list; - }, + } + } +} +TestX2ManyField.components = { + ...X2ManyField.components, ListRenderer: TestListRenderer +}; +TestX2ManyField.template = "one2many_mass_select_delete.One2manyDelete"; - find_selected_lines: function () - { var self = this; - var selected_list =[]; - var selected_list1 =[]; - var selected_list2 =[]; - this.$el.find('td.o_list_record_selector input:checked') - .closest('tr').each(function () { - selected_list.push(parseInt(self._getResId($(this).data('id')))); - }); - if (selected_list.length != 0) { - this.$el.find('td.o_list_record_selector') - .closest('tr').each(function () { - selected_list1.push(parseInt(self._getResId($(this).data('id')))); - }); - selected_list2 = selected_list1.filter(function (x) { - return selected_list.indexOf(x) < 0 - }); - } - return selected_list2; - }, - _getResId: function (recordId) { - var record; - utils.traverse_records(this.recordData[this.name], function (r) { - if (r.id === recordId) { - record = r; - } - }); - return record.res_id; - }, - }); - fieldRegistry.add('one2many_delete', One2manyDelete); -}); \ No newline at end of file +registry.category("fields").add("one2many_delete", TestX2ManyField); diff --git a/one2many_mass_select_delete/static/src/xml/widget_view.xml b/one2many_mass_select_delete/static/src/xml/widget_view.xml index f9b2d12ac..03f19b279 100644 --- a/one2many_mass_select_delete/static/src/xml/widget_view.xml +++ b/one2many_mass_select_delete/static/src/xml/widget_view.xml @@ -1,20 +1,19 @@ - - -
- - - - - -
-
+ + +
+ + + + + +
+
+
+ +