netbox/netbox/utilities
Martin Hauser 70bc1c226a fix(utilities): Ensure unique signal handlers for counter models
Updates `connect_counters` to prevent duplicate signal handlers by
using consistent `dispatch_uid` values per sender. Adds a check to
avoid reconnecting models already processed during registration.

Fixes #20697
2025-10-31 10:12:41 -04:00
..
forms Fixes #20551: Support quick-add form prefix in automatic slug generation (#20624) 2025-10-21 08:33:10 -04:00
management Closes #17725: Clean up import statements (#17728) 2024-10-10 14:52:47 -04:00
serializers Closes #17725: Clean up import statements (#17728) 2024-10-10 14:52:47 -04:00
templates Fixes #20551: Support quick-add form prefix in automatic slug generation (#20624) 2025-10-21 08:33:10 -04:00
templatetags Fixes #19615: Properly set version request parameter for static files in S3 (#20455) 2025-10-12 18:49:42 -05:00
testing Closes #19944: Add multi-scenario CSV import testing support with cleanup (#20302) 2025-09-11 12:47:23 -04:00
tests Fixes #20641: Handle viewsets with queryset=None in get_view_name() (#20642) 2025-10-23 09:39:49 -07:00
__init__.py Initial push to public repo 2016-03-01 11:23:03 -05:00
api.py Fixes #20641: Handle viewsets with queryset=None in get_view_name() (#20642) 2025-10-23 09:39:49 -07:00
apps.py #19773: Include Django apps in system status view 2025-08-14 14:40:01 -04:00
choices.py Fixes #19224: Fix GraphQL API support for custom field choices 2025-04-17 12:22:14 -04:00
constants.py Add support for pipe character as delimiting character for bulk imports 2025-08-14 14:40:01 -04:00
conversion.py Merge main into feature 2025-04-10 17:17:21 -04:00
counters.py fix(utilities): Ensure unique signal handlers for counter models 2025-10-31 10:12:41 -04:00
data.py feat(utilities): Add ranges_to_string_list 2025-10-14 09:39:09 -04:00
datetime.py Introduce datetime_from_timestamp() utility function 2024-07-16 12:21:50 -04:00
error_handlers.py Closes #17951: Extend Ruff ruleset 2024-11-07 11:52:02 -05:00
exceptions.py Closes #12246: General cleanup of utilities modules 2023-04-14 10:33:53 -04:00
export.py Add support for pipe character as delimiting character for bulk imports 2025-08-14 14:40:01 -04:00
fields.py Merge main into feature 2025-04-10 17:17:21 -04:00
filters.py 13459 Fix OpenAPI type for TreeNodeMultipleChoiceFilter (#17095) 2024-08-10 10:24:02 -04:00
html.py Closes #17733: Replace pycodestyle with ruff (#17734) 2024-10-11 07:43:46 -04:00
htmx.py feat(extras): Add "Dismiss all" action to notifications dropdown 2025-10-22 13:59:54 +02:00
jinja2.py Fixes #19490: restores nesting behavior of DataSource-based ConfigTemplates 2025-05-23 16:34:22 -05:00
jobs.py Closes #20008: Job logging for bulk operation background jobs (#20022) 2025-08-05 15:54:08 -05:00
json.py Closes #19816: Implement a logging mechanism for background jobs (#19838) 2025-07-14 08:52:50 -05:00
jsonschema.py Closes #19377: Introduce config context profiles (#20058) 2025-08-12 15:18:45 -07:00
markdown.py Closes #17725: Clean up import statements (#17728) 2024-10-10 14:52:47 -04:00
migration.py custom_deconstruct() should not ignore TimeZoneField 2024-03-22 08:59:52 -04:00
mptt.py Closes #12246: General cleanup of utilities modules 2023-04-14 10:33:53 -04:00
object_types.py Move object_type_identifier() & object_type_name() to utilities.object_types 2024-03-22 08:59:52 -04:00
ordering.py Closes #12246: General cleanup of utilities modules 2023-04-14 10:33:53 -04:00
paginator.py Fix pagination when pagination.per_page is "" 2024-05-20 10:29:24 -04:00
password_validation.py 17289 enforce minimum password strength (#17299) 2024-08-30 17:23:01 -04:00
permissions.py Fixes: #16973 - Resolve $user token to User.id for use in permissions based on custom fields (#17268) 2024-08-26 16:41:58 -04:00
prefetch.py Fixes #19321: Reduce redundant database queries during bulk creation of devices (#19993) 2025-08-01 09:23:58 -05:00
proxy.py Closes #18627: Proxy routing (#18681) 2025-03-04 08:24:54 -05:00
query_functions.py Closes #12246: General cleanup of utilities modules 2023-04-14 10:33:53 -04:00
query.py Fixes #18900: raise QuerySetNotOrdered exception when trying to paginate unordered API querysets (#19943) 2025-07-29 11:49:36 -05:00
querydict.py 18500 fix check for cloning mixin 2025-04-22 08:14:32 -04:00
querysets.py Update queryset resolution methods for compatibility with Django 5.0 2024-05-13 18:56:44 -04:00
relations.py Move utilities.utils.get_related_models() to utilities.relations 2024-03-22 08:59:52 -04:00
release.py Closes #18559: Add a build parameter to ReleaseInfo (#18560) 2025-02-03 09:44:00 -05:00
request.py Closes #19589: Background job for bulk operations (#19804) 2025-07-10 09:32:35 -05:00
rqworker.py Adds rq retry options (#12588) 2023-05-16 14:10:44 -04:00
serialization.py Closes #20277: Add support for attribute assignment to deserialize_object() (#20281) 2025-09-08 10:28:14 -07:00
socks.py Closes #18022: Extend linter (ruff) to enforce line length limit (120 chars) (#18067) 2024-11-21 15:58:11 -05:00
string.py Merge branch 'main' into feature 2025-04-22 16:36:17 -04:00
tables.py Fixes #19264: Support table configs on child object list views (#19284) 2025-04-23 12:43:25 -05:00
tracking.py 6347 Cache the number of each component type assigned to devices/VMs (#12632) 2023-07-25 09:39:05 -04:00
urls.py Closes #18023: Employ register_model_view() for list views (#18029) 2024-11-20 15:54:37 -05:00
validators.py Closes #19002: Module type profiles (#19014) 2025-04-01 12:05:06 -05:00
views.py Merge branch 'main' into feature 2025-09-02 10:50:58 -04:00