Garradin

Changelog

Prochaines évolutions : voir la Roadmap.

Version 0.8.2 — 2 novembre 2017

Version 0.8.1 — 26 octobre 2017

Corrections :

Version 0.8.0 — 18 octobre 2017

  • Version requise de PHP : 5.6 ou supérieur

Amélioration environnement de développement

  • Compatibilité PHP 7+
  • Tests unitaires couvrant les fonctions de base
  • Tests automatisés par Travis-CI
  • Retour des données de DB sous forme d'objets au lieu de tableaux
  • Utilisation globale d'objets plutôt que de tableaux associatifs
  • Miroir github automatique à partir du repository fossil

Bugs corrigés

  • Empêcher 1password de cliquer automatiquement sur les suggestions de mot de passe
  • Correction de bugs sur l'éditeur de squelette dans les navigateurs webkit
  • Correction du bug "Le montant ne peut être égal ou inférieur à zéro" lors du report à nouveau automatique [c20546bb903eea0bd54ee969aa76226217e394ac]
  • Conservation de l'ordre lors du changement de page dans la liste des membres ayant cotisé (signalé par @Guy)
  • Conservation de la catégorie lors du changement d'ordre dans la liste des membres
  • Bugs dans l'envoi de mail par SMTP (merci @nabuchadnezzar)
  • [06f494acb3] Correction import CSV: ignorer le BOM UTF-8 au début du CSV (signalé par @Jean-jaques et @Nicolas)
  • [677a711306] Ne pas requérir le mot de passe à l'import
  • [41e771b47c] Correction affichage choix multiple dans fiche de membre

Technique

  • Utilisation de password_hash à la place de crypt() pour gérer les mots de passe
  • Utilisation de KD2\ErrorManager comme gestionnaire de bug
  • Utilisation de KD2\Smartyer comme moteur de templates
  • Utilisation de KD2\Form
  • Support installation sans vhost pour Apache (expérimental)
  • Séparation classe Membres en "Membres" (gestion des membres) et "Session" (session courante du membre connecté)
  • Utilisation facultative d'un serveur SMTP externe pour l'envoi de mails

Squelettes

  • Ajout d'un filtre "date" pour les balises, qui permet de formatter une date en anglais (format strftime)
  • Les heures sont désormais facultatives pour le filtre "date_intelligente"
  • Possibilité pour les plugins de changer le code qui instancie l'objet utilisé pour une boucle, permettant simplement de ne pas utiliser la base de données pour itérer sur une boucle

Base de données

  • Ajout d'une signature aux exports de la base de données
  • Vérification de la signature de la base de données à l'import : interdiction de l'import d'une base de données modifiée (facultatif)
  • Ajout contraintes sur les champs contenant des dates pour essayer d'empêcher d'importer des dates invalides
  • Transformation de toutes les catégories en catégorie administrateur si l'utilisateur qui importe la sauvegarde n'est pas admin dans cette sauvegarde.

Membres

  • Support authentification à double facteur pour se connecter (via OTP)
  • OTP : Confirmer l'activation de 2FA en entrant un code OTP avant d'enregistrer le secret
  • Chiffrement PGP des mails de récupération de mot de passe (facultatif)
  • Ajout d'une case "rester connecté" à la connexion (avec un identifiant de session unique, qui est renouvelé à chaque fois qu'il est utilisé pour connecter l'utilisateur)
  • Refonte de la procédure de récupération de mot de passe, simplifiée et ne requérant plus de garder l'onglet ouvert pour maintenir la session
  • Séparation du champ ID et du champ numéro de membre afin de permettre la modification plus simple du numéro de membre

Squelettes

  • Possibilité d'enregistrer ses propres extensions Skriv depuis un plugin
  • Mise à jour des squelettes par défaut pour gérer les images et documents

