fix: status and priority should be :entity type

pull/11196/head
Tienson Qin 2024-04-10 21:07:20 +08:00
parent b9e779e652
commit 7007fa7d41
4 changed files with 24 additions and 20 deletions

View File

@ -75,7 +75,7 @@
:logseq.task/status
{:original-name "Status"
:schema
{:type :default
{:type :entity
:public? true}
:closed-values
(mapv (fn [[db-ident value icon]]
@ -92,7 +92,7 @@
:logseq.task/priority
{:original-name "Priority"
:schema
{:type :default
{:type :entity
:public? true}
:closed-values
(mapv (fn [[db-ident value]]

View File

@ -50,16 +50,18 @@
the hidden page and closed value blocks as needed"
[db-ident prop-name property {:keys [translate-closed-page-value-fn property-attributes]
:or {translate-closed-page-value-fn identity}}]
(let [property-schema (assoc (:block/schema property)
(let [ref-type? (contains? (disj db-property-type/ref-property-types :entity)
(get-in property [:block/schema :type]))
property-schema (assoc (:block/schema property)
:values
(if (contains? db-property-type/ref-property-types (get-in property [:block/schema :type]))
(if ref-type?
(mapv translate-closed-page-value-fn (:closed-values property))
(mapv :uuid (:closed-values property))))
property-tx (merge (sqlite-util/build-new-property db-ident property-schema {:original-name prop-name})
property-attributes)
hidden-tx
;; closed ref types don't have hidden tx
(if (contains? db-property-type/ref-property-types (get-in property [:block/schema :type]))
(if ref-type?
[]
(let [page-tx (build-property-hidden-page property)
closed-value-blocks-tx

View File

@ -536,15 +536,10 @@
[:div.opacity-50.pointer.text-sm.cursor-pointer "Empty"])))))
(rum/defc closed-value-item < rum/reactive
{:init (fn [state]
(let [block-id (first (:rum/args state))]
(db-async/<get-block (state/get-current-repo) block-id :children? false))
state)}
[value {:keys [page-cp inline-text icon?]}]
(when value
(if (state/sub-async-query-loading value)
[:div.text-sm.opacity-70 "loading"]
(when-let [block (db/sub-block (:db/id (db/entity [:block/uuid value])))]
(let [eid (if (de/entity? value) (:db/id value) [:block/uuid value])]
(when-let [block (db/sub-block (:db/id (db/entity eid)))]
(let [value' (get-in block [:block/schema :value])
icon (get block (pu/get-pid :logseq.property/icon))]
(cond
@ -621,7 +616,7 @@
:onEscapeKeyDown #(set-open! false)}
[:div.property-select
(case type
(:number :url :default)
(:entity :number :url :default)
(select block property select-opts' opts)
(:page :date)

View File

@ -230,6 +230,10 @@
_ (assert (keyword? property-id) "property-id should be a keyword")
block (db/entity repo block-eid)
property (db/entity property-id)
v (if (and (uuid? v)
(= :entity (get-in property [:block/schema :type])))
(:db/id (db/entity [:block/uuid v]))
v)
k-name (:block/original-name property)
property-schema (:block/schema property)
{:keys [type cardinality]} property-schema
@ -759,7 +763,10 @@
(defn batch-set-property-closed-value!
[block-ids db-ident closed-value]
(let [repo (state/get-current-repo)
closed-value-id (:block/uuid (pu/get-closed-value-entity-by-name db-ident closed-value))]
property (db/entity db-ident)
ref-type? (contains? db-property-type/ref-property-types (get-in property [:block/schema :type]))
closed-value-entity (pu/get-closed-value-entity-by-name db-ident closed-value)
closed-value-id (if ref-type? (:db/id closed-value-entity) (:block/uuid closed-value-entity))]
(when closed-value-id
(batch-set-property! repo
block-ids