Bonjour,
Merci pour les précédentes réponses. Pour les inscriptions, ce qui est un peu déroutant quand on n'est pas habitué, c'est qu'en double-cliquant sur un individu dans la liste, je pensais être sur sa fiche individuelle, mais en fait j'étais sur sa fiche famille !
Pour l'import, j'ai pu tester, j'ai bien vu que c'est une fonctionnalité expérimentale, mais j'ai quelques suggestions pour améliorer sa découverte :
- proposer le téléchargement d'un fichier d'exemple avec les entêtes de colonnes requises
- actuellement, quand on est sur la page qui permet d'associer une colonne à un type de données, si on coche la case "Enlever la première ligne du fichier (Titres de colonnes)", on perd les associations déjà effectuées. C'est dommage, parce qu'avec la case décochée, on peut voir les entêtes de colonnes pour retrouver facilement le type de donnée avec lequel associer chaque colonne. Une fois la case cochée, on doit tout recommencer, et il n'y a que les données elles-mêmes qui nous indiquent le type de données, mais mis à part le numéro de colonne, rien qui différencie par exemple le nom de l'enfant 1 de celui de l'enfant 2. Je ne sais pas si je suis clair ?
- il est dommage de ne pas pouvoir exporter les données dans le même format que celui qui est attendu en CSV ou XLSX, pour avoir une trame, un peu comme suggéré dans le premier point.
En dehors de ça, je continue de découvrir l'application, j'ai pas mal bataillé avec Connecthys, pour finalement me résigner à le faire fonctionner en mode "local" pour le moment, avec la base sqlite. Je ne sais pas où je m'y suis mal pris, mais impossible de lancer le serveur en mode MySQL.
Déjà, une chose n'est pas tout à fait claire quand on essaie de le configurer : est-ce que le nom de la base et le préfixe des tables sont ceux de la base de données sur laquelle se trouve Noethys ? Visiblement non, mais c'est ce que je pensais au début. Ce n'est pas forcément clair. Une fois que j'ai compris ça, je ne sais pas si je dois créer une base de données puis mettre son nom, ou si en mettant son nom, elle sera créée.
J'ai tenté différentes choses, sans succès, avec MariaDB, voici quelques exemples :
C:\connecthys>c:\Python27\python.exe run.py
Lancement de Connecthys...
serveur=None host=0.0.0.0 port=5000
Traceback (most recent call last):
File "run.py", line 92, in <module>
from application import app
File "C:\connecthys\application\__init__.py", line 113, in <module>
models.CreationDB()
File "C:\connecthys\application\models.py", line 69, in CreationDB
engine = sqlalchemy.create_engine(url)
File "lib/sqlalchemy\engine\__init__.py", line 386, in create_engine
return strategy.create(*args, **kwargs)
File "lib/sqlalchemy\engine\strategies.py", line 75, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File "lib/sqlalchemy\dialects\mysql\mysqldb.py", line 92, in dbapi
return __import__('MySQLdb')
ImportError: No module named MySQLdb
Apparemment, ce problème venait du fait que je devais installer le module MySQL-python. Mais par la suite, j'ai un autre message d'erreur :
C:\connecthys>c:\Python27\python.exe run.py
Lancement de Connecthys...
serveur=None host=0.0.0.0 port=5000
Traceback (most recent call last):
File "run.py", line 92, in <module>
from application import app
File "C:\connecthys\application\__init__.py", line 113, in <module>
models.CreationDB()
File "C:\connecthys\application\models.py", line 75, in CreationDB
db.create_all()
File "lib/flask_sqlalchemy\__init__.py", line 972, in create_all
self._execute_for_all_tables(app, bind, 'create_all')
File "lib/flask_sqlalchemy\__init__.py", line 964, in _execute_for_all_tables
op(bind=self.get_engine(app, bind), **extra)
File "lib/sqlalchemy\sql\schema.py", line 3695, in create_all
tables=tables)
File "lib/sqlalchemy\engine\base.py", line 1856, in _run_visitor
conn._run_visitor(visitorcallable, element, **kwargs)
File "lib/sqlalchemy\engine\base.py", line 1481, in _run_visitor
**kwargs).traverse_single(element)
File "lib/sqlalchemy\sql\visitors.py", line 121, in traverse_single
return meth(obj, **kw)
File "lib/sqlalchemy\sql\ddl.py", line 730, in visit_metadata
_is_metadata_operation=True)
File "lib/sqlalchemy\sql\visitors.py", line 121, in traverse_single
return meth(obj, **kw)
File "lib/sqlalchemy\sql\ddl.py", line 764, in visit_table
include_foreign_key_constraints=include_foreign_key_constraints
File "lib/sqlalchemy\engine\base.py", line 914, in execute
return meth(self, multiparams, params)
File "lib/sqlalchemy\sql\ddl.py", line 68, in _execute_on_connection
return connection._execute_ddl(self, multiparams, params)
File "lib/sqlalchemy\engine\base.py", line 968, in _execute_ddl
compiled
File "lib/sqlalchemy\engine\base.py", line 1146, in _execute_context
context)
File "lib/sqlalchemy\engine\base.py", line 1341, in _handle_dbapi_exception
exc_info
File "lib/sqlalchemy\util\compat.py", line 202, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "lib/sqlalchemy\engine\base.py", line 1139, in _execute_context
context)
File "lib/sqlalchemy\engine\default.py", line 450, in do_execute
cursor.execute(statement, parameters)
File "c:\Python27\lib\site-packages\MySQLdb\cursors.py", line 205, in execute
self.errorhandler(self, exc, value)
File "c:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1074, "Column length too big for column 'ventilation' (max = 65532); use BLOB or TEXT instead") [SQL: u'\nCREATE TABLE portail_actions (\n\t`IDaction` INTEGER NOT NULL AUTO_INCREMENT, \n\thorodatage DATETIME, \n\t`IDfamille` INTEGER, \n\t`IDindividu` INTEGER, \n\t`IDutilisateur` INTEGER, \n\tcategorie VARCHAR(50), \n\taction VARCHAR(50), \n\tdescription VARCHAR(300), \n\tcommentaire VARCHAR(300), \n\tparametres VARCHAR(300), \n\tetat VARCHAR(50), \n\ttraitement_date DATE, \n\t`IDperiode` INTEGER, \n\tref_unique VARCHAR(50), \n\treponse VARCHAR(450), \n\t`IDpaiement` INTEGER, \n\tventilation VARCHAR(100000), \n\tPRIMARY KEY (`IDaction`)\n)\n\n']
Pour le moment, j'ai laissé ça de côté. Les explications me paraissent un peu trop vagues pour comprendre ce qu'il faut faire et où chercher. D'ailleurs, j'ai mis du temps à comprendre qu'il fallait lancer le run.py qui jouait le rôle de serveur web : je pensais que je devais indiquer le répertoire www de mon serveur web mais en réalité non.
Dans la continuité de la découverte du logiciel, j'ai tenté de configurer une sauvegarde de mon fichier réseau : j'obtiens le message d'erreur suivant : Noethys n'a pas réussi à localiser MySQL sur votre ordinateur. Est-ce parce que j'utilise MariaDB ? Comment modifier la configuration pour qu'il trouve ma base de données ?
Au niveau de la gestion des utilisateurs, j'ai trouvé comment créer un nouvel utilisateur, mais pour basculer dessus... il faut deviner ! Visiblement, c'est au lancement de Noethys que l'application se connectera avec l'utilisateur dont on saisit le mot de passe. Ce qui veut dire que deux utilisateurs ne peuvent pas avoir le même mot de passe ? Ce n'est pas très intuitif. Au final, ce n'est pas particulièrement gênant parce que chaque personne se connectera toujours avec le même profil sur son ordinateur, mais ça reste un peu déroutant.
Toujours dans la gestion des utilisateurs, on peut apparemment créer des modèles de droits. C'est bien pensé, mais il y a tellement de coches à activer ou désactiver que ça fait un peu peur... S'il pouvait y avoir des profils pré-configurés pour tester les différents niveaux d'accès qu'on peut donner, ça éviterait peut-être que tout le monde soit administrateur par défaut.
Concernant la configuration des différentes activités, il y a des choses que j'ai du mal à appréhender : si ma compréhension est bonne, les tarifications sont liées obligatoirement à une activité (relation 1 à n). Ce qui veut dire que si j'ai plusieurs cantines avec des tarifs identiques, soit je crée plusieurs activités cantine, dans lesquelles je recrée à l'identique tous les tarifs, soit je crée une activité cantine unique, avec éventuellement plusieurs groupes pour différencier les différents services des différentes écoles ? Quel est l'usage que vous suggérez ?
Sinon le portail famille me semble assez simple à utiliser, l'envoi des identifiants par mail et l'obligation de modifier le mot de passe à la première connexion sont plutôt pratiques. Dans l'ensemble, une fois la configuration effectuée, la prise du main du logiciel est vraiment top, je pense que quand je serai prêt à faire une démo en interne, ils vont tous signer tout de suite !
Il me restera à réussir à configurer Connecthys en mode réseau avec MariaDB, et à faire fonctionner également Nomadys, et trouver comment effectuer le pointage.
Je pense que tout ça est très prometteur, encore un grand merci pour le travail effectué !