liquid_feedback_frontend

diff model/issue.lua @ 1045:701a5cf6b067

Imported LiquidFeedback Frontend 3.0 branch
author bsw
date Thu Jul 10 01:19:48 2014 +0200 (2014-07-10)
parents 4ea14823ffad
children ebb3c5fa158d
line diff
     1.1 --- a/model/issue.lua	Thu Jul 10 01:02:43 2014 +0200
     1.2 +++ b/model/issue.lua	Thu Jul 10 01:19:48 2014 +0200
     1.3 @@ -142,23 +142,29 @@
     1.4      if #ids == 0 then
     1.5        return sub_selector:empty_list_mode()
     1.6      end
     1.7 -    sub_selector:from("issue")
     1.8 -    sub_selector:add_field("issue.id", "issue_id")
     1.9 -    sub_selector:add_field{ '(delegation_info(?, null, null, issue.id, ?)).*', options.member_id, options.trustee_id }
    1.10 -    sub_selector:add_where{ 'issue.id IN ($)', ids }
    1.11 +    sub_selector:from ( "issue" )
    1.12 +    sub_selector:add_field ( "issue.id", "issue_id" )
    1.13 +    sub_selector:add_field { '(delegation_info(?, null, null, issue.id, ?)).*', options.member_id, options.trustee_id }
    1.14 +    sub_selector:add_where { 'issue.id IN ($)', ids }
    1.15  
    1.16      local selector = Issue:get_db_conn():new_selector()
    1.17 -    selector:add_from("issue")
    1.18 -    selector:join(sub_selector, "delegation_info", "delegation_info.issue_id = issue.id")
    1.19 -    selector:left_join("member", "first_trustee", "first_trustee.id = delegation_info.first_trustee_id")
    1.20 -    selector:left_join("member", "other_trustee", "other_trustee.id = delegation_info.other_trustee_id")
    1.21 -    selector:add_field("delegation_info.*")
    1.22 -    selector:add_field("first_trustee.name", "first_trustee_name")
    1.23 -    selector:add_field("other_trustee.name", "other_trustee_name")
    1.24 -    selector:left_join("direct_voter", nil, { "direct_voter.issue_id = issue.id AND direct_voter.member_id = ?", options.member_id })
    1.25 -    selector:add_field("direct_voter.member_id NOTNULL", "direct_voted")
    1.26 -    selector:left_join("non_voter", nil, { "non_voter.issue_id = issue.id AND non_voter.member_id = ?", options.member_id })
    1.27 -    selector:add_field("non_voter.member_id NOTNULL", "non_voter")
    1.28 +    selector:add_from ( "issue" )
    1.29 +    selector:join(sub_selector, "delegation_info", "delegation_info.issue_id = issue.id" )
    1.30 +    selector:left_join ( "member", "first_trustee", "first_trustee.id = delegation_info.first_trustee_id" )
    1.31 +    selector:left_join ( "member", "other_trustee", "other_trustee.id = delegation_info.other_trustee_id" )
    1.32 +    selector:add_field ( "delegation_info.*" )
    1.33 +    selector:add_field ( "first_trustee.name", "first_trustee_name" )
    1.34 +    selector:add_field ( "other_trustee.name", "other_trustee_name" )
    1.35 +    selector:left_join ( "direct_voter", nil, { "direct_voter.issue_id = issue.id AND direct_voter.member_id = ?", options.member_id })
    1.36 +    selector:add_field ( "direct_voter.member_id NOTNULL", "direct_voted")
    1.37 +    selector:left_join ( "non_voter", nil, { "non_voter.issue_id = issue.id AND non_voter.member_id = ?", options.member_id })
    1.38 +    selector:add_field ( "non_voter.member_id NOTNULL", "non_voter" )
    1.39 +    selector:left_join ( "direct_interest_snapshot", nil, { [[
    1.40 +      direct_interest_snapshot.issue_id = issue.id AND 
    1.41 +      direct_interest_snapshot.event = issue.latest_snapshot_event AND 
    1.42 +      direct_interest_snapshot.member_id = ?
    1.43 +    ]], options.member_id }) 
    1.44 +    selector:add_field ( "direct_interest_snapshot.weight", "weight" )
    1.45      return selector
    1.46    end
    1.47  }
    1.48 @@ -189,19 +195,19 @@
    1.49  
    1.50  function Issue:get_state_name_for_state(value)
    1.51    local state_name_table = {
    1.52 -    admission = _"New",
    1.53 +    admission = _"Admission",
    1.54      discussion = _"Discussion",
    1.55 -    verification = _"Frozen",
    1.56 +    verification = _"Verification",
    1.57      voting = _"Voting",
    1.58 -    canceled_revoked_before_accepted = _"Canceled (before accepted due to revocation)",
    1.59 -    canceled_issue_not_accepted = _"Canceled (issue not accepted)",
    1.60 -    canceled_after_revocation_during_discussion = _"Canceled (during discussion due to revocation)",
    1.61 -    canceled_after_revocation_during_verification = _"Canceled (during verification due to revocation)",
    1.62 +    canceled_revoked_before_accepted = _"Revoked (during admission)",
    1.63 +    canceled_issue_not_accepted = _"Failed 1st quorum",
    1.64 +    canceled_after_revocation_during_discussion = _"Revoked (during discussion)",
    1.65 +    canceled_after_revocation_during_verification = _"Revoked (during verification)",
    1.66      canceled_by_admin = _"Canceled by administrative intervention",
    1.67      calculation = _"Calculation",
    1.68 -    canceled_no_initiative_admitted = _"Canceled (no initiative admitted)",
    1.69 -    finished_without_winner = _"Finished (without winner)",
    1.70 -    finished_with_winner = _"Finished (with winner)",
    1.71 +    canceled_no_initiative_admitted = _"All initiatives failed 2nd quorum",
    1.72 +    finished_without_winner = _"Disapproved",
    1.73 +    finished_with_winner = _"Finished with winner",
    1.74    }
    1.75    return state_name_table[value] or value or ''
    1.76  end
    1.77 @@ -275,3 +281,17 @@
    1.78  function Issue.object_get:etherpad_url()
    1.79    return config.etherpad.base_url .. "p/" .. config.etherpad.group_id .. "$Issue" .. self.id
    1.80  end
    1.81 +
    1.82 +function Issue.object_get:name()
    1.83 +  return self.policy.name .. " #" .. self.id
    1.84 +end
    1.85 +
    1.86 +function Issue.object_get:state_time_text()
    1.87 +  if self.closed then
    1.88 +    return _("#{closed_ago} ago", { closed_ago = self.closed_ago })
    1.89 +  elseif string.sub(self.state_time_left, 1, 2) ~= "-" then
    1.90 +    return _("ends soon", { state_time_left = self.state_time_left })
    1.91 +  else
    1.92 +    return _("ends in #{state_time_left}", { state_time_left = self.state_time_left })
    1.93 +  end
    1.94 +end

Impressum / About Us