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 :
J'ai donc mon action newpersonfull que j'ajoute dans mon controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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: ~
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class personActions extends autoPersonActions{ public function executeNewpersonfull(sfWebRequest $request){ $this->form = new CcPersonFullForm(); } }
- 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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() )); } }
Partager