Overview

Artifact ID: 5872fd6ebb4110aea74471da92931cbc4ac02b077afaee3f318b6e4a147a7b54
Page Name:Roadmap
Date: 2021-11-23 23:55:45
Original User: bohwaz
Mimetype:text/x-markdown
Parent: f44cffdec171313c33668e09538f74bfcd58ab3b7171fc9508e60bc51987eef6 (diff)
Next e41a8f109d851e15638f8b9d8ab773616c30ca434e8620ed424e1e4703440350
Content

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 — Modèles de documents personnalisables (novembre/décembre 2021)

Les modèles de documents permettent de générer des documents papier. Ces modèles utilisent la syntaxe Brindille, et permettent de générer également des formulaires. Le contenu des formulaires peut être enregistré en base de données afin d'être réutilisé.

  • 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 fonction {{:save as="Informations pour %s"|args:$_POST.nom data=$_POST}} 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}}

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

Version 1.3 — 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.)

  • Utilisation du logo de l'association sur le site web

Version 1.4 — 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

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

Membres :

  • refonte du code gestion des membres
  • Transformer la colonne "date_inscription" dans la table membres en champ personnalisable [cd231f37a5]
  • Date de modification d'une fiche membre eb40b2de1
  • Pouvoir avoir plusieurs adresses email par fiche membre [97c2d18bbc]
  • Indique le nombre de membres par catégories dans la partie membres [47aaac6782]

Recherche membres :

Champs membres :

Import membres :

Activités :

  • Possibilité d'inscrire plusieurs membres à une activité/tarif d'un coup dans la liste des membres, cf. [05f066665f]

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 :

  • 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 renommé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

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