Add new user segment all_proposals_authors

This commit is contained in:
decabeza
2019-05-17 17:22:29 +02:00
parent 525eb9034c
commit e6af2f15fb
4 changed files with 31 additions and 2 deletions

View File

@@ -753,6 +753,7 @@ en:
segment_recipient: segment_recipient:
all_users: All users all_users: All users
administrators: Administrators administrators: Administrators
all_proposal_authors: Proposal authors (including archived and retired)
proposal_authors: Proposal authors proposal_authors: Proposal authors
investment_authors: Investment authors in the current budget investment_authors: Investment authors in the current budget
feasible_and_undecided_investment_authors: "Authors of some investment in the current budget that does not comply with: [valuation finished unfesasible]" feasible_and_undecided_investment_authors: "Authors of some investment in the current budget that does not comply with: [valuation finished unfesasible]"

View File

@@ -752,6 +752,7 @@ es:
segment_recipient: segment_recipient:
all_users: Todos los usuarios all_users: Todos los usuarios
administrators: Administradores administrators: Administradores
all_proposal_authors: Usuarios autores de propuestas (incluyendo archivadas y retiradas)
proposal_authors: Usuarios autores de propuestas proposal_authors: Usuarios autores de propuestas
investment_authors: Usuarios autores de proyectos de gasto en los actuales presupuestos investment_authors: Usuarios autores de proyectos de gasto en los actuales presupuestos
feasible_and_undecided_investment_authors: "Usuarios autores de algún proyecto de gasto en los actuales presupuestos que no cumpla: [evaluación finalizada inviable]" feasible_and_undecided_investment_authors: "Usuarios autores de algún proyecto de gasto en los actuales presupuestos que no cumpla: [evaluación finalizada inviable]"

View File

@@ -1,12 +1,13 @@
class UserSegments class UserSegments
SEGMENTS = %w(all_users SEGMENTS = %w[all_users
administrators administrators
all_proposal_authors
proposal_authors proposal_authors
investment_authors investment_authors
feasible_and_undecided_investment_authors feasible_and_undecided_investment_authors
selected_investment_authors selected_investment_authors
winner_investment_authors winner_investment_authors
not_supported_on_current_budget) not_supported_on_current_budget]
def self.all_users def self.all_users
User.active User.active
@@ -16,6 +17,10 @@ class UserSegments
all_users.administrators all_users.administrators
end end
def self.all_proposal_authors
author_ids(Proposal.pluck(:author_id).uniq)
end
def self.proposal_authors def self.proposal_authors
author_ids(Proposal.not_archived.not_retired.pluck(:author_id).uniq) author_ids(Proposal.not_archived.not_retired.pluck(:author_id).uniq)
end end

View File

@@ -27,6 +27,28 @@ describe UserSegments do
end end
end end
describe "#all_proposal_authors" do
it "returns users that have created a proposal even if is archived or retired" do
create(:proposal, author: user1)
create(:proposal, :archived, author: user2)
create(:proposal, retired_at: Time.current, author: user3)
all_proposal_authors = described_class.all_proposal_authors
expect(all_proposal_authors).to include user1
expect(all_proposal_authors).to include user2
expect(all_proposal_authors).to include user3
end
it "does not return duplicated users" do
create(:proposal, author: user1)
create(:proposal, :archived, author: user1)
create(:proposal, retired_at: Time.current, author: user1)
all_proposal_authors = described_class.all_proposal_authors
expect(all_proposal_authors).to contain_exactly(user1)
end
end
describe "#proposal_authors" do describe "#proposal_authors" do
it "returns users that have created a proposal" do it "returns users that have created a proposal" do
proposal = create(:proposal, author: user1) proposal = create(:proposal, author: user1)