Feuille de route

Les bugs sont corrigés et publiés dans la version stable, les nouvelles fonctionnalités sont ajoutées dans la version de développement (branche dev) qui sera publiée quand les objectif de cette version seront atteints.

Une liste plus précise de fonctionnalités demandées est également listée dans les tickets (mais on n'a pas forcément le temps de créer un ticket pour chaque fonctionnalité !).

État actuel des fonctionnalités

Fonctionnalité Statut État Remarques
Membres Implémenté Code à moderniser Refactoring / ré-écriture partielle à faire, code à passer en anglais
Comptabilité Implémenté Satisfaisant Quelques détails à revoir pour améliorer la simplicité et l'accessibilité
Activités et cotisations Implémenté Satisfaisant Permettre d'enregistrer plusieurs membres en même temps
Fichiers Implémenté Satisfaisant Base fonctionnelle. Fonctionnalités à ajouter
Site web Implémenté Refactoring à terminer Passer à un modèle d'édition de page proche de Kirby
Mailing Implémenté À améliorer Pas de gestion des retours, texte simple, pas de possibilité d'exporter la liste des destinataires facilement
Documentation Plutôt bonne En cours À mettre mieux en évidence dans le logiciel directement
Tests unitaires Inexistants ou presque À écrire…
Tests fonctionnels Dépassés À refaire

Prochaines versions

Version 1.2 — Modernisation membres

  • Sécurité : ajout d'un journal des actions utilisateur, permettant de voir ce qui a été effectué par qui et quand
  • Sécurité : ajout d'une limite au nombre de connexions infructueuses

  • Améliorations recherche :

    • 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)

Membres :

  • Refonte du code de la gestion des membres
  • 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 type de champ : mois et année
  • Affichage du nom de la catégorie du membre dans la colonne de la recherche avancée
  • Possibilité de faire une recherche avancée en utilisant l'inscription à une activité [97c2d18bbc]
  • Possibilité d'envoyer un message collectif aux membres inscrits à une activité
  • On peut désormais avoir plusieurs adresses email par fiche membre [97c2d18bbc], chaque adresse recevra les messages envoyés

À faire :

Webmasters :

  • 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.

Plugins :

  • Important : dans le fichier garradin_plugin.ini de chaque plugin, renommer nom en name et auteur en author
  • suppression du signal membre.nouveau, utiliser entity.Users\User.save.after à la place
  • suppression du signal membre.suppression utiliser entity.Users\User.delete.after à la place
  • suppression du signal rappels.auto
  • le signal email.envoi est renommé email.send
  • le signal motdepasse.compromis est renommé password.compromised

Développeurs⋅ses :

  • La classe Membres disparaît et est remplacée dans ses fonctionnalités par Users\Users
  • La classe Recherche est séparée en plusieurs : une entité Search représentant les recherches enregistrées, et des classes AdvancedSearch pour le formulaire de recherche avancée
  • La classe Membres\Champs disparaît, ses fonctionnalités sont dans la classe Users\DynamicFields
  • La classe Membres\Session est renommée Users\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, notamment nom_asso, email_asso, etc. qui deviennent org_name, org_email etc.

SQL :

  • Une table config_users_fields a été créée, elle contient la liste des champs d'une fiche membre, et remplace la variable de configuration champs_membres dans l'objet Config
  • La table membres a été renommée users
  • La table recherches a été renommée searches et ses colonnes ont aussi été renommées en anglais
  • La table plugins_signaux a été renommée plugins_signals et ses colonnes ont aussi été renommées en anglais
  • Une table logs contenant un journal des actions utilisateur a été créée

Version 1.3 — Modèles de documents

Les squelettes Brindille sont désormais utilisables dans l'administration de l'association. Ils permettent de créer et modifier des modèles de documents simples, à imprimer, mais aussi de créer des formulaires et des "mini-applications" directement dans l'administration.

Exemples fournis :

  • Reçu fiscal
  • Reçu de don simple
  • Devis et factures
  • Liste de contacts

Ces exemples sont développés directement avec Brindille et peuvent être modifiés depuis le menu Configuration, onglet Fonctions avancées puis Squelettes.

Un squelette déjà fourni dans Garradin peut être modifié, et en cas de problème il peut être remis dans son état d'origine.

