Use double quotes in models

This commit is contained in:
Julian Herrero
2019-03-13 22:57:47 +01:00
parent 3c313c9c52
commit 3ba961a2d7
57 changed files with 241 additions and 241 deletions

View File

@@ -8,7 +8,7 @@ module Abilities
can [:read, :update, :valuate], SpendingProposal
can [:read, :update, :comment_valuation], Budget::Investment, id: valuator.assigned_investment_ids
can [:valuate], Budget::Investment, { id: valuator.assigned_investment_ids, valuation_finished: false }
cannot [:update, :valuate, :comment_valuation], Budget::Investment, budget: { phase: 'finished' }
cannot [:update, :valuate, :comment_valuation], Budget::Investment, budget: { phase: "finished" }
end
end
end

View File

@@ -6,12 +6,12 @@ class Activity < ActiveRecord::Base
validates :action, inclusion: {in: VALID_ACTIONS}
scope :on_proposals, -> { where(actionable_type: 'Proposal') }
scope :on_debates, -> { where(actionable_type: 'Debate') }
scope :on_users, -> { where(actionable_type: 'User') }
scope :on_comments, -> { where(actionable_type: 'Comment') }
scope :on_budget_investments, -> { where(actionable_type: 'Budget::Investment') }
scope :on_system_emails, -> { where(actionable_type: 'ProposalNotification') }
scope :on_proposals, -> { where(actionable_type: "Proposal") }
scope :on_debates, -> { where(actionable_type: "Debate") }
scope :on_users, -> { where(actionable_type: "User") }
scope :on_comments, -> { where(actionable_type: "Comment") }
scope :on_budget_investments, -> { where(actionable_type: "Budget::Investment") }
scope :on_system_emails, -> { where(actionable_type: "ProposalNotification") }
scope :for_render, -> { includes(user: [:moderator, :administrator]).includes(:actionable) }
def self.log(user, action, actionable)

View File

@@ -147,11 +147,11 @@ class Budget < ActiveRecord::Base
def investments_orders
case phase
when 'accepting', 'reviewing'
when "accepting", "reviewing"
%w{random}
when 'publishing_prices', 'balloting', 'reviewing_ballots'
when "publishing_prices", "balloting", "reviewing_ballots"
%w{random price}
when 'finished'
when "finished"
%w{random}
else
%w{random confidence_score}

View File

@@ -27,7 +27,7 @@ class Budget
include Milestoneable
include Randomizable
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :heading
belongs_to :group
belongs_to :budget
@@ -39,8 +39,8 @@ class Budget
has_many :valuator_group_assignments, dependent: :destroy
has_many :valuator_groups, through: :valuator_group_assignments
has_many :comments, -> {where(valuation: false)}, as: :commentable, class_name: 'Comment'
has_many :valuations, -> {where(valuation: true)}, as: :commentable, class_name: 'Comment'
has_many :comments, -> {where(valuation: false)}, as: :commentable, class_name: "Comment"
has_many :valuations, -> {where(valuation: true)}, as: :commentable, class_name: "Comment"
validates :title, presence: true
validates :author, presence: true
@@ -75,7 +75,7 @@ class Budget
scope :unfeasible, -> { where(feasibility: "unfeasible") }
scope :not_unfeasible, -> { where.not(feasibility: "unfeasible") }
scope :undecided, -> { where(feasibility: "undecided") }
scope :with_supports, -> { where('cached_votes_up > 0') }
scope :with_supports, -> { where("cached_votes_up > 0") }
scope :selected, -> { feasible.where(selected: true) }
scope :compatible, -> { where(incompatible: false) }
scope :incompatible, -> { where(incompatible: true) }
@@ -133,10 +133,10 @@ class Budget
def self.advanced_filters(params, results)
ids = []
ids += results.valuation_finished_feasible.pluck(:id) if params[:advanced_filters].include?('feasible')
ids += results.where(selected: true).pluck(:id) if params[:advanced_filters].include?('selected')
ids += results.undecided.pluck(:id) if params[:advanced_filters].include?('undecided')
ids += results.unfeasible.pluck(:id) if params[:advanced_filters].include?('unfeasible')
ids += results.valuation_finished_feasible.pluck(:id) if params[:advanced_filters].include?("feasible")
ids += results.where(selected: true).pluck(:id) if params[:advanced_filters].include?("selected")
ids += results.undecided.pluck(:id) if params[:advanced_filters].include?("undecided")
ids += results.unfeasible.pluck(:id) if params[:advanced_filters].include?("unfeasible")
results.where("budget_investments.id IN (?)", ids)
end
@@ -173,11 +173,11 @@ class Budget
end
def searchable_values
{ title => 'A',
author.username => 'B',
heading.try(:name) => 'B',
tag_list.join(' ') => 'B',
description => 'C'
{ title => "A",
author.username => "B",
heading.try(:name) => "B",
tag_list.join(" ") => "B",
description => "C"
}
end
@@ -186,7 +186,7 @@ class Budget
end
def self.by_heading(heading)
where(heading_id: heading == 'all' ? nil : heading.presence)
where(heading_id: heading == "all" ? nil : heading.presence)
end
def undecided?
@@ -283,7 +283,7 @@ class Budget
end
def register_selection(user)
vote_by(voter: user, vote: 'yes') if selectable_by?(user)
vote_by(voter: user, vote: "yes") if selectable_by?(user)
end
def calculate_confidence_score
@@ -342,11 +342,11 @@ class Budget
end
def assigned_valuators
self.valuators.collect(&:description_or_name).compact.join(', ').presence
self.valuators.collect(&:description_or_name).compact.join(", ").presence
end
def assigned_valuation_groups
self.valuator_groups.collect(&:name).compact.join(', ').presence
self.valuator_groups.collect(&:name).compact.join(", ").presence
end
def valuation_tag_list

View File

@@ -1,5 +1,5 @@
class Budget::Investment::Exporter
require 'csv'
require "csv"
def initialize(investments)
@investments = investments
@@ -37,13 +37,13 @@ class Budget::Investment::Exporter
investment.title,
investment.total_votes.to_s,
admin(investment),
investment.assigned_valuators || '-',
investment.assigned_valuation_groups || '-',
investment.assigned_valuators || "-",
investment.assigned_valuation_groups || "-",
investment.heading.name,
price(investment),
investment.valuation_finished? ? I18n.t('shared.yes') : I18n.t('shared.no'),
investment.selected? ? I18n.t('shared.yes') : I18n.t('shared.no'),
investment.visible_to_valuators? ? I18n.t('shared.yes') : I18n.t('shared.no'),
investment.valuation_finished? ? I18n.t("shared.yes") : I18n.t("shared.no"),
investment.selected? ? I18n.t("shared.yes") : I18n.t("shared.no"),
investment.visible_to_valuators? ? I18n.t("shared.yes") : I18n.t("shared.no"),
investment.author.username
]
end

