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..2f7e99d 100644
--- a/.github/workflows/tox.yml
+++ b/.github/workflows/tox.yml
@@ -6,9 +6,10 @@ jobs:
build:
runs-on: ubuntu-latest
+
strategy:
matrix:
- python: [2.7, 3.7]
+ python: [3.7]
steps:
- uses: actions/checkout@v2
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 5fae1cb..2013d9c 100644
Binary files a/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.mo and b/django_popup_view_field/locale/pl/LC_MESSAGES/djangojs.mo differ
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