Skip to content

Commit 95ef6d0

Browse files
authored
Merge pull request #61 from firelab/kc-BHP1-1280-fix-discrete-input-order-review-page
[BHP1-1280] Fix Multi Discrete Input order in Review and Result Page
2 parents 2405ca0 + d02b7e7 commit 95ef6d0

4 files changed

Lines changed: 37 additions & 10 deletions

File tree

projects/behave/src/cljs/behave/components/results/inputs/views.cljs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,20 @@
3131
single-var? (= (count variables) 1)
3232
multi-var? (> (count variables) 1)
3333
new-entries (cond single-var?
34-
(let [gv-uuid (:bp/uuid (first variables))
35-
fmt-fn (get formatters gv-uuid identity)
36-
fvar (first variables)
37-
units (get gv-uuid->units gv-uuid)
38-
value @(subscribe [:worksheet/input-value
39-
ws-uuid
40-
(:bp/uuid current-group)
41-
0 ;repeat-id
42-
gv-uuid])]
34+
(let [gv-uuid (:bp/uuid (first variables))
35+
list-eid @(subscribe [:vms/gv-uuid->list-eid gv-uuid])
36+
fmt-fn (get formatters gv-uuid identity)
37+
fvar (first variables)
38+
units (get gv-uuid->units gv-uuid)
39+
value @(subscribe [:worksheet/input-value
40+
ws-uuid
41+
(:bp/uuid current-group)
42+
0 ;repeat-id
43+
gv-uuid])]
4344
(when (seq value)
4445
(if (:group-variable/discrete-multiple? fvar)
4546
(let [values (->> (str/split value ",")
47+
(sort-by #(deref (subscribe [:worksheet/resolve-enum-order list-eid %])))
4648
(map fmt-fn))]
4749
(into [{:input (indent-name level @(subscribe [:result.inputs/resolve-group-name (:bp/uuid current-group)]))
4850
:units units
@@ -65,6 +67,7 @@
6567
(flatten
6668
(for [variable (sort-by :group-variable/order variables)
6769
:let [gv-uuid (:bp/uuid variable)
70+
list-eid @(subscribe [:vms/gv-uuid->list-eid gv-uuid])
6871
value @(subscribe [:worksheet/input-value
6972
ws-uuid
7073
(:bp/uuid current-group)
@@ -76,6 +79,7 @@
7679
variable-name @(subscribe [:wizard/gv-uuid->default-variable-name gv-uuid])]
7780
(if (:group-variable/discrete-multiple? variable)
7881
(let [values (->> (str/split value ",")
82+
(sort-by #(deref (subscribe [:worksheet/resolve-enum-order list-eid %])))
7983
(map fmt-fn))]
8084
(into [{:input (indent-name (+ level 2) variable-name)
8185
:units units-used

projects/behave/src/cljs/behave/components/review_input_group.cljs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,10 @@
7373
repeat-id
7474
_repeat-group?
7575
edit-route]
76-
(let [*value (rf/subscribe [:worksheet/input-value ws-uuid group-uuid repeat-id gv-uuid])
76+
(let [list-eid @(rf/subscribe [:vms/gv-uuid->list-eid gv-uuid])
77+
*value (rf/subscribe [:worksheet/input-value ws-uuid group-uuid repeat-id gv-uuid])
7778
resolved-enum-values (->> (str/split @*value ",")
79+
(sort-by #(deref (rf/subscribe [:worksheet/resolve-enum-order list-eid %])))
7880
(map #(deref (rf/subscribe [:worksheet/resolve-enum-value eid %]))))]
7981
[:div.wizard-input {:on-mouse-over #(rf/dispatch [:help/highlight-section help-key])}
8082
[:div.wizard-review__input

projects/behave/src/cljs/behave/vms/subs.cljs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,14 @@
188188
[?gv :bp/uuid ?gv-uuid]
189189
[?gv :group-variable/discrete-multiple? ?discrete-multiple]]
190190
@@vms-conn gv-uuid)))
191+
192+
(reg-sub
193+
:vms/gv-uuid->list-eid
194+
(fn [_ [_ gv-uuid]]
195+
(d/q '[:find ?l .
196+
:in $ ?gv-uuid
197+
:where
198+
[?gv :bp/uuid ?gv-uuid]
199+
[?v :variable/group-variables ?gv]
200+
[?v :variable/list ?l]]
201+
@@vms-conn gv-uuid)))

projects/behave/src/cljs/behave/worksheet/subs.cljs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -979,6 +979,16 @@
979979
@(<t (:list-option/translation-key option))
980980
value))))
981981

982+
(rf/reg-sub
983+
:worksheet/resolve-enum-order
984+
985+
(fn [_ [_ list-eid value]]
986+
(let [list-entity (d/touch (d/entity @@vms-conn list-eid))
987+
{options :list/options} list-entity
988+
options (index-by :list-option/value options)
989+
option (get options value)]
990+
(:list-option/order option))))
991+
982992
(rf/reg-sub
983993
:worksheet/result-table-gv-uuid->units
984994
(fn [_ [_ ws-uuid]]

0 commit comments

Comments
 (0)