View File

@@ -11,8 +11,8 @@ class Budget
include Globalizable
belongs_to :budget
belongs_to :next_phase, class_name: 'Budget::Phase', foreign_key: :next_phase_id
has_one :prev_phase, class_name: 'Budget::Phase', foreign_key: :next_phase_id
belongs_to :next_phase, class_name: "Budget::Phase", foreign_key: :next_phase_id
has_one :prev_phase, class_name: "Budget::Phase", foreign_key: :next_phase_id
validates_translation :summary, length: { maximum: SUMMARY_MAX_LENGTH }
validates_translation :description, length: { maximum: DESCRIPTION_MAX_LENGTH }
@@ -26,17 +26,17 @@ class Budget
after_save :touch_budget
scope :enabled, -> { where(enabled: true) }
scope :published, -> { enabled.where.not(kind: 'drafting') }
scope :drafting, -> { find_by_kind('drafting') }
scope :informing, -> { find_by_kind('informing') }
scope :accepting, -> { find_by_kind('accepting')}
scope :reviewing, -> { find_by_kind('reviewing')}
scope :selecting, -> { find_by_kind('selecting')}
scope :valuating, -> { find_by_kind('valuating')}
scope :publishing_prices, -> { find_by_kind('publishing_prices')}
scope :balloting, -> { find_by_kind('balloting')}
scope :reviewing_ballots, -> { find_by_kind('reviewing_ballots')}
scope :finished, -> { find_by_kind('finished')}
scope :published, -> { enabled.where.not(kind: "drafting") }
scope :drafting, -> { find_by_kind("drafting") }
scope :informing, -> { find_by_kind("informing") }
scope :accepting, -> { find_by_kind("accepting")}
scope :reviewing, -> { find_by_kind("reviewing")}
scope :selecting, -> { find_by_kind("selecting")}
scope :valuating, -> { find_by_kind("valuating")}
scope :publishing_prices, -> { find_by_kind("publishing_prices")}
scope :balloting, -> { find_by_kind("balloting")}
scope :reviewing_ballots, -> { find_by_kind("reviewing_ballots")}
scope :finished, -> { find_by_kind("finished")}
def next_enabled_phase
next_phase&.enabled? ? next_phase : next_phase&.next_enabled_phase
@@ -48,7 +48,7 @@ class Budget
def invalid_dates_range?
if starts_at.present? && ends_at.present? && starts_at >= ends_at
errors.add(:starts_at, I18n.t('budgets.phases.errors.dates_range_invalid'))
errors.add(:starts_at, I18n.t("budgets.phases.errors.dates_range_invalid"))
end
end
@@ -72,7 +72,7 @@ class Budget
prev_enabled_phase.assign_attributes(ends_at: starts_at)
if prev_enabled_phase.invalid_dates_range?
phase_name = I18n.t("budgets.phase.#{prev_enabled_phase.kind}")
error = I18n.t('budgets.phases.errors.prev_phase_dates_invalid', phase_name: phase_name)
error = I18n.t("budgets.phases.errors.prev_phase_dates_invalid", phase_name: phase_name)
errors.add(:starts_at, error)
end
end
@@ -83,7 +83,7 @@ class Budget
next_enabled_phase.assign_attributes(starts_at: ends_at)
if next_enabled_phase.invalid_dates_range?
phase_name = I18n.t("budgets.phase.#{next_enabled_phase.kind}")
error = I18n.t('budgets.phases.errors.next_phase_dates_invalid', phase_name: phase_name)
error = I18n.t("budgets.phases.errors.next_phase_dates_invalid", phase_name: phase_name)
errors.add(:ends_at, error)
end
end

View File

@@ -1,8 +1,8 @@
class Ckeditor::Picture < Ckeditor::Asset
has_attached_file :data,
url: '/ckeditor_assets/pictures/:id/:style_:basename.:extension',
path: ':rails_root/public/ckeditor_assets/pictures/:id/:style_:basename.:extension',
styles: { content: '800>', thumb: '118x100#' }
url: "/ckeditor_assets/pictures/:id/:style_:basename.:extension",
path: ":rails_root/public/ckeditor_assets/pictures/:id/:style_:basename.:extension",
styles: { content: "800>", thumb: "118x100#" }
validates_attachment_presence :data
validates_attachment_size :data, less_than: 2.megabytes

View File

@@ -117,7 +117,7 @@ class Comment < ActiveRecord::Base
end
def self.body_max_length
Setting['comments_body_max_length'].to_i
Setting["comments_body_max_length"].to_i
end
def calculate_confidence_score

View File

@@ -20,7 +20,7 @@ module Filterable
def allowed_filter?(filter, value)
return if value.blank?
['official_level', 'date_range'].include?(filter)
["official_level", "date_range"].include?(filter)
end
end

View File

@@ -4,7 +4,7 @@ module Graphqlable
class_methods do
def graphql_field_name
name.gsub('::', '_').underscore.to_sym
name.gsub("::", "_").underscore.to_sym
end
def graphql_field_description
@@ -12,7 +12,7 @@ module Graphqlable
end
def graphql_pluralized_field_name
name.gsub('::', '_').underscore.pluralize.to_sym
name.gsub("::", "_").underscore.pluralize.to_sym
end
def graphql_pluralized_field_description
@@ -20,7 +20,7 @@ module Graphqlable
end
def graphql_type_name
name.gsub('::', '_')
name.gsub("::", "_")
end
def graphql_type_description

View File

@@ -13,7 +13,7 @@ module Mappable
return true if skip_map?
unless map_location.try(:available?)
skip_map_error = I18n.t('activerecord.errors.models.map_location.attributes.map.invalid')
skip_map_error = I18n.t("activerecord.errors.models.map_location.attributes.map.invalid")
errors.add(:skip_map, skip_map_error)
end
end

View File

@@ -4,11 +4,11 @@ module Measurable
class_methods do
def title_max_length
@@title_max_length ||= (columns.find { |c| c.name == 'title' }.limit rescue nil) || 80
@@title_max_length ||= (columns.find { |c| c.name == "title" }.limit rescue nil) || 80
end
def responsible_name_max_length
@@responsible_name_max_length ||= (columns.find { |c| c.name == 'responsible_name' }.limit rescue nil) || 60
@@responsible_name_max_length ||= (columns.find { |c| c.name == "responsible_name" }.limit rescue nil) || 60
end
def question_max_length

View File

