Browse Source

[MIG] date_range: Adapt JS to new framework

pull/25/head
Laurent Mignon (ACSONE) 7 years ago
committed by Pedro M. Baeza
parent
commit
9616d5920f
  1. 4
      date_range/README.rst
  2. 1
      date_range/__init__.py
  3. 5
      date_range/__manifest__.py
  4. 1
      date_range/models/__init__.py
  5. 1
      date_range/models/date_range.py
  6. 1
      date_range/models/date_range_type.py
  7. 64
      date_range/static/src/js/date_range.js
  8. 1
      date_range/tests/__init__.py
  9. 1
      date_range/tests/test_date_range.py
  10. 1
      date_range/tests/test_date_range_generator.py
  11. 1
      date_range/tests/test_date_range_type.py
  12. 1
      date_range/wizard/__init__.py
  13. 1
      date_range/wizard/date_range_generator.py
  14. 2
      date_range/wizard/date_range_generator.xml

4
date_range/README.rst

@ -63,7 +63,7 @@ To configure this module, you need to:
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/149/11.0
:target: https://runbot.odoo-community.org/runbot/250/11.0
Known issues / Roadmap
@ -75,7 +75,7 @@ Bug Tracker
===========
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/server-tools/issues>`_. In case of trouble, please
<https://github.com/OCA/server-ux/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed feedback.

1
date_range/__init__.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

5
date_range/__manifest__.py

@ -1,12 +1,11 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Date Range",
"summary": "Manage all kind of date range",
"version": "11.0.1.0.0",
"version": "11.0.1.0.1",
"category": "Uncategorized",
"website": "https://odoo-community.org/",
"website": "https://github.com/oca/server-ux",
"author": "ACSONE SA/NV, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,

1
date_range/models/__init__.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

1
date_range/models/date_range.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

1
date_range/models/date_range_type.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

64
date_range/static/src/js/date_range.js

@ -3,26 +3,25 @@
odoo.define('date_range.search_filters', function (require) {
"use strict";
var core = require('web.core');
var core = require('web.core');
var data = require('web.data');
var filters = require('web.search_filters');
var Model = require('web.Model');
var rpc = require('web.rpc');
var framework = require('web.framework');
var _t = core._t;
var _lt = core._lt;
filters.ExtendedSearchProposition.include({
select_field: function(field) {
this._super.apply(this, arguments);
this.is_date_range_selected = false;
this.is_date = field.type == 'date' || field.type == 'datetime';
this.is_date = field.type === 'date' || field.type === 'datetime';
this.$value = this.$el.find('.searchview_extended_prop_value, .o_searchview_extended_prop_value');
if (this.is_date){
var ds = new data.DataSetSearch(this, 'date.range.type', this.context, [[1, '=', 1]]);
ds.read_slice(['name'], {}).done(this.proxy('add_date_range_types_operator'));
}
},
add_date_range_types_operator: function(date_range_types){
var self = this;
_.each(date_range_types, function(drt) {
@ -31,10 +30,10 @@ filters.ExtendedSearchProposition.include({
.appendTo(self.$el.find('.searchview_extended_prop_op, .o_searchview_extended_prop_op'));
});
},
operator_changed: function (e) {
var val = $(e.target).val();
this.is_date_range_selected = val.startsWith('drt_');
this.is_date_range_selected = val.startsWith('drt_');
if (this.is_date_range_selected){
var type_id = val.replace('drt_', '');
this.date_range_type_operator_selected(type_id);
@ -47,18 +46,18 @@ filters.ExtendedSearchProposition.include({
this.$value.empty().show();
var ds = new data.DataSetSearch(this, 'date.range', this.context, [['type_id', '=', parseInt(type_id)]]);
ds.read_slice(['name','date_start', 'date_end'], {}).done(this.proxy('on_range_type_selected'));
},
on_range_type_selected: function(date_range_values){
this.value = new filters.ExtendedSearchProposition.DateRange(this, this.value.field, date_range_values);
this.value.appendTo(this.$value);
if (!this.$el.hasClass('o_filter_condition')){
this.$value.find('.date-range-select').addClass('form-control');
this.$value.find('.date-range-select').addClass('form-control');
}
this.value.on_range_selected();
},
get_filter: function () {
var res = this._super.apply(this, arguments);
if (this.is_date_range_selected){
@ -68,15 +67,22 @@ filters.ExtendedSearchProposition.include({
}
return res;
},
});
filters.ExtendedSearchProposition.DateRange = filters.ExtendedSearchProposition.Field.extend({
/**
Since Odoo 11, The Field class used as base class for all specialized filter
widgets is no more exposed by 'web.search_filters'. To create our own class we
extend the more simple class available into the search_filters_registry as base
class
*/
filters.ExtendedSearchProposition.DateRange = core.search_filters_registry.get('id').extend({
template: 'SearchView.extended_search.dateRange.selection',
events: {
'change': 'on_range_selected',
},
init: function (parent, field, date_range_values) {
this._super(parent, field);
this.date_range_values = date_range_values;
@ -87,31 +93,33 @@ filters.ExtendedSearchProposition.DateRange = filters.ExtendedSearchProposition.
var option = select.options[select.selectedIndex];
return option.label || option.text;
},
get_value: function() {
return parseInt(this.$el.val());
},
on_range_selected: function(e){
var self = this;
self.domain = '';
framework.blockUI();
new Model("date.range")
.call("get_domain", [
[this.get_value()],
this.field.name,
{}
])
.then(function (domain) {
framework.unblockUI();
self.domain = domain;
});
return rpc.query({
args: [this.get_value()],
kwargs: {
field_name: this.field.name
},
model: 'date.range',
method: 'get_domain',
})
.then(function (domain) {
framework.unblockUI();
self.domain = domain;
});
},
get_domain: function (field, operator) {
return this.domain;
},
});
});
});

1
date_range/tests/__init__.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

1
date_range/tests/test_date_range.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

1
date_range/tests/test_date_range_generator.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)nses/agpl).

1
date_range/tests/test_date_range_type.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

1
date_range/wizard/__init__.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

1
date_range/wizard/date_range_generator.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

2
date_range/wizard/date_range_generator.xml

@ -4,7 +4,7 @@
<field name="name">date.range.generator.form</field>
<field name="model">date.range.generator</field>
<field name="arch" type="xml">
<form string="Genrate Date Ranges">
<form string="Generate Date Ranges">
<group col="4">
<field name="name_prefix"/>
<field name="type_id"/>

Loading…
Cancel
Save