module NosOignons
BOARD_EMAIL = 'ca@nos-oignons.net'
+ ADVISORS_EMAIL = 'deontologie@nos-oignons.net'
MEMBER_MAILING_LIST = 'ag'
+ CONTACT_INFO = <<-EOT.gsub(/^ /, '')
+ https://nos-oignons.net/
+ contact@nos-oignons.net
+ Téléphone : +33 9 72 42 96 04
+ Fax : +33 9 72 42 96 06
+ EOT
+ POSTAL_ADDRESS = <<-EOT.gsub(/^ /, '')
+ Nos oignons
+ Centre UBIDOCA, 7585
+ 105 route des Pommiers
+ 74370 Saint Martin Bellevue
+ France
+ EOT
# The following class methods are all meant to be called as command-line scripts
class << self
+ def create_membership_fee_reciept!(member_id, amount)
+ member = NosOignons::Member.new(member_id)
+ member.create_reciept!(amount)
+ end
+
def list_emails!
NosOignons::Member.all.each do |member|
if member.up_to_date?
def send_membership_reminders!
today = Time.now.to_date
NosOignons::Member.all.select(&:up_to_date?).each do |member|
+ anniversary = Time.new(today.year, member.joined_on.month,
+ member.joined_on.day).to_date
+ next if member.membership_fee_paid_on >= anniversary
+ next if member.reminded_on && member.reminded_on >= today
NosOignons::Reminder.all.sort_by(&:days).reverse.each do |reminder|
- anniversary = Time.new(today.year, member.joined_on.month,
- member.joined_on.day).to_date
-
- next if member.membership_fee_paid_on > anniversary
- next if member.membership_fee_paid_on > today - reminder.days
- next if anniversary > today - reminder.days
- next if member.reminded_on && member.reminded_on >= today
+ next if anniversary < today + reminder.days
member.remind(reminder)
break
end
end
+ def send_member_emails_to_advisors!
+ uptodate_emails = NosOignons::Member.all.select(&:up_to_date?).collect(&:email)
+ subject = 'Adresses emails des members à jour de cotisation'
+ body = <<-END_OF_BODY.gsub(/^ /, '')
+ Cher comité de déontologie de Nos oignons,
+
+ Comme le prévoit les statuts l'article 12 des statuts de l'association,
+ vous devez être en mesure de pouvoir convoquer une assemblée générale
+ extraordinaire. Pour ce faire, voici donc la liste des emails à jour
+ de cotisation à la date d'aujourd'hui :
+
+ #{uptodate_emails.join("\n")}
+
+ Et merci encore de votre engagement auprès de Nos oignons !
+
+ --
+ Le robot du conseil d'administration
+ END_OF_BODY
+ mail = Mail.new :charset => 'utf-8',
+ :from => NosOignons::BOARD_EMAIL,
+ :to => NosOignons::ADVISORS_EMAIL,
+ :subject => subject,
+ :body => body
+ mail.deliver
+ end
+
def pre_commit_hook!
if system('git rev-parse --quiet --verify HEAD >/dev/null')
against = 'HEAD'
begin
# Use empty ref to get the index
NosOignons::Member.read_from_git('', file)
- rescue ArgumentError
+ rescue ArgumentError, Psych::SyntaxError
$stderr.puts "Désolé : #{file} n'a pas le bon format !"
exit 1
end
next unless file.start_with?("#{NosOignons::MEMBERS_DB_DIR}/")
begin
NosOignons::Member.read_from_git(new_value, file)
- rescue ArgumentError
+ rescue ArgumentError, Psych::SyntaxError
$stderr.puts "Désolé : #{file} n'a pas le bon format !"
exit 1
end