From 418a7cecff3d80afe2782b7473d298762acceee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20T=C4=99=C5=BCycki?= Date: Mon, 27 Jan 2020 20:58:57 +0100 Subject: [PATCH 1/3] Fix issue #16 --- .travis.yml | 3 +-- CHANGELOG.md | 8 +++++++ README.rst | 2 +- demo/requirements.txt | 4 ++-- django_popup_view_field/__init__.py | 2 +- .../locale/pl/LC_MESSAGES/django.po | 2 +- .../locale/pl/LC_MESSAGES/djangojs.mo | Bin 539 -> 612 bytes .../locale/pl/LC_MESSAGES/djangojs.po | 22 ++++++++++++++---- .../js/django_popup_view_field_bootstrap4.js | 13 ++++------- .../django_popup_view_field_bootstrap4.min.js | 2 +- requirements-dev.txt | 2 +- tox.ini | 3 ++- 12 files changed, 40 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index 985ab1f..bd81b8a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,8 +37,7 @@ matrix: - { python: 3.6, env: TOXENV=py36-dj_2.1-latest_bootstraps-crispy_1.8-tests } - { python: 3.6, env: TOXENV=py36-dj_2.2-latest_bootstraps-crispy_1.7-tests } - { python: 3.6, env: TOXENV=py36-dj_2.2-latest_bootstraps-crispy_1.8-tests } - - { python: 3.6, env: TOXENV=py36-dj_2.1-latest_bootstraps-crispy_1.8-tests } - - { python: 3.6, env: TOXENV=py36-dj_2.2-latest_bootstraps-crispy_1.8-tests } + - { python: 3.6, env: TOXENV=py36-dj_3.0-latest_bootstraps-crispy_1.8-tests } install: - pip install tox>=2.5.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4165d3c..90ffdad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # CHANGELOG for django-popup-view-field +## 0.6.1 (2020-01-27) + +* Added support for Django 3.0 (demand django-crispy-forms >= 1.8.0 ) + +* Fixed javascript for bootstrap4. + In script was used incorrectly `id` attribute of dialog element. + Now `id` of `
` dialog for popup is different for bootstrap3 and bootstrap4. + ## 0.6.0 (2020-01-23) * Added support for Django 2.2 diff --git a/README.rst b/README.rst index 4cbef14..48090bf 100644 --- a/README.rst +++ b/README.rst @@ -22,7 +22,7 @@ You can create normal django View and load this view in dialog for form field. - Support: * Python: 2.7, 3.6 - * Django: 1.9, 1.10, 1.11, 2.0, 2.1 + * Django: 1.9, 1.10, 1.11, 2.0, 2.1, 2.2, 3.0 * django-crispy-forms * django-bootstrap3 * django-bootstrap4 (!Only for Django >= 2.1) diff --git a/demo/requirements.txt b/demo/requirements.txt index 8a48215..bab65a6 100644 --- a/demo/requirements.txt +++ b/demo/requirements.txt @@ -1,5 +1,5 @@ -Django==2.2.9 +Django==3.0.2 django-bootstrap3==12.0.3 django-bootstrap4==1.1.1 -django-crispy-forms==1.7.2 +django-crispy-forms==1.8.1 ../. diff --git a/django_popup_view_field/__init__.py b/django_popup_view_field/__init__.py index 4f7799b..9874785 100644 --- a/django_popup_view_field/__init__.py +++ b/django_popup_view_field/__init__.py @@ -1,3 +1,3 @@ -VERSION = (0, 6, 0) +VERSION = (0, 6, 1) __version__ = ".".join(str(i) for i in VERSION) SUPPORTED_BOOTSTRAP_VER = ('bootstrap3', 'bootstrap4') diff --git a/django_popup_view_field/locale/pl/LC_MESSAGES/django.po b/django_popup_view_field/locale/pl/LC_MESSAGES/django.po index 53b4ef8..7b3cdde 100644 --- a/django_popup_view_field/locale/pl/LC_MESSAGES/django.po +++ b/django_popup_view_field/locale/pl/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-19 13:46+0200\n" +"POT-Creation-Date: 2020-01-27 20:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.mo b/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.mo index 5fae1cbaddde2e57073d4c5bc77ca6a7361e8477..2013d9c74608b6853a769de9e6d11dfe7e25c28b 100644 GIT binary patch delta 196 zcmbQu@`R=So)F7a1|VPoVi_Q|0b*7ljsap2C;(y*zYvIpfw&xq#eldQh-(-b7#0C( zb|98#VqlO0(&|835lA}$X`nO%GY|urU;wg%!8s?tIF-RAu_RF;vshtbK98ttQBi)8 zLVlh?PJUuaW?s5N3Q%%m7zl5{ng%HYKLymnY_BCIXe@RVHWX GF#rIj4JB*< delta 105 zcmaFDGMgp#o)F7a1|VPtVi_Pd0b*7l_5orLNC09GKM{z9fjAwAYZw_As(~~+5dQ$O arGPX869WT~2{s4Fgn)^;avK*dU<3d>4hnn# diff --git a/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.po b/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.po index 989806c..ac6426f 100644 --- a/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.po +++ b/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-12-09 22:04+0100\n" +"POT-Creation-Date: 2020-01-27 20:45+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -19,9 +19,21 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: static/django_popup_view_field/js/django_popup_view_field.js:100 -msgid "Close" -msgstr "Zamknij" -#: static/django_popup_view_field/js/django_popup_view_field.js:99 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap3.js:99 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap3.min.js:1 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.js:96 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.min.js:1 msgid "Data is loading ..." msgstr "Trwa ładowanie danych ..." + +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap3.js:100 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap3.min.js:1 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.js:97 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.min.js:1 +msgid "Close" +msgstr "Zamknij" + +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.js:89 +#: django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.min.js:1 +msgid "Error on loading data." +msgstr "Błąd podczas ładowania danych." diff --git a/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.js b/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.js index 31db0c2..0155415 100644 --- a/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.js +++ b/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.js @@ -86,13 +86,13 @@ $(document).ready(function(){ bind_events($dialog, $button); }); request.fail(function(response){ - $dialog.modal('dispose'); + $dialog.find(".modal-body").html(gettext('Error on loading data.')); throw new Error("django-popup-view-field - Ajax request to url: " + url); }); }; var set_dialog = function($button){ - var $dialog = $("#django-popup-view-field"); + var $dialog = $("#django-popup-view-field-dialog"); var dial_body = gettext('Data is loading ...'); var dial_close = gettext('Close'); if ($button !== null) { @@ -103,22 +103,19 @@ $(document).ready(function(){ $dialog.find(".modal-title").html(dial_title); $dialog.find(".modal-body").html(dial_body); $dialog.find(".modal-footer-close").html(dial_close); + return $dialog; }; $(".popup-view-btn-load").on("click", function(){ var $button = $(this); var url = get_url($button); - var $dialog = $("#django-popup-view-field"); - set_dialog($button); + $dialog = set_dialog($button); + $dialog.modal('show'); get_content($dialog, $button, url, "GET", null); - $dialog.on('hidden.bs.modal', function (e) { $dialog.modal('hide'); set_dialog(null); }); - - $dialog.modal({}); - }); $(".popup-view-btn-clear").on("click", function(){ diff --git a/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.min.js b/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.min.js index 4ba5950..d8f88d4 100644 --- a/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.min.js +++ b/django_popup_view_field/static/django_popup_view_field/js/django_popup_view_field_bootstrap4.min.js @@ -1 +1 @@ -if("undefined"==typeof jQuery)throw new Error("django-popup-view-field - requires jQuery");$(document).ready(function(){var t=function(o,a,i,n,e){var l={url:i,method:n,cache:!1};null!=e&&(l.data=e);var d=$.ajax(l);d.done(function(i){o.find(".modal-body").html(i),function(o,a){var i=o.find(".modal-body");i.find("*").on("click",function(i){var n=null,e=$(this),l=e.data("popup-view-value");if(void 0!==l&&("html()"===l&&(l=e.html())&&(l=l.trim()),n=a.data("target"),target=$("#"+n),i.stopPropagation(),o.modal("hide"),target.val(l)),!0===e.is("a[href]")){var d=e.prop("href");return i.stopPropagation(),t(o,a,d,"GET",null),!1}}),i.find("form").on("submit",function(i){var n=$(this),e=n.attr("method")||"POST",l=n.attr("action")||".",d=n.serialize();return i.stopPropagation(),t(o,a,l,e,d),!1})}(o,a)}),d.fail(function(t){throw o.modal("dispose"),new Error("django-popup-view-field - Ajax request to url: "+i)})},o=function(t){var o=$("#django-popup-view-field"),a=gettext("Data is loading ..."),i=gettext("Close");if(null!==t)var n=t.data("popup-dialog-title");else n="Modal title";o.find(".modal-title").html(n),o.find(".modal-body").html(a),o.find(".modal-footer-close").html(i)};$(".popup-view-btn-load").on("click",function(){var a=$(this),i=function(t){return t.data("url")}(a),n=$("#django-popup-view-field");o(a),t(n,a,i,"GET",null),n.on("hidden.bs.modal",function(t){n.modal("hide"),o(null)}),n.modal({})}),$(".popup-view-btn-clear").on("click",function(){var t=$(this).data("target");$("#"+t).val("")})}); +if("undefined"==typeof jQuery)throw new Error("django-popup-view-field - requires jQuery");$(document).ready(function(){var o=function(t,a,i,n,l){var d={url:i,method:n,cache:!1};null!=l&&(d.data=l);var e=$.ajax(d);e.done(function(i){t.find(".modal-body").html(i),function(t,a){var i=t.find(".modal-body");i.find("*").on("click",function(i){var n=null,l=$(this),d=l.data("popup-view-value");if(void 0!==d&&("html()"===d&&(d=l.html())&&(d=d.trim()),n=a.data("target"),target=$("#"+n),i.stopPropagation(),t.modal("hide"),target.val(d)),!0===l.is("a[href]")){var e=l.prop("href");return i.stopPropagation(),o(t,a,e,"GET",null),!1}}),i.find("form").on("submit",function(i){var n=$(this),l=n.attr("method")||"POST",d=n.attr("action")||".",e=n.serialize();return i.stopPropagation(),o(t,a,d,l,e),!1})}(t,a)}),e.fail(function(o){throw t.find(".modal-body").html(gettext("Error on loading data.")),new Error("django-popup-view-field - Ajax request to url: "+i)})},t=function(o){var t=$("#django-popup-view-field-dialog"),a=gettext("Data is loading ..."),i=gettext("Close");if(null!==o)var n=o.data("popup-dialog-title");else n="Modal title";return t.find(".modal-title").html(n),t.find(".modal-body").html(a),t.find(".modal-footer-close").html(i),t};$(".popup-view-btn-load").on("click",function(){var a=$(this),i=function(o){return o.data("url")}(a);$dialog=t(a),$dialog.modal("show"),o($dialog,a,i,"GET",null),$dialog.on("hidden.bs.modal",function(o){$dialog.modal("hide"),t(null)})}),$(".popup-view-btn-clear").on("click",function(){var o=$(this).data("target");$("#"+o).val("")})}); diff --git a/requirements-dev.txt b/requirements-dev.txt index a7b3bcf..133dd4f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,4 @@ -Django==2.2.9 +Django==3.0.2 tox>=2.5.0 django-bootstrap3>=12.0.3 django-bootstrap4>=1.1.1 diff --git a/tox.ini b/tox.ini index c5fa227..0689f39 100644 --- a/tox.ini +++ b/tox.ini @@ -5,7 +5,7 @@ envlist= {py27,py36}-dj_1.10-bootstrap3_{7.1,8.1,8.2}-crispy_{1.5,1.6}-tests, {py27,py36}-dj_1.11-bootstrap3_{8.2}-crispy_{1.6}-tests, {py36}-dj_{2.0,2.1,2.2}-latest_bootstraps-crispy_{1.7,1.8}-tests, - {py36}-dj_{2.1,2.2}-latest_bootstraps-crispy_{1.8}-tests, + {py36}-dj_{2.1,2.2,3.0}-latest_bootstraps-crispy_{1.8}-tests, {py27,py36}-flake [testenv] @@ -23,6 +23,7 @@ deps = dj_2.0: Django>=2.0,<2.1 dj_2.1: Django>=2.1,<2.2 dj_2.2: Django>=2.2,<2.3 + dj_3.0: Django>=3.0,<3.1 crispy_1.5: django-crispy-forms==1.5.1 crispy_1.6: django-crispy-forms==1.6.1 crispy_1.7: django-crispy-forms==1.7.2 From e8c61519fbe51071740d571e9661dfbdb38cc226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20T=C4=99=C5=BCycki?= Date: Mon, 27 Jan 2020 21:31:31 +0100 Subject: [PATCH 2/3] Small changes in CI --- .github/workflows/lint.yml | 2 +- .github/workflows/tox.yml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d086a11..1789a92 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,4 +1,4 @@ -name: Python package +name: Lint by Flake on: [push] diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index ad3c1eb..d7f9446 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -6,10 +6,6 @@ jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - python: [2.7, 3.7] - steps: - uses: actions/checkout@v2 - name: Setup Python From 97e70370cd26ffd0b646e23b15186ece3324fcad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20T=C4=99=C5=BCycki?= Date: Mon, 27 Jan 2020 21:33:54 +0100 Subject: [PATCH 3/3] CI --- .github/workflows/tox.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index d7f9446..2f7e99d 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -6,6 +6,11 @@ jobs: build: runs-on: ubuntu-latest + + strategy: + matrix: + python: [3.7] + steps: - uses: actions/checkout@v2 - name: Setup Python