SQLPage est une application permettant de publier des bases de données sur une page Web sans se préoccuper de la mise en forme. Elle est développée et partagée par Ophir Lojkine (un grand merci à lui !!!).
Site officiel : https://sql.ophir.dev/Voir cette page où je décris son installation sur un NAS Synology : [SQLPage] Utilisation sur un NAS Synology avec Docker et MySQL

Projet École Inclusive : https://github.com/DSMejantel/Ecole_inclusive
Projet Carnet de Rucher : https://github.com/DSMejantel/Carnet-de-Rucher

Je liste ci-dessous des info pour aide-mémoire.
Sauf mention contraire, on part du principe qu'on travaille sur des bases SQLite.

A- Astuces générales

  1. Personnaliser le pied de page, le titre principal et les menus :
    Il faudra agir sur le composant "shell" proposé par SQLPage : https://sql.ophir.dev/documentation.sql?component=shell#component. Ces fichiers se terminent par l'extension .json. Il peut y en avoir plusieurs.
    Pour le pied de page, on modifiera celui proposé par défaut, avec le paramètre "footer" qui peut mettre des liens hypertextes en Markdown.
    Pour le titre de l'application, on agira sur le paramètre "title".
    Exemple de code dans un fichier .json :
    {
    "component": "shell",
    "title": "A.S.D.A.E.L",
    "footer": "Adapté par xxxxxxxxxxx, à partir de [SQLPage](https://sql.ophir.dev/) et du projet [École Inclusive](https://forge.apps.education.fr/dsoulie/Ecole_inclusive)",
    "link": "/",
    "icon": "home",
    "language":"fr-FR",
    "layout": "fluid",
    "norobot": "TRUE",
    "menu_item": [
    {"title": "Fiches-Outils",
    "link": "fiches.sql" }
    ,
    {"title": "Élèves",
    "link": "eleves_etab.sql" }
    ,
    {"title": "Établissement",
    "link": "etablissement.sql" }
    ,
    {"title": "Mon compte", "submenu": [
    {"link": "parametres.sql?tab=Mon profil", "title": "Mon profil"},
    {"link": "logout.sql", "title": "Se déconnecter"}
    ]}
    ],
    }

  2. Personnaliser la page d'accueil :
    Pour cela, il faudra modifier le bas du fichier "index.sql" où se trouve le composant "hero" :
    SELECT 'hero' as component,
    'A.S.D.A.E.L' as title,
    'Application Suivi Des Aides Élèves Lézignan' as description,
    './Logo.png' as image;

  3. Les champs de type "date" doivent être importés/stockés sous la forme : YYYY-MM-DD (norme ISO 8601 ou EN 28601).
    Pour les afficher dans un format du type DD/MM/YYYY, on utilisera la fonction "strftime" de cette façon :
    strftime('%d/%m/%Y', date.naissance)

  4. Pré-remplir une base de données SQLite :
    Il peut être utile de pré-remplir des tables avec des données pour éviter d'avoir à le faire via l'interface. Cela permet de gagner du temps et d'éviter des erreurs.
    Par exemple si l'on veut créer un table "niveaux" puis ajouter les niveaux de classe des élèves du 1er degré, voici un exemple de code à inclure dans le dossier "migrations" via un fichier .sql :
    CREATE TABLE niveaux(
    niv TEXT PRIMARY KEY
    );
    INSERT INTO niveaux (niv)
    VALUES ('TPS'),('PS'),('MS'),('GS'),('CP'),('CE1'),('CE2'),('CM1'),('CM2');

    Autre exemple si on veut créer une table "annee_scol" puis y inclure les années scolaires :
    CREATE TABLE annee_scol(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    annee TEXT,
    active INTEGER
    );
    INSERT INTO annee_scol (annee,active)
    VALUES ('2023-2024',1),('2024-2025',0),('2025-2026',0),('2026-2027',0),('2027-2028',0),('2028-2029',0),('2029-2030',0);

  5. Utilisation d'une case à cocher (checkbox) dans un composant de type form :
    Pour un champ de type Integer, on peut utiliser 1 comme la valeur d'une case à cocher. Dans l'exemple ci-dessous, si la variable $suivi_edit vaut 1, alors la case est cochée.
    SELECT 'SUIVI' AS label, 'suivi' AS name, 'checkbox' as type, $suivi_edit=1 as checked, 1 as value, 1 as width;
  6. Pour avoir des champs en cascade où la valeur d'un champ précédant détermine le contenu du champ suivant :
    Voir cette page : https://sql.ophir.dev/examples/multistep-form/
  7. Pour ne pas voir apparaître un champ dans un formulaire mais retourner sa valeur lors de la soumission, utiliser la propriété :
    'hidden' as type
  8. Un champ de formulaire avec la propriété TRUE as 'readonly' ne sera pas modifiable.
  9. Un champ de formulaire avec la propriété TRUE as 'disabled' sera grisé et ne sera pas modifiable mais ne retournera aucune valeur lors de la soumission du formulaire.

 

 

B- Importation .csv dans École Inclusive à partir des extractions ONDE

À partir de ONDE, on peut obtenir des extractions .csv avec les informations administratives des élèves avec notamment leur INE. Cependant le format du fichier .csv obtenu ne respecte pas les normes, en effet il n'est pas au format UTF-8 mais Europe Occidentale ("norme" Windows)... Le séparateur est le point virgule ";" et comme séparateur de chaine de caractères les guillemets doubles " ".
Les dates sont au format YYYY-MM-DD (norme ISO 8601 ou EN 28601) qui ne nécessite pas de modifications.
Les en-têtes de champs pour les élèves sont :

Nom élève Nom d'usage élève Prénom élève Date naissance Sexe INE Adresse1 Cp1 Commune1 Pays1 Adresse2 Cp2 Commune2 Pays2 Cycle Niveau Libellé classe Identifiant classe Attestation fournie Autorisation photo Décision de passage Dispositif(s) Regroupement(s)

 

Pour s'appuyer sur École Inclusive, il est nécessaire de renommer les en-têtes de champ pour qu'ils correspondent à ceux de la table "élèves". Il faut aussi enlever les espaces par exemple. Voici le renommage à faire :

nom Nom d'usage élève prenom  naissance sexe INE adresse code_postal commune Pays1 Adresse2 Cp2 Commune2 Pays2 Cycle niveau classe Identifiant classe Attestation fournie Autorisation photo Décision de passage dispositif regroupement


On remarque qu'il n'y a pas le nom de l'établissement et qu'il faudrait le rajouter.

De plus, il faudrait rajouter un champ "suivi" de type booléen pour indiquer si l'élève fait l'objet d'un suivi. On pourrait donc l'indiquer dans l'application avec une case à cocher (checkbox).

Pour effectuer toutes ces modifications, on va utiliser un fichier LibreOffice Calc avec des macros :

  • pour modifier les noms des champs utilisés,
  • modifier l'encodage en UTF-8, avec séparateur ";" et délimiteur de texte avec " ".
  • rajouter le champ "suivi" qui indiquera si l'élève fait l'objet d'un suivi (1 si c'est le cas), -> INUTILE : on le fera dans l'apllication en ligne.
  • rajouter l'UAI de l'établissement, -> INUTILE : au moment de l'importation, on pourra choisir l'établissement auquel on rattachera les élèves.