Makes groups possible

This commit is contained in:
2024-02-08 11:41:03 -08:00
parent d5e8545ec8
commit fcefbd5d6d
20 changed files with 364 additions and 276 deletions

View File

@@ -19,6 +19,7 @@
(defn maybe-add-x-clients [headers]
(if (or (and (sequential? (:selected-clients @re-frame.db/app-db)) (every? int? (:selected-clients @re-frame.db/app-db)))
(and (sequential? (:selected-clients @re-frame.db/app-db)) (every? string? (:selected-clients @re-frame.db/app-db)))
(and (sequential? (:selected-clients @re-frame.db/app-db)) (= :group (first (:selected-clients @re-frame.db/app-db))))
(keyword? (:selected-clients @re-frame.db/app-db)))
(assoc headers "x-clients" (pr-str (:selected-clients @re-frame.db/app-db)))
headers))

View File

@@ -27,7 +27,7 @@
(defn client-query []
(cond-> [:id :name :code :email :locations :feature-flags
(cond-> [:id :name :code :email :locations :feature-flags :groups
[:emails [:id :email :description]]
[:bank-accounts [:id :code :bank-name :name :type :visible
:locations :include-in-reports :current-balance

View File

@@ -46,10 +46,10 @@
(fn [[selected-clients user clients]]
(println "SELECTED" selected-clients
"USER" user
"CLIENTS" clients)
"CLIENTS" (count clients))
(cond (= :mine selected-clients)
(sort-by :name
(sort-by :name
(:user/clients user))
(or (and (sequential? selected-clients)
@@ -58,6 +58,15 @@
(nil? selected-clients))
clients
(= :group (and (sequential? selected-clients)
(first selected-clients)))
(let [group (second selected-clients)]
(filterv
(fn [c]
(println "GROUP" group (:groups c))
((set (:groups c)) group))
clients))
(sequential? selected-clients)
(filter (comp (set (map coerce-string-version selected-clients)) coerce-string-version :id)
clients)

View File

@@ -86,13 +86,13 @@
clients
(if-let [exact-match (first (filter
(fn [client]
(= (str/lower-case (:code client)) (str/lower-case client-search)))
(= (str/lower-case (or (:code client) "INVALID")) (str/lower-case client-search)))
clients))]
[exact-match]
(filter
(fn [client]
(or
(str/includes? (str/lower-case (:code client)) (str/lower-case client-search))
(str/includes? (str/lower-case (or (:code client) "INVALID")) (str/lower-case client-search))
(str/includes? (str/lower-case (:name client)) (str/lower-case client-search))))
clients)))))