diff --git a/bin/initialize-core b/bin/initialize-core index c2988ae..900974f 100644 --- a/bin/initialize-core +++ b/bin/initialize-core @@ -1,12 +1,11 @@ #!/usr/bin/env ruby +require "dotenv/load" if ENV.fetch("RACK_ENV", "development") == "development" + environment = ENV.fetch("RACK_ENV", "development") -require "dotenv/load" if environment == "development" abort "Environnement non pris en charge." unless - %w[development production].include?( - ENV.fetch("RACK_ENV", "development") - ) + %w[development production].include?(environment) require "date" require "io/console" @@ -97,15 +96,6 @@ members = emails.map do |email| [email, find_member.call(email)] end -console.puts -console.print "Adresse de la personne qui enregistre la décision : " -recorded_by_email = console.gets&.strip&.downcase - -abort "Adresse électronique obligatoire." if - recorded_by_email.to_s.empty? - -recorded_by = find_member.call(recorded_by_email) - console.puts console.puts "Environnement : #{environment}" console.puts "Date de l'assemblée : #{assembly_date}" @@ -117,8 +107,6 @@ members.each do |email, member| console.puts " #{name} (#{email})" end -console.puts -console.puts "Décision enregistrée par : #{recorded_by_email}" console.puts console.print "Confirmer l'initialisation ? [o/N] " @@ -136,8 +124,7 @@ DB.transaction do membership = DB[:memberships] .where( member_id: member[:id], - status: %w[pending accepted], - ended_at: nil + status: %w[pending accepted] ) .first @@ -147,7 +134,7 @@ DB.transaction do .update( status: "accepted", decided_at: assembly_datetime, - recorded_by: recorded_by[:id] + recorded_by: nil ) elsif membership.nil? DB[:memberships].insert( @@ -155,7 +142,7 @@ DB.transaction do status: "accepted", requested_at: assembly_datetime, decided_at: assembly_datetime, - recorded_by: recorded_by[:id] + recorded_by: nil ) end @@ -165,5 +152,4 @@ DB.transaction do end end -puts "Noyau initialisé (#{members.length} membres)." - +puts "Membres du Noyau enregistrés (#{members.length})." diff --git a/db/migrations/003_create_memberships.rb b/db/migrations/003_create_memberships.rb index 09a338b..3e8164d 100644 --- a/db/migrations/003_create_memberships.rb +++ b/db/migrations/003_create_memberships.rb @@ -18,16 +18,12 @@ Sequel.migration do foreign_key :recorded_by, :members, type: :Bignum - DateTime :ended_at - String :end_reason - index :status - # Un seul dossier en attente ou une seule adhésion - # en cours par adhérent. + # Un seul dossier en attente ou une seule adhésion acceptée. index :member_id, unique: true, - where: { status: ["pending", "accepted"], ended_at: nil } + where: { status: ["pending", "accepted"] } constraint :memberships_status_valid, Sequel.lit("status IN ('pending', 'accepted', 'rejected')") @@ -37,15 +33,7 @@ Sequel.migration do "(status = 'pending' AND decided_at IS NULL " \ "AND recorded_by IS NULL) " \ "OR (status IN ('accepted', 'rejected') " \ - "AND decided_at IS NOT NULL AND recorded_by IS NOT NULL)" - ) - - constraint :memberships_end_consistent, - Sequel.lit( - "(ended_at IS NULL AND end_reason IS NULL) " \ - "OR (status = 'accepted' AND ended_at IS NOT NULL " \ - "AND end_reason IN ('resignation', 'death', " \ - "'dissolution', 'exclusion'))" + "AND decided_at IS NOT NULL)" ) end end diff --git a/lib/authorization.rb b/lib/authorization.rb index 9349eb5..c0c3083 100644 --- a/lib/authorization.rb +++ b/lib/authorization.rb @@ -10,8 +10,7 @@ class Netig Sequel[:members][:account_id] => rodauth.account_id, Sequel[:members][:kind] => "individual", Sequel[:members][:core_member] => true, - Sequel[:memberships][:status] => "accepted", - Sequel[:memberships][:ended_at] => nil + Sequel[:memberships][:status] => "accepted" ) .count .positive? diff --git a/views/noyau/members.erb b/views/noyau/members.erb index 49bc675..ef4a03e 100644 --- a/views/noyau/members.erb +++ b/views/noyau/members.erb @@ -10,6 +10,7 @@ Identité Type + Membre du Noyau Adresse électronique @@ -26,6 +27,7 @@ <%= member[:kind] == "individual" ? "Personne physique" : "Personne morale" %> + <%= member[:core_member] ? "Oui" : "Non" %> <%= member[:email] %> <% end %> @@ -34,4 +36,3 @@ <% end %> -