Commit 555cb9c2 authored by David F.'s avatar David F.

Merge branch...

Merge branch '97-liste-des-saisons-disponible-sur-la-page-plateforme-de-la-zone-d-administration' into 'master'

Resolve "Liste des saisons disponible sur la page Plateforme de la zone d'administration"

See merge request !96
parents 0105f357 454a7b74
# Suivi des évolutions
## 1.3.x
### Nouvelles fonctionnalités
- Évolution de la Plateforme Sport et Handicap Psychique :
- gestion des saisons
- renouvellement des adhésions
### Corrections
- [1.3.1] Saisons absentes dans le menu déroulant (#97)
## 1.2.x
### Nouvelles fonctionnalités
......@@ -10,27 +22,34 @@
- suivi des adhésions et de la facturation par les administrateurs
- Migration de Google Maps vers Openstreetmap (#12)
### Corrections
- [1.2] Liens cassés dans le PDF du calendrier (#91)
- [1.2] Débordement des grandes images (#65)
- [1.2] Mauvaise redirection après édition d'un membre (#69
- [1.2] Listing des institutions par ordre alphabétiue (#87)
## 1.1.x
### Nouvelles fonctionnalités
- Possibilité d'associer plusieurs images à chaque item d'une lettre d'information et de les afficher en plein écran (#1 et #2) ;
- Affichage d'une mini carte sur la page d'un événement (#8) ;
- Possibilité d'associer plusieurs images à chaque item d'une lettre d'information et de les afficher en plein écran (#1 et #2)
- Affichage d'une mini carte sur la page d'un événement (#8)
- Note : pour géolocaliser les événements déjà enregistrés, utiliser la commande `bundle exec rake geocode:all CLASS=Event SLEEP=0.25 BATCH=100`
- Possibilité de dupliquer une information depuis le listing (#9).
- Possibilité de dupliquer une information depuis le listing (#9)
### Corrections
- [1.1] Problème à l'édition des numéros de téléphone d'un contact (#14) ;
- [1.1.1] Problème à la génération PDF des lettres d'information (#2) ;
- [1.1.2] Problème d'affichage des cartes Google Maps (#21) ;
- [1.1.3] Correction du *copyright* (#18) ;
- [1.1.3] Problème à l'impression d'un calendrier (#5) ;
- [1.1.4] Liens cassés dans les PDF des calendriers (#22) ;
- [1.1.5] Problème d'affichage du lien "Éditer" sur les autres fiches-membres (#24) ;
- [1.1.5] Intégration des polices d'écriture à l'application (#13) ;
- [1.1.5] Mise à jour de Rails à la version 3.2.22.5 (#25) ;
- [1.1.6] Compatibilité complète avec SSL/TLS (#26).
- [1.1] Problème à l'édition des numéros de téléphone d'un contact (#14)
- [1.1.1] Problème à la génération PDF des lettres d'information (#2)
- [1.1.2] Problème d'affichage des cartes Google Maps (#21)
- [1.1.3] Correction du *copyright* (#18)
- [1.1.3] Problème à l'impression d'un calendrier (#5)
- [1.1.4] Liens cassés dans les PDF des calendriers (#22)
- [1.1.5] Problème d'affichage du lien "Éditer" sur les autres fiches-membres (#24)
- [1.1.5] Intégration des polices d'écriture à l'application (#13)
- [1.1.5] Mise à jour de Rails à la version 3.2.22.5 (#25)
- [1.1.6] Compatibilité complète avec SSL/TLS (#26)
- [1.1.7] Possibilité de renommer les menus *fixes* (#27)
- [1.1.8] Passage à Ruby 2.3.4
- [1.1.9] N'afficher le menu *Où pratiquer* que si nécessaire (#54)
......
......@@ -43,14 +43,16 @@ class Season
end
def self.all(klass, date_field=:begin_at)
min_year = klass.send(:minimum, date_field).try(:year)
max_year = klass.send(:maximum, date_field).try(:year)
return [] unless min_year && max_year
min_date = klass.send(:minimum, date_field)
max_date = klass.send(:maximum, date_field)
return [] unless min_date && max_date
[].tap do |years|
(min_year..max_year).each do |year|
season = self.new(self.birthdate.change(year: year))
years << season.short_label
[].tap do |seasons|
date = min_date
loop do
seasons << self.new(date).short_label
date += 1.year
break if date > max_date
end
end
end
......
......@@ -112,12 +112,25 @@ RSpec.describe Season, type: :model do
expect(result).to eq expected
end
it "returns only one if all data within same season" do
# Given
create :event, begin_at: Date.new(2017,9,1)
create :event, begin_at: Date.new(2017,12,18)
create :event, begin_at: Date.new(2018,5,19)
create :event, begin_at: Date.new(2018,8,31)
expected = ["2017-2018"]
# When
result = Season.all(Event)
# Then
expect(result).to eq expected
end
it "based on :begin_at if no field provided" do
# Given
create :event, begin_at: Date.new(2016,9,1)
create :event, begin_at: Date.new(2017,4,1)
create :event, begin_at: Date.new(2017,9,1)
create :event, begin_at: Date.new(2018,9,1)
expected = ["2016-2017","2017-2018","2018-2019"]
create :event, begin_at: Date.new(2018,8,31)
expected = ["2016-2017","2017-2018"]
# When
result = Season.all(Event)
# Then
......@@ -126,10 +139,10 @@ RSpec.describe Season, type: :model do
it "based on the provided field" do
# Given
create :subscription, created_at: Date.new(2016,9,1)
create :subscription, created_at: Date.new(2017,4,1)
create :subscription, created_at: Date.new(2017,9,1)
create :subscription, created_at: Date.new(2018,9,1)
expected = ["2016-2017","2017-2018","2018-2019"]
create :subscription, created_at: Date.new(2018,8,31)
expected = ["2016-2017","2017-2018"]
# When
result = Season.all(Subscription, :created_at)
# Then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment