Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-django-grappelli for openSUSE:Factory checked in at 2023-05-08 17:24:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-django-grappelli (Old) and /work/SRC/openSUSE:Factory/.python-django-grappelli.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-grappelli" Mon May 8 17:24:11 2023 rev:24 rq:1085332 version:3.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/python-django-grappelli/python-django-grappelli.changes 2023-04-16 16:07:55.721112119 +0200 +++ /work/SRC/openSUSE:Factory/.python-django-grappelli.new.1533/python-django-grappelli.changes 2023-05-08 17:24:13.072671790 +0200 @@ -1,0 +2,7 @@ +Sun May 7 18:44:25 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 3.0.6: + * Fixed incorrect label of option returned by RelatedLookup + view. + +------------------------------------------------------------------- Old: ---- django-grappelli-3.0.5.tar.gz New: ---- django-grappelli-3.0.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-django-grappelli.spec ++++++ --- /var/tmp/diff_new_pack.PzVF0V/_old 2023-05-08 17:24:13.660675266 +0200 +++ /var/tmp/diff_new_pack.PzVF0V/_new 2023-05-08 17:24:13.672675337 +0200 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-django-grappelli -Version: 3.0.5 +Version: 3.0.6 Release: 0 Summary: A skin for the Django Admin-Interface License: BSD-2-Clause AND LGPL-2.1-or-later ++++++ django-grappelli-3.0.5.tar.gz -> django-grappelli-3.0.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/README.rst new/django-grappelli-3.0.6/README.rst --- old/django-grappelli-3.0.5/README.rst 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/README.rst 2023-05-03 14:01:45.000000000 +0200 @@ -36,12 +36,12 @@ **Grappelli is always developed against the latest stable Django release and is NOT tested with Django's master branch.** -* Grappelli 3.0.5 (March 20th, 2023): Compatible with Django 4.0 +* Grappelli 3.0.6 (May 3rd, 2023): Compatible with Django 4.0 * Grappelli 2.15.6 (November 22nd, 2022): Compatible with Django 3.2 (LTS) Current development branches: -* Grappelli 3.0.6 (Development version for Django 4.0, see branch Stable/3.0.x) +* Grappelli 3.0.7 (Development version for Django 4.0, see branch Stable/3.0.x) * Grappelli 2.15.7 (Development version for Django 3.2, see branch Stable/2.15.x) Older versions are available at GitHub, but are not supported anymore. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/docs/changelog.rst new/django-grappelli-3.0.6/docs/changelog.rst --- old/django-grappelli-3.0.5/docs/changelog.rst 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/docs/changelog.rst 2023-05-03 14:01:45.000000000 +0200 @@ -8,9 +8,14 @@ Changelog ========= -3.0.6 (not yet released) +3.0.7 (not yet released) ------------------------ +3.0.6 (May 3rd 2023) +-------------------- + +* Fixed incorrect label of option returned by RelatedLookup view. + 3.0.5 (March 20th 2023) ----------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/docs/conf.py new/django-grappelli-3.0.6/docs/conf.py --- old/django-grappelli-3.0.5/docs/conf.py 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/docs/conf.py 2023-05-03 14:01:45.000000000 +0200 @@ -52,9 +52,9 @@ # built documents. # # The short X.Y version. -version = '3.0.5' +version = '3.0.6' # The full version, including alpha/beta/rc tags. -release = '3.0.5' +release = '3.0.6' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/docs/index.rst new/django-grappelli-3.0.6/docs/index.rst --- old/django-grappelli-3.0.5/docs/index.rst 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/docs/index.rst 2023-05-03 14:01:45.000000000 +0200 @@ -4,7 +4,7 @@ contain the root `toctree` directive. .. |grappelli| replace:: Grappelli .. |filebrowser| replace:: FileBrowser -.. |grappelliversion| replace:: 3.0.5 +.. |grappelliversion| replace:: 3.0.6 .. _index: @@ -76,12 +76,12 @@ **Grappelli is always developed against the latest stable Django release and is NOT tested with Django's master branch.** -* Grappelli 3.0.5 (March 20th, 2023): Compatible with Django 4.0 +* Grappelli 3.0.6 (May 3rd, 2023): Compatible with Django 4.0 * Grappelli 2.15.6 (November 22nd, 2022): Compatible with Django 3.2 (LTS) Current development branches: -* Grappelli 3.0.6 (Development version for Django 4.0, see branch Stable/3.0.x) +* Grappelli 3.0.7 (Development version for Django 4.0, see branch Stable/3.0.x) * Grappelli 2.15.7 (Development version for Django 3.2, see branch Stable/2.15.x) Older versions are available at GitHub, but are not supported anymore. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/docs/quickstart.rst new/django-grappelli-3.0.6/docs/quickstart.rst --- old/django-grappelli-3.0.5/docs/quickstart.rst 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/docs/quickstart.rst 2023-05-03 14:01:45.000000000 +0200 @@ -1,6 +1,6 @@ .. |grappelli| replace:: Grappelli .. |filebrowser| replace:: FileBrowser -.. |grappelliversion| replace:: 3.0.5 +.. |grappelliversion| replace:: 3.0.6 .. _quickstart: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/grappelli/__init__.py new/django-grappelli-3.0.6/grappelli/__init__.py --- old/django-grappelli-3.0.5/grappelli/__init__.py 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/grappelli/__init__.py 2023-05-03 14:01:45.000000000 +0200 @@ -1 +1 @@ -VERSION = '3.0.5' +VERSION = '3.0.6' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/grappelli/tests/test_related.py new/django-grappelli-3.0.6/grappelli/tests/test_related.py --- old/django-grappelli-3.0.5/grappelli/tests/test_related.py 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/grappelli/tests/test_related.py 2023-05-03 14:01:45.000000000 +0200 @@ -1,10 +1,12 @@ # coding: utf-8 +from django.contrib.admin.widgets import url_params_from_lookup_dict from django.contrib.auth.models import User from django.test import TestCase from django.test.utils import override_settings from django.urls import reverse from django.utils import timezone, translation +from django.utils.http import urlencode from grappelli.tests.models import Category, Entry @@ -37,7 +39,6 @@ self.entry_editor = Entry.objects.create(title="Entry Editor", date=timezone.now(), user=self.editor_1) - # set to en to check error messages translation.activate("en") @@ -97,6 +98,30 @@ self.assertEqual(response.status_code, 200) self.assertJSONEqual(response.content.decode('utf-8'), [{"value": "100", "label": "Category No 99 (100)", "safe": False}]) + # filtered queryset (IN statement) fails + query_params = { + "object_id": 1, + "app_label": "grappelli", + "model_name": "category", + "query_string": urlencode(url_params_from_lookup_dict({"id__in": [99, 100]})) + } + query_string = urlencode(query_params) + response = self.client.get("%s?%s" % (reverse("grp_related_lookup"), query_string)) + self.assertEqual(response.status_code, 200) + self.assertJSONEqual(response.content.decode('utf-8'), [{"value": "1", "label": "?", "safe": False}]) + + # filtered queryset (IN statement) works + query_params = { + "object_id": 100, + "app_label": "grappelli", + "model_name": "category", + "query_string": urlencode(url_params_from_lookup_dict({"id__in": [99, 100]})) + } + query_string = urlencode(query_params) + response = self.client.get("%s?%s" % (reverse("grp_related_lookup"), query_string)) + self.assertEqual(response.status_code, 200) + self.assertJSONEqual(response.content.decode('utf-8'), [{"value": "100", "label": "Category No 99 (100)", "safe": False}]) + # filtered queryset (multiple filters) fails response = self.client.get("%s?object_id=1&app_label=%s&model_name=%s&query_string=name__icontains=99:id__gte=99" % (reverse("grp_related_lookup"), "grappelli", "category")) self.assertEqual(response.status_code, 200) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/grappelli/views/related.py new/django-grappelli-3.0.6/grappelli/views/related.py --- old/django-grappelli-3.0.5/grappelli/views/related.py 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/grappelli/views/related.py 2023-05-03 14:01:45.000000000 +0200 @@ -1,6 +1,7 @@ # coding: utf-8 import json +from urllib.parse import unquote from django.apps import apps from django.contrib.admin.utils import prepare_lookup_value @@ -91,7 +92,7 @@ for item in query_string.split(":"): k, v = item.split("=") if k != "_to_field": - filters[smart_str(k)] = prepare_lookup_value(smart_str(k), smart_str(v)) + filters[smart_str(k)] = prepare_lookup_value(smart_str(k), unquote(smart_str(v))) return qs.filter(**filters) def get_queryset(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/package.json new/django-grappelli-3.0.6/package.json --- old/django-grappelli-3.0.5/package.json 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/package.json 2023-05-03 14:01:45.000000000 +0200 @@ -1,6 +1,6 @@ { "name": "Grappelli", - "version": "3.0.5", + "version": "3.0.6", "description": "A jazzy skin for the Django admin interface", "author": "Patrick Kranzlmueller, Axel Swoboda", "license": "New BSD", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/setup.py new/django-grappelli-3.0.6/setup.py --- old/django-grappelli-3.0.5/setup.py 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/setup.py 2023-05-03 14:01:45.000000000 +0200 @@ -9,7 +9,7 @@ setup( name='django-grappelli', - version='3.0.5', + version='3.0.6', description='A jazzy skin for the Django Admin-Interface.', long_description=read('README.rst'), url='http://django-grappelli.readthedocs.org', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-grappelli-3.0.5/tox.ini new/django-grappelli-3.0.6/tox.ini --- old/django-grappelli-3.0.5/tox.ini 2023-03-20 15:14:34.000000000 +0100 +++ new/django-grappelli-3.0.6/tox.ini 2023-05-03 14:01:45.000000000 +0200 @@ -10,3 +10,4 @@ coverage django40: Django>=4.0,<4.1 commands = ./runtests.py {posargs} +allowlist_externals = *