summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-06-26Fixed #34675 -- Fixed creating remote webdriver for Selenium 4.10.0+.Jonathan Weth
2023-06-26Refs #34233 -- Bumped minimum supported version of Selenium to 4.8.0.Mariusz Felisiak
This bumps minimum supported versions of selenium to the first release to support Python 3.10.
2023-06-26Refs #31949 -- Made http decorators to work with async functions.th3nn3ss
2023-06-26Added more tests for http decorators.th3nn3ss
2023-06-26Moved http decorator tests into decorators/test_http.py.Mariusz Felisiak
2023-06-26Fixed #34678 -- Added Django Forum and Discord server to README.rst.Andrew Northall
2023-06-25Fixed #34676 -- Normalized Distance()/Area() exceptions for nonexistent units.Andrew Northall
2023-06-23Refs #34391 -- Updated asgiref dependency for 5.0 release series.Mariusz Felisiak
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-20Corrected admin.E013 check message in docs.Mariusz Felisiak
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-18Improved names for Selenium daily builds.Mariusz Felisiak
2023-06-18Made SeleniumTests.test_inline_uuid_pk_add_with_popup less flaky by waiting ↵sarahboyce
until popup is closed.
2023-06-17Added Selenium tests to daily builds.Sarah Boyce
2023-06-16Fixed typo in docs/topics/db/fixtures.txt.Ashwin Dharne
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-15Added GitHub action to run Selenium tests.sarahboyce
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-14Fixed date_time_picker_shortcuts() tests on Windows.David Smith
Windows does not allow overriding TIME_ZONE as time.tzset() is only available on Unix.
2023-06-13Updated PyPI setup access in prerequisites checklist of release how-to.nessita
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-13Refs #30220 -- Bumped required version of Selenium to 3.8.0.Mariusz Felisiak
Follow up to 8d010f39869f107820421631111417298d1c5bb9.
2023-06-13Made SeleniumTests.test_select_multiple less flaky by adding explicit ↵sarahboyce
Selenium wait.
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-12Added more tests for django.utils.functional.lazy().Nick Pope
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-11Refs #34233 -- Updated black target-version to Python 3.10.David Smith
2023-06-10Added tests for HttpResponseBase.charset/reason_phrase setters.XDEv11
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.