@@ -8,11 +8,11 @@ module Searchable
pg_search_scope :pg_search, {
against: :ignored, # not used since using a tsvector_column
using: {
tsearch: { tsvector_column: 'tsv', dictionary: "spanish", prefix: true }
tsearch: { tsvector_column: "tsv", dictionary: "spanish", prefix: true }
},
ignoring: :accents,
ranked_by: '(:tsearch)',
order_within_rank: (column_names.include?('cached_votes_up') ? "#{table_name}.cached_votes_up DESC" : nil)
ranked_by: "(:tsearch)",
order_within_rank: (column_names.include?("cached_votes_up") ? "#{table_name}.cached_votes_up DESC" : nil)
}
end

View File

@@ -1,5 +1,5 @@
require_dependency Rails.root.join('app', 'models', 'verification', 'residence').to_s
require_dependency Rails.root.join("app", "models", "verification", "residence").to_s
class Verification::Residence
@@ -7,7 +7,7 @@ class Verification::Residence
validate :residence_in_madrid
def postal_code_in_madrid
errors.add(:postal_code, I18n.t('verification.residence.new.error_not_allowed_postal_code')) unless valid_postal_code?
errors.add(:postal_code, I18n.t("verification.residence.new.error_not_allowed_postal_code")) unless valid_postal_code?
end
def residence_in_madrid

View File

@@ -1,4 +1,4 @@
require 'numeric'
require "numeric"
class Debate < ActiveRecord::Base
include Rails.application.routes.url_helpers
include Flaggable
@@ -18,7 +18,7 @@ class Debate < ActiveRecord::Base
acts_as_paranoid column: :hidden_at
include ActsAsParanoidAliases
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :geozone
has_many :comments, as: :commentable
@@ -60,11 +60,11 @@ class Debate < ActiveRecord::Base
end
def searchable_values
{ title => 'A',
author.username => 'B',
tag_list.join(' ') => 'B',
geozone.try(:name) => 'B',
description => 'D'
{ title => "A",
author.username => "B",
tag_list.join(" ") => "B",
geozone.try(:name) => "B",
description => "D"
}
end
@@ -97,7 +97,7 @@ class Debate < ActiveRecord::Base
end
def editable?
total_votes <= Setting['max_votes_for_debate_edit'].to_i
total_votes <= Setting["max_votes_for_debate_edit"].to_i
end
def editable_by?(user)
@@ -115,8 +115,8 @@ class Debate < ActiveRecord::Base
return false unless user
total_votes <= 100 ||
!user.unverified? ||
Setting['max_ratio_anon_votes_on_debates'].to_i == 100 ||
anonymous_votes_ratio < Setting['max_ratio_anon_votes_on_debates'].to_i ||
Setting["max_ratio_anon_votes_on_debates"].to_i == 100 ||
anonymous_votes_ratio < Setting["max_ratio_anon_votes_on_debates"].to_i ||
user.voted_for?(self)
end
@@ -139,11 +139,11 @@ class Debate < ActiveRecord::Base
end
def after_hide
tags.each{ |t| t.decrement_custom_counter_for('Debate') }
tags.each{ |t| t.decrement_custom_counter_for("Debate") }
end
def after_restore
tags.each{ |t| t.increment_custom_counter_for('Debate') }
tags.each{ |t| t.increment_custom_counter_for("Debate") }
end
def featured?
@@ -152,7 +152,7 @@ class Debate < ActiveRecord::Base
def self.debates_orders(user)
orders = %w{hot_score confidence_score created_at relevance}
orders << "recommendations" if Setting['feature.user.recommendations_on_debates'] && user&.recommended_debates
orders << "recommendations" if Setting["feature.user.recommendations_on_debates"] && user&.recommended_debates
return orders
end
end

View File

@@ -1,6 +1,6 @@
class DirectMessage < ActiveRecord::Base
belongs_to :sender, class_name: 'User', foreign_key: 'sender_id'
belongs_to :receiver, class_name: 'User', foreign_key: 'receiver_id'
belongs_to :sender, class_name: "User", foreign_key: "sender_id"
belongs_to :receiver, class_name: "User", foreign_key: "receiver_id"
validates :title, presence: true
validates :body, presence: true
@@ -8,7 +8,7 @@ class DirectMessage < ActiveRecord::Base
validates :receiver, presence: true
validate :max_per_day
scope :today, lambda { where('DATE(created_at) = DATE(?)', Time.current) }
scope :today, lambda { where("DATE(created_at) = DATE(?)", Time.current) }
def max_per_day
return if errors.any?
@@ -16,7 +16,7 @@ class DirectMessage < ActiveRecord::Base
return unless max
if sender.direct_messages_sent.today.count >= max.to_i
errors.add(:title, I18n.t('activerecord.errors.models.direct_message.attributes.max_per_day.invalid'))
errors.add(:title, I18n.t("activerecord.errors.models.direct_message.attributes.max_per_day.invalid"))
end
end

View File

@@ -1,4 +1,4 @@
class FailedCensusCall < ActiveRecord::Base
belongs_to :user, counter_cache: true
belongs_to :poll_officer, class_name: 'Poll::Officer', counter_cache: true
belongs_to :poll_officer, class_name: "Poll::Officer", counter_cache: true
end

View File

@@ -8,7 +8,7 @@ class Flag < ActiveRecord::Base
flaggable_id: flaggable.id)
end)
scope :for_comments, ->(comments) { where(flaggable_type: 'Comment', flaggable_id: comments) }
scope :for_comments, ->(comments) { where(flaggable_type: "Comment", flaggable_id: comments) }
def self.flag(user, flaggable)
return false if flagged?(user, flaggable)

View File

@@ -15,7 +15,7 @@ class Geozone < ActiveRecord::Base
end
def self.city
where(name: 'city').first
where(name: "city").first
end
def safe_to_destroy?

View File

@@ -42,7 +42,7 @@ class I18nContent < ActiveRecord::Base
def self.flat_hash(input, path = nil, output = {})
return output.update({ path => input }) unless input.is_a? Hash
input.map { |key, value| flat_hash(value, [path, key].compact.join('.'), output) }
input.map { |key, value| flat_hash(value, [path, key].compact.join("."), output) }
return output
end

View File

@@ -1,5 +1,5 @@
module Legislation
def self.table_name_prefix
'legislation_'
"legislation_"
end
end

View File

@@ -5,8 +5,8 @@ class Legislation::Annotation < ActiveRecord::Base
serialize :ranges, Array
belongs_to :draft_version, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_draft_version_id'
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :draft_version, class_name: "Legislation::DraftVersion", foreign_key: "legislation_draft_version_id"
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
has_many :comments, as: :commentable, dependent: :destroy
validates :text, presence: true

