From 236a28764bcac5578b09761bfbe0224e8a76c77a Mon Sep 17 00:00:00 2001 From: Gabriel Horner Date: Mon, 15 Apr 2024 12:22:21 -0400 Subject: [PATCH] fix: new property values invalid because of placeholder Also use cardinality in validation instead of previous hacky value-based detection. Also disable closed-values generation so new graphs can temporarily be valid --- deps/db/src/logseq/db/frontend/malli_schema.cljs | 13 +++++++------ deps/db/src/logseq/db/sqlite/create_graph.cljs | 3 ++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/deps/db/src/logseq/db/frontend/malli_schema.cljs b/deps/db/src/logseq/db/frontend/malli_schema.cljs index 0e3761aa3..0969478d7 100644 --- a/deps/db/src/logseq/db/frontend/malli_schema.cljs +++ b/deps/db/src/logseq/db/frontend/malli_schema.cljs @@ -53,11 +53,11 @@ (defn- validate-property-value "Validates the value in a property tuple. The property value can be one or many of a value to validated" - [schema-fn [{:keys [type]} val]] - (if (and (or (sequential? val) (set? val)) - (not= :coll type)) - (every? schema-fn val) - (schema-fn val))) + [schema-fn [property property-val]] + ;; (prn :validate-val property property-val) + (if (= (:cardinality property) :many) + (every? schema-fn property-val) + (or (schema-fn property-val) (= :logseq.property/empty-placeholder property-val)))) (defn update-properties-in-schema "Needs to be called on the DB schema to add the datascript db to it" @@ -78,7 +78,8 @@ (mapv #(if-let [pair (some->> (:property/pair-property %) (d/entity db))] (assoc % :property-tuple - [(select-keys (:block/schema pair) [:type :cardinality]) + [(assoc (select-keys (:block/schema pair) [:type :cardinality]) + :db/ident (:db/ident pair)) (get % (:db/ident pair))]) %) ents)) diff --git a/deps/db/src/logseq/db/sqlite/create_graph.cljs b/deps/db/src/logseq/db/sqlite/create_graph.cljs index 66e2c12ab..9461fa4b2 100644 --- a/deps/db/src/logseq/db/sqlite/create_graph.cljs +++ b/deps/db/src/logseq/db/sqlite/create_graph.cljs @@ -17,7 +17,8 @@ (db-property-util/build-closed-values db-ident prop-name - {:db/ident db-ident :block/schema schema :closed-values closed-values} + ;; FIXME: Re-enable closed-values when :default is done migrating to entity + {:db/ident db-ident :block/schema schema :closed-values [] #_closed-values} {}) [(sqlite-util/build-new-property db-ident