diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb
index 00282d0..e90ac85 100644
--- a/app/controllers/members_controller.rb
+++ b/app/controllers/members_controller.rb
@@ -66,7 +66,7 @@ class MembersController < ApplicationController
# Only allow a list of trusted parameters through.
def member_params
- params.fetch(:member, {}).permit(:display_name, :email, :identification_number, :category, :address, :joined_on, :expires_on)
+ params.fetch(:member, {}).permit(:display_name, :email, :identification_number, :category, :address, :joined_on, :expires_on, :wants_mailing_list, :prefers_postal)
end
def sort_params
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index c4c7516..5ab5c71 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -6,4 +6,12 @@ module ApplicationHelper
def notification_status(status)
t("notifications.status.#{status}")
end
+
+ def bool_option(value)
+ if value
+ t('option.positive')
+ else
+ t('option.negative')
+ end
+ end
end
diff --git a/app/views/members/edit.html.erb b/app/views/members/edit.html.erb
index c850d4c..7250e70 100644
--- a/app/views/members/edit.html.erb
+++ b/app/views/members/edit.html.erb
@@ -34,6 +34,14 @@
|
<%= form.text_area :address %> |
+
+ |
+ <%= form.check_box :wants_mailing_list %> |
+
+
+ |
+ <%= form.check_box :prefers_postal %> |
+
<%= t('members.edit.edit_dates_warning') %> |
diff --git a/app/views/members/new.html.erb b/app/views/members/new.html.erb
index 80c2601..cb0280b 100644
--- a/app/views/members/new.html.erb
+++ b/app/views/members/new.html.erb
@@ -19,6 +19,8 @@
| <%= form.select :category, %w{student retired unemployed employed} %> |
| <%= form.text_field :identification_number %> |
| <%= form.text_area :address %> |
+ | <%= form.check_box :wants_mailing_list %> |
+ | <%= form.check_box :prefers_postal %> |
diff --git a/app/views/members/show.html.erb b/app/views/members/show.html.erb
index 5b09eda..08f0ad0 100644
--- a/app/views/members/show.html.erb
+++ b/app/views/members/show.html.erb
@@ -8,6 +8,9 @@
<%= t('members.attributes.category') %> | <%= @member.category %> |
<%= t('members.attributes.identification_number') %> | <%= @member.identification_number %> |
<%= t('members.attributes.address') %> | <%= simple_format @member.address %> |
+ <%= t('members.attributes.wants_mailing_list') %> | <%= bool_option @member.wants_mailing_list %> |
+ <%= t('members.attributes.prefers_postal') %> | <%= bool_option @member.prefers_postal %> |
+ <%= t('members.attributes.address') %> | <%= simple_format @member.address %> |
<%= t('members.attributes.joined_on') %> | <%= @member.joined_on %> |
<%= t('members.attributes.expires_on') %> | <%= @member.expires_on %> |
<%= t('members.attributes.status') %> | <%= @member.status %> |
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index 04fd018..f4f2107 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -1,4 +1,7 @@
pt:
+ option:
+ positive: "Sim"
+ negative: "Não"
navigation:
members: "Lista de membros"
members:
@@ -46,6 +49,8 @@ pt:
category: "Categoria"
identification_number: "N.º de identificação"
address: "Endereço postal"
+ wants_mailing_list: "Inscrição na lista de correio"
+ prefers_postal: "Prefere comunicação postal"
status:
any: "Qualquer"
active: "Activo"
diff --git a/db/migrate/20220625224650_add_preferences_to_members.rb b/db/migrate/20220625224650_add_preferences_to_members.rb
new file mode 100644
index 0000000..5d1a491
--- /dev/null
+++ b/db/migrate/20220625224650_add_preferences_to_members.rb
@@ -0,0 +1,8 @@
+class AddPreferencesToMembers < ActiveRecord::Migration[7.0]
+ def change
+ change_table :members do |t|
+ t.boolean :wants_mailing_list, null: false, default: false
+ t.boolean :prefers_postal, null: false, default: false
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index e66b68e..652f0eb 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[7.0].define(version: 2022_06_25_210821) do
+ActiveRecord::Schema[7.0].define(version: 2022_06_25_224650) do
# These are extensions that must be enabled in order to support this database
enable_extension "pgcrypto"
enable_extension "plpgsql"
@@ -41,6 +41,8 @@ ActiveRecord::Schema[7.0].define(version: 2022_06_25_210821) do
t.string "regular_ifthenpay_link"
t.string "reduced_ifthenpay_link"
t.boolean "excluded", default: false
+ t.boolean "wants_mailing_list", default: false, null: false
+ t.boolean "prefers_postal", default: false, null: false
t.index ["email"], name: "index_members_on_email", unique: true
t.index ["number"], name: "index_members_on_number", unique: true
end