Просмотр исходного кода

fix: update :build/class-parent to multiple values

Tienson Qin 7 месяцев назад
Родитель
Сommit
ded9c8e517

+ 4 - 3
deps/db/src/logseq/db/sqlite/build.cljs

@@ -259,7 +259,8 @@
         classes-tx (vec
                     (mapcat
                      (fn [[class-name {:build/keys [class-parent class-properties] :as class-m}]]
-                       (let [db-ident (get-ident all-idents class-name)
+                       (let [class-parent (if (coll? class-parent) class-parent [class-parent])
+                             db-ident (get-ident all-idents class-name)
                              new-block
                              (sqlite-util/build-new-class
                               {:block/name (common-util/page-name-sanity-lc (name class-name))
@@ -283,7 +284,7 @@
                                                    uuid-maps all-idents options))
                              (when class-parent
                                {:logseq.property.class/extends
-                                (or (class-db-ids class-parent)
+                                (or (map class-db-ids class-parent)
                                     (if (db-malli-schema/class? class-parent)
                                       class-parent
                                       (throw (ex-info (str "No :db/id for " class-parent) {}))))})
@@ -343,7 +344,7 @@
    Class
    [:map
     [:build/properties {:optional true} User-properties]
-    [:build/class-parent {:optional true} Class]
+    [:build/class-parent {:optional true} [:vector Class]]
     [:build/class-properties {:optional true} [:vector Property]]
     [:build/keep-uuid? {:optional true} :boolean]]])
 

+ 1 - 1
deps/db/src/logseq/db/sqlite/export.cljs

@@ -192,7 +192,7 @@
          (:logseq.property.class/extends class-ent)
          (not ((set (map :db/ident (:logseq.property.class/extends class-ent))) :logseq.class/Root)))
     (assoc :build/class-parent
-           (:db/ident (first (:logseq.property.class/extends class-ent))))))
+           (set (map :db/ident (:logseq.property.class/extends class-ent))))))
 
 (defn- build-node-classes
   [db build-block block-tags properties]

+ 1 - 1
scripts/src/logseq/tasks/db_graph/create_graph_with_schema_org.cljs

@@ -68,7 +68,7 @@
                                  (class-m "rdfs:comment")
                                  (assoc :logseq.property/description (get-comment-string (class-m "rdfs:comment") renamed-pages)))}
       parent-class'
-      (assoc :build/class-parent (keyword (strip-schema-prefix parent-class')))
+      (assoc :build/class-parent [(keyword (strip-schema-prefix parent-class'))])
       (seq properties)
       (assoc :build/class-properties (mapv (comp keyword strip-schema-prefix) properties)))))
 

+ 1 - 1
src/test/frontend/db/query_dsl_test.cljs

@@ -280,7 +280,7 @@ prop-d:: [[nada]]"}])
                 {:logseq.property/default-value "Todo"}
                 :build/properties-ref-types {:entity :number}}}
       :classes {:Mytask {:build/class-properties [:status]}
-                :Bug {:build/class-parent :Mytask}}
+                :Bug {:build/class-parent [:Mytask]}}
       :pages-and-blocks
       [{:page {:block/title "page1"}
         :blocks [{:block/title "task1"