Compta

  • Refonte du formulaire de saisie, plus simple à utiliser
  • Ajout champs numéro pièce comptable et remarques dans la saisie de cotisation de membre
  • Rapprochement: possibilité de ne pas lister les opérations déjà rapprochées (d'après un patch de @sebastien)
  • [384650522b] Inversion de l'ordre des comptes dans la saisie de virement pour coller à la logique de compta "simple"
  • Le rapprochement n'est plus limité à l'exercice en cours
  • Ajout de la possibilité de mettre les chèques et cartes en attente d'encaissement
  • Compta analytique : ajout/gestion de projets, assignation d'opérations à des projets, rapports par projet

Divers

  • Personnalisation des couleurs de l'interface admin
  • Création automatique d'une sauvegarde avant mise à jour

Plugins

  • Les méthodes suivantes sont supprimées de la classe DB: simpleQuerySingle (remplacé par "first"), simpleStatement* (remplacé par query), queryFetch* (remplacé par "get"), escapeString (remplacé par "quote" et "escape"), simpleInsert (remplacé par "insert"), simpleUpdate (remplacé par "update").
  • Possibilité d'utiliser un plugin dans un sous-répertoire : plus besoin de packager dans un .tar.gz quand on fait le développement d'un plugin
  • Ajout signaux pour plugins, voir [743d7e1483fc23c85bd66aa44bd5673479a88913]

0.7.7 - 2017-06-07

  • [addaea15a9] Fix : ne pas permettre d'afficher les répertoires d'un plugin
  • [5004acdf3a] Fix : parsing incorrect du nom du plugin dans l'URL
  • [1b8f3acdcc] Fix plugin : ajout contexte $plugin dans uninstall
  • [c97a0ca3bb] Fix: message d'erreur si aucun plugin sélectionné (signalé par @Sébastien)
  • [ead6ede24a] Fix .htaccess pour plugins avec MultiViews (merci @Fabien et @Sébastien)
  • [1925c75755] Fix: erreur alignement images dans SkrivML
  • [13d759716c] Correction bug restauration signalé par @Boris (erreur d'utilisateur non admin même quand il est admin)
  • [d40d2d6ef7] Protéger l'accès à plus de choses en cas d'utilisation sans sous-domaine
  • [8d89f787d5] Correction bug où certains ID membres ne sont pas vus comme integer quand on a joué avec les numéros de membres
  • [99c27ea18e] Fix: limitation du nombre d'itérations pour les cas où la page parent indique la page enfant comme parent!
  • [456b9f8b2d] Correction [a42abfebcb] Tri sur ID membre ne fonctionne pas
  • [2f39cf54bf] Implémentation de l'utilisation d'un SMTP externe (optionnel) pour l'envoi de mails
  • [73da92d6c9] Possibilité de créer des comptes directement à la racine d'une classe

0.7.6 - 2016-12-08

  • [594c02079c] Fix typo dans fallback détection langue
  • [c5d08ca357] Fix typo français
  • [27c9ac2dd0] Ne pas permettre l'import d'un fichier SQL où l'administrateur n'est plus administrateur pour éviter de se tirer une balle dans le pied

0.7.5 - 2016-11-08

  • [fba3dce0bb] Fix: Correction cotisation membre apparaît comme valide quand aucune cotisation enregistrée (pour date à date), signalé par @Simon
  • [8e0f05e71d] Fix: utilisation d'un shim à la place de l'appel à Intl::Locale pour extraire la langue, si nécessaire
  • Fix: erreur à la gestion des squelettes public dans la version Debian standalone.

0.7.4 - 2016-08-30

  • [e148c3909c] Fix typo CSS, signalé par @sebastien
  • [c7e0066828] Fix référence à HTTP_ACCEPT_LANG qui n'est pas toujours présent
  • [32bff893e8] Ne pas cacher les cotisations avec une date dépassée dans la liste des cotisations (signalé par Eric)
  • Séparation installation dans une classe séparée pour aider les fermes de Garradin à faire leur propre installation
  • Empêcher un administrateur de se changer de catégorie pour l'empêcher de se tirer une balle dans le pied et ne plus être admin (signalé par David)

0.7.3 - 2016-06-25

  • Détection et correction de problème de mise à jour de la 0.7.2
  • Mise à jour lib KD2 (bug compilation regexp avec PHP 7)

0.7.2 - 2016-05-31

Bugs corrigés :

  • [3ea1a0bbc6]: Grand Livre : Sous comptes mal triés
  • [6a2d71efa7]: Problème caractère spéciaux sur génération graphique
  • [72bfc5da9a]: Membres : la pagination ne fonctionne pas avec le filtre de catégorie
  • [0750310f08] transliterator_transliterate() crash sur 1&1
  • [bd936b31a3]: Erreur JS page d'installation
  • [252275bef6]: L'utilisation de JS spécifique dans un plugin crash l'application
  • Bug dans Firefox qui désactivait le calendrier pour la sélection de date
  • [1d8fcfb0ad]: erreur quand le champ lettre_infos était supprimé ou renommé des fiches de membres
  • [2404bb932f]: suppression des rappels liés à une cotisation lors de la suppression de celle-ci
  • [795737be8a]: problème de suppression de membres si ceux-ci avaient fait des rapprochements
  • [2ff14ece2a]: numéro de compte en minuscule invalide (transformé en majuscules)
  • [a444ef4fa8]: suppression du rapprochement lié lors de la suppression d'une opération comptable
  • [90ff4057b3]: empêcher de supprimer le champ utilisé comme identifiant ou identité du membre
  • [1e224909d5]: refuser les noms de champs qui commencent par un chiffre (dans les fiches de membres)
  • [5335b73293]: message d'erreur en cas de numéro de membre qui ne contient pas que des chiffres
  • [0a88984edf]: allongement de la durée du timeout de SQLite pour éviter les erreurs liés à la concurrence
  • [6596fd8999]: dates dans le wiki enregistrées au format local au lieu de UTC à l'édition de page
  • [1d84b4497f] Renvoie un message user-friendly quand fichier n'existe pas
  • [e4a0ad91d4] Correction association des id_rappel à NULL (signalé par @jool)

Améliorations :

  • [50852efa36]: Empêcher un admin de se tirer une balle dans le pied
  • Amélioration de la gestion du HTTPS avec une préférence pour rediriger ou inciter les gens à utiliser la version SSL du site (constante PREFER_HTTPS dans config.local.php, désactivé par défaut)
  • Amélioration de l'ergonomie clavier/souris du calendrier javascript
  • [85db5abb1b]: Cacher les membres des catégories cachées dans la liste des cotisations
  • Possibilité de réinitialisation des squelettes à leur état initial (@freepius)
  • L'éditeur de squelette reste en plein écran après l'enregistrement des modifs

0.7.1 — 2015-05-10

  • Suppression des fichiers liés à une page wiki quand on supprime une page
  • Corrections diverses, voir la timeline

0.7.0 — 2015-04-14

  • Favicon pour l'espace admin

Gestion de documents

  • Gestion de documents générique
  • Gestion automatique de la confidentialité des documents selon leur appartenance
  • Les documents sont stockés dans la base de données, une copie locale (cache statique) est stockée en fichier
  • Gestion des images : création automatisée de miniatures
  • Envoi rapide des fichiers via X-SendFile

Squelettes

  • Début de documentation sur les squelettes
  • Ajout du critère {age} pour les boucles (comme SPIP) : {age>=0} n'affiche que les pages datées du futur, {age<30} que les pages datées de moins de 30 jours
  • Ajout de la balise #LANGUE_VISITEUR pour afficher du contenu différent selon la langue du visiteur.
  • Possibilité d'imbriquer des balises
  • Correction de nombreux bugs dans la syntaxe des squelettes, notamment sur les balises imbriquées
  • Possibilité pour un plugin d'étendre les squelettes en déclarant un nouveau type de boucle
  • Ajout de nouveaux types de boucles : IMAGES, FICHIERS et DOCUMENTS

Wiki

  • Possibilité d'inclure des images/documents dans les pages du wiki/site
  • Utilisation de SkrivML comme langage de markup : http://markup.skriv.org/
  • Conversion automatique des anciennes pages wiki de la syntaxe SPIP vers la syntaxe Skriv

Compta

  • Clôture d'exercice : archivage de l'exercice précédent dans les documents
  • Rapprochement de compte bancaire
  • Possibilité de donner un solde d'ouverture à un compte bancaire
  • Correction : numérotation automatique des comptes bancaires qui était cassée après suppression d'un compte
  • Liste des écritures réalisées par un membre

Cotisations/écritures

  • voir la cotisation liée à une écriture comptable
  • voir les écritures liées à une cotisation

0.6.3 - 2015-01-03

  • Compta : utilisation de la somme des transactions plutôt que leur nombre dans les camemberts [e6a2c8e0d9]
  • Compta : Solde courant dans le grand livre [76931fcb17]
  • Squelettes : possibilité d'ajouter ses propres fonctions et filtres dans le fichier mes_filtres.php du répertoire squelettes/
  • Plugins : possibilité de requérir une version minimale de Garradin
  • Déplacement des dépendances dans le micro-framework KD2 et compatibilité avec PSR-0
  • Correction de l'affichage des infos non modifiables du membre dans la page "mes infos"
  • Bugfix : dans les rappels automatiques les membres ayant renouvelé leur cotisation recevaient quand même le rappel
  • Bugfix : solde courant d'un compte était faux dans certains cas
  • Bugfix [eedb396118] : signe des soldes des reports à nouveau
  • Bugfix [29871886d9] : comptes passif et actifs dans le bilan

0.6.2 - 2014-05-16

  • Corrections dûs à des bugs de Firefox 29 avec les formulaires HTML5

0.6.1 - 2014-04-23

  • Corrections packaging Debian
  • Améliorations style interface mobile
  • Optimisation SQL: création d'index sur les champs de la table membres qui sont dans la liste des membres
  • Correction du tri dans la liste des types de cotisations
  • [92d8611330] Sécurité sur les requêtes exécutées dans les squelettes
  • [7a0b1fb57b] Correction bug clôture exercice avec résultat en déficit

0.6.0 - 2014-04-18

Développeurs

  • Plugins : possibilité d'installer des plugins manuellement
  • Tests automatisés des fonctionnalités de Garradin

Version hors ligne

  • Version hors ligne et exécutable en ligne de commande (paquet Debian)
  • Possibilité de se connecter à la place de n'importe quel membre

Divers

  • Indicateur de niveau de sécurité du mot de passe
  • Éditeur de code intégré pour les squelettes
  • Nouveau design du site public par défaut
  • Possibilité de se connecter en utilisant un autre champ que l'adresse e-mail [a4b9004b985e0fa36af0471a474cfe24886349c9]
  • Possibilité de choisir quel champ est utilisé pour identifier un membre (autre que le nom par exemple)
  • Import de membres depuis Galette
  • Import de membres en CSV
  • Recherche de membre par requête SQL
  • Compatibilité IE8
  • Amélioration icônes unicode
  • Gestion du format jj/mm/aaaa pour les formulaires date dans firefox

Comptabilité

  • Améliorations et corrections diverses dans la gestion du journal et des exercices
  • Recherche dans la compta
  • Recherche dans la compta par requête SQL
  • Clôture d'exercice : création d'un nouvel exercice automatiquement
  • Clôture d'exercice : choix d'une date arbitraire de clôture et ré-attribution automatique des écritures postérieures à cette date
  • Clôture d'exercice : création automatique des reports à nouveau
  • Graphique de répartition des recettes et dépenses par catégorie (camembert)
  • Possibilité de désactiver un compte (dans le plan comptable) s'il n'est pas possible de le supprimer
  • Liste des opérations créées par un membre

Gestion des cotisations

  • Distinction des cotisations des catégories de membres
  • Les cotisations peuvent avoir une durée ou une date de validité, et elles peuvent être associées à des catégories de compta
  • Les cotisations associées à une catégorie de compta créent une opération de compta à la mise à jour de la cotisation
  • Liste des membres à jour de cotisation

Rappels de cotisation

  • Possibilité de créer des rappels personnalisés (texte et période personnalisables)
  • Envoi de rappels de cotisation par email
  • Suivi des rappels envoyés par email, par courrier ou autre

0.5.9 - 2013-09-29

  • Correction : Permettre de modifier la date sans passer par le calendrier [fbc4d45632]
  • Correction : Manque JS input date dans mes infos [07b472ca6200357e422caf5ebabf2964283f46e4]
  • Correction [eb6acee70d] champs non modifiables qui étaient quand même transmis et donc vérifiés
  • Correction [206335f864] Ne plus permettre aux admins de remplir des champs obligatoires vides • Ne pas limiter les champs privés aux admins, seulement au niveau >= écriture
  • Correction [62f1bacccf] ne pas inclure les champs non-éditables/privés dans la vérification pour "mes infos"
  • Correction [0d764c31f3] bug base de données lorsque deux champs avaient le même préfixe.

0.5.8 - 2013-09-15

  • Correction bug dans affichage sommes d'argent
  • Correction d'un bug sur la génération du compte de résultat où les soldes des comptes n'étaient pas calculés correctement

0.5.7 - 2013-09-15

  • Correction bug dans affichage de l'historique d'une page wiki [1823585df4]
  • Correction d'un bug sur la génération du bilan qui n'était pas associé au bon exercice [ac8c82ea1c]

0.5.6 - 2013-07-11

  • Correction d'un bug sur les champs membres : champs privés remis à zéro quand modification d'une fiche membre par un non-admin

0.5.5 - 2013-06-19

  • Correction d'un bug sur les champs membres : certains champs (email, nombre, url) ne pouvaient être laissés vides (signalé par @arf)

0.5.4 - 2013-06-08

  • Correction d'un bug dans la sauvegarde automatique
  • Correction d'un bug dans la recherche de membre par numéro de téléphone

0.5.3 - 2013-05-16

  • Correction d'un bug dans la page "ajouter un membre" (signalé par @arf)

0.5.2 - 2013-04-08

  • Correction d'un bug dans la page "mes informations" qui empêchait de modifier les infos après l'installation
  • Correction d'un bug dans les champs membres qui empêchait d'enregistrer un champ "checkbox"

0.5.1 - 2013-04-07

0.5.0 - 2013-03-13 - Champs membres personnalisables

  • Passage aux namespaces PHP 5.3
  • Refonte de la page d'accueil de l'admin : affichage d'une page du wiki à la connexion
  • Export des adhérents en CSV
  • Champs membres personnalisables : possibilité de choisir l'ordre des champs des fiches membres, leur titre, leur type, etc.
  • Possibilité d'enlever ou ajouter des champs personnalisés aux fiches membres
  • Sauvegarde et restauration : sauvegarde manuelle ou automatique de la base de données, restauration à partir d'une sauvegarde, téléchargement de la base de données, restauration à partir d'un fichier de la base de données
  • Recherche avancée des membres
  • Liste des membres personnalisable (choix des colonnes et de leur ordre)

0.4.4 - 2012-10-23

  • Bilan comptable
  • Nouveaux graphiques d'évolution des comptes
  • Correction bug suppression de membre
  • Import/Export de compta en CSV

0.4.3 - 2012-10-16

  • Saisie simplifiée de dette
  • Grand livre
  • Contrôle au clavier du sélecteur de date
  • Redesign de la fiche de membre
  • Se souvenir de la dernière date entrée dans la saisie d'écriture
  • Compte de résultat
  • Gestion des exercices : création, clôture, etc.
  • Suppression de membre seul

0.4.2 - 2012-09-19

  • Contournement pour les PHP avec magic quotes activé

0.4.1 - 2012-09-19

  • Fix fatal error dans l'envoi de mail

0.4.0 - 2012-09-19

Comptabilité :

  • Gestion du plan comptable associatif
  • Saisie d'opérations en mode avancé
  • Saisie d'opérations en mode simple
  • Virement interne entre comptes
  • Gestion de catégories comptables (simplification du plan comptable)
  • Gestion des comptes bancaires
  • Journal de caisse et de compte
  • Configuration du pays et de la monnaie utilisée (pour Suisse/Canada)
  • Journal général
  • Visualisation, modification et suppression d'opération comptable
  • Suivi des dépenses, recettes et autres opérations

Wiki :

  • Possibilité de modifier la date de création d'une page (Fix [464c97dde8])
  • Barre d'outils d'aide à la syntaxe d'édition
  • Chiffrement de pages, pour s'assurer de la confidentialité du contenu d'une page

0.3.4 - 2012-06-15

  • Correction installation : la version installée n'était pas enregistrée dans la base.

0.3.3 - 2012-06-15

  • Remise à zéro du mot de passe oublié, ou création de mot de passe pour les membres qui n'ont pas de mot de passe, par e-mail
  • Fix [9eb1e0ba53]: Recherche de membre buguée sur les noms avec accent
  • Fix [6dc98c712a]: Possibilité d'ordonner la liste des membres par colonne

0.3.2 - 2012-05-24

  • Correction bug de squelette dans les boucles incluant des squelettes externes avec <INCLURE>

0.3.1 - 2012-05-24

  • Fix bug affichage listes dans wiki [62107e66fa]
  • Fix bug liste des pages-enfant même quand la page parent n'a pas de texte [c3c7240afe]
  • Diverses corrections moteur de squelette
  • Fix bug envoi de message à des adresses email vides [2cc69c609e]
  • Fix bug affichage des adresses email sur les fiches membres [4e07e7a56f]

0.3.0 - 2012-05-21

  • Fix bug liens wiki [43d4038649]
  • Le champ de membre recherché est mémorisé pour la session [05337ec90c]
  • Affichage du nombre de membres [4513fa9961]
  • Mini-site public exploitant les données du Wiki, et utilisant un langage de squelette similaire à SPIP
  • Gestion de la hiérarchie de pages dans le wiki (possibilité de faire des rubriques)
  • Affichage de l'historique d'une page
  • Recherche de page
  • Suppression de page
  • Normalisation des numéros de téléphone stockés [5d1104de5f]
  • Lettre d'information

0.2.1 - 2012-04-03

  • Affichage du numéro de membre dans la liste des adhérents [d37e4a1677]
  • Possibilité de rendre tous les champs facultatifs [f56cf26db4]
  • Ne pas tenir compte des caractères non-ASCII pour le tri dans la liste des adhérents (sinon Émilie se retrouve après Erratique) [1484069bbe]
  • Corrections dans le traitement des raccourcis SPIP [5fa9dd4639]
  • Suppression de la colonne ville dans la liste des adhérents
  • Affichage du mauvais expéditeur lors d'envoi de message entre membres [3817c1fa22]
  • Maintien de la session tant que la page est ouverte [71b6152ae3]