bsw@3: local issue = Issue:by_id(param.get("issue_id", atom.integer)) bsw@3: local member = Member:by_id(param.get("member_id", atom.integer)) bsw@3: bsw/jbe@1309: if not issue or not member then bsw/jbe@1309: return execute.view { module = "index", view = "404" } bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: if app.session.member_id then bsw/jbe@1309: issue:load_everything_for_member_id ( app.session.member_id ) bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: bsw@3: local members_selector = Member:new_selector() bsw@3: :join("delegating_interest_snapshot", nil, "delegating_interest_snapshot.member_id = member.id") bsw@177: :join("issue", nil, "issue.id = delegating_interest_snapshot.issue_id") bsw@3: :add_where{ "delegating_interest_snapshot.issue_id = ?", issue.id } bsw/jbe@1309: :add_where{ "delegating_interest_snapshot.snapshot_id = ?", issue.latest_snapshot_id } bsw@3: :add_where{ "delegating_interest_snapshot.delegate_member_ids[1] = ?", member.id } bsw@3: :add_field{ "delegating_interest_snapshot.weight" } bsw@3: bsw/jbe@1309: execute.view{ module = "issue", view = "_head", params = { issue = issue, link_issue = true } } bsw@1045: bsw/jbe@1309: bsw/jbe@1309: ui.grid{ content = function() bsw/jbe@1309: bsw/jbe@1309: ui.cell_main{ content = function() bsw@1045: bsw/jbe@1309: ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function() bsw/jbe@1309: ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() bsw/jbe@1309: ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _("Incoming delegations for '#{member}'", { member = member.name }) } bsw/jbe@1309: end } bsw/jbe@1309: ui.container{ attr = { class = "mdl-card__content" }, content = function() bsw/jbe@1309: execute.view{ bsw/jbe@1309: module = "member", bsw/jbe@1309: view = "_list", bsw/jbe@1309: params = { bsw/jbe@1309: members_selector = members_selector, bsw/jbe@1309: issue = issue, bsw/jbe@1309: trustee = member bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: end } bsw/jbe@1309: end } bsw/jbe@1309: end } bsw/jbe@1309: bsw/jbe@1309: ui.cell_sidebar{ content = function() bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "issue", view = "_sidebar", bsw/jbe@1309: params = { bsw/jbe@1309: issue = issue, bsw/jbe@1309: member = app.session.member bsw/jbe@1309: } bsw@1045: } bsw@1045: bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "issue", view = "_sidebar_members", params = { bsw/jbe@1309: issue = issue bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: bsw/jbe@1309: end } bsw/jbe@1309: bsw/jbe@1309: end }