Autres exemples d'utilisation :

  • Déclaration liste dirigeants à la préfecture
  • Compte de résultat et bilan conforme au modèle du plan comptable
  • Cartes de membres
  • Formulaires sur le site web
  • Gestion de matériel

  • Utilisation de la syntaxe Brindille

  • Possibilité d'accéder aux données sauvegardées du formulaire en JSON avec SQLite et via une variable $data : {{$data.nom}}

  • Ajout section {{#load key="config"}}{{$title}}{{/load}}

  • Ajout fonction {{:save key="config" title="Toto"}} qui permet d'enregistrer un formulaire en base de données

  • Ajout fonction email, exemple : {{:email to="...@..." subject="Contact reçu sur le site" body="Message reçu sur le site : %s"|args:$_POST.message}}

Autres modifications

  • Ajout d'une image de signature dans Configuration > Personnalisation

Webmasters et développeurs

  • Les squelettes par défaut du site web ont été déplacés : ils ne sont plus dans www/skel-dist mais dans skel-dist/web (ce changement ne devrait avoir aucun impact)
  • Les squelettes utilisateur du site web qui étaient dans skel ont été déplacés dans skel/web
  • L'inclusion de squelette ({{:include file="fichier.html"}}) étant absolue à la racine skel par défaut, les anciens appels include des squelettes du site web ont été modifiés pour être relatifs au répertoire courant (skel/web) pour continuer à fonctionner.

Brindille

  • Ajout des fonctions input, link, linkbutton, icon, button, error, save, read, admin_header, admin_footer et signature_url
  • Ajout des filtres money_raw, spell_out_number, parse_date, math, money_int, strpos, substr, strrpos, boolval, intval, floatval.
  • Ajout des sections load, users, transactions, transactions_users
  • Ajout du support de having dans les sections sql
  • Amélioration des fonctionnalités de assign

Voir la référence de Brindille pour les détails.

Version 1.4 — Amélioration site web

Site web :

  • Re-design formulaire édition de page web

    • Les pages comportent des "blocs", chaque bloc peut être soit un bloc texte (markdown), soit une image, soit un fichier, soit un tableau (éditeur de tableau simple à intégrer), soit le résultat d'une requête SQL (sous forme de tableau ou de graphique)
    • Les blocs d'une page peuvent être réordonnées un peu comme dans Content Tools : http://getcontenttools.com/
  • Génération de thème simplifiée (couleurs / police / etc.)

Liste pêle-mêle des fonctionnalités prévues mais pas encore planifiées

Prioritaire

[Documentation] !

Fichiers :

  • Stockage de versions de fichiers avec l'algo Delta de Fossil
  • Possibilité de restreindre un fichier/dossier à certains membres / catégories
  • Possibilité de créer des notes format texte, HTML (avec Content Tools) et markdown (https://gist.github.com/jbroadway/2836900 ou https://github.com/erusev/parsedown pour la conversion Markdown et https://github.com/commit-intl/micro-down pour la prévisu et enfin https://github.com/asvd/syncscroll pour la synchro de prévisualisation)
  • Stockage webdav https://evertpot.com/167/ pour le porte-documents
  • Possibilité d'utiliser un autre backend de stockage de fichiers via WebDAV, NextCloud, Mercurial, etc.)
  • Intégration de OnlyOffice pour éditer/visualiser les documents Libre Office en ligne

Divers :

  • Amélioration gestion des emails de retour
  • Magasin de plugins dispo depuis la page extensions de la config (pas besoin de télécharger le plugin à la main et le recopier)
  • Sauvegarde incrémentale (utilisation de Fossil deltas) automatique
  • Mise à jour de la doc pour les boucles de documents
  • Utilisation de KD2Brindille pour les templates de mails de rappel
  • Tests unitaires et d'intégration
  • Renommer les tables membres, membres_sessions, plugins, plugins_signaux et recherches en anglais

Securité :

  • OTP : Enregistrer des codes de secours à usage unique à utiliser en cas de perte du code secret qui génère des OTP

Comptabilité :

  • Ajout stockage relevé bancaire (joindre un fichier) dans le rapprochement, par période
  • Ajout total débit/crédit par mois dans le rapprochement
  • Possibilité de valider une écriture (déjà partiellement implémenté dans la 1.0)
  • Signature et hashage de chaque écriture validée dans une blockchain (déjà partiellement implémenté dans la 1.0)
  • Archivage des données de l'exercice lors de la clôture
  • Suivre les instructions du ministère des finances concernant l'archivage des données comptable, cf. PDF

Adhérents :

  • Inscription autonome en ligne
  • Possibilité de définir une page wiki utilisée comme "conditions d'inscription" à accepter à l'inscription
  • Journal des actions utilisateur
  • Suppression/anonymisation automatique des fiches des anciens adhérents
  • Log des accès aux fiches de membre en lecture / écriture
  • Log des tentatives de connexion
  • Possibilité pour les adhérents de se connecter seulement avec l'adresse email, sans mot de passe (s'ils n'en ont pas choisi un), pour changer leurs infos et suivre leurs cotisations

Divers

  • Possibilité de gérer les adhérents, la compta, le wiki etc. via la ligne de commande

Moins prioritaire

Comptabilité :

  • Lettrage
  • Budget prévisionnel
  • lier plusieurs cotisations à une écriture
  • lier les membres aux lignes de l'écriture et non à l'écriture elle-même
  • supprimer une écriture comptable à la suppression d'une cotisation
  • supprimer une cotisation à la suppression d'une écriture comptable

Adhérents :

  • Annuaire de membres accessible aux autres membres (avec opt-in de chaque membre)

Plugins :

  • Caisse
  • Suivi du temps bénévole/salarié, et inscription dans la compta du temps bénévolat
  • Agenda collectif
  • Saisie de note de frais simplifiée