From 1e3b71825b028a2f6b210081cd319fe575aa2943 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Tue, 15 Mar 2022 08:55:28 +0100 Subject: [PATCH 01/15] Corrected wrong PyPI project urls. --- setup.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 7f7233f..eea51fc 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,6 @@ sponsor_url = "https://github.com/sponsors/fabiocaccamo/" twitter_url = "https://twitter.com/fabiocaccamo" package_name = "django-admin-interface" package_url = "{}/{}".format(github_url, package_name) -package_issues_url = "{}/issues".format(github_url) package_path = os.path.abspath(os.path.dirname(__file__)) long_description_file_path = os.path.join(package_path, "README.md") long_description_content_type = "text/markdown" @@ -39,8 +38,8 @@ setup( url=package_url, download_url="{}/archive/{}.tar.gz".format(package_url, __version__), project_urls={ - "Documentation": package_url, - "Issues": package_issues_url, + "Documentation": "{}#readme".format(package_url), + "Issues": "{}/issues".format(package_url), "Funding": sponsor_url, "Twitter": twitter_url, }, From 94c436b137dd1c09f44d124ebd14ee561b2b44b3 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Tue, 10 May 2022 10:43:40 +0200 Subject: [PATCH 02/15] Reformatted Theme model choices. --- admin_interface/models.py | 55 ++++++++------------------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/admin_interface/models.py b/admin_interface/models.py index 49ad035..b16f589 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -144,14 +144,8 @@ class Theme(models.Model): default=True, verbose_name=_("active") ) language_chooser_display_choices = ( - ( - "code", - _("code"), - ), - ( - "name", - _("name"), - ), + ("code", _("code")), + ("name", _("name")), ) language_chooser_display = models.CharField( max_length=10, @@ -303,42 +297,15 @@ class Theme(models.Model): verbose_name=_("background color"), ) related_modal_background_opacity_choices = ( - ( - "0.1", - "10%", - ), - ( - "0.2", - "20%", - ), - ( - "0.3", - "30%", - ), - ( - "0.4", - "40%", - ), - ( - "0.5", - "50%", - ), - ( - "0.6", - "60%", - ), - ( - "0.7", - "70%", - ), - ( - "0.8", - "80%", - ), - ( - "0.9", - "90%", - ), + ("0.1", "10%"), + ("0.2", "20%"), + ("0.3", "30%"), + ("0.4", "40%"), + ("0.5", "50%"), + ("0.6", "60%"), + ("0.7", "70%"), + ("0.8", "80%"), + ("0.9", "90%"), ) related_modal_background_opacity = models.CharField( max_length=5, From 04632078d110541a2f6ae67c855db855c36cfeea Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Tue, 10 May 2022 10:44:05 +0200 Subject: [PATCH 03/15] [css] Fixed dashboard alignment when recent-actions are not visible. --- .../static/admin_interface/css/recent-actions.css | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/admin_interface/static/admin_interface/css/recent-actions.css b/admin_interface/static/admin_interface/css/recent-actions.css index b6095e5..6e25164 100644 --- a/admin_interface/static/admin_interface/css/recent-actions.css +++ b/admin_interface/static/admin_interface/css/recent-actions.css @@ -1,13 +1,10 @@ .admin-interface.dashboard #content { + width: auto; max-width: 600px; - margin-right: auto; - margin-left: auto; + margin-right: 0; + margin-left: 0; } .admin-interface.dashboard #content #recent-actions-module { display: none; } - -.admin-interface.dashboard #content { - width: auto; -} \ No newline at end of file From 4212a695f0559303b446e29cb1c331497eb63284 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Sat, 14 May 2022 15:55:05 +0200 Subject: [PATCH 04/15] Updated create-release workflow. --- .github/workflows/create-release.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fc4df59..4dbc6f2 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -18,12 +18,7 @@ jobs: uses: ffurrer2/extract-release-notes@v1 - name: Create release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: ncipollo/release-action@v1 with: - tag_name: ${{ github.ref }} - release_name: ${{ github.ref }} - draft: false - prerelease: false body: ${{ steps.extract-release-notes.outputs.release_notes }} + token: ${{ secrets.WORKFLOWS_CREATE_RELEASE_TOKEN }} From 502b1af775f85f12985d3a3c3424a7679fbbf59b Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Sat, 14 May 2022 15:55:16 +0200 Subject: [PATCH 05/15] Updated CHANGELOG and version. --- CHANGELOG.md | 3 +++ admin_interface/version.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a226380..f412752 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.19.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.1) - 2022-05-14 +- [css] Fixed dashboard alignment when recent-actions are not visible. + ## [0.19.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.0) - 2022-03-08 - Converted dynamic inline CSS to external static CSS using CSS variables. #157 #93 (thanks to [@Mustafa-Abu-Ghazy](https://github.com/Mustafa-Abu-Ghazy)) diff --git a/admin_interface/version.py b/admin_interface/version.py index fa5390f..cd3814f 100644 --- a/admin_interface/version.py +++ b/admin_interface/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -__version__ = "0.19.0" +__version__ = "0.19.1" From ce552f9f0c63f806aee724aa6f13cf71a00deeed Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Thu, 16 Jun 2022 00:41:11 +0200 Subject: [PATCH 06/15] Updated README. [ci skip] --- README.md | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 24f5d00..47ea1dd 100644 --- a/README.md +++ b/README.md @@ -187,18 +187,17 @@ urlpatterns += i18n_patterns(path("admin/", admin.site.urls)) ## Testing ```bash -# create python virtual environment -virtualenv testing_django_admin_interface +# clone repository +git clone https://github.com/fabiocaccamo/django-admin-interface.git && cd django-admin-interface -# activate virtualenv -cd testing_django_admin_interface && . bin/activate +# create virtualenv and activate it +python -m venv venv && . venv/bin/activate -# clone repo -git clone https://github.com/fabiocaccamo/django-admin-interface.git src && cd src +# upgrade pip +python -m pip install --upgrade pip -# install dependencies -pip install -r requirements.txt -pip install -r requirements-test.txt +# install requirements +pip install -r requirements.txt -r requirements-test.txt # run tests tox @@ -215,6 +214,13 @@ Released under [MIT License](LICENSE.txt). --- +## Supporting + +- :star: Star this project on [GitHub](https://github.com/fabiocaccamo/django-admin-interface) +- :octocat: Follow me on [GitHub](https://github.com/fabiocaccamo) +- :blue_heart: Follow me on [Twitter](https://twitter.com/fabiocaccamo) +- :moneybag: Sponsor me on [Github](https://github.com/sponsors/fabiocaccamo) + ## See also - [`django-colorfield`](https://github.com/fabiocaccamo/django-colorfield) - simple color field for models with a nice color-picker in the admin. 🎨 From de09ffd7b1b13ea7f6484b62ac4f7c1b6b8c7da5 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Wed, 22 Jun 2022 14:43:31 +0200 Subject: [PATCH 07/15] Update FUNDING.yml --- .github/FUNDING.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 50ac1cd..9735e26 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1 @@ github: [fabiocaccamo] -custom: ['https://www.paypal.me/fabiocaccamo'] From 3156882cba8fa27cc16aad052ebb1493ec6e3cd5 Mon Sep 17 00:00:00 2001 From: Tim Gates Date: Sun, 31 Jul 2022 16:15:07 +1000 Subject: [PATCH 08/15] docs: Fix a few typos (#166) --- .../admin_interface/magnific-popup/jquery.magnific-popup.js | 2 +- admin_interface/static/ckeditor/ckeditor/skins/light/skin.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/admin_interface/static/admin_interface/magnific-popup/jquery.magnific-popup.js b/admin_interface/static/admin_interface/magnific-popup/jquery.magnific-popup.js index 08aefc2..f06f96d 100755 --- a/admin_interface/static/admin_interface/magnific-popup/jquery.magnific-popup.js +++ b/admin_interface/static/admin_interface/magnific-popup/jquery.magnific-popup.js @@ -1507,7 +1507,7 @@ } }, - // Get element postion relative to viewport + // Get element position relative to viewport _getOffset: function(isLarge) { var el; if(isLarge) { diff --git a/admin_interface/static/ckeditor/ckeditor/skins/light/skin.js b/admin_interface/static/ckeditor/ckeditor/skins/light/skin.js index 8373225..0bc63f4 100644 --- a/admin_interface/static/ckeditor/ckeditor/skins/light/skin.js +++ b/admin_interface/static/ckeditor/ckeditor/skins/light/skin.js @@ -49,7 +49,7 @@ CKEDITOR.skin.name = 'husky'; // the complete list: // http://docs.ckeditor.com/#!/api/CKEDITOR.env // -// Internet explorer is an expection and the browser version is also accepted +// Internet explorer is an exception and the browser version is also accepted // (ie7, ie8, ie9, ie10), as well as a special name for IE in Quirks mode (iequirks). // // The available browser specific files must be set separately for editor.css From 003b0f9892c7546a8a763ca7d3ab93202880ddd0 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 3 Aug 2022 14:07:08 -0400 Subject: [PATCH 09/15] Update admin_interface_tags.py (#168) --- admin_interface/templatetags/admin_interface_tags.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/admin_interface/templatetags/admin_interface_tags.py b/admin_interface/templatetags/admin_interface_tags.py index e3ce5a6..525a288 100644 --- a/admin_interface/templatetags/admin_interface_tags.py +++ b/admin_interface/templatetags/admin_interface_tags.py @@ -80,9 +80,9 @@ def get_admin_interface_version(): def hash_string(text): - hash_object = hashlib.md5(text.encode()) - md5_hash = hash_object.hexdigest() - return md5_hash + hash_object = hashlib.sha224(text.encode()) + sha224_hash = hash_object.hexdigest() + return sha224_hash @simple_tag(takes_context=False) From 11bde80a36ebf2d6e4131c46c341e8cc6effd3c3 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Thu, 4 Aug 2022 14:41:46 +0200 Subject: [PATCH 10/15] Update `CHANGELOG` and version. --- CHANGELOG.md | 3 +++ admin_interface/version.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f412752..d867e17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.19.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.2) - 2022-08-04 +- Fix `hashlib` compatibility with `FIPS` enabled systems. #167 (by [@jonlev1n](https://github.com/jonlev1n) in #168) + ## [0.19.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.1) - 2022-05-14 - [css] Fixed dashboard alignment when recent-actions are not visible. diff --git a/admin_interface/version.py b/admin_interface/version.py index cd3814f..f860ce6 100644 --- a/admin_interface/version.py +++ b/admin_interface/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -__version__ = "0.19.1" +__version__ = "0.19.2" From b90ed72ef648984d1dc665c64963788730579980 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Thu, 25 Aug 2022 11:58:20 +0200 Subject: [PATCH 11/15] Update `README` css variables section. --- README.md | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 47ea1dd..e235fc9 100644 --- a/README.md +++ b/README.md @@ -100,31 +100,48 @@ You can add a theme you've created through the admin to this repository by [send 4. Edit the section above to document your theme. ### Add theme support to third-party libraries -You can add **theme support to existing third-party libraries** using the following **css variables**: +You can add **theme support to existing third-party libraries** using the following **CSS variables**: -- `--admin-interface-title-color` -- `--admin-interface-logo-color` -- `--admin-interface-env-color` -- `--admin-interface-header-background-color:` +#### Header + +- `--admin-interface-header-background-color` - `--admin-interface-header-text-color` - `--admin-interface-header-link-color` - `--admin-interface-header-link_hover-color` +- `--admin-interface-title-color` +- `--admin-interface-env-color` + +#### Logo + +- `--admin-interface-logo-color` +- `--admin-interface-logo-default-background-image` +- `--admin-interface-logo-max-width` +- `--admin-interface-logo-max-height` + +#### Modules / Links - `--admin-interface-module-background-color` - `--admin-interface-module-background-selected-color` +- `--admin-interface-module-border-radius` - `--admin-interface-module-text-color` - `--admin-interface-module-link-color` - `--admin-interface-module-link-selected-color` - `--admin-interface-module-link-hover-color` - `--admin-interface-generic-link-color` - `--admin-interface-generic-link-hover-color` + +#### Buttons - `--admin-interface-save-button-background-color` - `--admin-interface-save-button-background-hover-color` - `--admin-interface-save-button-text-color` - `--admin-interface-delete-button-background-color` - `--admin-interface-delete-button-background-hover-color` - `--admin-interface-delete-button-text-color` + +#### Related Modal - `--admin-interface-related-modal-background-color` - `--admin-interface-related-modal-background-opacity` +- `--admin-interface-related-modal-border-radius` +- `--admin-interface-related-modal-close-button-display` --- From 53e9b3f9f7d8e4f8578f2a9c9ab97e8a368ea3a8 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Thu, 25 Aug 2022 11:58:54 +0200 Subject: [PATCH 12/15] Fix CSS variable name typo. --- .../static/admin_interface/css/admin-interface.css | 4 ++-- admin_interface/templates/admin/base_site.html | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/admin_interface/static/admin_interface/css/admin-interface.css b/admin_interface/static/admin_interface/css/admin-interface.css index 7480c08..94f5990 100644 --- a/admin_interface/static/admin_interface/css/admin-interface.css +++ b/admin_interface/static/admin_interface/css/admin-interface.css @@ -127,8 +127,8 @@ .admin-interface #branding h1 img.logo, .admin-interface.login #header #branding h1 img.logo { - max-width: var(--admin-interface-log-max-width); - max-height: var(--admin-interface-log-max-height); + max-width: var(--admin-interface-logo-max-width); + max-height: var(--admin-interface-logo-max-height); } .admin-interface #header #user-tools a { diff --git a/admin_interface/templates/admin/base_site.html b/admin_interface/templates/admin/base_site.html index 70515cc..ec134cc 100644 --- a/admin_interface/templates/admin/base_site.html +++ b/admin_interface/templates/admin/base_site.html @@ -44,15 +44,15 @@ {% endif %} {% if theme.logo_max_width > 0 %} - --admin-interface-log-max-width: min({{ theme.logo_max_width }}px, 100%); + --admin-interface-logo-max-width: min({{ theme.logo_max_width }}px, 100%); {% else %} - --admin-interface-log-max-width: 100%; + --admin-interface-logo-max-width: 100%; {% endif %} {% if theme.logo_max_height > 0 %} - --admin-interface-log-max-height: {{ theme.logo_max_height }}px; + --admin-interface-logo-max-height: {{ theme.logo_max_height }}px; {% else %} - --admin-interface-log-max-height: unset; + --admin-interface-logo-max-height: unset; {% endif %} {% if theme.related_modal_rounded_corners %} From 6eebeb62c12cfac712ef2fb8f00b38e1a432cc39 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Thu, 25 Aug 2022 12:00:44 +0200 Subject: [PATCH 13/15] Removed testing comments. --- .../static/admin_interface/related-modal/related-modal.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/admin_interface/static/admin_interface/related-modal/related-modal.js b/admin_interface/static/admin_interface/related-modal/related-modal.js index 49c4fd9..6b02945 100644 --- a/admin_interface/static/admin_interface/related-modal/related-modal.js +++ b/admin_interface/static/admin_interface/related-modal/related-modal.js @@ -136,15 +136,12 @@ if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined') window.presentRelatedObjectModalOnClickOn = presentRelatedObjectModalOnClickOn; // django 1.7 compatibility - // $('a.add-another').removeAttr('onclick').click({ lookup:false }, presentRelatedObjectModal); presentRelatedObjectModalOnClickOn('a.add-another'); // django 1.8 and above - // $('a.related-widget-wrapper-link').click({ lookup:false }, presentRelatedObjectModal); presentRelatedObjectModalOnClickOn('a.related-widget-wrapper-link'); // raw_id_fields support - // $('a.related-lookup').unbind('click').click({ lookup:true }, presentRelatedObjectModal); presentRelatedObjectModalOnClickOn('a.related-lookup', true); // django-dynamic-raw-id support - #61 From 769fab5e84294dec13da501242b5de3df3b2bbfd Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Thu, 25 Aug 2022 12:03:39 +0200 Subject: [PATCH 14/15] Add `django-streamfield` compatibility. --- README.md | 1 + .../admin_interface/css/streamfield.css | 200 ++++++++++++++++++ .../related-modal/related-modal.js | 14 +- .../streamfield/js/admin_popup_response.js | 22 ++ .../templates/admin/base_site.html | 2 + 5 files changed, 237 insertions(+), 2 deletions(-) create mode 100644 admin_interface/static/admin_interface/css/streamfield.css create mode 100644 admin_interface/static/streamfield/js/admin_popup_response.js diff --git a/README.md b/README.md index e235fc9..5c00ab4 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ django-admin-interface is a modern **responsive flat admin interface customizabl - `django-json-widget` - `django-modeltranslation` - `django-tabbed-admin` + - `django-streamfield` - `sorl-thumbnail` --- diff --git a/admin_interface/static/admin_interface/css/streamfield.css b/admin_interface/static/admin_interface/css/streamfield.css new file mode 100644 index 0000000..71ce2db --- /dev/null +++ b/admin_interface/static/admin_interface/css/streamfield.css @@ -0,0 +1,200 @@ +/* +django-streamfield support +https://github.com/raagin/django-streamfield/ +*/ + +.admin-interface .form-row.field-stream { + margin: 0; + padding: 0; + border-bottom: none; +} + +.admin-interface .form-row.field-stream label[for=id_stream] { + display: none; +} + +.admin-interface .streamfield_app { + clear: both; + width: 100%; +} + +.admin-interface .streamfield_app .stream-help-text { + margin-bottom: 15px; + display: flex; + flex-direction: column; + clear: both; +} + +.admin-interface .streamfield_app .stream-help-text .stream-help-text__title { + align-self: flex-end; + user-select: none; + padding: 8px; + padding-right: 0; + color: var(--admin-interface-generic-link-color); +} + +.admin-interface .streamfield_app .stream-help-text .stream-help-text__title:hover { + color: var(--admin-interface-generic-link-hover-color); +} + +.admin-interface .streamfield_app .stream-help-text .stream-help-text__content { + background: var(--admin-interface-module-background-selected-color); + border-radius: var(--admin-interface-module-border-radius); + border: 1px solid rgba(0,0,0,0.1); + padding: 15px; +} + +.admin-interface .streamfield_app .stream-help-text .stream-help-text__content > ul { + margin: 0; + padding: 0; +} + +.admin-interface .streamfield_app .collapse-handler { + user-select: none; + padding: 8px; + padding-right: 0; + margin: 0 0 5px 0; + color: var(--admin-interface-generic-link-color); + text-decoration: none; +} + +.admin-interface .streamfield_app .collapse-handler:hover { + color: var(--admin-interface-generic-link-hover-color); + text-decoration: none; +} + +.admin-interface .streamfield_app .stream-model-block { + position: relative; + box-shadow: none; + border: 1px solid rgba(0,0,0,0.1); + border-radius: var(--admin-interface-module-border-radius); + overflow: hidden; +} + +.admin-interface .streamfield_app .stream-model-block, +.admin-interface .streamfield_app .streamfield-models.collapsed .stream-model-block { + margin-bottom: 10px; +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin: 0; + padding: 10px 10px 10px 20px; +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title span { + font-size: 18px; +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle { + position: static; + right: 0; + top: 0; + color: var(--admin-interface-generic-link-color); +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle:hover { + color: var(--admin-interface-generic-link-hover-color); +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle { + display: flex; + justify-content: center; + align-items: center; +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-move, +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-delete { + display: flex; + justify-content: center; + align-items: center; + width: 40px; + height: 40px; + font-weight: normal; + background: none; + flex-shrink: 0; + color: inherit; + font-size: 16px; +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-move { + cursor: move; /* fallback if grab cursor is unsupported */ + cursor: grab; + cursor: -moz-grab; + cursor: -webkit-grab; +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-move:before { + content: "↕"; + + display: block; +} + +.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-delete:before { + content: "×"; + display: block; + font-size: 18px; +} + +.admin-interface .streamfield_app .block-fields > div { + margin-bottom: 15px; +} + +.admin-interface .streamfield_app .stream-model-block .stream-model-block__content { + background-color: #f8f8f8; + padding: 20px; +} + +.admin-interface .streamfield_app .stream-model-block .stream-model-block__content.no-subblocks.abstract-block { + display: none; +} + +.admin-interface .streamfield_app .stream-insert-new-block { + margin-bottom: 20px; +} + +.admin-interface .streamfield_app .stream-insert-new-block .add-new-block-button { + color: var(--admin-interface-generic-link-color); + text-decoration: none; +} + +.admin-interface .streamfield_app .stream-insert-new-block .add-new-block-button:hover { + color: var(--admin-interface-generic-link-hover-color); + text-decoration: none; +} + +.admin-interface .streamfield_app .stream-insert-new-block ul { + display: block; + width: 100%; + margin: 10px 0 0 0; + padding: 0; + user-select: none; +} + +.admin-interface .streamfield_app .stream-insert-new-block ul li { + display: inline-block; + font-size: 12px; + margin: 0; + padding: 0; +} + +.admin-interface .streamfield_app .stream-btn { + font-weight: normal; + text-decoration: none; + background-color: var(--admin-interface-generic-link-color); + padding: 6px 12px; + border-radius: 4px; +} + +.admin-interface .streamfield_app .stream-btn:hover { + text-decoration: none; + background-color: var(--admin-interface-generic-link-hover-color); +} + +.admin-interface .streamfield_app .stream-insert-new-block ul li .stream-btn { + margin-top: 5px; + margin-left: 5px; +} diff --git a/admin_interface/static/admin_interface/related-modal/related-modal.js b/admin_interface/static/admin_interface/related-modal/related-modal.js index 6b02945..b3b9d32 100644 --- a/admin_interface/static/admin_interface/related-modal/related-modal.js +++ b/admin_interface/static/admin_interface/related-modal/related-modal.js @@ -148,8 +148,18 @@ if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined') // https://github.com/lincolnloop/django-dynamic-raw-id presentRelatedObjectModalOnClickOn('a.dynamic_raw_id-related-lookup', true); - // show_change_link=True support - presentRelatedObjectModalOnClickOn('a.inlinechangelink'); + // django-streamfield support + // https://github.com/raagin/django-streamfield/ + presentRelatedObjectModalOnClickOn('.streamfield_app a.stream-btn[href*="_popup=1"]'); + // Vanilla js for catching the click during capture phase for anticipating Vue.js listener. + document.addEventListener('click', function(event) { + // console.log('click intercepted before Vue.'); + if (event.target.matches('.streamfield_app a.stream-btn[href*="_popup=1"]')) { + event.stopImmediatePropagation(); + event.preventDefault(); + $(event.target).trigger('click'); + } + }, { capture: true }); }); })(django.jQuery); diff --git a/admin_interface/static/streamfield/js/admin_popup_response.js b/admin_interface/static/streamfield/js/admin_popup_response.js new file mode 100644 index 0000000..bd41559 --- /dev/null +++ b/admin_interface/static/streamfield/js/admin_popup_response.js @@ -0,0 +1,22 @@ +(function() { + + 'use strict'; + + var windowRef = window; + var openerRef = windowRef.parent; + + var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse); + switch (initData.action) { + case 'change': + openerRef.streamapps[initData.app_id].updateBlock(initData.block_id, initData.instance_id); + openerRef.dismissRelatedObjectModal(); + break; + case 'delete': + break; + default: + openerRef.streamapps[initData.app_id].updateBlock(initData.block_id, initData.instance_id); + openerRef.dismissRelatedObjectModal(); + break; + } + +})(); \ No newline at end of file diff --git a/admin_interface/templates/admin/base_site.html b/admin_interface/templates/admin/base_site.html index ec134cc..7614ba6 100644 --- a/admin_interface/templates/admin/base_site.html +++ b/admin_interface/templates/admin/base_site.html @@ -91,6 +91,8 @@ {% endif %} + Date: Thu, 25 Aug 2022 12:17:01 +0200 Subject: [PATCH 15/15] Update `CHANGELOG` and version. --- CHANGELOG.md | 3 +++ admin_interface/version.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d867e17..98df847 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.20.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.20.0) - 2022-08-25 +- Add `django-streamfield` compatibility. + ## [0.19.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.2) - 2022-08-04 - Fix `hashlib` compatibility with `FIPS` enabled systems. #167 (by [@jonlev1n](https://github.com/jonlev1n) in #168) diff --git a/admin_interface/version.py b/admin_interface/version.py index f860ce6..26b43de 100644 --- a/admin_interface/version.py +++ b/admin_interface/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -__version__ = "0.19.2" +__version__ = "0.20.0"