bsw@197: local area = param.get("area", "table") or Area:by_id(param.get_id()) bsw/jbe@19: bsw@414: local open_issues_selector = area:get_reference_selector("issues") bsw@414: :add_where("issue.closed ISNULL") bsw@414: :add_order_by("coalesce(issue.fully_frozen + issue.voting_time, issue.half_frozen + issue.verification_time, issue.accepted + issue.discussion_time, issue.created + issue.admission_time) - now()") bsw@414: bsw@414: local closed_issues_selector = area:get_reference_selector("issues") bsw@414: :add_where("issue.closed NOTNULL") bsw@414: :add_order_by("issue.closed DESC") bsw@414: bsw/jbe@19: local members_selector = area:get_reference_selector("members") bsw/jbe@19: local delegations_selector = area:get_reference_selector("delegations") bsw/jbe@19: bsw@51: local tabs = { bsw/jbe@19: module = "area", bsw/jbe@19: view = "show_tab", bsw/jbe@19: static_params = { area_id = area.id }, bsw@51: } bsw@51: bsw@414: tabs[#tabs+1] = { bsw@414: name = "timeline", bsw@414: label = _"Events", bsw@414: module = "event", bsw@414: view = "_list", bsw@414: params = { for_area = area } bsw@414: } bsw@414: bsw@414: tabs[#tabs+1] = { bsw@414: name = "open", bsw@414: label = _"Open issues", bsw@414: module = "issue", bsw@414: view = "_list", bsw@414: params = { bsw@414: for_state = "open", bsw@414: issues_selector = open_issues_selector, for_area = true bsw@51: } bsw@414: } bsw@414: tabs[#tabs+1] = { bsw@414: name = "closed", bsw@414: label = _"Closed issues", bsw@414: module = "issue", bsw@414: view = "_list", bsw@414: params = { bsw@414: for_state = "closed", bsw@414: issues_selector = closed_issues_selector, for_area = true bsw@414: } bsw@414: } bsw@51: bsw@51: if app.session.member_id then bsw@51: tabs[#tabs+1] = bsw@51: { bsw@51: name = "members", bsw@51: label = _"Members" .. " (" .. tostring(members_selector:count()) .. ")", bsw@51: icon = { static = "icons/16/group.png" }, bsw@51: module = "member", bsw@51: view = "_list", bsw@51: params = { members_selector = members_selector } bsw@51: } bsw/jbe@19: bsw@51: tabs[#tabs+1] = bsw@51: { bsw@51: name = "delegations", bsw@51: label = _"Delegations" .. " (" .. tostring(delegations_selector:count()) .. ")", bsw@51: icon = { static = "icons/16/table_go.png" }, bsw@51: module = "delegation", bsw@51: view = "_list", bsw@51: params = { delegations_selector = delegations_selector } bsw@51: } bsw@51: end bsw@51: bsw@51: ui.tabs(tabs)