mirror of https://github.com/logseq/logseq
fix: tag inheritance only going one level deep
fixes https://github.com/logseq/db-test/issues/88pull/11525/head
parent
27b9f6b5c6
commit
4a42168dc3
|
@ -584,8 +584,8 @@
|
|||
(loop [current-parent parent]
|
||||
(when (and
|
||||
current-parent
|
||||
(class? parent)
|
||||
(not (contains? @*classes (:db/id parent))))
|
||||
(class? current-parent)
|
||||
(not (contains? @*classes (:db/id current-parent))))
|
||||
(swap! *classes conj (:db/id current-parent))
|
||||
(recur (:logseq.property/parent current-parent)))))
|
||||
@*classes))
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
(:require [cljs.test :refer [deftest is]]
|
||||
[logseq.db.frontend.schema :as db-schema]
|
||||
[datascript.core :as d]
|
||||
[logseq.db :as ldb]))
|
||||
[logseq.db :as ldb]
|
||||
[logseq.db.sqlite.create-graph :as sqlite-create-graph]
|
||||
[logseq.db.sqlite.build :as sqlite-build]))
|
||||
|
||||
|
||||
;;; datoms
|
||||
|
@ -27,3 +29,27 @@
|
|||
(try (ldb/get-block-children-ids db #uuid "e538d319-48d4-4a6d-ae70-c03bb55b6fe4")
|
||||
(catch :default e
|
||||
(ex-message e)))))))
|
||||
|
||||
(def class-parents-data
|
||||
[{:block/type "class"
|
||||
:block/title "x"
|
||||
:block/name "x"
|
||||
:block/uuid #uuid "6c353967-f79b-4785-b804-a39b81d72461"}
|
||||
{:block/type "class"
|
||||
:block/title "y"
|
||||
:block/name "y"
|
||||
:block/uuid #uuid "7008db08-ba0c-4aa9-afc6-7e4783e40a99"
|
||||
:logseq.property/parent [:block/uuid #uuid "6c353967-f79b-4785-b804-a39b81d72461"]}
|
||||
{:block/type "class"
|
||||
:block/title "z"
|
||||
:block/name "z"
|
||||
:block/uuid #uuid "d95f2912-a7af-41b9-8ed5-28861f7fc0be"
|
||||
:logseq.property/parent [:block/uuid #uuid "7008db08-ba0c-4aa9-afc6-7e4783e40a99"]}])
|
||||
|
||||
(deftest get-class-parents-test
|
||||
(let [conn (d/create-conn db-schema/schema-for-db-based-graph)]
|
||||
(d/transact! conn (sqlite-create-graph/build-db-initial-data "{}"))
|
||||
(d/transact! conn class-parents-data)
|
||||
(->> (ldb/get-class-parents (ldb/get-page @conn "z"))
|
||||
(map #(:block/title (d/entity @conn %)))
|
||||
(= #{"x" "y"}))))
|
||||
|
|
|
@ -343,7 +343,7 @@
|
|||
(let [tags' (filter ldb/class? tags)
|
||||
result (map
|
||||
(fn [id] (d/entity db id))
|
||||
(set (mapcat ldb/get-class-parents tags')))]
|
||||
(mapcat ldb/get-class-parents tags'))]
|
||||
(set result)))
|
||||
|
||||
(defn ^:api get-class-properties
|
||||
|
|
Loading…
Reference in New Issue