Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2021-02-14 15:51:37 +0300
committerdesperateCoder <echotodevnull@gmail.com>2021-02-14 15:51:37 +0300
commit9891fc39ffff0ab67d63c38037435e2746c05558 (patch)
treef4d95e33d9ee763a1dc935b6dd3cac362110336d
parentb72131984a60982e3b59d8deb773b6dffe8e4ce9 (diff)
fixes #882 no more archived cards for upcoming card widget
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java12
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java3
3 files changed, 18 insertions, 4 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
index 32ca0f175..e76f97075 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
@@ -1333,11 +1333,19 @@ public class DataBaseAdapter {
cardsResult.remove(fullCard);
}
}
- // https://github.com/stefan-niedermann/nextcloud-deck/issues/800 all cards within non-shared boards need to be included
List<Long> accountIds = null;
if (filterWidget.getAccounts() != null && !filterWidget.getAccounts().isEmpty()) {
- accountIds = filterWidget.getAccounts().stream().map(a -> a.getAccountId()).collect(Collectors.toList());
+ accountIds = filterWidget.getAccounts().stream().map(FilterWidgetAccount::getAccountId).collect(Collectors.toList());
+ }
+ // https://github.com/stefan-niedermann/nextcloud-deck/issues/822 exclude archived cards and boards
+ List<Long> archivedStacks = db.getStackDao().getLocalStackIdsInArchivedBoardsByAccountIdsDirectly(accountIds);
+ for (Long archivedStack : archivedStacks) {
+ List<FullCard> archivedCards = cardsResult.stream()
+ .filter(c -> c.getCard().isArchived() || archivedStack.equals(c.getCard().getStackId()))
+ .collect(Collectors.toList());
+ cardsResult.removeAll(archivedCards);
}
+ // https://github.com/stefan-niedermann/nextcloud-deck/issues/800 all cards within non-shared boards need to be included
cardsResult.addAll(db.getCardDao().getFullCardsForNonSharedBoardsWithDueDateForUpcomingCardsWidgetDirectly(accountIds));
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
index e5ebb0af9..51fbc0d89 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
@@ -88,10 +88,13 @@ public interface CardDao extends GenericDao<Card> {
@Transaction
@Query("SELECT * FROM card c WHERE " +
- "exists(select 1 from Stack s join Board b on s.boardId = b.localId where s.localId = c.stackId and not exists(select 1 from AccessControl ac where ac.boardId = b.localId and status <> 3)) " +
+ "exists(select 1 from Stack s join Board b on s.boardId = b.localId where s.localId = c.stackId " +
+ "and b.archived = 0 " +
+ "and not exists(select 1 from AccessControl ac where ac.boardId = b.localId and status <> 3)) " +
"and dueDate is not null " +
"and (coalesce(:accountIds, null) is null or accountId in (:accountIds)) " +
- "and status <> 3")
+ "and status <> 3 " +
+ "and archived = 0")
List<FullCard> getFullCardsForNonSharedBoardsWithDueDateForUpcomingCardsWidgetDirectly(List<Long> accountIds);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java
index 286a87402..1d2649488 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java
@@ -64,4 +64,7 @@ public interface StackDao extends GenericDao<Stack> {
@Query("SELECT exists(select 1 from Stack s join Board b on s.boardId = b.localId where s.localId = :localStackId and exists(select 1 from AccessControl ac where ac.boardId = b.localId and status <> 3))")
boolean isStackOnSharedBoardDirectly(Long localStackId);
+
+ @Query("SELECT s.localId FROM stack s join Board b on s.boardId = b.localId where b.archived <> 0 and b.accountId in (:accountIds)")
+ List<Long> getLocalStackIdsInArchivedBoardsByAccountIdsDirectly(List<Long> accountIds);
} \ No newline at end of file