## Version 4.4
* Saisonnalité des observations
* 20 Octobre 2025


### Fonctionnalités
* Gestion des squelettes surchargeables via `data/squelettes` et  `data-dist/squelettes`
* Recherche avancée d'observations sur un mois, quelle que soit l'année
* Ajout de la source de données comme critère de recherche d'observation
* Affichage de synthèses saisonnières par rubrique espèce
* Sibmail : Possibilité d'afficher le contenu d'une liste Brevo et le statut d'une campagne

### Corrections
* Erreur de positionnement d'un script dans la page sommaire
* Bug dans certains affichages graphiques des observations par année
* Bug dans l'intervalle de date apparaissant dans le résumé des résultats de recherche

### Ergonomie
* Gestion des documents et sites attachés à une rubrique rédactionnelle
* Ajustement de la logique des menus

### Evolutions techniques
* Sibactu : introduction de pipelines pour permettre la gestion d'objets introduits par d'autres plugins
* Sibactu : paramétrage des templates de lettres en dehors du plugin
* Biodiv : prise en compte des pipelines de Sibactu et de Jason
* Rebond : prise en compte des pipelines de Jason
* Sécurité : protection de `/data` et `/data-dist` par `.htaccess`
* Abandon des API JWS et BioWS
* Préparation de la compatibilité avec l'API Jason

### Jason
Jason est un plug-in pour SPIP proposant une API CRUD au format JSON.
C'est une variante améliorée du plugin `collection+json`. Voir :
* https://github.com/collection-json/spec
* https://mamund.com/media-types/collection/examples/
* https://plugins.spip.net/collectionjson.html

### Installation
* Desinstaller Biows
* Configuration Sibactu : modèle de notif agenda = notif_et_actu 
* Configuration Sibactu : liste des templates = data/config/sibactu_templates.yaml (ou équivalent)
* Création de data/config/sibactu_templates.yaml - appel de lettre_biodiv 

## Fichiers à installer site par site
```
data/config/sibactu_templates.yaml - à aligner avec la configuration Sibactu

```

## Fichiers à supprimer
```
DEL plugins/biodiv/inc/jws_charger_donnees.php
DEL plugins/biodiv/inc/jws_charger_donnees_v2.php
DEL plugins/biodiv/inc/jws_connect.php
DEL plugins/biodiv/squelettes/jws_api.html
DEL plugins/biodiv/squelettes/jws_authenticate.html
DEL plugins/biodiv/squelettes/jws_connect.html
DEL plugins/biodiv/squelettes/jws_receive_obs_v2.html
DEL plugins/biodiv/squelettes/jws_recevoir_observation.html

DEL plugins/sibactu/squelettes/lettre_biodiv.html
DEL plugins/sibactu/squelettes/lettre_v1.html
DEL plugins/sibactu/squelettes/notif_et_actu.html
```

## Fichiers modifiés
```
config/mes_options.php

data/config/.htaccess
data/squelettes/.htaccess
data/.htaccess

data-dist/.htaccess
data-dist/squelettes/lettre_biodiv.html
data-dist/squelettes/notif_et_actu.html
data-dist/squelettes/.htaccess

plugins/biodiv/base/biodiv.php
plugins/biodiv/jason_conf/biodiv_api.php
plugins/biodiv/lang/campagne_fr.php
plugins/biodiv/lang/espece_fr.php
plugins/biodiv/lang/lieu_fr.php
plugins/biodiv/lang/observation_fr.php
plugins/biodiv/lang/requete_fr.php
plugins/biodiv/lang/source_fr.php
plugins/biodiv/biodiv_pipelines.php
plugins/biodiv/paquet.xml

plugins/jason/* (non actif - en chantier)

plugins/rebond/paquet.xml
plugins/rebond/rebond_pipelines.php

plugins/sibactu/formulaires/composer_actualites.html
plugins/sibactu/formulaires/composer_actualites.php
plugins/sibactu/formulaires/configurer_sibactu.html
plugins/sibactu/lang/sibactu_fr.php
plugins/sibactu/sibactu_fonctions.php
plugins/sibactu/templates.yaml
plugins/sibactu/paquet.xml

plugins/sibmail/formulaires/envoyer_lettre.html
plugins/sibmail/formulaires/envoyer_lettre.php
plugins/sibmail/lang/sibmail_fr.php
plugins/sibmail/squelettes/modeles/contacts_liste.html
plugins/sibmail/squelettes/modeles/rapport_campagne.html
plugins/sibmail/sibmail_fonctions.php
plugins/sibmail/sibmail_pipelines.php
plugins/sibmail/paquet.xml

Rsc3/sq/compositions/rubrique-redaction.html
Rsc3/sq/compositions/rubrique-espece.html
Rsc3/sq/formulaires/rechercher_observation.html
Rsc3/sq/formulaires/rechercher_observation.php
Rsc3/sq/inc/doc_liste.html
Rsc3/sq/inc/serie_graphique.html
Rsc3/sq/inc/serie_saisonnière.html
Rsc3/sq/inc/site_liste.html
Rsc3/sq/actualites_confirmer.html
Rsc3/sq/especes.html
Rsc3/sq/lieu_resultat.html
Rsc3/sq/observation_resultat.html
Rsc3/sq/rubrique_saison.html
Rsc3/sq/sib_campagne.html 		(non utilisé)
Rsc3/sq/sib_contacts_liste.html
Rsc3/sq/site.html
Rsc3/sq/sommaire.html

```

### Backlog non traité
* Stockage des lettres d'actualité sous forme de documents SPIP
* Paramétrage de l'API taxref via data et data-dist
* Badges de score pour les observateurs
* Ajouter un champ statique uuid dans les observations et le peupler avec le calcul de l'extraction SINP pour permettre un accès par webservice Jason

* voir si le tableau des items_actualité ne doit pas être indéxé par le nom SPIP de l'objet (et utiliser t_objet et v_objet dans les templates par exemple)
* basculer serialize en json_encode au moment de générer les documents SPIP pour les lettres

* Ajouter les saisons avec MySQL DAYOFYEAR https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_dayofyear
* 21 mars = 80 ; 21 Juin = 172 ; 21 Sept = 264 ; 21 Dec = 355