diff --git a/app/models/member.rb b/app/models/member.rb
index 9650494..77c9e52 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -48,4 +48,8 @@ def self.filter_by_can_rent(filter_can_rent = false)
end
end
+ def senior?
+ date_of_birth.present? && date_of_birth < 60.years.ago.to_date
+ end
+
end
diff --git a/app/views/members/index.html.erb b/app/views/members/index.html.erb
index df059a5..5a1654b 100644
--- a/app/views/members/index.html.erb
+++ b/app/views/members/index.html.erb
@@ -41,11 +41,16 @@
<%= member.custom_number %> |
<%= member.tamil_name %> |
- <% if policy(member).edit? %>
- <%= link_to member.name, edit_member_path(member), class: 'link-primary' %>
- <% else %>
- <%= member.name %>
- <% end %>
+
+ <% if policy(member).edit? %>
+ <%= link_to member.name, edit_member_path(member), class: 'link-primary' %>
+ <% else %>
+ <%= member.name %>
+ <% end %>
+ <% if member.senior? %>
+ <%= t('senior_member') %>
+ <% end %>
+
|
<%= member.personal_number %> |
<%= member.section %> |
diff --git a/config/locales/en.yml b/config/locales/en.yml
index e53d271..fa21f1a 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1,5 +1,6 @@
en:
members: "Members"
+ senior_member: "Senior"
new_member: "New Member"
search_by_name_id_or_personal_number: "Search by name, ID or personal number"
search: "Search"
diff --git a/config/locales/ta.yml b/config/locales/ta.yml
index 2269ad7..dcb7549 100644
--- a/config/locales/ta.yml
+++ b/config/locales/ta.yml
@@ -1,5 +1,6 @@
ta:
members: "உறுப்பினர்கள்"
+ senior_member: "மூத்த உறுப்பினர்"
new_member: "புதிய உறுப்பினர்"
search_by_name_id_or_personal_number: "உறுப்பினர் எண், பெயர் அல்லது நிரந்தர எண் மூலம் தேடவும்"
search: "தேடு"
diff --git a/test/controllers/members_controller_test.rb b/test/controllers/members_controller_test.rb
index d20296c..d617a2a 100644
--- a/test/controllers/members_controller_test.rb
+++ b/test/controllers/members_controller_test.rb
@@ -156,6 +156,17 @@ class MembersControllerTest < ActionDispatch::IntegrationTest
assert_select 'td', text: member.name
end
+ test 'member list marks members older than 60 as senior' do
+ member = members(:johnny)
+ member.update!(date_of_birth: 61.years.ago.to_date)
+ log_in_as(staffs(:admino))
+
+ get members_path
+
+ assert_response :success
+ assert_select 'span', text: I18n.t('senior_member'), count: 1
+ end
+
test 'should throw flash when creating a second member with same mobile number' do
log_in_as staffs(:admino)
assert_difference 'Member.count' do
diff --git a/test/models/member_test.rb b/test/models/member_test.rb
index 4c02f97..540915d 100644
--- a/test/models/member_test.rb
+++ b/test/models/member_test.rb
@@ -122,4 +122,23 @@ def setup
Member.expects(:all).once
Member.filter_by_can_rent('false')
end
+
+ test 'senior? is true only when the member is older than 60' do
+ travel_to Date.new(2026, 8, 31) do
+ @member.date_of_birth = Date.new(1966, 8, 30)
+ assert_predicate @member, :senior?
+
+ @member.date_of_birth = Date.new(1966, 8, 31)
+ assert_not_predicate @member, :senior?
+
+ @member.date_of_birth = Date.new(1966, 9, 1)
+ assert_not_predicate @member, :senior?
+ end
+ end
+
+ test 'senior? is false when the date of birth is missing' do
+ @member.date_of_birth = nil
+
+ assert_not_predicate @member, :senior?
+ end
end