From 3bbc2862d2efef4f3b00114e832890ca9d3bf329 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Fri, 9 Sep 2016 18:02:02 +0200 Subject: [PATCH] Adds admin setting 'months to archive proposals' --- app/models/proposal.rb | 4 ++-- config/locales/settings.en.yml | 1 + config/locales/settings.es.yml | 1 + db/dev_seeds.rb | 1 + db/seeds.rb | 3 +++ spec/support/common_actions.rb | 4 ++-- 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/models/proposal.rb b/app/models/proposal.rb index d558fdfa7..35c37c015 100644 --- a/app/models/proposal.rb +++ b/app/models/proposal.rb @@ -45,7 +45,7 @@ class Proposal < ActiveRecord::Base scope :sort_by_relevance, -> { all } scope :sort_by_flags, -> { order(flags_count: :desc, updated_at: :desc) } scope :sort_by_archival_date, -> { archived.order(created_at: :desc) } - scope :archived, -> { where("proposals.created_at <= ?", 12.months.ago)} + scope :archived, -> { where("proposals.created_at <= ?", Setting["months_to_archive_proposals"].to_i.months.ago)} scope :last_week, -> { where("proposals.created_at >= ?", 7.days.ago)} scope :retired, -> { where.not(retired_at: nil) } scope :not_retired, -> { where(retired_at: nil) } @@ -158,7 +158,7 @@ class Proposal < ActiveRecord::Base end def archived? - self.created_at <= 12.months.ago + self.created_at <= Setting["months_to_archive_proposals"].to_i.months.ago end def notifications diff --git a/config/locales/settings.en.yml b/config/locales/settings.en.yml index 32874e32b..0035eb556 100755 --- a/config/locales/settings.en.yml +++ b/config/locales/settings.en.yml @@ -11,6 +11,7 @@ en: max_votes_for_debate_edit: "Number of votes from which a Debate can no longer be edited" proposal_code_prefix: "Prefix for Proposal codes" votes_for_proposal_success: "Number of votes necessary for approval of a Proposal" + months_to_archive_proposals: "Months to archive Proposals" email_domain_for_officials: "Email domain for public officials" per_page_code: "Code to be included on every page" feature: diff --git a/config/locales/settings.es.yml b/config/locales/settings.es.yml index aa5dea14e..1235762b4 100644 --- a/config/locales/settings.es.yml +++ b/config/locales/settings.es.yml @@ -11,6 +11,7 @@ es: max_votes_for_debate_edit: "Número de votos en que un Debate deja de poderse editar" proposal_code_prefix: "Prefijo para los códigos de Propuestas" votes_for_proposal_success: "Número de votos necesarios para aprobar una Propuesta" + months_to_archive_proposals: "Meses para archivar las Propuestas" email_domain_for_officials: "Dominio de email para cargos públicos" per_page_code: "Código a incluir en cada página" feature: diff --git a/db/dev_seeds.rb b/db/dev_seeds.rb index 61b5f5060..3f47980eb 100644 --- a/db/dev_seeds.rb +++ b/db/dev_seeds.rb @@ -13,6 +13,7 @@ Setting.create(key: 'max_votes_for_debate_edit', value: '1000') Setting.create(key: 'max_votes_for_proposal_edit', value: '1000') Setting.create(key: 'proposal_code_prefix', value: 'MAD') Setting.create(key: 'votes_for_proposal_success', value: '100') +Setting.create(key: 'months_to_archive_proposals', value: '12') Setting.create(key: 'comments_body_max_length', value: '1000') Setting.create(key: 'twitter_handle', value: '@consul_dev') diff --git a/db/seeds.rb b/db/seeds.rb index 939a5f045..a5d8537db 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -31,6 +31,9 @@ Setting["proposal_code_prefix"] = 'MAD' # Number of votes needed for proposal success Setting["votes_for_proposal_success"] = 53726 +# Months to archive proposals +Setting["months_to_archive_proposals"] = 12 + # Users with this email domain will automatically be marked as level 1 officials # Emails under the domain's subdomains will also be included Setting["email_domain_for_officials"] = '' diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb index 2043c470f..5e125cf8f 100644 --- a/spec/support/common_actions.rb +++ b/spec/support/common_actions.rb @@ -193,8 +193,8 @@ module CommonActions end def create_archived_proposals - [create(:proposal, title: "This is an expired proposal", created_at: Time.now - 12.month), - create(:proposal, title: "This is an oldest expired proposal", created_at: Time.now - 14.month)] + [create(:proposal, title: "This is an expired proposal", created_at: Time.now - Setting["months_to_archive_proposals"].to_i.month), + create(:proposal, title: "This is an oldest expired proposal", created_at: Time.now - Setting["months_to_archive_proposals"].to_i.month - 2.month)] end def tag_names(tag_cloud)