Apply Rails/SaveBang rubocop rule
Having exceptions is better than having silent bugs.
There are a few methods I've kept the same way they were.
The `RelatedContentScore#score_with_opposite` method is a bit peculiar:
it creates scores for both itself and the opposite related content,
which means the opposite related content will try to create the same
scores as well.
We've already got a test to check `Budget::Ballot#add_investment` when
creating a line fails ("Edge case voting a non-elegible investment").
Finally, the method `User#send_oauth_confirmation_instructions` doesn't
update the record when the email address isn't already present, leading
to the test "Try to register with the email of an already existing user,
when an unconfirmed email was provided by oauth" fo fail if we raise an
exception for an invalid user. That's because updating a user's email
doesn't update the database automatically, but instead a confirmation
email is sent.
There are also a few false positives for classes which don't have bang
methods (like the GraphQL classes) or destroying attachments.
For these reasons, I'm adding the rule with a "Refactor" severity,
meaning it's a rule we can break if necessary.
This commit is contained in:
@@ -20,9 +20,9 @@ section "Creating banners" do
|
||||
end
|
||||
|
||||
section "Creating web sections" do
|
||||
WebSection.create(name: "homepage")
|
||||
WebSection.create(name: "debates")
|
||||
WebSection.create(name: "proposals")
|
||||
WebSection.create(name: "budgets")
|
||||
WebSection.create(name: "help_page")
|
||||
WebSection.create!(name: "homepage")
|
||||
WebSection.create!(name: "debates")
|
||||
WebSection.create!(name: "proposals")
|
||||
WebSection.create!(name: "budgets")
|
||||
WebSection.create!(name: "help_page")
|
||||
end
|
||||
|
||||
@@ -21,18 +21,18 @@ def add_image_to(imageable)
|
||||
attachment: INVESTMENT_IMAGE_FILES.sample,
|
||||
user: imageable.author
|
||||
})
|
||||
imageable.save
|
||||
imageable.save!
|
||||
end
|
||||
|
||||
section "Creating Budgets" do
|
||||
Budget.create(
|
||||
Budget.create!(
|
||||
name_en: "#{I18n.t("seeds.budgets.budget", locale: :en)} #{Date.current.year - 1}",
|
||||
name_es: "#{I18n.t("seeds.budgets.budget", locale: :es)} #{Date.current.year - 1}",
|
||||
currency_symbol: I18n.t("seeds.budgets.currency"),
|
||||
phase: "finished"
|
||||
)
|
||||
|
||||
Budget.create(
|
||||
Budget.create!(
|
||||
name_en: "#{I18n.t("seeds.budgets.budget", locale: :en)} #{Date.current.year}",
|
||||
name_es: "#{I18n.t("seeds.budgets.budget", locale: :es)} #{Date.current.year}",
|
||||
currency_symbol: I18n.t("seeds.budgets.currency"),
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
section "Creating Geozones" do
|
||||
Geozone.create(name: I18n.t("seeds.geozones.north_district"),
|
||||
external_code: "001", census_code: "01",
|
||||
html_map_coordinates: "30,139,45,153,77,148,107,165,138,201,146,218,186,198,216,"\
|
||||
"196,233,203,240,215,283,194,329,185,377,184,388,165,369,126,333,113,334,84,320,"\
|
||||
"66,286,73,258,65,265,57,249,47,207,58,159,84,108,85,72,101,51,114")
|
||||
Geozone.create(name: I18n.t("seeds.geozones.west_district"),
|
||||
external_code: "002", census_code: "02",
|
||||
html_map_coordinates: "42,153,31,176,24,202,20,221,44,235,59,249,55,320,30,354,"\
|
||||
"31,372,52,396,64,432,89,453,116,432,149,419,162,412,165,377,172,357,189,352,228,"\
|
||||
"327,246,313,262,297,234,291,210,284,193,284,176,294,158,303,154,310,146,289,140,"\
|
||||
"268,138,246,135,236,139,222,151,214,136,197,120,179,99,159,85,149,65,149,56,149")
|
||||
Geozone.create(name: I18n.t("seeds.geozones.east_district"),
|
||||
external_code: "003", census_code: "03",
|
||||
html_map_coordinates: "175,353,162,378,161,407,153,416,167,432,184,447,225,426,"\
|
||||
"250,409,283,390,298,369,344,363,351,334,356,296,361,267,376,245,378,185,327,188,"\
|
||||
"281,195,239,216,245,221,245,232,261,244,281,238,300,242,304,251,285,262,278,277,"\
|
||||
"267,294,249,312,219,333,198,346,184,353")
|
||||
Geozone.create(name: I18n.t("seeds.geozones.central_district"),
|
||||
external_code: "004", census_code: "04",
|
||||
html_map_coordinates: "152,308,137,258,133,235,147,216,152,214,186,194,210,196,"\
|
||||
"228,202,240,216,241,232,263,243,293,241,301,245,302,254,286,265,274,278,267,296,"\
|
||||
"243,293,226,289,209,285,195,283,177,297")
|
||||
Geozone.create!(name: I18n.t("seeds.geozones.north_district"),
|
||||
external_code: "001", census_code: "01",
|
||||
html_map_coordinates: "30,139,45,153,77,148,107,165,138,201,146,218,186,198,216,"\
|
||||
"196,233,203,240,215,283,194,329,185,377,184,388,165,369,126,333,113,334,84,320,"\
|
||||
"66,286,73,258,65,265,57,249,47,207,58,159,84,108,85,72,101,51,114")
|
||||
Geozone.create!(name: I18n.t("seeds.geozones.west_district"),
|
||||
external_code: "002", census_code: "02",
|
||||
html_map_coordinates: "42,153,31,176,24,202,20,221,44,235,59,249,55,320,30,354,"\
|
||||
"31,372,52,396,64,432,89,453,116,432,149,419,162,412,165,377,172,357,189,352,228,"\
|
||||
"327,246,313,262,297,234,291,210,284,193,284,176,294,158,303,154,310,146,289,140,"\
|
||||
"268,138,246,135,236,139,222,151,214,136,197,120,179,99,159,85,149,65,149,56,149")
|
||||
Geozone.create!(name: I18n.t("seeds.geozones.east_district"),
|
||||
external_code: "003", census_code: "03",
|
||||
html_map_coordinates: "175,353,162,378,161,407,153,416,167,432,184,447,225,426,"\
|
||||
"250,409,283,390,298,369,344,363,351,334,356,296,361,267,376,245,378,185,327,188,"\
|
||||
"281,195,239,216,245,221,245,232,261,244,281,238,300,242,304,251,285,262,278,277,"\
|
||||
"267,294,249,312,219,333,198,346,184,353")
|
||||
Geozone.create!(name: I18n.t("seeds.geozones.central_district"),
|
||||
external_code: "004", census_code: "04",
|
||||
html_map_coordinates: "152,308,137,258,133,235,147,216,152,214,186,194,210,196,"\
|
||||
"228,202,240,216,241,232,263,243,293,241,301,245,302,254,286,265,274,278,267,296,"\
|
||||
"243,293,226,289,209,285,195,283,177,297")
|
||||
end
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
section "Creating default Milestone Statuses" do
|
||||
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.studying_project"))
|
||||
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.bidding"))
|
||||
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.executing_project"))
|
||||
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.executed"))
|
||||
Milestone::Status.create!(name: I18n.t("seeds.budgets.statuses.studying_project"))
|
||||
Milestone::Status.create!(name: I18n.t("seeds.budgets.statuses.bidding"))
|
||||
Milestone::Status.create!(name: I18n.t("seeds.budgets.statuses.executing_project"))
|
||||
Milestone::Status.create!(name: I18n.t("seeds.budgets.statuses.executed"))
|
||||
end
|
||||
|
||||
section "Creating investment milestones" do
|
||||
|
||||
@@ -3,36 +3,35 @@ require_dependency "poll/question/answer"
|
||||
|
||||
section "Creating polls" do
|
||||
|
||||
Poll.create(name: I18n.t("seeds.polls.current_poll"),
|
||||
slug: I18n.t("seeds.polls.current_poll").parameterize,
|
||||
starts_at: 7.days.ago,
|
||||
ends_at: 7.days.from_now,
|
||||
geozone_restricted: false)
|
||||
Poll.create!(name: I18n.t("seeds.polls.current_poll"),
|
||||
slug: I18n.t("seeds.polls.current_poll").parameterize,
|
||||
starts_at: 7.days.ago,
|
||||
ends_at: 7.days.from_now,
|
||||
geozone_restricted: false)
|
||||
|
||||
Poll.create(name: I18n.t("seeds.polls.current_poll_geozone_restricted"),
|
||||
slug: I18n.t("seeds.polls.current_poll_geozone_restricted").parameterize,
|
||||
starts_at: 5.days.ago,
|
||||
ends_at: 5.days.from_now,
|
||||
geozone_restricted: true,
|
||||
geozones: Geozone.reorder("RANDOM()").limit(3))
|
||||
Poll.create!(name: I18n.t("seeds.polls.current_poll_geozone_restricted"),
|
||||
slug: I18n.t("seeds.polls.current_poll_geozone_restricted").parameterize,
|
||||
starts_at: 5.days.ago,
|
||||
ends_at: 5.days.from_now,
|
||||
geozone_restricted: true,
|
||||
geozones: Geozone.reorder("RANDOM()").limit(3))
|
||||
|
||||
Poll.create(name: I18n.t("seeds.polls.recounting_poll"),
|
||||
slug: I18n.t("seeds.polls.recounting_poll").parameterize,
|
||||
starts_at: 15.days.ago,
|
||||
ends_at: 2.days.ago)
|
||||
Poll.create!(name: I18n.t("seeds.polls.recounting_poll"),
|
||||
slug: I18n.t("seeds.polls.recounting_poll").parameterize,
|
||||
starts_at: 15.days.ago,
|
||||
ends_at: 2.days.ago)
|
||||
|
||||
Poll.create(name: I18n.t("seeds.polls.expired_poll_without_stats"),
|
||||
slug: I18n.t("seeds.polls.expired_poll_without_stats").parameterize,
|
||||
Poll.create!(name: I18n.t("seeds.polls.expired_poll_without_stats"),
|
||||
slug: I18n.t("seeds.polls.expired_poll_without_stats").parameterize,
|
||||
starts_at: 2.months.ago,
|
||||
ends_at: 1.month.ago)
|
||||
|
||||
starts_at: 2.months.ago,
|
||||
ends_at: 1.month.ago)
|
||||
|
||||
Poll.create(name: I18n.t("seeds.polls.expired_poll_with_stats"),
|
||||
slug: I18n.t("seeds.polls.expired_poll_with_stats").parameterize,
|
||||
starts_at: 2.months.ago,
|
||||
ends_at: 1.month.ago,
|
||||
results_enabled: true,
|
||||
stats_enabled: true)
|
||||
Poll.create!(name: I18n.t("seeds.polls.expired_poll_with_stats"),
|
||||
slug: I18n.t("seeds.polls.expired_poll_with_stats").parameterize,
|
||||
starts_at: 2.months.ago,
|
||||
ends_at: 1.month.ago,
|
||||
results_enabled: true,
|
||||
stats_enabled: true)
|
||||
|
||||
Poll.find_each do |poll|
|
||||
name = poll.name
|
||||
|
||||
@@ -18,7 +18,7 @@ def add_image_to(imageable)
|
||||
attachment: IMAGE_FILES.sample,
|
||||
user: imageable.author
|
||||
})
|
||||
imageable.save
|
||||
imageable.save!
|
||||
end
|
||||
|
||||
section "Creating Proposals" do
|
||||
|
||||
@@ -22,49 +22,49 @@ section "Creating Users" do
|
||||
|
||||
admin = create_user("admin@consul.dev", "admin")
|
||||
admin.create_administrator
|
||||
admin.update(residence_verified_at: Time.current,
|
||||
admin.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||
verified_at: Time.current, document_number: unique_document_number)
|
||||
|
||||
moderator = create_user("mod@consul.dev", "moderator")
|
||||
moderator.create_moderator
|
||||
moderator.update(residence_verified_at: Time.current,
|
||||
moderator.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||
verified_at: Time.current, document_number: unique_document_number)
|
||||
|
||||
manager = create_user("manager@consul.dev", "manager")
|
||||
manager.create_manager
|
||||
manager.update(residence_verified_at: Time.current,
|
||||
manager.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||
verified_at: Time.current, document_number: unique_document_number)
|
||||
|
||||
valuator = create_user("valuator@consul.dev", "valuator")
|
||||
valuator.create_valuator
|
||||
valuator.update(residence_verified_at: Time.current,
|
||||
valuator.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||
verified_at: Time.current, document_number: unique_document_number)
|
||||
|
||||
poll_officer = create_user("poll_officer@consul.dev", "Paul O. Fisher")
|
||||
poll_officer.create_poll_officer
|
||||
poll_officer.update(residence_verified_at: Time.current,
|
||||
poll_officer.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||
verified_at: Time.current, document_number: unique_document_number)
|
||||
|
||||
poll_officer2 = create_user("poll_officer2@consul.dev", "Pauline M. Espinosa")
|
||||
poll_officer2.create_poll_officer
|
||||
poll_officer2.update(residence_verified_at: Time.current,
|
||||
poll_officer2.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||
verified_at: Time.current, document_number: unique_document_number)
|
||||
|
||||
create_user("unverified@consul.dev", "unverified")
|
||||
|
||||
level_2 = create_user("leveltwo@consul.dev", "level 2")
|
||||
level_2.update(residence_verified_at: Time.current,
|
||||
level_2.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number,
|
||||
document_number: unique_document_number, document_type: "1")
|
||||
|
||||
verified = create_user("verified@consul.dev", "verified")
|
||||
verified.update(residence_verified_at: Time.current,
|
||||
verified.update!(residence_verified_at: Time.current,
|
||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||
verified_at: Time.current, document_number: unique_document_number)
|
||||
|
||||
@@ -80,7 +80,7 @@ section "Creating Users" do
|
||||
|
||||
5.times do |i|
|
||||
official = create_user("official#{i}@consul.dev", "Official #{i}")
|
||||
official.update(official_level: i, official_position: "Official position #{i}")
|
||||
official.update!(official_level: i, official_position: "Official position #{i}")
|
||||
end
|
||||
|
||||
30.times do |i|
|
||||
|
||||
10
db/seeds.rb
10
db/seeds.rb
@@ -9,11 +9,11 @@ end
|
||||
|
||||
Setting.reset_defaults
|
||||
|
||||
WebSection.where(name: "homepage").first_or_create
|
||||
WebSection.where(name: "debates").first_or_create
|
||||
WebSection.where(name: "proposals").first_or_create
|
||||
WebSection.where(name: "budgets").first_or_create
|
||||
WebSection.where(name: "help_page").first_or_create
|
||||
WebSection.where(name: "homepage").first_or_create!
|
||||
WebSection.where(name: "debates").first_or_create!
|
||||
WebSection.where(name: "proposals").first_or_create!
|
||||
WebSection.where(name: "budgets").first_or_create!
|
||||
WebSection.where(name: "help_page").first_or_create!
|
||||
|
||||
# Default custom pages
|
||||
load Rails.root.join("db", "pages.rb")
|
||||
|
||||
Reference in New Issue
Block a user