Skip to content

Commit 4cdea72

Browse files
committed
fix: #Card child tag objects doesn't show up in flashcards
fix logseq/db-test#532
1 parent 2151fad commit 4cdea72

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/main/frontend/extensions/fsrs.cljs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,7 @@
4747
"Return nil if block is not #card.
4848
Return default card-map if `:logseq.property.fsrs/state` or `:logseq.property.fsrs/due` is nil"
4949
[block-entity]
50-
(when (some (fn [tag]
51-
(assert (some? (:db/ident tag)) tag)
52-
(= :logseq.class/Card (:db/ident tag))) ;block should contains #Card
53-
(:block/tags block-entity))
50+
(when (ldb/class-instance? (db/entity :logseq.class/Card) block-entity)
5451
(let [fsrs-state (:logseq.property.fsrs/state block-entity)
5552
fsrs-due (:logseq.property.fsrs/due block-entity)
5653
return-default-card-map? (not (and fsrs-state fsrs-due))]
@@ -84,10 +81,13 @@
8481
cards (when (and cards-id (not= (keyword cards-id) :global)) (db/entity cards-id))
8582
query (:block/title cards)
8683
result (query-dsl/parse query {:db-graph? true})
84+
card-tag-id (:db/id (db/entity :logseq.class/Card))
85+
card-tag-children-ids (db-model/get-structured-children repo card-tag-id)
86+
card-ids (cons card-tag-id card-tag-children-ids)
8787
q '[:find [?b ...]
88-
:in $ ?now-inst-ms %
88+
:in $ [?t ...] ?now-inst-ms %
8989
:where
90-
[?b :block/tags :logseq.class/Card]
90+
[?b :block/tags ?t]
9191
(or-join [?b ?now-inst-ms]
9292
(and
9393
[?b :logseq.property.fsrs/due ?due]
@@ -100,7 +100,7 @@
100100
q
101101
(if (coll? (first query*)) query* [query*])))
102102
q)]
103-
(db-async/<q repo {:transact-db? false} q' now-inst-ms (:rules result))))
103+
(db-async/<q repo {:transact-db? false} q' card-ids now-inst-ms (:rules result))))
104104

105105
(defn- btn-with-shortcut [{:keys [shortcut id btn-text due on-click class]}]
106106
(let [bg-class (case id
@@ -252,7 +252,9 @@
252252
all-cards (concat
253253
[{:db/id :global
254254
:block/title "All cards"}]
255-
(db-model/get-class-objects repo (:db/id (entity-plus/entity-memoized (db/get-db) :logseq.class/Cards))))
255+
(db-model/get-class-objects repo (:db/id (entity-plus/entity-memoized (db/get-db) :logseq.class/Cards)))
256+
;; TODO: list all children tags of #Card
257+
)
256258
*block-ids (::block-ids state)
257259
block-ids (rum/react *block-ids)
258260
loading? (rum/react (::loading? state))

0 commit comments

Comments
 (0)