diff --git a/netbox/extras/choices.py b/netbox/extras/choices.py index 2c9d5836a..514df72f8 100644 --- a/netbox/extras/choices.py +++ b/netbox/extras/choices.py @@ -117,10 +117,12 @@ class BookmarkOrderingChoices(ChoiceSet): ORDERING_NEWEST = '-created' ORDERING_OLDEST = 'created' + ORDERING_NAME_AZ = 'name' CHOICES = ( (ORDERING_NEWEST, _('Newest')), (ORDERING_OLDEST, _('Oldest')), + (ORDERING_NAME_AZ, _('Name (A-Z)')), ) # diff --git a/netbox/extras/dashboard/widgets.py b/netbox/extras/dashboard/widgets.py index add81a318..5d12c27be 100644 --- a/netbox/extras/dashboard/widgets.py +++ b/netbox/extras/dashboard/widgets.py @@ -381,7 +381,12 @@ class BookmarksWidget(DashboardWidget): if request.user.is_anonymous: bookmarks = list() else: - bookmarks = Bookmark.objects.filter(user=request.user).order_by(self.config['order_by']) + if self.config['order_by'] == BookmarkOrderingChoices.ORDERING_NAME_AZ: + bookmarks = sorted(Bookmark.objects.filter(user=request.user), + key=lambda bookmark: bookmark.__str__().lower() + ) + else: + bookmarks = Bookmark.objects.filter(user=request.user).order_by(self.config['order_by']) if object_types := self.config.get('object_types'): models = get_models_from_content_types(object_types) conent_types = ObjectType.objects.get_for_models(*models).values()