Widget Communs

Les outils de templating permettent d’utiliser des fonctions. Template Cheetah

Cette section a pour objectif de décrire comment créer facilement des boutons, éléments de formulaire...

Boutons

En python

Importer la librairie

from ead2.backend.actions.lib.widget import main

Lors du renvoie de données pour la compilation renvoyez un objet de type Bouton:

bouton = main.Bouton(href='http://monadresse.fr', libelle='allez sur mon adresse.fr')

Renvoyez votre bouton:

self.send_all({'moubouton':bouton}, template='montemplate.tmpl', templates=['main.tmpl'])

Warning

n’oubliez pas de passer le module main.tmpl. Si vous l’oubliez, il se peut que cela marche une fois et pas la suivante. Le frontend peut déjà avoir le template, et lorsque vous relancez le service ead-web, il n’y est plus... et ça plante.

Note

L’objet Bouton peut prendre pour option:

  • href : une url ou un javascript à éxécuter (plus souvent un javascript d’ailleurs, # par défaut)
  • libelle : une string (vide par défaut)
  • icon : un lien vers une icône (/image/ok.gif par défaut)
  • title : attribut title de balise html (utilisé au survol des liens)
  • _class : une classe css (btn par défaut)

Note

Il existe des objets étendus qui contienne des attributs par défaut différent icone, libelle

Submit:

  • libelle=”Valider”
  • icone=”/image/ok.gif”

CloseBtn:

  • libelle=’Fermer’
  • icone=’/image/supprimer.gif’
  • contient également un attribut supplémentaire balise : nom de la balise html à vider

SupprBtn:

  • libelle=’Supprimer’
  • icone=’/image/supprimer.gif’

En Cheetah

Dans l’en-tête de votre template montemplate.tmpl:

#extends ead2.frontend.web.template.main
#implements respond

Plus loin...

#if $is_defined('monbouton')
$main().make_btn($monbouton)
#end if

Note

Si vous voulez que votre bouton occupe toute la balise parente, utilisez:

$main().make_div_btn($bouton)

Widgets de Formulaires

Input

En python

Importer la librairie:

from ead2.backend.actions.lib.widget import form

Construisez une balise input:

balise = form.Input('nom', libelle='Entrez votre nom')

Renvoyez là dans le dictionnaire de données en compagnie des noms de templates:

result = {}
result['moninput'] = balise
self.send_all(result, template='montemplate.tmpl', templates=['form']

Voir aussi

En Cheetah

Importation de la librairie:

#extends ead2.frontend.web.template.form
#implements respond

Utilisation:

#if $is_defined('moninput')
$form().make_input($moninput)
#end if

Checkbox

En python

Importer la librairie:

from ead2.backend.actions.lib.widget import form

Construisez votre balise checkbox:

balise = form.Chexkbox('nom', 'libelle')

Renvoyez là dans un dictionnaire de données en compagnie des noms de templates:

result = {}
result['macheckbox'] = balise
self.send_all(result, template='montemplate.tmpl', templates=['form']

Voir aussi

En Cheetah

Importation de la librairie:

#extends ead2.frontend.web.template.form
#implements respond

Utilisation:

#if $is_defined('macheckbox')
$form().make_checkbox($macheckbox)
#end if

– _widget-form-radio:

RadioButton

En python

Importer la librairie:

from ead2.backend.actions.lib.widget import form

Construisez votre balise radio:

balise = form.Radio('nom', 'Choisissez')

Renvoyez là dans le dictionnaire de données en compagnie des noms de templates:

result = {}
result['monradio'] = balise
self.send_all(result, template='montemplate.tmpl', templates=['form']

Voir aussi

En Cheetah

Importer la librairie:

#extends ead2.frontend.web.template.form
#implements respond

Utilisation:

#if $is_defined('monradio')
$form().make_radio($monradio)
#end if

Select

En python

Importer la librairie:

from ead2.backend.actions.lib.widget import form

Construisez votre balise select:

select = form.Select('nom', 'Sélectionner')

Peuplez votre balise:

for i in range(10):
    value = "valeur_%d" % i
    libelle = "libelle_%d" % i
    select.add_option(value, libelle)

Utilisation des optiongroup:

for i in range(10):
    value = "valeur_%d" % i
    libelle = "libelle_%d" % i
    if i%%2 == 0 : group = "Nombre pair"
    else: group = "Nombre impair"
    select.add_option(value, libelle, group=group)

Joignez là aux données à renvoyer en compagnie du nom de template

result = {} result[‘maselect’] = select self.send_all(result, template=’montemplate.tmpl’, templates=[‘formselect’]

Voir aussi

En Cheetah

Importation de la librairie:

#extends ead2.frontend.web.template.formselect
#implements respond

Utilisation:

#if $is_defined('maselect')
$formselect().make($maselect)
#end if

Voir Aussi

Pour la validation des formulaires: