diff --git a/aircox/tests/models/test_schedule.py b/aircox/tests/models/test_schedule.py index 6d1a662..7730915 100644 --- a/aircox/tests/models/test_schedule.py +++ b/aircox/tests/models/test_schedule.py @@ -56,8 +56,8 @@ class TestSchedule: assert schedule.dates_of_month(at) == [] @pytest.mark.django_db - @pytest.mark.parametrize("months", range(0, 25, 2)) - @pytest.mark.parametrize("hour", range(0, 24, 3)) + @pytest.mark.parametrize("months", range(0, 25, 4)) + @pytest.mark.parametrize("hour", range(0, 24, 4)) def test_dates_of_month_last(self, months, hour): schedule = baker.prepare( Schedule, time=time(hour, 00), frequency=Schedule.Frequency.last @@ -81,8 +81,8 @@ class TestSchedule: # since the same method is used for first, second, etc. frequencies # we assume testing every is sufficient @pytest.mark.django_db - @pytest.mark.parametrize("months", range(0, 25, 2)) - @pytest.mark.parametrize("hour", range(0, 24, 3)) + @pytest.mark.parametrize("months", range(0, 25, 4)) + @pytest.mark.parametrize("hour", range(0, 24, 4)) def test_dates_of_month_every(self, months, hour): schedule = baker.prepare( Schedule, time=time(hour, 00), frequency=Schedule.Frequency.every @@ -97,8 +97,8 @@ class TestSchedule: last = dt @pytest.mark.django_db - @pytest.mark.parametrize("months", range(0, 25, 2)) - @pytest.mark.parametrize("hour", range(0, 24, 3)) + @pytest.mark.parametrize("months", range(0, 25, 4)) + @pytest.mark.parametrize("hour", range(0, 24, 4)) def test_dates_of_month_one_on_two(self, months, hour): schedule = baker.prepare( Schedule, diff --git a/assets/src/appBuilder.js b/assets/src/appBuilder.js index b86d7af..4546ba3 100644 --- a/assets/src/appBuilder.js +++ b/assets/src/appBuilder.js @@ -77,12 +77,12 @@ export default class Builder { enableHotReload(node=null, historySave=true) { if(historySave) this.historySave(document.location, true) - node.addEventListener('click', event => this._onPageChange(event), true) - node.addEventListener('submit', event => this._onPageChange(event), true) - node.addEventListener('popstate', event => this._onPopState(event), true) + node.addEventListener('click', event => this.pageChanged(event), true) + node.addEventListener('submit', event => this.pageChanged(event), true) + node.addEventListener('popstate', event => this.statePopped(event), true) } - _onPageChange(event) { + pageChanged(event) { let submit = event.type == 'submit'; let target = submit || event.target.tagName == 'A' ? event.target : event.target.closest('a'); @@ -91,8 +91,12 @@ export default class Builder { let url = submit ? target.getAttribute('action') || '' : target.getAttribute('href'); - if(url===null || !(url === '' || url.startsWith('/') || url.startsWith('?'))) + let domain = window.location.protocol + '//' + window.location.hostname + let stay = (url === '' || url.startsWith('/') || url.startsWith('?') || + url.startsWith(domain)) && url.indexOf('wp-admin') == -1 + if(url===null || !stay) { return; + } let options = {}; if(submit) { @@ -107,10 +111,11 @@ export default class Builder { event.stopPropagation(); } - _onPopState(event) { - if(event.state && event.state.content) + statePopped(event) { + const state = event.state + if(state && state.content) // document.title = this.title; - this.historyLoad(event.state); + this.historyLoad(state); } /// Save application state into browser history