summaryrefslogtreecommitdiff
path: root/django
AgeCommit message (Collapse)Author
2023-07-06Used AdminSite.is_registered() where appropriate.Mariusz Felisiak
2023-07-06Fixed #32819 -- Established relationship between form fields and their help ↵Gregor Jerše
text. Thanks Nimra for the initial patch. Thanks Natalia Bidart, Thibaud Colas, David Smith, and Mariusz Felisiak for reviews.
2023-07-03Fixed CVE-2023-36053 -- Prevented potential ReDoS in EmailValidator and ↵Mariusz Felisiak
URLValidator. Thanks Seokchan Yoon for reports.
2023-06-30Fixed #34687 -- Made Apps.clear_cache() clear get_swappable_settings_name() ↵sobolevn
cache.
2023-06-30Fixed #34572 -- Added support for GDAL 3.7.Mariusz Felisiak
Co-authored-by: Michael Howitz <mh@gocept.com>
2023-06-29Fixed #30382 -- Allowed specifying parent classes in force_insert of ↵Akash Kumar Sen
Model.save().
2023-06-29Fixed #34685 -- Dropped support for GEOS 3.6 and 3.7.Mariusz Felisiak
2023-06-29Fixed #34684 -- Dropped support for GDAL 2.2 and 2.3.Mariusz Felisiak
2023-06-29Refs #34572 -- Added missing GDAL_PIXEL_TYPES from GDAL 3.5+.Claude Paroz
Check out https://github.com/OSGeo/gdal/blob/6e9103bd5/gcore/gdal.h#L62
2023-06-28Fixed #34681 -- Optimized memcache_key_warnings().Adam Johnson
2023-06-27Fixed #34671 -- Fixed collation introspection for views and materialized ↵Mariusz Felisiak
views on Oracle. Thanks Philipp Maino for the report.
2023-06-27Fixed #34391 -- Added async-compatible interface to auth functions and ↵Jon Janzen
related methods test clients.
2023-06-26Fixed #34675 -- Fixed creating remote webdriver for Selenium 4.10.0+.Jonathan Weth
2023-06-26Refs #31949 -- Made http decorators to work with async functions.th3nn3ss
2023-06-25Fixed #34676 -- Normalized Distance()/Area() exceptions for nonexistent units.Andrew Northall
2023-06-23Refs #31949 -- Simplified @sensitive_variables a bit.Jon Janzen
Follow up to 38e391e95fe5258bc6d2467332dc9cd44ce6ba52.
2023-06-23Refs #31949 -- Made @sensitive_variables/sensitive_post_parameters ↵Jon Janzen
decorators to work with async functions. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2023-06-23Improved style of n-tuple wording in docs and comments.Nick Pope
2023-06-21Fixed #34345 -- Added system check for ManyToManyFields with intermediate ↵Hrushikesh
tables in ModelAdmin.filter_horizontal/vertical.
2023-06-20Refs #34634 -- Fixed creating diamond-shaped MTI objects with ancestors ↵Akash Kumar Sen
inherited from different paths. Co-authored-by: Simon Charette <charette.s@gmail.com>
2023-06-20Fixed #34634 -- Adjusted system check for clashing fields to warn about ↵Akash Kumar Sen
links to common parent for MTI models.
2023-06-19Refs #27079 -- Used addClassCleanup() in SeleniumTestCase.Sarah Boyce
Regression in def09bf4126d4886413adf7388882eca8e32576b.
2023-06-19Fixed #34656 -- Fixed unclosed div in admin password change template.Yaser Amiri
Regression in 6991880109e35c879b71b7d9d9c154baeec12b89.
2023-06-19Refs #34517 -- Restored skipping ImageFileField.update_dimension_fields ↵François Freitag
without width/height fields. This avoids reading the image size when the dimensions fields (image_width, image_height) do not exist, as that operation may be expensive. Partially reverts ea53e7c09f1b8864c20c65976bbeaeab77abdaec, that dropped the check for the dimension fields in update_dimension_fields(), because the post_init signal was no longer registered without dimension fields. However, another code path to that function exists: when the ImageFileField is save()d, the name from the storage is setattr()ed on the field, and ImageFileDescriptor calls update_dimension_fields() because the image size might have changed. Keep bailing out early when dimensions are unused. Besides, computing the image dimensions causes to close() the file, resulting in a backward-incompatible change. The test protects against that change.
2023-06-18Fixed #34662 -- Corrected number in error messages for ↵şuayip üzülmez
Array(Min/Max)LengthValidator.
2023-06-16Fixed #34629 -- Added filtering support to GIS aggregates.Olivier Le Thanh Duong
2023-06-16Refs #34629 -- Changed SDOAGGRTYPE wrapping to Func() in GIS aggregates on ↵Mariusz Felisiak
Oracle.
2023-06-16Fixed #34473 -- Fixed step validation for form fields with non-zero minimum ↵Jacob Rief
value.
2023-06-15Fixed #33414 -- Fixed creating diamond-shaped MTI objects for common ↵Akash Kumar Sen
ancestor with primary key that has a default. Co-authored-by: Simon Charette <charette.s@gmail.com>
2023-06-14Refs #32143 -- Removed superflous constraints on excluded query.Simon Charette
The outer query reference is not necessary when alias can be reused and can even be harmful by confusing query planers. Refs #34597.
2023-06-14Refs #32143 -- Adjusted a comment about subquery usage in Query.split_exclude().Simon Charette
2023-06-13Fixed #34649 -- Fixed headless deprecation warning on Selenium 4.8+.anthony kugel
Thanks David Smith for the report and initial patch.
2023-06-12Fixed #34628 -- Improved icons accessibility of related widget wrapper in admin.Nina Menezes
This improves accessibility of icons by making them larger and grayscale (when not selected).
2023-06-12Allowed custom formatting of lazy() objects.Nick Pope
This allows for formatting of lazy objects which have a custom formatter defined by overriding the default implementation from `object`.
2023-06-12Allowed multiplication of lazy() objects with int return type.Nick Pope
2023-06-12Removed function call overhead when preparing proxy class for lazy().Nick Pope
We can avoid the function call and assignment overhead which could be significant when instantiating many lazy objects. It's still easy enough to read too.
2023-06-12Made proxy class in lazy() prepare eagerly.Ran Benita
Previously, the proxy class was prepared lazily: lazy_identity = lazy(identity, int) lazy_identity(10) # prepared here lazy_identity(10) This has a slight advantage that if the lazy doesn't end up getting used, the preparation work is skipped, however that's not very likely. Besides this laziness, it is also inconsistent in that the methods which are wrapped directly (__str__ etc.) are prepared already when __proxy__ is defined, and there is a weird half-initialized state. This change it so that everything is prepared already on the first line of the example above.
2023-06-12Improved order of methods in proxy class in lazy().Ran Benita
This order reads more naturally and puts methods into three groups: 1. The methods required to support the implementation of __proxy__, e.g. __deepcopy__ doesn't come from `object` and __reduce__ is overridden to support behavior required explicitly for pickling of lazy objects. 2. Methods that are specifically overridden from `object` which we don't want to inherit from the provided resultclasses. These will be skipped later when we add methods from the resultclasses. 3. Additional methods - that is _add__, __radd__, and __mod__ - don't come from `object`, but typically from `str` and `int` which are the most common use cases. Co-authored-by: Nick Pope <nick@nickpope.me.uk>
2023-06-11Fixed #34638 -- Fixed admin change list selected row highlight on editable ↵Neeraj Kumar
boolean fields. Regression in 0aa2f16e63887d6053f6fd0da19254fc74c750ae. Thanks Andrei Shabanski for the report.
2023-06-09Fixed #34645 -- Restored alignment for admin date/time timezone warnings.Mariusz Felisiak
Regression in 96a598356a9ea8c2c05b22cadc12e256a3b295fd.
2023-06-09Fixed #23049 -- Added %a and %A support to Date.strftime.sarahboyce
This enables the admin to display the day as locale's abbreviated/full name if %a/%A is used in the date format.
2023-06-08Fixed #34604 -- Corrected fallback SQL for n-ary logical XOR.Anders Kaseorg
An n-ary logical XOR Q(…) ^ Q(…) ^ … ^ Q(…) should evaluate to true when an odd number of its operands evaluate to true, not when exactly one operand evaluates to true.
2023-06-08Optimized lazy() by removing use of @total_ordering.Ran Benita
@total_ordering is slow. Using the following micro-benchmark (resultclasses intentionally omitted to narrow the scope): import cProfile from django.utils.functional import lazy def identity(x): return x cProfile.run("for i in range(10000): str(lazy(identity)(1))") Before: 380003 function calls in 0.304 seconds ncalls tottime percall cumtime percall filename:lineno(function) 1 0.016 0.016 0.304 0.304 <string>:1(<module>) 10000 0.002 0.000 0.002 0.000 bench.py:5(double) 10000 0.005 0.000 0.006 0.000 functional.py:100(__cast) 10000 0.007 0.000 0.013 0.000 functional.py:106(__str__) 10000 0.005 0.000 0.017 0.000 functional.py:140(__wrapper__) 10000 0.020 0.000 0.258 0.000 functional.py:60(lazy) 10000 0.039 0.000 0.039 0.000 functional.py:68(__proxy__) 10000 0.010 0.000 0.012 0.000 functional.py:77(__init__) 10000 0.002 0.000 0.002 0.000 functional.py:84(__prepare_class__) 10000 0.025 0.000 0.075 0.000 functools.py:186(total_ordering) 10000 0.015 0.000 0.028 0.000 functools.py:189(<setcomp>) 10000 0.024 0.000 0.044 0.000 functools.py:37(update_wrapper) 10000 0.005 0.000 0.005 0.000 functools.py:67(wraps) 10000 0.074 0.000 0.114 0.000 {built-in method builtins.__build_class__} 1 0.000 0.000 0.304 0.304 {built-in method builtins.exec} 150000 0.023 0.000 0.023 0.000 {built-in method builtins.getattr} 10000 0.004 0.000 0.004 0.000 {built-in method builtins.max} 80000 0.025 0.000 0.025 0.000 {built-in method builtins.setattr} 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 10000 0.003 0.000 0.003 0.000 {method 'update' of 'dict' objects} After: 240003 function calls in 0.231 seconds ncalls tottime percall cumtime percall filename:lineno(function) 1 0.016 0.016 0.231 0.231 <string>:1(<module>) 10000 0.002 0.000 0.002 0.000 bench.py:5(double) 10000 0.006 0.000 0.012 0.000 functional.py:105(__str__) 10000 0.005 0.000 0.017 0.000 functional.py:159(__wrapper__) 10000 0.015 0.000 0.186 0.000 functional.py:60(lazy) 10000 0.022 0.000 0.022 0.000 functional.py:68(__proxy__) 10000 0.010 0.000 0.012 0.000 functional.py:76(__init__) 10000 0.002 0.000 0.002 0.000 functional.py:83(__prepare_class__) 10000 0.004 0.000 0.006 0.000 functional.py:99(__cast) 10000 0.023 0.000 0.043 0.000 functools.py:37(update_wrapper) 10000 0.004 0.000 0.004 0.000 functools.py:67(wraps) 10000 0.102 0.000 0.124 0.000 {built-in method builtins.__build_class__} 1 0.000 0.000 0.231 0.231 {built-in method builtins.exec} 70000 0.011 0.000 0.011 0.000 {built-in method builtins.getattr} 50000 0.007 0.000 0.007 0.000 {built-in method builtins.setattr} 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 10000 0.003 0.000 0.003 0.000 {method 'update' of 'dict' objects}
2023-06-08Made bytes and str return types no longer mutually exclusive in lazy().Ran Benita
They are no longer special cased.
2023-06-08Removed unnecessary wrapping of __bytes__ in proxy class in lazy().Ran Benita
2023-06-08Removed unnecessary branch in __mod__() from proxy class in lazy().Ran Benita
Unnecessary since c716fe87821df00f9f03ecc761c914d1682591a2 and 7b2f2e74adb36a4334e83130f6abc2f79d395235.
2023-06-08Refs #34445 -- Fixed string-casting of non-string lazy objects when value ↵Ran Benita
may be bytes. If the result type is bytes, then calling bytes() on it does nothing. If the result type is not bytes, we should not cast to bytes, just because the return value may be bytes.
2023-06-06Fixed #34609 -- Deprecated calling format_html() without arguments.devilsautumn
2023-06-05Fixed #34627 -- Highlighted active row in admin UI when forced-colors mode ↵Nina Menezes
is enabled.
2023-06-05Fixed #34622 -- Improved accessibility of related widget wrapper in admin.Coen van der Kamp
This improves accessibility for screen reader users by adding "aria-disabled" and removing "alt". Thanks Thibaud Colas for the report.