diff --git a/date_range/__init__.py b/date_range/__init__.py index dcac9c0..faa4535 100644 --- a/date_range/__init__.py +++ b/date_range/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/date_range/__manifest__.py b/date_range/__manifest__.py index 5922d3c..89d6b2b 100644 --- a/date_range/__manifest__.py +++ b/date_range/__manifest__.py @@ -1,10 +1,9 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # 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://github.com/oca/server-ux", "author": "ACSONE SA/NV, Odoo Community Association (OCA)", diff --git a/date_range/models/__init__.py b/date_range/models/__init__.py index feae177..2464998 100644 --- a/date_range/models/__init__.py +++ b/date_range/models/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/date_range/models/date_range.py b/date_range/models/date_range.py index 92ba83f..4e60e39 100644 --- a/date_range/models/date_range.py +++ b/date_range/models/date_range.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -19,7 +18,8 @@ class DateRange(models.Model): date_start = fields.Date(string='Start date', required=True) date_end = fields.Date(string='End date', required=True) type_id = fields.Many2one( - comodel_name='date.range.type', string='Type', index=1, required=True) + comodel_name='date.range.type', string='Type', index=1, required=True, + ondelete='restrict') type_name = fields.Char( string='Type', related='type_id.name', readonly=True, store=True) company_id = fields.Many2one( diff --git a/date_range/models/date_range_type.py b/date_range/models/date_range_type.py index bff6e4f..d8414cf 100644 --- a/date_range/models/date_range_type.py +++ b/date_range/models/date_range_type.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/date_range/static/src/js/date_range.js b/date_range/static/src/js/date_range.js index 673070f..7775f55 100644 --- a/date_range/static/src/js/date_range.js +++ b/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 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,7 +67,7 @@ filters.ExtendedSearchProposition.include({ } return res; }, - + }); /** @@ -83,7 +82,7 @@ filters.ExtendedSearchProposition.DateRange = core.search_filters_registry.get(' events: { 'change': 'on_range_selected', }, - + init: function (parent, field, date_range_values) { this._super(parent, field); this.date_range_values = date_range_values; @@ -94,11 +93,11 @@ filters.ExtendedSearchProposition.DateRange = core.search_filters_registry.get(' 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 = ''; @@ -116,11 +115,11 @@ filters.ExtendedSearchProposition.DateRange = core.search_filters_registry.get(' self.domain = domain; }); }, - + get_domain: function (field, operator) { return this.domain; }, }); -}); \ No newline at end of file +}); diff --git a/date_range/tests/__init__.py b/date_range/tests/__init__.py index d4e3ce6..974619e 100644 --- a/date_range/tests/__init__.py +++ b/date_range/tests/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/date_range/tests/test_date_range.py b/date_range/tests/test_date_range.py index c84b6c1..5431476 100644 --- a/date_range/tests/test_date_range.py +++ b/date_range/tests/test_date_range.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) diff --git a/date_range/tests/test_date_range_generator.py b/date_range/tests/test_date_range_generator.py index 1c47c9d..04f7318 100644 --- a/date_range/tests/test_date_range_generator.py +++ b/date_range/tests/test_date_range_generator.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)nses/agpl). diff --git a/date_range/tests/test_date_range_type.py b/date_range/tests/test_date_range_type.py index 0816267..37a03b3 100644 --- a/date_range/tests/test_date_range_type.py +++ b/date_range/tests/test_date_range_type.py @@ -1,8 +1,9 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) from odoo.tests.common import TransactionCase +from odoo.tools import mute_logger +from psycopg2 import IntegrityError class DateRangeTypeTest(TransactionCase): @@ -18,3 +19,17 @@ class DateRangeTypeTest(TransactionCase): 'company_id': False, 'allow_overlap': False}) self.assertFalse(drt.company_id) + + def test_unlink(self): + date_range = self.env['date.range'] + drt = self.env['date.range.type'].create( + {'name': 'Fiscal year', + 'allow_overlap': False}) + date_range.create({ + 'name': 'FS2016', + 'date_start': '2015-01-01', + 'date_end': '2016-12-31', + 'type_id': drt.id, + }) + with self.assertRaises(IntegrityError), mute_logger('odoo.sql_db'): + drt.unlink() diff --git a/date_range/wizard/__init__.py b/date_range/wizard/__init__.py index 2b52501..c9d4472 100644 --- a/date_range/wizard/__init__.py +++ b/date_range/wizard/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/date_range/wizard/date_range_generator.py b/date_range/wizard/date_range_generator.py index 2b61075..b4d3045 100644 --- a/date_range/wizard/date_range_generator.py +++ b/date_range/wizard/date_range_generator.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).