.. _exemple: Exemple : la gestion de ma bibliothèque : ========================================= Il est proposé à titre d'exemple, de créer l'application ma bibliothèque et le prêt à mes amis : - dans un premier temps, on analyse ce que l'on veut faire et on peut produire un diagramme de classe - on créé les tables avec om_tables en modifiant éventuellemnt les paramères d'om_tables_parametre - on créé les champs correspondants avec om_champs en modifiant éventuellemnt les paramères d'om_forms - on compose le formulaire avec l'option composeur du menu pg_admin - et enfin on génére les formulaires pour chaque table. Diagramme de classe de la gestion de bibliothéque : --------------------------------------------------- .. image:: ../_static/classe_bibliotheque.png La création des tables : ------------------------ Les tables suivantes ont été crées avec om_tables : livre, emprunteur , emprunteur_livre Les champs ont été créés avec om_champs .. code:: CREATE TABLE om5.livre ( livre integer NOT NULL, -- null titre character varying NOT NULL, -- {"libelle":"Titre du livre","type":"","bloc":"C1","position":2} auteur character varying, -- {"libelle":"Auteur du livre","type":"","bloc":"C1","position":"1"} resume text NOT NULL, -- {"libelle":"","type":"html","bloc":"C2","position":"1"} fichier character varying, -- {"bloc":"C1","position":"3","libelle":"Le fichier","type":"file"} CONSTRAINT livre_pkey PRIMARY KEY (livre) ); COMMENT ON TABLE om5.livre IS E'{"col1":"Mes titres en cours","col2":"Mon avis","col3":"sans", "libelle":"Ma biblioth\\u00e8que de livres","affichage":"1","nombre_colonne":"2"}'; CREATE TABLE om5.emprunteur ( emprunteur integer NOT NULL, nom character varying NOT NULL, -- {"libelle":"","type":"","bloc":"C1","position":"1"} prenom character varying, -- {"libelle":"","type":"","bloc":"C1","position":"2"} date_naissance date, -- {"libelle":"","type":"","bloc":"C1","position":"3"} actif boolean, -- {"libelle":"","type":"","bloc":"C2","position":"1"} CONSTRAINT emprunteur_pkey PRIMARY KEY (emprunteur) ) ; COMMENT ON TABLE om5.emprunteur IS '{"col1":"Etat civil","col2":"Autres","col3":"", "libelle":"Mes amis","affichage":"1","nombre_colonne":"2"}'; CREATE TABLE om5.emprunteur_livre ( emprunteur_livre integer NOT NULL, date date NOT NULL, -- {"libelle":"","type":"","bloc":"C2","position":"1"} retour boolean, -- {"libelle":"","type":"","bloc":"C2","position":"2"} livre integer NOT NULL, -- {"libelle":"","type":"","bloc":"C1","position":"1"} emprunteur integer NOT NULL, -- {"libelle":"","type":"","bloc":"C1","position":"2"} ceci_est_e character varying, -- {"libelle":"ceci est e","bloc":"C1","position":3,"type":""} CONSTRAINT emprunteur_livre_pkey PRIMARY KEY (emprunteur_livre), CONSTRAINT emprunteur_livre_emprunteur_fkey FOREIGN KEY (emprunteur) REFERENCES om5.emprunteur (emprunteur) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT emprunteur_livre_livre_fkey FOREIGN KEY (livre) REFERENCES om5.livre (livre) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ); COMMENT ON TABLE om5.emprunteur_livre IS E'{"col1":"Livres ou Amis","col2":"retour","col3":"pas", "libelle":"livres emprunt\\u00e9s","affichage":"0","nombre_colonne":"2"}'; Les modifications suivantes des paramètres des tables ont été effectuées: ------------------------------------------------------------------------- emprunteur - col1 Etat Civil - col2 Activité - libelle Mes amis livre - col1 mes titres - col2 Mon avis - libelle Ma bibliothèque emprunteur_livre - affichage 0 Les champs suivants ont été créés pour chaque table : ----------------------------------------------------- Les champs suivants ont été créés dans om_champs : Pour la table emprunteur : - nom : type varchar(40) obligatoire - prenom : type varchar(40) non obligatoire - date_naissance : type date obligatoire - actif : type booleen non obligatoire Pour la table livre : - titre : type character varying obligatoire - auteur : type character varying obligatoire - resume : type text obligatoire - fichier : type character varying Non obligatoire Pour la table emprunteur_livre : - emprunteur : type cle secondaire obligatoire - livre : type cle secondaire obligatoire - date : type date non obligatoire - retour : type booléen non obligatoire Les contraintes de clé secondaires sont visibles dans le sous formulaire om_contrainte de om_tables (option du menu pg_admin) : - emprunteur_livre_livre_fkey - emprunteur_livre_emprunteur_fkey .. note:: Les sous formulaires sont créés par les clés secondaires. Les modifications des paramètres suivantes ont été faites dans les champs dans la table om_champs : ---------------------------------------------------------------------------------------------------- pour la table emprunteur : - date_naissance : libellé : date de naissance pour la table livre : - fichier : libellé : upload ; type : file - resume : type : html pour la table emprunteur_livre - emprunteur: libellé : ami(e) - date: libellé : date de prêt Les formulaires ont été composés de la manière suivante : --------------------------------------------------------- Pour la table emprunteur : .. image:: ../_static/composer_emprunteur.png pour la table livre : .. image:: ../_static/composer_livre.png Le menu application : --------------------- Le menu option application est créé au fur et à mesure de la création des tables : .. image:: ../_static/menu_app.png Les formulaires et les sous formulaires générés : ------------------------------------------------- Il faut ensuite générer le formulaire avec chaque table (voir action générer d'om_table). Il est possible de lister les emprunteurs dans le menu application -> option "mes amis" .. image:: ../_static/tab_emprunteur.png Il est possible de saisir, modifier et supprimer les aemprunteurs dans le formulaire suivant : .. image:: ../_static/form_emprunteur.png Il est possible de lister les livres dans le menu application -> option "ma bibliothèque" .. image:: ../_static/tab_livre.png Il est possible de saisir, modifier et supprimer les livres dans le formulaire suivant : .. image:: ../_static/form_livre.png Il est possible de lister les livres empruntés dans le menu application -> dans le sous formulaire de livre ou d'emprunteur : .. image:: ../_static/tab_emprunteur_livre.png Il est possible de saisir, modifier et supprimer les emprunts de livre dans le formulaire généré : .. image:: ../_static/form_emprunteur_livre.png