Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

26 février 2010

Créer des données au démarrage dans Grails

Créer des données dans le BootStrap

Le BootStrap est une classe située dans le dossier /grails-app/conf du projet. Elle peut servir, entre-autre, à ajouter des données lors du démarrage. On peut commencer par détecter dans quel type d'environnement on se trouve en utilisant un «break»:

def init = { servletContext ->

switch (GrailsUtil.environment)

{

case "development":

println "**** BootStrap Développement en cous ..."

configureForDevelopment()

break

case "test":

println "**** BootStrap Test en cous ..."

configureForTest()

break

case "production":

println "**** BootStrap Production en cous ..."

configureForProduction()

break

}

println "**** Fin BootStrap"

}

On peut ensuite tester s'il y a des données déjà existantes et en ajouter si ce n'est pas le cas:

if (Technologie.count() == 0) {

println " - Création Technologie"

def tech = new Technologie(nom:"Non Connue")

tech.validate()

println tech

tech.errors.allErrors.each {

println it

}

tech.save(flush:true)

Qui devrait donner quelque chose du genre:

Inventaire applicatif du DMDI - CK

Field error in object 'ca.qc.hydro.ck.Application' on field 'contacts.role': rejected value [null]; …

Field error in object 'ca.qc.hydro.ck.Application' on field 'marche': rejected value [null]; …

Field error in object 'ca.qc.hydro.ck.Application' on field 'planificateur': rejected value [null]; …

Field error in object 'ca.qc.hydro.ck.Application' on field 'ressources.role': rejected value [null]; …

Field error in object 'ca.qc.hydro.ck.Application' on field 'uniteApplications.role': rejected value [null]; …

 

La méthode «validate» sert à peupler le champ «errors» de «tech» et le «flush:true» sert à indiquer qu'il faut persister ce qui vient d'être sauvegardé immédiatement. On peut aussi ajouter/retirer des éléments relationnels (de type: a hasMany b) en utilisant la méthode addTo/removeFrom :

applicationInstance.addToUniteApplications(uniteStructurelle:UniteStructurelle.findByDescriptionIlike("%Équipe sécurité%"),role:RoleUniteStructurelle.findByNom("Client"))

Diagramme de classe UML dans Grails

 

Créer un diagramme de classe UML du domaine

Le plugin CreateDomainUML permet de documenter les classes du domaine. Voici une des représentation possible.

uml.jpg

 

 

06 février 2010

Franciser les messages

Franciser les messages

Par défaut, l'ensemble des libellés et messages apparaissent en anglais. Pour franciser l'interface il faut installer le plugin d'internationalisation

Grails install-plugin i18n-templates

Cette commande installe une nouvelle commande

grails generate-i18n-messages

qui permet de créer les messages pour les divers objets de domaine de l'applications.

Cependant, le script permet de créer les entrés, mais avec un texte anglais. Il faut donc remplacer le script par une version HQ française. Ce script se trouve dans le répertoire D:Documents and SettingsCF2098.grails1.1.1projectsNOM DU PROJETpluginsi18n-templates-1.1.0.1scripts. Il suffit de le remplacer par la version HQ.

Par exemple pour deux classes simple, exécuter le script produit la sortie suivante:

# Emp messages par Hydro-Québec, Jean Desbiens

emp.create=Créer Emp

emp.edit=Editer Emp

emp.list=Liste des Emps

emp.new=Nouveau Emp

emp.show=Afficher Emp

emp.created=Emp {0} créé

emp.updated=Emp {0} mis à jour

emp.deleted=Emp {0} supprimer

emp.not.found=Emp introuvable avec identifiant {0}

emp.not.deleted=Emp non supprimé avec identifiant {0}

emp.optimistic.locking.failure=Un autre utilisateur a mis à jour Emp pendant que vous le modifiez

emp.id=Id

emp.nom=Nom

emp.nom.nullable.error=La propriété [Nom] de l'objet [Emp] ne peut être nulle

# Book messages par Hydro-Québec, Jean Desbiens

book.create=Créer Book

book.edit=Editer Book

book.list=Liste des Books

book.new=Nouveau Book

book.show=Afficher Book

book.created=Book {0} créé

book.updated=Book {0} mis à jour

book.deleted=Book {0} supprimer

book.not.found=Book introuvable avec identifiant {0}

book.not.deleted=Book non supprimé avec identifiant {0}

book.optimistic.locking.failure=Un autre utilisateur a mis à jour Book pendant que vous le modifiez

book.id=Id

book.titre=Titre

book.titre.nullable.error=La propriété [Titre] de l'objet [Book] ne peut être nulle

Il suffit de coller ce code dans le bundle de ressources FR.

Modifier les templates afin d'avoir la normes Hydro-Québec

Modifier les templates afin d'avoir la normes Hydro-Québec

Pour modifier les templates, il faut télécharger le plugin i18n-templates. On trouvera ensuite les templates dans /src/templates/scaffolding. Dans ce répertoire, on retrouvera quatre templates représentant les vues principales (show, edit, create, list), un template servant à générer les contrôleurs de domaine, ainsi qu'un script qui sert à générer les champs de saisi. Tous les templates des vues principales se réfèrent à un layout par défaut situé dans le fichier main.gsp.

Pour obtenir le standard HQ, copier les fichiers personnalisés par l'entreprise dans ce répertoire.