View File

@@ -2,9 +2,9 @@ class Legislation::Answer < ActiveRecord::Base
acts_as_paranoid column: :hidden_at
include ActsAsParanoidAliases
belongs_to :question, class_name: 'Legislation::Question', foreign_key: 'legislation_question_id',
belongs_to :question, class_name: "Legislation::Question", foreign_key: "legislation_question_id",
inverse_of: :answers, counter_cache: true
belongs_to :question_option, class_name: 'Legislation::QuestionOption', foreign_key: 'legislation_question_option_id',
belongs_to :question_option, class_name: "Legislation::QuestionOption", foreign_key: "legislation_question_option_id",
inverse_of: :answers, counter_cache: true
belongs_to :user, dependent: :destroy, inverse_of: :legislation_answers

View File

@@ -11,14 +11,14 @@ class Legislation::DraftVersion < ActiveRecord::Base
translates :toc_html, touch: true
include Globalizable
belongs_to :process, class_name: 'Legislation::Process', foreign_key: 'legislation_process_id'
has_many :annotations, class_name: 'Legislation::Annotation', foreign_key: 'legislation_draft_version_id', dependent: :destroy
belongs_to :process, class_name: "Legislation::Process", foreign_key: "legislation_process_id"
has_many :annotations, class_name: "Legislation::Annotation", foreign_key: "legislation_draft_version_id", dependent: :destroy
validates_translation :title, presence: true
validates_translation :body, presence: true
validates :status, presence: true, inclusion: { in: VALID_STATUSES }
scope :published, -> { where(status: 'published').order('id DESC') }
scope :published, -> { where(status: "published").order("id DESC") }
before_save :render_html
@@ -40,7 +40,7 @@ class Legislation::DraftVersion < ActiveRecord::Base
end
def display_title
status == 'draft' ? "#{title} *" : title
status == "draft" ? "#{title} *" : title
end
def total_comments

View File

@@ -24,16 +24,16 @@ class Legislation::Process < ActiveRecord::Base
CSS_HEX_COLOR = /\A#?(?:[A-F0-9]{3}){1,2}\z/i
has_many :draft_versions, -> { order(:id) }, class_name: 'Legislation::DraftVersion',
foreign_key: 'legislation_process_id',
has_many :draft_versions, -> { order(:id) }, class_name: "Legislation::DraftVersion",
foreign_key: "legislation_process_id",
dependent: :destroy
has_one :final_draft_version, -> { where final_version: true, status: 'published' },
class_name: 'Legislation::DraftVersion',
foreign_key: 'legislation_process_id'
has_many :questions, -> { order(:id) }, class_name: 'Legislation::Question',
foreign_key: 'legislation_process_id', dependent: :destroy
has_many :proposals, -> { order(:id) }, class_name: 'Legislation::Proposal',
foreign_key: 'legislation_process_id', dependent: :destroy
has_one :final_draft_version, -> { where final_version: true, status: "published" },
class_name: "Legislation::DraftVersion",
foreign_key: "legislation_process_id"
has_many :questions, -> { order(:id) }, class_name: "Legislation::Question",
foreign_key: "legislation_process_id", dependent: :destroy
has_many :proposals, -> { order(:id) }, class_name: "Legislation::Proposal",
foreign_key: "legislation_process_id", dependent: :destroy
validates_translation :title, presence: true
validates :start_date, presence: true

View File

@@ -22,8 +22,8 @@ class Legislation::Proposal < ActiveRecord::Base
acts_as_votable
acts_as_paranoid column: :hidden_at
belongs_to :process, class_name: 'Legislation::Process', foreign_key: 'legislation_process_id'
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :process, class_name: "Legislation::Process", foreign_key: "legislation_process_id"
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :geozone
has_many :comments, as: :commentable
@@ -59,13 +59,13 @@ class Legislation::Proposal < ActiveRecord::Base
end
def searchable_values
{ title => 'A',
question => 'B',
author.username => 'B',
tag_list.join(' ') => 'B',
geozone.try(:name) => 'B',
summary => 'C',
description => 'D'}
{ title => "A",
question => "B",
author.username => "B",
tag_list.join(" ") => "B",
geozone.try(:name) => "B",
summary => "C",
description => "D"}
end
def self.search(terms)
@@ -136,11 +136,11 @@ class Legislation::Proposal < ActiveRecord::Base
end
def after_hide
tags.each{ |t| t.decrement_custom_counter_for('LegislationProposal') }
tags.each{ |t| t.decrement_custom_counter_for("LegislationProposal") }
end
def after_restore
tags.each{ |t| t.increment_custom_counter_for('LegislationProposal') }
tags.each{ |t| t.increment_custom_counter_for("LegislationProposal") }
end
protected

View File

@@ -6,12 +6,12 @@ class Legislation::Question < ActiveRecord::Base
translates :title, touch: true
include Globalizable
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :process, class_name: 'Legislation::Process', foreign_key: 'legislation_process_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :process, class_name: "Legislation::Process", foreign_key: "legislation_process_id"
has_many :question_options, -> { order(:id) }, class_name: 'Legislation::QuestionOption', foreign_key: 'legislation_question_id',
has_many :question_options, -> { order(:id) }, class_name: "Legislation::QuestionOption", foreign_key: "legislation_question_id",
dependent: :destroy, inverse_of: :question
has_many :answers, class_name: 'Legislation::Answer', foreign_key: 'legislation_question_id', dependent: :destroy, inverse_of: :question
has_many :answers, class_name: "Legislation::Answer", foreign_key: "legislation_question_id", dependent: :destroy, inverse_of: :question
has_many :comments, as: :commentable, dependent: :destroy
accepts_nested_attributes_for :question_options, reject_if: proc { |attributes| attributes.all? { |k, v| v.blank? } }, allow_destroy: true
@@ -19,7 +19,7 @@ class Legislation::Question < ActiveRecord::Base
validates :process, presence: true
validates_translation :title, presence: true
scope :sorted, -> { order('id ASC') }
scope :sorted, -> { order("id ASC") }
def next_question_id
@next_question_id ||= process.questions.where("id > ?", id).sorted.limit(1).pluck(:id).first

View File

@@ -5,8 +5,8 @@ class Legislation::QuestionOption < ActiveRecord::Base
translates :value, touch: true
include Globalizable
belongs_to :question, class_name: 'Legislation::Question', foreign_key: 'legislation_question_id', inverse_of: :question_options
has_many :answers, class_name: 'Legislation::Answer', foreign_key: 'legislation_question_id', dependent: :destroy, inverse_of: :question
belongs_to :question, class_name: "Legislation::Question", foreign_key: "legislation_question_id", inverse_of: :question_options
has_many :answers, class_name: "Legislation::Answer", foreign_key: "legislation_question_id", dependent: :destroy, inverse_of: :question
validates :question, presence: true
validates_translation :value, presence: true

