diff --git a/routes/noyau.rb b/routes/noyau.rb index cb47301..3c500bb 100644 --- a/routes/noyau.rb +++ b/routes/noyau.rb @@ -1,4 +1,3 @@ - class Netig hash_branch "noyau" do |r| require_core_member!(r) @@ -25,10 +24,26 @@ class Netig .order(Sequel[:members][:id]) .all + memberships_by_member = DB[:memberships] + .order(Sequel.desc(:requested_at), Sequel.desc(:id)) + .all + .group_by { |membership| membership[:member_id] } + + @members.each do |member| + memberships = memberships_by_member.fetch(member[:id], []) + + membership = memberships.find do |item| + %w[pending accepted].include?(item[:status]) + end + + membership ||= memberships.first + + member[:membership_status] = membership && membership[:status] + end + view "noyau/members" end end end end end - diff --git a/views/noyau/members.erb b/views/noyau/members.erb index ef4a03e..62a4281 100644 --- a/views/noyau/members.erb +++ b/views/noyau/members.erb @@ -11,6 +11,7 @@ Identité Type Membre du Noyau + Adhésion Adresse électronique @@ -28,6 +29,14 @@ "Personne physique" : "Personne morale" %> <%= member[:core_member] ? "Oui" : "Non" %> + + <%= case member[:membership_status] + when "pending" then "En attente" + when "accepted" then "Acceptée" + when "rejected" then "Refusée" + else "Aucune demande" + end %> + <%= member[:email] %> <% end %>