|
Candidat au titre de Membre du Club
Inscription : avril 2008 Messages : 111 Détails du profil  Informations forums : Inscription : avril 2008 Messages : 111 Points : 12 Points : 12
|
Formulaire hérité (doctrine)
Bonjour,
j'utilise l'admin generator pour le backend de mon projet. J'ai un module Person qui gère des utilisateurs. En plus de l'action _new je veux ajouter une action personnalisé qui me permette en plus d'initialiser une nouvelle personne, de renseigner son groupe et d'autres informations.
Voici le generator.yml :
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| generator:
class: sfDoctrineGenerator
param:
model_class: CcPerson
theme: admin
non_verbose_templates: true
with_show: false
singular: ~
plural: ~
route_prefix: cc_person
with_doctrine_route: true
actions_base_class: sfActions
config:
actions:
_save: { label: Sauvegarder }
_save_and_add: { label: Sauvegarder et répéter l'opération }
fields:
firstname: { label: "Prénom" }
lastname: { label: "Nom" }
email: { label: "Adresse email" }
arrivaldate: { label: "Date arrivée" }
departuredate: { label: "Date départ" }
gender: { label: "Sexe" }
list:
title: Liste des agents
display: [firstname,lastname,email]
sort: [lastname,asc]
max_per_page: 30
actions:
newPersonFull : { label: "Nouvel agent (avec groupes, crédits, droits)", action: newpersonfull }
_new: { label: "Nouvel agent (simple ajout)" }
batch_actions: {}
object_actions:
_edit: ~
filter:
display: [firstname, lastname, email, arrivaldate, departuredate]
form: ~
edit:
title: Modifier l'agent %%firstname%% %%lastname%%
actions:
_list: ~
_save: ~
new:
title: Ajouter un nouvel agent
display: [firstname, lastname, gender, email, arrivaldate, departuredate]
actions:
_list: ~
_save: ~
_save_and_add: ~ |
J'ai donc mon action newpersonfull que j'ajoute dans mon controller :
Code :
1 2 3 4 5
| class personActions extends autoPersonActions{
public function executeNewpersonfull(sfWebRequest $request){
$this->form = new CcPersonFullForm();
}
} |
Maintenant, je dois initilialiser mon formulaire CcPersonFullForm mais comme je veux via ce formulaire créer une nouvelle personne, je voudrais (si possible) ne pas réécrire ce qui est déjà disponible dans la classe BaseCcPersonForm.
- Que dois-je écrire dans CcPersonFullForm pour appeler les infos du formulaire de base ?
- Comment faire pour la vue ?
Voici mon formulaire qui ne marche pas.
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?php
class CcPersonFullForm extends CcPersonForm{
public function configure(){
parent::configure();
$this->setWidgets(array(
'membergroup_list' => new sfWidgetFormDoctrineChoice(array('model' => 'CcGroup', 'multiple' => true)),
'creditFractionnement' => new sfWidgetFormInputText(array(), array('size' => 4)),
'exerciceFractionnement' => new sfWidgetFormInputText(array(), array('size' => 4)),
'creditConges' => new sfWidgetFormInputText(array(), array('size' => 4)),
'exerciceConges' => new sfWidgetFormInputText(array(), array('size' => 4))
));
$this->widgetSchema->setLabels(array(
'membergroup_list' => "Membre des groupes",
'creditFractionnement' => "L'agent aura un droit potentiel à",
'exerciceFractionnement' => "jours de fractionnement pour l'exercice",
'creditConges' => "À son arrivée, l'agent obtient un solde de",
'exerciceConges' => "jours de congés annuels pour l'exercice"
));
$this->setDefaults(array(
'creditFractionnement' => 2,
'exerciceFractionnement' => date('Y'),
'creditConges' => 45,
'exerciceConges' => date('Y')
));
$this->setValidators(array(
'membergroup_list' => new sfValidatorDoctrineChoice(array('model' => 'CcGroup', 'required' => true, 'multiple' => true)),
'creditFractionnement' => new sfValidatorInteger(),
'exerciceFractionnement' => new sfValidatorInteger(),
'creditConges' => new sfValidatorInteger(),
'exerciceConges' => new sfValidatorInteger()
));
}
} |
|