View File

@@ -35,7 +35,7 @@ class Officing::Residence
verified_at: Time.current,
erased_at: Time.current,
password: random_password,
terms_of_service: '1',
terms_of_service: "1",
email: nil
}
self.user = User.create!(user_params)
@@ -75,7 +75,7 @@ class Officing::Residence
return unless @census_api_response.valid?
unless allowed_age?
errors.add(:year_of_birth, I18n.t('verification.residence.new.error_not_allowed_age'))
errors.add(:year_of_birth, I18n.t("verification.residence.new.error_not_allowed_age"))
end
end
@@ -119,7 +119,7 @@ class Officing::Residence
end
def random_password
(0...20).map { ('a'..'z').to_a[rand(26)] }.join
(0...20).map { ("a".."z").to_a[rand(26)] }.join
end
end

View File

@@ -43,11 +43,11 @@ class Organization < ActiveRecord::Base
end
def self.name_max_length
@@name_max_length ||= columns.find { |c| c.name == 'name' }.limit || 60
@@name_max_length ||= columns.find { |c| c.name == "name" }.limit || 60
end
def self.responsible_name_max_length
@@responsible_name_max_length ||= columns.find { |c| c.name == 'responsible_name' }.limit || 60
@@responsible_name_max_length ||= columns.find { |c| c.name == "responsible_name" }.limit || 60
end
private

View File

@@ -22,15 +22,15 @@ class Poll < ActiveRecord::Base
has_many :comments, as: :commentable
has_and_belongs_to_many :geozones
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
validates_translation :name, presence: true
validate :date_range
scope :current, -> { where('starts_at <= ? and ? <= ends_at', Date.current.beginning_of_day, Date.current.beginning_of_day) }
scope :expired, -> { where('ends_at < ?', Date.current.beginning_of_day) }
scope :current, -> { where("starts_at <= ? and ? <= ends_at", Date.current.beginning_of_day, Date.current.beginning_of_day) }
scope :expired, -> { where("ends_at < ?", Date.current.beginning_of_day) }
scope :recounting, -> { Poll.where(ends_at: (Date.current.beginning_of_day - RECOUNT_DURATION)..Date.current.beginning_of_day) }
scope :published, -> { where('published = ?', true) }
scope :published, -> { where("published = ?", true) }
scope :by_geozone_id, ->(geozone_id) { where(geozones: {id: geozone_id}.joins(:geozones)) }
scope :public_for_api, -> { all }
@@ -62,7 +62,7 @@ class Poll < ActiveRecord::Base
def self.answerable_by(user)
return none if user.nil? || user.unverified?
current.joins('LEFT JOIN "geozones_polls" ON "geozones_polls"."poll_id" = "polls"."id"')
.where('geozone_restricted = ? OR geozones_polls.geozone_id = ?', false, user.geozone_id)
.where("geozone_restricted = ? OR geozones_polls.geozone_id = ?", false, user.geozone_id)
end
def self.votable_by(user)
@@ -103,7 +103,7 @@ class Poll < ActiveRecord::Base
def date_range
unless starts_at.present? && ends_at.present? && starts_at <= ends_at
errors.add(:starts_at, I18n.t('errors.messages.invalid_date_range'))
errors.add(:starts_at, I18n.t("errors.messages.invalid_date_range"))
end
end

View File

@@ -1,7 +1,7 @@
class Poll::Answer < ActiveRecord::Base
belongs_to :question, -> { with_hidden }
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
delegate :poll, :poll_id, to: :question

View File

@@ -3,7 +3,7 @@ class Poll::PartialResult < ActiveRecord::Base
VALID_ORIGINS = %w{web booth}
belongs_to :question, -> { with_hidden }
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :booth_assignment
belongs_to :officer_assignment

View File

@@ -9,11 +9,11 @@ class Poll::Question < ActiveRecord::Base
include Globalizable
belongs_to :poll
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
has_many :comments, as: :commentable
has_many :answers, class_name: 'Poll::Answer'
has_many :question_answers, -> { order 'given_order asc' }, class_name: 'Poll::Question::Answer'
has_many :answers, class_name: "Poll::Answer"
has_many :question_answers, -> { order "given_order asc" }, class_name: "Poll::Question::Answer"
has_many :partial_results
belongs_to :proposal
@@ -23,7 +23,7 @@ class Poll::Question < ActiveRecord::Base
scope :by_poll_id, ->(poll_id) { where(poll_id: poll_id) }
scope :sort_for_list, -> { order('poll_questions.proposal_id IS NULL', :created_at)}
scope :sort_for_list, -> { order("poll_questions.proposal_id IS NULL", :created_at)}
scope :for_render, -> { includes(:author, :proposal) }
def self.search(params)
@@ -34,10 +34,10 @@ class Poll::Question < ActiveRecord::Base
end
def searchable_values
{ title => 'A',
proposal.try(:title) => 'A',
author.username => 'C',
author_visible_name => 'C' }
{ title => "A",
proposal.try(:title) => "A",
author.username => "C",
author_visible_name => "C" }
end
def copy_attributes_from_proposal(proposal)

View File

@@ -11,8 +11,8 @@ class Poll::Question::Answer < ActiveRecord::Base
accepted_content_types: [ "application/pdf" ]
accepts_nested_attributes_for :documents, allow_destroy: true
belongs_to :question, class_name: 'Poll::Question', foreign_key: 'question_id'
has_many :videos, class_name: 'Poll::Question::Answer::Video'
belongs_to :question, class_name: "Poll::Question", foreign_key: "question_id"
has_many :videos, class_name: "Poll::Question::Answer::Video"
validates_translation :title, presence: true
validates :given_order, presence: true, uniqueness: { scope: :question_id }
@@ -34,7 +34,7 @@ class Poll::Question::Answer < ActiveRecord::Base
end
def self.last_position(question_id)
where(question_id: question_id).maximum('given_order') || 0
where(question_id: question_id).maximum("given_order") || 0
end
def total_votes

View File

