From 11882167881f12706aff73353289e40ada3030f4 Mon Sep 17 00:00:00 2001 From: relikd Date: Thu, 22 Dec 2022 00:18:25 +0100 Subject: [PATCH] fix: remove duplicates from vobj.children --- CHANGELOG.md | 7 ++++--- lektor_groupby/backref.py | 2 +- lektor_groupby/vobj.py | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e82c93..fc29810 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,13 +8,14 @@ and this project does adhere to [Semantic Versioning](https://semver.org/spec/v2 ## [Unreleased] ### Added -- Support `unique=False` in `vgroups` filter to return a list of all entries (including duplicates) +- `vgroups` filter now supports `unique=False` to return a list of all entries including duplicates (default: `True`) ### Fixed -- No duplicate `GroupBySource` entries in `vgroups` filter (while keeping sort order) +- Preserves original sort order in `vgroups` filter if `unique=True` +- Remove duplicates from `GroupBySource` children ### Changed -- Change default `recursive=True` for `vgroups` filter (most probable use case) +- `vgroups` filter uses `recursive=True` by default diff --git a/lektor_groupby/backref.py b/lektor_groupby/backref.py index 219cb37..acb8669 100644 --- a/lektor_groupby/backref.py +++ b/lektor_groupby/backref.py @@ -49,9 +49,9 @@ class VGroups: *, fields: Union[str, Iterable[str], None] = None, flows: Union[str, Iterable[str], None] = None, + order_by: Union[str, Iterable[str], None] = None, recursive: bool = True, unique: bool = True, - order_by: Union[str, Iterable[str], None] = None, ) -> Iterator['GroupBySource']: ''' Extract all referencing groupby virtual objects from a page. ''' # prepare filter diff --git a/lektor_groupby/vobj.py b/lektor_groupby/vobj.py index c09c49a..fd274b7 100644 --- a/lektor_groupby/vobj.py +++ b/lektor_groupby/vobj.py @@ -46,7 +46,7 @@ class GroupBySource(VirtualSourceObject): self.page_num = page_num def append_child(self, child: 'Record', key_obj: Any) -> None: - if child not in self.__children: + if child.path not in self.__children: self.__children.append(child.path) # __key_obj_map is later used to find most used key_obj self.__key_obj_map.append(key_obj)