Fixed wrong parsing logic for document filters/saved views

This commit is contained in:
Anton Stubenbord
2022-11-20 00:05:01 +01:00
parent cf49feb6eb
commit ebc158e3c6
5 changed files with 51 additions and 30 deletions

View File

@@ -1,5 +1,4 @@
import 'package:equatable/equatable.dart';
import 'package:paperless_mobile/extensions/dart_extensions.dart';
abstract class TagsQuery with EquatableMixin {
const TagsQuery();
@@ -33,8 +32,6 @@ class IdsTagsQuery extends TagsQuery {
const IdsTagsQuery([this._idQueries = const []]);
const IdsTagsQuery.unset() : _idQueries = const [];
IdsTagsQuery.included(Iterable<int> ids)
: _idQueries = ids.map((id) => IncludeTagIdQuery(id));
@@ -44,13 +41,14 @@ class IdsTagsQuery extends TagsQuery {
: _idQueries = ids.map((id) => ExcludeTagIdQuery(id));
IdsTagsQuery withIdQueriesAdded(Iterable<TagIdQuery> idQueries) {
final intersection = _idQueries
final intersection = idQueries
.map((idQ) => idQ.id)
.toSet()
.intersection(_idQueries.map((idQ) => idQ.id).toSet());
return IdsTagsQuery(
final res = IdsTagsQuery(
[...withIdsRemoved(intersection).queries, ...idQueries],
);
return res;
}
IdsTagsQuery withIdsRemoved(Iterable<int> ids) {