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

fix: property filter queries didn't display page nodes

for db graphs. Also tweaked example graph so blocks and pages
have same property values in order to QA property rules like this
Gabriel Horner 1 год назад
Родитель
Сommit
13830cc4d2

+ 7 - 6
scripts/src/logseq/tasks/db_graph/create_graph_with_properties.cljs

@@ -54,10 +54,11 @@
         ;; Stores random closed values for use with queries
         closed-values (atom {})
         random-closed-value #(let [val (-> closed-values-config % rand-nth)]
-                               (swap! closed-values assoc % (:value val))
+                               (swap! closed-values assoc % val)
                                [:block/uuid (:uuid val)])
         object-uuid (random-uuid)
-        get-closed-value #(get @closed-values %)
+        get-closed-value #(:value (get @closed-values %))
+        get-closed-value-ref #(vector :block/uuid (:uuid (get @closed-values %)))
         timestamp (common-util/time-ms)]
     {:pages-and-blocks
      (vec
@@ -124,16 +125,16 @@
           (query (str "(property datetime "  timestamp ")"))]}
 
         ;; Page property pages and queries
-        {:page {:block/title "default page" :build/properties {:default "yolo"}}}
+        {:page {:block/title "default page" :build/properties {:default "haha"}}}
         {:page {:block/title "default-many page" :build/properties {:default-many #{"yee" "haw" "sir"}}}}
-        {:page {:block/title "default-closed page" :build/properties {:default-closed (random-closed-value :default-closed)}}}
+        {:page {:block/title "default-closed page" :build/properties {:default-closed (get-closed-value-ref :default-closed)}}}
         {:page {:block/title "url page" :build/properties {:url "https://logseq.com"}}}
         {:page {:block/title "url-many page" :build/properties {:url-many #{"https://logseq.com" "https://docs.logseq.com"}}}}
-        {:page {:block/title "url-closed page" :build/properties {:url-closed (random-closed-value :url-closed)}}}
+        {:page {:block/title "url-closed page" :build/properties {:url-closed (get-closed-value-ref :url-closed)}}}
         {:page {:block/title "checkbox page" :build/properties {:checkbox true}}}
         {:page {:block/title "number page" :build/properties {:number 5}}}
         {:page {:block/title "number-many page" :build/properties {:number-many #{5 10}}}}
-        {:page {:block/title "number-closed page" :build/properties {:number-closed (random-closed-value :number-closed)}}}
+        {:page {:block/title "number-closed page" :build/properties {:number-closed (get-closed-value-ref :number-closed)}}}
         {:page {:block/title "node page" :build/properties {:node [:block/uuid object-uuid]}}}
         {:page {:block/title "node without classes page" :build/properties {:node-without-classes [:page "Page 1"]}}}
         {:page {:block/title "node-many page" :build/properties {:node-many #{[:block/uuid object-uuid] [:page "Page object"]}}}}

+ 4 - 4
src/main/frontend/components/query/result.cljs

@@ -54,8 +54,8 @@
         (reset! *query-error e)))))
 
 (defn get-group-by-page [{:keys [result-transform query] :as query-m}
-                         {:keys [table?]}]
-  (if table?
+                         {:keys [table? db-graph?]}]
+  (if (or table? db-graph?)
     false ;; Immediately return false as table view can't handle grouping
     (get query-m :group-by-page?
          (and (not result-transform)
@@ -63,7 +63,7 @@
 
 (defn transform-query-result
   "Transforms a query result if query conditions and config indicate a transformation"
-  [{:keys [current-block-uuid table?] :as config} query-m query-result]
+  [{:keys [current-block-uuid] :as config} query-m query-result]
   (let [;; exclude the current one, otherwise it'll loop forever
         remove-blocks (if current-block-uuid [current-block-uuid] nil)
         transformed-query-result (when query-result
@@ -73,7 +73,7 @@
                                          (get query-m :remove-block-children? true)
                                          tree/filter-top-level-blocks)
                                        result)))
-        group-by-page? (get-group-by-page query-m {:table? table?})
+        group-by-page? (get-group-by-page query-m config)
         result (if (and group-by-page? (:block/uuid (first transformed-query-result)))
                  (let [result (db-utils/group-by-page transformed-query-result)]
                    (if (map? result)