Pour la plupart des projets, il est nécessaire d’avoir une interface d’administration. Dans la majeure partie des cas, il s’agit simplement d’un accès aux objets. Permettre à l’administrateur de créer, d’éditer ou de supprimer certains objets. Au lieu de recréer vos contrôleurs et vues pour chaque projets, je vous propose une petite introduction à Typus, qui va nous générer tout ça comme un grand à partir de nos modèles :D
Etape 1 : Installer Typus
1 # script/plugin install git://github.com/fesplugas/typus.git 2 # script/generate typus
Une fois les fichiers créés il suffit d’exécuter la migration. Elle ajoute une table contenant les utilisateurs de typus à votre base de donnée. Typus a donc son propre système de gestion d’utilisateurs.
1 # rake db:migrate
Et voilà, il ne vous reste plus qu’a vous rendre à l’adresse
1 http://localhost:3000/admin
Pour accéder à votre nouvelle interface d’administration !

Mieux que la tente Quechua…
Etape 2 : Configurer Typus
Evidement, dans sa forme actuelle, même si Typus nous a fait gagner du temps, il reste quelques petits problèmes. Nous voudrions par exemple :
- Empêcher l’édition des objets d’un modèle précis
- Empêcher la création d’un type d’objet
- Enlever un champ particulier du formulaire d’édition
- Rendre un champ ‘read-only’ dans le formulaire
- etc…
Pas de panique c’est possible, il suffit d’aller dans les fichiers :
- config/typus/application.yml
- config/typus/application_roles.yml
Prenons un exemple, un blogpost, dans application.yml on aura :
1 Post: 2 fields: 3 list: id, blog, user, content, status, created_at 4 form: blog, user, content 5 show: id, blog, user, content, status, updated_at, created_at 6 options: 7 read_only: blog, user 8 export: csv, xml 9 order_by: user 10 filters: created_at 11 search: content 12 application: exampleblog
Fields permet de définir, pour les vues générées, les champs qui y seront présents. On peut également spécifier quels champs seront ‘read-only’ grâce à ‘options > read-only’ comme aux lignes 6 et 7.
Export permet de spécifier dans quel format la liste des éléments sera exportable, xml, csv et pdf sont disponibles.
Order_by est suffisement explicite. Filters crée, sur le côté droit de la liste, une boîte qui permet de filtrer les éléments. Si on prend l’exemple du created_at on aura une série de liens (Today, Past 7 days, This month, This year) qui permettent de filtrer notre liste.
Search ajoute également une boîte sur la droite, une zone de recherche. On peut rechercher sur plusieurs champs.
Si vous souhaitez modifier complètement une des vues générées, c’est simple, si on prend notre exemple et qu’on souhaite modifier le formulaire, il suffit de créer le fichier app/view/admin/posts/edit.html.erb, d’en écrire le contenu et l’affaire est dans le sac !
Le fichier application_roles.yml permet de spécifier, pour chaque rôle, les actions qu’il pourra effectuer sur tel ou tel objet.
1 admin: 2 Post: create, read, delete, update
Le layout de typus est également modifiable a souhait, et il existe encore d’autres options non détaillées dans ce post. Consultez la doc pour plus d’infos.
Dorénavant, vous n’avez plus d’excuses pour ne pas faire des interfaces d’administration qui en jettent en très peu de temps ;)
http://intraducibles.com/projects/typus/
http://github.com/fesplugas/typus/tree/master
Mieux que la tente Quechua ?? Woaw à tester! Merci pour l’info