| rev | line source | 
| bsw@1045 | 1 local member = param.get("member", "table") or app.session.member | 
| bsw/jbe@0 | 2 | 
| bsw@1045 | 3 local initiatives = param.get("initiatives", "table") | 
| bsw@1045 | 4 local highlight_initiative_id = param.get ( "highlight_initiative_id", "number" ) | 
| bsw@285 | 5 | 
| bsw@1045 | 6 local for_initiative = param.get("initiative", "table") | 
| bsw/jbe@19 | 7 | 
| bsw@1045 | 8 local for_event = param.get("for_event", atom.boolean) | 
| bsw/jbe@19 | 9 | 
| bsw@1045 | 10 if for_initiative then | 
| bsw@1045 | 11   initiatives = { for_initiative } | 
| bsw@345 | 12 end | 
| bsw@345 | 13 | 
| bsw@1045 | 14 ui.tag { | 
| bsw@1045 | 15   tag = "ul", | 
| bsw@1045 | 16   attr = { class = "initiatives" }, | 
| bsw@1045 | 17   content = function () | 
| bsw@1045 | 18     local last_group | 
| bsw@1045 | 19     for i, initiative in ipairs(initiatives) do | 
| bsw@1045 | 20       local group | 
| bsw@1045 | 21       if initiative.issue.closed then | 
| bsw@1045 | 22         if initiative.rank == 1 then | 
| bsw@1045 | 23           group = "1st_rank" | 
| bsw@1045 | 24         elseif initiative.admitted then | 
| bsw@1045 | 25           group = "admitted" | 
| bsw@1045 | 26         elseif initiative.revoked_by_member_id then | 
| bsw@1045 | 27           group = "revoked" | 
| bsw@1045 | 28         else | 
| bsw@1045 | 29           group = "not_admitted" | 
| bsw@1045 | 30         end | 
| bsw@1045 | 31       end | 
| bsw@1045 | 32       if not for_initiative and group ~= last_group and not for_event then | 
| bsw/jbe@19 | 33 | 
| bsw@1045 | 34         local text | 
| bsw@1045 | 35         if group == "admitted" then | 
| bsw@1045 | 36           if initiative.issue.state == "finished_with_winner" then | 
| bsw@1045 | 37             text = _"Competing initiatives in pairwise comparison to winner:" | 
| bsw@1045 | 38           else | 
| bsw@1045 | 39             text = _"Competing initiatives in pairwise comparison to best initiative:" | 
| bsw@1045 | 40           end | 
| bsw@1045 | 41         end | 
| bsw@1045 | 42         if group == "not_admitted" then | 
| bsw@1045 | 43           text = _("Competing initiatives failed the 2nd quorum (#{num}/#{den}):", { | 
| bsw@1045 | 44             num = initiative.issue.policy.initiative_quorum_num, | 
| bsw@1045 | 45             den = initiative.issue.policy.initiative_quorum_den | 
| bsw@1045 | 46           } ) | 
| bsw@1045 | 47         end | 
| bsw@1045 | 48         if text then | 
| bsw@1045 | 49           slot.put("<br />") | 
| bsw@1045 | 50           ui.container { attr = { class = "result" }, content = text } | 
| bsw@1045 | 51         end | 
| bsw@1045 | 52         last_group = group | 
| bsw@1045 | 53       end | 
| bsw@1045 | 54 | 
| bsw@1045 | 55       local class = "" | 
| bsw@1045 | 56       if highlight_initiative_id == initiative.id then | 
| bsw@1045 | 57         class = "highlighted" | 
| bsw@1045 | 58       end | 
| bsw@1045 | 59       if app.session.member then | 
| bsw@1045 | 60         if initiative.member_info.supported then | 
| bsw@1045 | 61           class = class .. " supported" | 
| bsw@1045 | 62         end | 
| bsw@1045 | 63         if initiative.member_info.satisfied then | 
| bsw@1045 | 64           class = class .. " satisfied" | 
| bsw@1045 | 65         end | 
| bsw@1045 | 66       end | 
| bsw@1045 | 67       ui.tag { | 
| bsw@1045 | 68         tag = "li", attr = { class = class }, | 
| bsw@1045 | 69         content = function () | 
| bsw@1045 | 70           execute.view { | 
| bsw@1045 | 71             module = "initiative", view = "_list_element", params = { | 
| bsw@1045 | 72               initiative = initiative, for_event = for_event | 
| bsw@1045 | 73             } | 
| bsw@1045 | 74           } | 
| bsw@1045 | 75         end | 
| bsw@1045 | 76       } | 
| bsw@551 | 77     end | 
| bsw@1045 | 78   end | 
| bsw@1045 | 79 } |