Artifact ID: | 7adc60f13daebb65f988e7fe10eb50f26ba01050abbe7a600658e17867a76450 |
---|---|
Page Name: | Changelog/1.3 |
Date: | 2023-06-01 18:30:52 |
Original User: | bohwaz |
Mimetype: | text/x-markdown |
Parent: | 9cbe4ae3419d6d29eb155c902ef0c9f131893a78987edff9e0dbfc7f31c267d8 (diff) |
Next | 9a4f430f421ef8f2bf80636a131e6aa9406e4245f1c0a80955e4334d99aaa175 |
***** Note : la version 1.3 est en cours de développement *****
Modifications apportées dans la version 1.3
Pré-requis :
- PHP 7.4 ou supérieur est nécessaire
- SQLite 3.25 ou supérieur est nécessaire
- l'extension JSON1 de SQLite est nécessaire
- SQLite 3.31 ou supérieur est nécessaire pour avoir des champs calculés sur les fiches de membres (par exemple : âge d'un membre), sinon la fonctionnalité ne sera pas disponible.
Pour des raisons de simplicité du développement, cette version 1.3 ne peut ouvrir que les bases de données de Paheko 1.1.19 et supérieur.
Attention : si vous avez encore une vieille version (avant 1.1.19), il est nécessaire de faire en premier la mise à jour vers une version 1.2 ou supérieure avant de pouvoir mettre à jour vers la version 1.3 !
Nouveautés
Documents
- Refonte de l'interface de gestion des documents
- Affichage des fichiers en galerie ou en liste
- Sélection et téléchargement de répertoires au format ZIP
- Édition de documents LibreOffice/MS Office directement depuis l'interface (via Collabora Online)
- On peut maintenant faire une recherche dans le contenu des documents LibreOffice (formats ODT/ODS/ODP) et MS Office (XLSX/DOCX/PPTX), ainsi que PDF
- Ajout d'une corbeille : les fichiers supprimés y sont déplacés, et pendant 30 jours un membre administrateur peut les restaurer ou les supprimer définitivement
- Support du protocole standard WebDAV pour pouvoir gérer les fichiers de l'association depuis un ordinateur ou smartphone
- Support des applications de bureau et mobile NextCloud et ownCloud (en beta) :
- accéder aux fichiers de l'association depuis un mobile (sauf iOS)
- synchroniser les fichiers entre un ordinateur et l'instance de l'association
Modernisation de la gestion des membres
Sous le capot, la gestion des membres a été entièrement ré-écrite :-)
- On peut désormais avoir plusieurs adresses email par fiche membre [97c2d18bbc], chaque adresse recevra les messages envoyés
- Possibilité de rattacher des membres à d'autres membres, cela permet notamment de créer des "familles" de membres, ou autre structures similaires.
- Avertissement si on essaye d'ajouter un membre dont le nom existe déjà.
- Un e-mail est envoyé automatiquement au membre quand on modifie son identifiant de connexion (s'il a un mot de passe).
- Les administrateurs peuvent désormais modifier leur fiche membre et leur mot de passe directement
- Les actions de modification / création ou suppression (de membre, d'écriture, etc.) peuvent être enregistrées dans un journal (loguées) pour suivre qui a fait quoi
- On peut se connecter à la place d'un membre pour voir l'interface à laquelle il a accès
- Il n'y a plus qu'un seul format d'import
- Ajout de la prévisualisation d'un import des membres : affichage des modifications qui seront apportées avant validation
Ajout de la date de modification d'une fiche membre
Refonte de la modification des fiches de membre :
- possibilité de ré-ordonner les champs dans les fiches par drag-and-drop
- on peut définir la valeur par défaut d'un champ membre [725e75351d4de624245b2ff80b49544f548604db]
- simplification : champ privé / champ caché deviennent modification / visibilité par administrateurs ou par le membre
- nouveau types de champs : mois+année, et année seule
- nouveaux champs prédéfinis : année de naissance, date d'inscription, âge (calculé à partir de la date ou de l'année de naissance) et ancienneté (calculé à partir de la date d'inscription)
- on peut utiliser plusieurs champs pour définir l'identité d'un membre, par exemple "nom" et "prénom" si on utilise des champs séparés
Améliorations de la recherche :
- On peut désormais faire une recherche avancée en utilisant l'inscription à une activité [97c2d18bbc]
- affichage du nombre de résultats
- tri simplifié, par colonne
- pagination
- possibilité de sélectionner des colonnes à afficher dans le résultat de la recherche (sans rechercher dans ces colonnes)
- export de la recherche (CSV/ODS/XLSX)
- affichage du nom de la catégorie du membre dans la colonne de la recherche avancée
- choix de l'opérateur "OU" ou "ET" pour chaque groupe de critères dans la recherche avancée
Refonte de la gestion des messages collectifs :
- Possibilité d'envoyer un message collectif aux membres inscrits à une activité
- Possibilité d'envoyer un message collectif aux membres trouvés par une recherche enregistrée
- Export de la liste des destinataires d'un message collectif
- Édition assistée du contenu des messages (formattage, prévisualisation)
- L'historique des messages envoyés est enregistré, la liste des destinataires est anonymisée automatiquement après 6 mois
- Export des adresses e-mail rejetées
- Prévisualisation d'un message collectif pour chaque destinataire
- La composition de message se fait maintenant uniquement au format MarkDown
- Choix du nom et de l'adresse de l'expéditeur du message collectif
On peut maintenant inscrire un membre à la même activité dans la même journée, si le tarif est différent
Il est possible d'inscrire une catégorie de membres à une activité en une seule fois (merci à @Maxime Paquatte)
Les membres peuvent choisir leurs préférences personnelles : thème sombre, nombre d'éléments dans les listes, affichage expert de la comptabilité, ou utiliser le thème pour tablette même sur grand écran
On peut désormais afficher la photo dans la liste des membres
Sécurité
- Refonte et simplification de la page "Mes informations de connexion et de sécurité"
- Ajout d'un bouton permettant de déconnecter toutes les sessions actives dans la page "mes informations de sécurité"
- Désormais si une clé PGP a été fournie par le membre, tous les mails envoyés au membre seront chiffrés (y compris les pièces jointes)
- Ajout d'une limite au nombre de connexions infructueuses (maximum 10 en 20 minutes)
- Ajout d'un captcha accessible sur la page de connexion après 3 tentatives de connexion infructueuses
- Ajout d'un journal de connexion pour chaque membre, permettant de voir les dates et heures de connexion
- Ajout d'un journal des actions utilisateur, permettant de voir ce qui a été effectué par qui et quand (création/suppression de membre/écriture/etc.)
- Configuration de la durée de rétention des journaux
- Seuls les administrateurs peuvent désormais créer des fichiers HTML et JS dans les documents
- On peut désormais configurer un délai après lequel un membre est automatiquement déconnecté (sauf s'il a choisi l'option "Rester connecté" à la connexion), pour éviter de laisser une session ouverte sur un ordinateur partagé.
Modules
Grâce aux modules, on peut désormais générer, configurer, et même modifier ou créer des formulaires ou modèles de documents personnalisés. On peut ainsi même créer de petites applications dans l'administration de l'association, pour s'adapter à ses besoins.
Ces module utilisent la syntaxe Brindille, comme le site web.
Voir la documentation des modules pour plus de détails.
Paheko fournit plusieurs modules par défaut, seuls certains sont activés par défaut. Pour activer les autres il faut se rendre dans le menu Configuration, onglet Extensions.
- Reçu de don simple (non fiscal) - activé par défaut
- Reçu de paiement
- Bordereau de remise de chèque
- Cartes de membres
- Modèles d'écritures comptables
Devis et facturesListe de contacts
Reçus fiscaux
- Création de reçus fiscaux à partir d'une écriture, d'un membre, ou manuellement
- Recherche dans les reçus
- Filtre des reçus par année
- Récapitulatif annuel de la somme et du nombre de reçus délivrés, pour déclaration à l'administration fiscale
- Impression en PDF
- Possibilité d'annuler un reçu erroné
Bilan expert
Présente le bilan comptable selon le modèle du plan comptable associatif 2018. Ce modèle est parfois demandé en cas de demande de subvention.
Heures d'ouverture
Ce module reprend la fonctionnalité de l'ancienne extension Ouvertures, mais s'intègre désormais directement au site web sans avoir à faire de manipulations, il suffit d'activer le module et configurer les horaires : elles s'afficheront automatiquement sur le site.
Comptabilité
- Possibilité de verrouiller les écritures, pour empêcher leur modification ou suppression
Site web
- Refonte de l'interface de gestion du site web
- L'activation / désactivation du site web se fait désormais dans la configuration générale
- La modification du code du site web passe désormais par l'extension modifiable "Site web" dans Configuration -> Extensions
- Ajout d'un cache statique avec Apache, pour que les pages du site soient super-rapides
- Ajout de galerie et diaporama dans le Markdown
- Ajout du support de vidéos intégrées dans le Markdown
Extensions
Les extensions officielles suivantes ne sont plus supportées et ne fonctionneront pas avec Paheko 1.3, elles seront supprimées lors de la mise à jour :
- Horaires d'ouvertures (
ouvertures
) : remplacé par un module fourni par défaut, la configuration est perdue et doit être resaisie
Divers
- Ajout d'une image de signature dans Configuration > Personnalisation
- Amélioration visualisation des droits des membres (icônes + changement des couleurs)
Administrateurs système et hébergeurs
- Possibilité de contourner le système d'authentification de Paheko pour utiliser un système de SSO, par exemple avec LDAP
Extensions officielles
Les extensions officielles suivantes sont désormais inclues à l'installation, il n'est plus nécessaire de les télécharger ni les mettre à jour séparément :
- Statistiques du site web
- Caisse informatisée
- Taima - suivi du temps bénévole
Brindille
- Nouvelle section
load
permettant de récupérer des données liées à un module - Nouvelle fonction
save
pour enregistrer les données d'un module - Ajout des fonctions :
input
link
linkbutton
icon
button
error
read
admin_header
admin_footer
signature
- Ajout des filtres :
money_raw
spell_out_number
parse_date
math
money_int
strpos
substr
strrpos
boolval
intval
floatval
- Ajout des sections :
users
transactions
transactions_users
- Ajout du support de
having
dans les sectionssql
- Amélioration des fonctionnalités de
assign
Voir la référence de Brindille pour les détails.
Changements qui pourraient affecter webmasters et développeurs
- La constante de configuration
PREFER_HTTPS
a été supprimée, la définir n'a plus d'effet. Si vous n'êtes pas encore 100% en HTTPS, utilisez une redirection d'URL via le serveur web. - Une nouvelle constante de configuration
LEGAL_LINE
a été ajoutée, permettant de modifier la ligne de mention légale en bas des pages du site web
Extensions
Les extensions et les modules disposent d'une interface commune.
Désormais on "active" une extension au lieu de "l'installer". Ensuite on peut la désactiver (ou réactiver). Une fois désactivée on peut effacer ses données (anciemment "désinstaller").
- Le fichier
garradin_plugin.ini
est renomméplugin.ini
- Important : dans le fichier
plugin.ini
de chaque plugin, renommernom
enname
etauteur
enauthor
- les pages publiques d'un plugin doivent maintenant être dans le sous-répertoire
public
, les pages privées dans le sous-répertoireadmin
- les directives
menu_condition
etconfig
dansplugin.ini
sont supprimés. - nouvelles directives dans
plugin.ini
:home_buttons, restrict_section, restrict_level
- un plugin peut maintenant enregistrer un signal
menu.item
et assigner une clé au tableau passé dans l'argumentreturn
avec le code HTML de l'élément du menu (voir plugin de test pour exemple) pour afficher un élément dans le menu - il est possible pour un plugin d'afficher un bouton sur la page d'accueil, via le signal
home.button
, fonctionnement similaire àmenu.item
- suppression du signal
membre.nouveau
, utiliserentity.Users\User.save.after
à la place - suppression du signal
membre.suppression
utiliserentity.Users\User.delete.after
à la place - le signal
motdepasse.compromis
est renommépassword.check
- l'adresse des plugins dans l'admin devient
/admin/p/nom_du_plugin/
(précédemment :/admin/plugin/nom_du_plugin/
) - la constante
PLUGIN_URL
(et la variable Smartyer$plugin_url
) renvoie désormais l'adresse publique du plugin, au lieu de l'adresse privée (admin), utiliserPLUGIN_ADMIN_URL
(ou$plugin_admin_url
) pour avoir l'adresse privée du plugin
Squelettes du site web
- Les squelettes par défaut du site web ont été déplacés : ils ne sont plus dans
www/skel-dist
mais dansmodules/web
(ce changement ne devrait avoir aucun impact) - Les squelettes utilisateur du site web qui étaient dans
skel
ont été déplacés dansdata/files/modules/web
- L'inclusion de squelette (
{{:include file="fichier.html"}}
) étant absolue à la racinemodules
par défaut, les anciens appelsinclude
des squelettes du site web ont été modifiés pour être relatifs au répertoire courant pour continuer à fonctionner.
Développeurs⋅ses
- La classe
Membres
disparaît et est remplacée dans ses fonctionnalités parUsers\Users
- La classe
Recherche
est séparée en plusieurs : une entitéSearch
représentant les recherches enregistrées, et des classesAdvancedSearch
pour le formulaire de recherche avancée - La classe
Membres\Champs
disparaît, ses fonctionnalités sont dans la classeUsers\DynamicFields
- La classe
Membres\Session
est renomméeUsers\Session
- Une entité
Users\User
a été créée pour représenter un membre - Les propriétés de la classe
Config
ont été renommées en anglais, notammentnom_asso
,email_asso
, etc. qui deviennentorg_name
,org_email
etc. - Les fiches de membre peuvent maintenant accueillir des champs calculés (colonne de type
GENERATED
)
SQL :
- La table
membres
a été renomméeusers
- Les recherches SQL enregistrées faisant référence à la table membres ont été modifiées pour utiliser la table users quand c'est possible, mais il peut y avoir des erreurs, vérifiez vos requêtes SQL et corrigez-les si besoin.
- Une table
config_users_fields
a été créée, elle contient la liste des champs d'une fiche membre, et remplace la variable de configurationchamps_membres
dans l'objetConfig
- La table
recherches
a été renomméesearches
et ses colonnes ont aussi été renommées en anglais - La table
plugins_signaux
a été renomméeplugins_signals
et ses colonnes ont aussi été renommées en anglais - Une table
logs
contenant un journal des actions utilisateur a été créée