Pārlūkot izejas kodu

fix(regression): journal refs not being built for user :datetime properties

Regression accidentally introduced in da73a6c48e111a82a97859a80283d4eafee0b577
Gabriel Horner 4 mēneši atpakaļ
vecāks
revīzija
6ed338b96a
1 mainītis faili ar 25 papildinājumiem un 7 dzēšanām
  1. 25 7
      deps/outliner/src/logseq/outliner/pipeline.cljs

+ 25 - 7
deps/outliner/src/logseq/outliner/pipeline.cljs

@@ -153,9 +153,32 @@
     (let [day (date-time-util/ms->journal-day v)]
       (:e (first (d/datoms db :avet :block/journal-day day))))))
 
-
 (def ^:private private-built-in-props (set (keep (fn [[k v]] (when-not (get-in v [:schema :public?]) k))
                                                  db-property/built-in-properties)))
+
+(defn- build-journal-refs-for-datetime-properties
+  "For a given property pair, builds a coll of journal refs for select built-in
+  :datetime properties and all user :datetime properties. Otherwise returns nil"
+  [db property v]
+  (let [property-ent (d/entity db property)
+        allowed-datetime? (and (= :datetime (:logseq.property/type property-ent))
+                               ;; Only allow a few built-in properties as some built-in properties
+                               ;; like :logseq.property.embedding/hnsw-label-updated-at create undesirable refs
+                               (if (db-property/internal-property? (:db/ident property-ent))
+                                 (contains? #{:logseq.property/scheduled :logseq.property/deadline} (:db/ident property-ent))
+                                 ;; All user properties are allowed to create refs but not plugin properties
+                                 (not (db-property/plugin-property? (:db/ident property-ent)))))]
+    (cond
+      (and allowed-datetime? (coll? v))
+      (keep #(get-journal-day-from-long db %) v)
+
+      allowed-datetime?
+      (when-let [journal-day (get-journal-day-from-long db v)]
+        [journal-day])
+
+      :else
+      nil)))
+
 (defn db-rebuild-block-refs
   "Rebuild block refs for DB graphs"
   [db block]
@@ -185,13 +208,8 @@
                                              (page-or-object? v)
                                              [(:db/id v)]
 
-                                             (contains? #{:logseq.property/scheduled :logseq.property/deadline} (:db/ident (d/entity db property)))
-                                             (when-let [journal-day (get-journal-day-from-long db v)]
-                                               [journal-day])
-
                                              :else
-                                             nil))))
-
+                                             (build-journal-refs-for-datetime-properties db property v)))))
         property-refs (concat property-key-refs property-value-refs)
         content-refs (block-content-refs db block)]
     (->> (concat (map ref->eid (:block/tags block))