Sudowich go
C’est vrai que faire un article abordable par tous c’est pas facile ! Alors comme je suis un geek mais que je voudrais éviter de vous imposer des article techniques à chaque fois, voici :
UpShot est un service édité par Studio Melipone SARL, une société web française basée à Paris.
(Nous aimons construire des applications Web, écouter du rock et adorerions boire un verre avec vous.)
UpShot version "Popular", mise en ligne le 03/11/10.
Webdesign par STEAW, hébergement par Typhon
C’est vrai que faire un article abordable par tous c’est pas facile ! Alors comme je suis un geek mais que je voudrais éviter de vous imposer des article techniques à chaque fois, voici :

Territoire graphique est un collectif de graphistes marseillais. Nous avons contacté Julien Boulanger et Rémi Mollard pour nous parler de leur métier mais avant tout d’une passion commune.
Pourquoi vous être regroupé en tant que collectif ?
Territoires Graphiques compte désormais deux membres, deux artistes-auteurs inscrits à la Maison des Artistes, Julien Boulanger et Rémi Mollard.Cela nous permet de collaborer ponctuellement sur certains dossiers et de garder une certaine souplesse de fonctionnement.
Comment vous êtes vous rencontré ?
Nous nous sommes rencontrés au cours de notre cursus scolaire en arts appliqués, puis nous nous sommes retrouvés quelques années plus tard, à la fin de nos études.Nous avions alors suivi le même parcours dans des établissements différents sans le savoir, ce qui nous permet d’afficher à peu de choses prêt le même cursus : Une formation en Art Textile et Impression et une formation en Graphisme.
Quels sont les avantages de votre structure par rapport à une agence et au statut de Free-Lance ?
Le collectif n’est pas destiné à accueillir de nouveaux membres, mais à nous faciliter la tache de freelance, aussi bien en terme de communication, qu’en terme de créativité. On s’assure ainsi d’avoir un oeil extérieur à notre travail, de s’enrichir mutuellement et d’éviter l’isolement du métier de graphiste freelance.
Qui sont vos clients ?
Ces formations communes nous permettent de trouver des clients divers.On nous contacte aussi bien pour de l’identité visuelle, du print, du web, que de l’illustration, du design textile ou des créations numériques.


Print, Flyer pour S.P. Records.

Pour mon premier article sur ce blog, je vais être assez technique, alors d’avance désolé pour les non-techniciens qui nous lisent ;)
Nous allons parler ici d’ActiveScaffold, un plugin pour Ruby on Rails qui permet d’obtenir rapidement et simplement des interfaces CRUD sur vos Models… En fait nous allons surtout parler de sa personnalisation !
Pré-requis :
Le but :
Afficher ou non des action_link en fonction de la valeur d’une colonne de la base de données pour chacun des rang scaffoldés. mais si mais si vous suivez !
La base
Dans notre projet Rails, il y un model User, auquel correspond donc une table user en base de donnée.
Ce projet possède une interface d’administration qui fonctionne avec ActiveScaffold, il y a donc un 2ème controller pour notre user, le UserController de la partie administration.
Dans notre projet nous voulons créer un action_link supplémentaire pour changer la valeur d’une colonne de notre objet User en base. On ajoute donc à notre UsersController de zone d’administration :
On va donc logiquement définir dans notre controller une méthode validate qui va effectuer le traitement voulu. Jusque là rien de bien compliqué, c’est la base d’ActiveScaffold.
Ça se complique…
A présent, nous voudrions que ce lien n’apparaissent que lorsqu’une colonne du user en base concernée possède une certaine valeur.
Pour ce faire, il faut rajouter un argument magique, j’ai nommé : security_method.
Dans le principe cet argument permet d’appeler une méthode du controller concerné pour tester des condition sur la colonne scaffoldée elle-même.
On obtient donc :
Ainsi avant d’afficher le lien validate, la méthode need_validation? serait appelée…
Le problème
Ici il faut déterminer si oui ou non on va afficher notre action_link, ce qu’on va tester ce n’est donc pas un état de la colonne scaffoldée, mais chacun des records que l’on parcours dans notre scaffold !
… Mais il y a une petite astuce ;)
La solution va être de créer une vue qui surchargera automatiquement l’affichage actuel du scaffold, et dans lequel on va pouvoir accéder aux champs parcourus.
ATTENTION : Cette technique demande à ce que la méthode appelée par security_method soit dans le model et non plus dans le controller !
Il faut créer une vue nommée _list_actions.html.erb et la placer dans le répertoire des vues admin du controller concerné. Ici views/admin/users/_list_actions.html.erb
Dans cette vue nous allons pouvoir accéder à chaque record concerné ainsi qu’à leurs action_link :
Regardez bien la ligne 7, c’est la seule que nous avons changé par rapport au fichier _list_actions.html.erb standard d’ActiveScaffold.
|
<%= loading_indicator_tag(:action => :record, :id => record.id) %>
|
<%= record.authorized_for?(:action => link.crud_type) ? render_action_link(link, url_options) : “#{link.label}” -%>
|
Toute l’astuce réside dans la seconde partie du test ligne 7, qui va exécuter cette méthode dans le model en plus de la tester dans le controller. Du coup même si c’est un “hack” on ne change pas le fonctionnement d’Active Scaffold !
Conclusion
On peux ainsi simplifier grandement l’administration de notre site, puisque seul les rangs qui nécessites cette validation présentent le bouton !
