bsw/jbe@1309: local for_member = param.get("for_member", "table") bsw/jbe@0: bsw@1045: local initiatives = param.get("initiatives", "table") bsw/jbe@1309: local ommit_initiative_id = param.get ( "ommit_initiative_id", "number" ) bsw/jbe@1309: bsw@285: bsw@1045: local for_initiative = param.get("initiative", "table") bsw/jbe@19: bsw@1045: local for_event = param.get("for_event", atom.boolean) bsw/jbe@19: bsw@1045: if for_initiative then bsw@1045: initiatives = { for_initiative } bsw@345: end bsw@345: bsw@1045: ui.tag { bsw@1045: tag = "ul", bsw/jbe@1309: attr = { class = "initiatives mdl-list" }, bsw@1045: content = function () bsw@1045: local last_group bsw@1045: for i, initiative in ipairs(initiatives) do bsw@1045: local group bsw@1045: if initiative.issue.closed then bsw@1045: if initiative.rank == 1 then bsw@1045: group = "1st_rank" bsw@1045: elseif initiative.admitted then bsw@1045: group = "admitted" bsw@1045: elseif initiative.revoked_by_member_id then bsw@1045: group = "revoked" bsw@1045: else bsw@1045: group = "not_admitted" bsw@1045: end bsw@1045: end bsw/jbe@1309: if not for_initiative and group ~= last_group and not for_event and not for_member then bsw/jbe@19: bsw@1045: local text bsw@1045: if group == "admitted" then bsw@1045: if initiative.issue.state == "finished_with_winner" then bsw@1045: text = _"Competing initiatives in pairwise comparison to winner:" bsw/jbe@1309: elseif initiative.issue.voter_count and initiative.issue.voter_count > 0 then bsw@1045: text = _"Competing initiatives in pairwise comparison to best initiative:" bsw@1045: end bsw@1045: end bsw/jbe@1309: if group == "not_admitted" and initiative.issue.state ~= "canceled_no_initiative_admitted" then bsw@1045: text = _("Competing initiatives failed the 2nd quorum (#{num}/#{den}):", { bsw@1045: num = initiative.issue.policy.initiative_quorum_num, bsw@1045: den = initiative.issue.policy.initiative_quorum_den bsw@1045: } ) bsw@1045: end bsw@1045: if text then bsw/jbe@1309: ui.tag{ tag = "li", attr = { class = "mdl-list__item" }, content = function() bsw/jbe@1309: ui.container{ attr = { class = "mdl-list__item-primary-content" }, content = text } bsw/jbe@1309: end } bsw@1045: end bsw@1045: last_group = group bsw@1045: end bsw@1045: bsw/jbe@1309: if ommit_initiative_id ~= initiative.id then bsw/jbe@1309: local class = "mdl-list__item mdl-list__item--three-line" bsw/jbe@1309: if app.session.member then bsw/jbe@1309: if initiative.member_info.supported then bsw/jbe@1309: class = class .. " supported" bsw/jbe@1309: end bsw/jbe@1309: if initiative.member_info.satisfied then bsw/jbe@1309: class = class .. " satisfied" bsw/jbe@1309: end bsw@1045: end bsw/jbe@1309: ui.tag { bsw/jbe@1309: tag = "li", attr = { class = class }, bsw/jbe@1309: content = function () bsw/jbe@1309: if i == 1 and not ommit_initiative_id and not for_member and ( bsw/jbe@1309: initiative.issue.state == "finished_with_winner" bsw/jbe@1309: or initiative.issue.state == "finished_without_winner" bsw/jbe@1309: ) then bsw/jbe@1309: util.initiative_pie(initiative) bsw/jbe@1309: end bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "initiative", view = "_list_element", params = { bsw/jbe@1309: initiative = initiative, for_event = for_event, for_member = for_member bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: end bsw/jbe@1309: } bsw@1045: end bsw@551: end bsw@1045: end bsw/jbe@1309: }