@@ -1,5 +1,5 @@
class Poll::Question::Answer::Video < ActiveRecord::Base
belongs_to :answer, class_name: 'Poll::Question::Answer', foreign_key: 'answer_id'
belongs_to :answer, class_name: "Poll::Question::Answer", foreign_key: "answer_id"
VIMEO_REGEX = /vimeo.*(staffpicks\/|channels\/|videos\/|video\/|\/)([^#\&\?]*).*/
YOUTUBE_REGEX = /youtu.*(be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/

View File

@@ -2,16 +2,16 @@ class Poll::Recount < ActiveRecord::Base
VALID_ORIGINS = %w{web booth letter}.freeze
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :booth_assignment
belongs_to :officer_assignment
validates :author, presence: true
validates :origin, inclusion: {in: VALID_ORIGINS}
scope :web, -> { where(origin: 'web') }
scope :booth, -> { where(origin: 'booth') }
scope :letter, -> { where(origin: 'letter') }
scope :web, -> { where(origin: "web") }
scope :booth, -> { where(origin: "booth") }
scope :letter, -> { where(origin: "letter") }
scope :by_author, ->(author_id) { where(author_id: author_id) }

View File

@@ -10,8 +10,8 @@ class Poll
enum task: { vote_collection: 0, recount_scrutiny: 1 }
scope :vote_collection, -> { where(task: 'vote_collection') }
scope :recount_scrutiny, -> { where(task: 'recount_scrutiny') }
scope :vote_collection, -> { where(task: "vote_collection") }
scope :recount_scrutiny, -> { where(task: "recount_scrutiny") }
scope :current, -> { where(date: Date.current) }
before_create :persist_data

View File

@@ -18,121 +18,121 @@ class Poll
private
def total_participants
stats_cache('total_participants') { total_participants_web + total_participants_booth }
stats_cache("total_participants") { total_participants_web + total_participants_booth }
end
def total_participants_web
stats_cache('total_participants_web') { total_web_valid + total_web_white + total_web_null }
stats_cache("total_participants_web") { total_web_valid + total_web_white + total_web_null }
end
def total_participants_web_percentage
stats_cache('total_participants_web_percentage') do
stats_cache("total_participants_web_percentage") do
total_participants.zero? ? 0 : total_participants_web * 100 / total_participants
end
end
def total_participants_booth
stats_cache('total_participants_booth') { voters.where(origin: 'booth').count }
stats_cache("total_participants_booth") { voters.where(origin: "booth").count }
end
def total_participants_booth_percentage
stats_cache('total_participants_booth_percentage') do
stats_cache("total_participants_booth_percentage") do
total_participants.zero? ? 0 : total_participants_booth * 100 / total_participants.to_f
end
end
def total_web_valid
stats_cache('total_web_valid') { voters.where(origin: 'web').count }
stats_cache("total_web_valid") { voters.where(origin: "web").count }
end
def valid_percentage_web
stats_cache('valid_percentage_web') do
stats_cache("valid_percentage_web") do
total_valid_votes.zero? ? 0 : total_web_valid * 100 / total_valid_votes.to_f
end
end
def total_web_white
stats_cache('total_web_white') { 0 }
stats_cache("total_web_white") { 0 }
end
def white_percentage_web
stats_cache('white_percentage_web') { 0 }
stats_cache("white_percentage_web") { 0 }
end
def total_web_null
stats_cache('total_web_null') { 0 }
stats_cache("total_web_null") { 0 }
end
def null_percentage_web
stats_cache('null_percentage_web') { 0 }
stats_cache("null_percentage_web") { 0 }
end
def total_booth_valid
stats_cache('total_booth_valid') { recounts.sum(:total_amount) }
stats_cache("total_booth_valid") { recounts.sum(:total_amount) }
end
def valid_percentage_booth
stats_cache('valid_percentage_booth') do
stats_cache("valid_percentage_booth") do
total_valid_votes.zero? ? 0 : total_booth_valid * 100 / total_valid_votes.to_f
end
end
def total_booth_white
stats_cache('total_booth_white') { recounts.sum(:white_amount) }
stats_cache("total_booth_white") { recounts.sum(:white_amount) }
end
def white_percentage_booth
stats_cache('white_percentage_booth') do
stats_cache("white_percentage_booth") do
total_white_votes.zero? ? 0 : total_booth_white * 100 / total_white_votes.to_f
end
end
def total_booth_null
stats_cache('total_booth_null') { recounts.sum(:null_amount) }
stats_cache("total_booth_null") { recounts.sum(:null_amount) }
end
def null_percentage_booth
stats_cache('null_percentage_booth') do
stats_cache("null_percentage_booth") do
total_null_votes.zero? ? 0 : total_booth_null * 100 / total_null_votes.to_f
end
end
def total_valid_votes
stats_cache('total_valid_votes') { total_web_valid + total_booth_valid }
stats_cache("total_valid_votes") { total_web_valid + total_booth_valid }
end
def total_valid_percentage
stats_cache('total_valid_percentage') do
stats_cache("total_valid_percentage") do
total_participants.zero? ? 0 : total_valid_votes * 100 / total_participants.to_f
end
end
def total_white_votes
stats_cache('total_white_votes') { total_web_white + total_booth_white }
stats_cache("total_white_votes") { total_web_white + total_booth_white }
end
def total_white_percentage
stats_cache('total_white_percentage') do
stats_cache("total_white_percentage") do
total_participants.zero? ? 0 : total_white_votes * 100 / total_participants.to_f
end
end
def total_null_votes
stats_cache('total_null_votes') { total_web_null + total_booth_null }
stats_cache("total_null_votes") { total_web_null + total_booth_null }
end
def total_null_percentage
stats_cache('total_null_percentage') do
stats_cache("total_null_percentage") do
total_participants.zero? ? 0 : total_null_votes * 100 / total_participants.to_f
end
end
def voters
stats_cache('voters') { @poll.voters }
stats_cache("voters") { @poll.voters }
end
def recounts
stats_cache('recounts') { @poll.recounts }
stats_cache("recounts") { @poll.recounts }
end
def stats_cache(key, &block)

View File

@@ -18,8 +18,8 @@ class Poll
before_validation :set_demographic_info, :set_document_info
scope :web, -> { where(origin: 'web') }
scope :booth, -> { where(origin: 'booth') }
scope :web, -> { where(origin: "web") }
scope :booth, -> { where(origin: "booth") }
def set_demographic_info
return if user.blank?

View File

@@ -29,7 +29,7 @@ class Proposal < ActiveRecord::Base
RETIRE_OPTIONS = %w(duplicated started unfeasible done other)
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :geozone
has_many :comments, as: :commentable, dependent: :destroy
has_many :proposal_notifications, dependent: :destroy
@@ -95,13 +95,13 @@ class Proposal < ActiveRecord::Base
end
def searchable_values
{ title => 'A',
question => 'B',
author.username => 'B',
tag_list.join(' ') => 'B',
geozone.try(:name) => 'B',
summary => 'C',
description => 'D'
{ title => "A",
question => "B",
author.username => "B",
tag_list.join(" ") => "B",
geozone.try(:name) => "B",
summary => "C",
description => "D"
}
end
@@ -179,15 +179,15 @@ class Proposal < ActiveRecord::Base
end
def after_hide
tags.each{ |t| t.decrement_custom_counter_for('Proposal') }
tags.each{ |t| t.decrement_custom_counter_for("Proposal") }
end
def after_restore
tags.each{ |t| t.increment_custom_counter_for('Proposal') }
tags.each{ |t| t.increment_custom_counter_for("Proposal") }
end
def self.votes_needed_for_success
Setting['votes_for_proposal_success'].to_i
Setting["votes_for_proposal_success"].to_i
end
def successful?
@@ -208,7 +208,7 @@ class Proposal < ActiveRecord::Base
def self.proposals_orders(user)
orders = %w{hot_score confidence_score created_at relevance archival_date}
orders << "recommendations" if Setting['feature.user.recommendations_on_proposals'] && user&.recommended_proposals
orders << "recommendations" if Setting["feature.user.recommendations_on_proposals"] && user&.recommended_proposals
return orders
end

View File

@@ -2,7 +2,7 @@ class ProposalNotification < ActiveRecord::Base
include Graphqlable
include Notifiable
belongs_to :author, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, class_name: "User", foreign_key: "author_id"
belongs_to :proposal
validates :title, presence: true
@@ -29,7 +29,7 @@ class ProposalNotification < ActiveRecord::Base
interval = Setting[:proposal_notification_minimum_interval_in_days]
minimum_interval = (Time.current - interval.to_i.days).to_datetime
if proposal.notifications.last.created_at > minimum_interval
errors.add(:title, I18n.t('activerecord.errors.models.proposal_notification.attributes.minimum_interval.invalid', interval: interval))
errors.add(:title, I18n.t("activerecord.errors.models.proposal_notification.attributes.minimum_interval.invalid", interval: interval))
end
end
@@ -38,7 +38,7 @@ class ProposalNotification < ActiveRecord::Base
end
def moderate_system_email(moderator)
Notification.where(notifiable_type: 'ProposalNotification', notifiable: self).destroy_all
Notification.where(notifiable_type: "ProposalNotification", notifiable: self).destroy_all
Activity.log(moderator, :hide, self)
end

View File

@@ -1,14 +1,14 @@
class RelatedContent < ActiveRecord::Base
RELATED_CONTENT_SCORE_THRESHOLD = Setting['related_content_score_threshold'].to_f
RELATED_CONTENT_SCORE_THRESHOLD = Setting["related_content_score_threshold"].to_f
RELATIONABLE_MODELS = %w{proposals debates budgets investments}.freeze
acts_as_paranoid column: :hidden_at
include ActsAsParanoidAliases
belongs_to :author, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, class_name: "User", foreign_key: "author_id"
belongs_to :parent_relationable, polymorphic: true, touch: true
belongs_to :child_relationable, polymorphic: true, touch: true
has_one :opposite_related_content, class_name: 'RelatedContent', foreign_key: :related_content_id
has_one :opposite_related_content, class_name: "RelatedContent", foreign_key: :related_content_id
has_many :related_content_scores
validates :parent_relationable_id, presence: true

View File

@@ -5,14 +5,14 @@ class Setting < ActiveRecord::Base
def type
if feature_flag?
'feature'
"feature"
else
'common'
"common"
end
end
def feature_flag?
key.start_with?('feature.')
key.start_with?("feature.")
end
def enabled?

View File

@@ -26,7 +26,7 @@ class Signature < ActiveRecord::Base
def assign_vote_to_user
set_user
if signable.is_a? Budget::Investment
signable.vote_by(voter: user, vote: 'yes') if [nil, :no_selecting_allowed].include?(signable.reason_for_not_being_selectable_by(user))
signable.vote_by(voter: user, vote: "yes") if [nil, :no_selecting_allowed].include?(signable.reason_for_not_being_selectable_by(user))
else
signable.register_vote(user, "yes")
end
@@ -49,7 +49,7 @@ class Signature < ActiveRecord::Base
verified_at: Time.current,
erased_at: Time.current,
password: random_password,
terms_of_service: '1',
terms_of_service: "1",
email: nil,
date_of_birth: @census_api_response.date_of_birth,
gender: @census_api_response.gender,
@@ -64,7 +64,7 @@ class Signature < ActiveRecord::Base
end
def random_password
(0...20).map { ('a'..'z').to_a[rand(26)] }.join
(0...20).map { ("a".."z").to_a[rand(26)] }.join
end
def in_census?

View File

@@ -1,6 +1,6 @@
class SignatureSheet < ActiveRecord::Base
belongs_to :signable, polymorphic: true
belongs_to :author, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, class_name: "User", foreign_key: "author_id"
VALID_SIGNABLES = %w(Proposal Budget::Investment SpendingProposal)
@@ -29,7 +29,7 @@ class SignatureSheet < ActiveRecord::Base
end
def parsed_document_numbers
document_numbers.split(/\r\n|\n|[,]/).collect {|d| d.gsub(/\s+/, '') }
document_numbers.split(/\r\n|\n|[,]/).collect {|d| d.gsub(/\s+/, "") }
end
def signable_found

View File

@@ -1,5 +1,5 @@
module SiteCustomization
def self.table_name_prefix
'site_customization_'
"site_customization_"
end
end

View File

@@ -6,7 +6,7 @@ class SpendingProposal < ActiveRecord::Base
acts_as_votable
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
belongs_to :geozone
belongs_to :administrator
has_many :valuation_assignments, dependent: :destroy
@@ -29,7 +29,7 @@ class SpendingProposal < ActiveRecord::Base
scope :feasible, -> { where(feasible: true) }
scope :unfeasible, -> { where(feasible: false) }
scope :not_unfeasible, -> { where("feasible IS ? OR feasible = ?", nil, true) }
scope :with_supports, -> { where('cached_votes_up > 0') }
scope :with_supports, -> { where("cached_votes_up > 0") }
scope :by_admin, ->(admin) { where(administrator_id: admin.presence) }
scope :by_tag, ->(tag_name) { tagged_with(tag_name) }
@@ -58,10 +58,10 @@ class SpendingProposal < ActiveRecord::Base
end
def searchable_values
{ title => 'A',
author.username => 'B',
geozone.try(:name) => 'B',
description => 'C'
{ title => "A",
author.username => "B",
geozone.try(:name) => "B",
description => "C"
}
end
@@ -70,7 +70,7 @@ class SpendingProposal < ActiveRecord::Base
end
def self.by_geozone(geozone)
if geozone == 'all'
if geozone == "all"
where(geozone_id: nil)
else
where(geozone_id: geozone.presence)

View File

@@ -28,7 +28,7 @@ class TagCloud
end
def default_blacklist
['']
[""]
end
def table_name

View File

@@ -4,7 +4,7 @@ class Topic < ActiveRecord::Base
include Notifiable
belongs_to :community
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id"
has_many :comments, as: :commentable

View File

@@ -23,14 +23,14 @@ class User < ActiveRecord::Base
has_many :identities, dependent: :destroy
has_many :debates, -> { with_hidden }, foreign_key: :author_id
has_many :proposals, -> { with_hidden }, foreign_key: :author_id
has_many :budget_investments, -> { with_hidden }, foreign_key: :author_id, class_name: 'Budget::Investment'
has_many :budget_investments, -> { with_hidden }, foreign_key: :author_id, class_name: "Budget::Investment"
has_many :comments, -> { with_hidden }
has_many :spending_proposals, foreign_key: :author_id
has_many :failed_census_calls
has_many :notifications
has_many :direct_messages_sent, class_name: 'DirectMessage', foreign_key: :sender_id
has_many :direct_messages_received, class_name: 'DirectMessage', foreign_key: :receiver_id
has_many :legislation_answers, class_name: 'Legislation::Answer', dependent: :destroy, inverse_of: :user
has_many :direct_messages_sent, class_name: "DirectMessage", foreign_key: :sender_id
has_many :direct_messages_received, class_name: "DirectMessage", foreign_key: :receiver_id
has_many :legislation_answers, class_name: "Legislation::Answer", dependent: :destroy, inverse_of: :user
has_many :follows
belongs_to :geozone
@@ -84,7 +84,7 @@ class User < ActiveRecord::Base
email: oauth_email,
oauth_email: oauth_email,
password: Devise.friendly_token[0, 20],
terms_of_service: '1',
terms_of_service: "1",
confirmed_at: oauth_email_confirmed ? DateTime.current : nil
)
end
@@ -177,7 +177,7 @@ class User < ActiveRecord::Base
end
def has_official_email?
domain = Setting['email_domain_for_officials']
domain = Setting["email_domain_for_officials"]
email.present? && ((email.end_with? "@#{domain}") || (email.end_with? ".#{domain}"))
end
@@ -251,11 +251,11 @@ class User < ActiveRecord::Base
end
def self.username_max_length
@@username_max_length ||= columns.find { |c| c.name == 'username' }.limit || 60
@@username_max_length ||= columns.find { |c| c.name == "username" }.limit || 60
end
def self.minimum_required_age
(Setting['min_age_to_participate'] || 16).to_i
(Setting["min_age_to_participate"] || 16).to_i
end
def show_welcome_screen?

View File

@@ -6,8 +6,8 @@ class Valuator < ActiveRecord::Base
has_many :valuation_assignments, dependent: :destroy
has_many :spending_proposals, through: :valuation_assignments
has_many :valuator_assignments, dependent: :destroy, class_name: 'Budget::ValuatorAssignment'
has_many :investments, through: :valuator_assignments, class_name: 'Budget::Investment'
has_many :valuator_assignments, dependent: :destroy, class_name: "Budget::ValuatorAssignment"
has_many :investments, through: :valuator_assignments, class_name: "Budget::Investment"
validates :user_id, presence: true, uniqueness: true

View File

@@ -1,7 +1,7 @@
class ValuatorGroup < ActiveRecord::Base
has_many :valuators
has_many :valuator_group_assignments, dependent: :destroy, class_name: 'Budget::ValuatorGroupAssignment'
has_many :investments, through: :valuator_group_assignments, class_name: 'Budget::Investment'
has_many :valuator_group_assignments, dependent: :destroy, class_name: "Budget::ValuatorGroupAssignment"
has_many :investments, through: :valuator_group_assignments, class_name: "Budget::Investment"
validates :name, presence: true, uniqueness: true
end

View File

@@ -22,14 +22,14 @@ class Verification::Letter
def validate_existing_user
unless user
errors.add(:email, I18n.t('devise.failure.invalid', authentication_keys: 'email'))
errors.add(:email, I18n.t("devise.failure.invalid", authentication_keys: "email"))
end
end
def validate_correct_code
return if errors.include?(:verification_code)
if user.try(:letter_verification_code).to_i != verification_code.to_i
errors.add(:verification_code, I18n.t('verification.letter.errors.incorrect_code'))
errors.add(:verification_code, I18n.t("verification.letter.errors.incorrect_code"))
end
end

View File

@@ -40,9 +40,9 @@ class Verification::Management::Email
def validate_user
return if errors.count > 0
if !user?
errors.add(:email, I18n.t('errors.messages.user_not_found'))
errors.add(:email, I18n.t("errors.messages.user_not_found"))
elsif user.level_three_verified?
errors.add(:email, I18n.t('management.email_verifications.already_verified'))
errors.add(:email, I18n.t("management.email_verifications.already_verified"))
end
end
@@ -50,7 +50,7 @@ class Verification::Management::Email
return if errors.count > 0
if document_number_mismatch?
errors.add(:email,
I18n.t('management.email_verifications.document_mismatch',
I18n.t("management.email_verifications.document_mismatch",
document_type: ApplicationController.helpers.humanize_document_type(user.document_type),
document_number: user.document_number))
end

View File

@@ -2,7 +2,7 @@ class Verification::Management::ManagedUser
include ActiveModel::Model
def self.find(document_type, document_number)
User.where('document_number is not null').
User.where("document_number is not null").
find_or_initialize_by(document_type: document_type,
document_number: document_number)
end

View File

@@ -18,8 +18,8 @@ class Verification::Residence
validate :document_number_uniqueness
def initialize(attrs = {})
self.date_of_birth = parse_date('date_of_birth', attrs)
attrs = remove_date('date_of_birth', attrs)
self.date_of_birth = parse_date("date_of_birth", attrs)
attrs = remove_date("date_of_birth", attrs)
super
clean_document_number
end
@@ -39,11 +39,11 @@ class Verification::Residence
def allowed_age
return if errors[:date_of_birth].any? || Age.in_years(date_of_birth) >= User.minimum_required_age
errors.add(:date_of_birth, I18n.t('verification.residence.new.error_not_allowed_age'))
errors.add(:date_of_birth, I18n.t("verification.residence.new.error_not_allowed_age"))
end
def document_number_uniqueness
errors.add(:document_number, I18n.t('errors.messages.taken')) if User.active.where(document_number: document_number).any?
errors.add(:document_number, I18n.t("errors.messages.taken")) if User.active.where(document_number: document_number).any?
end
def store_failed_attempt