Commit a4d9ff20 authored by Patrick Etcheverry's avatar Patrick Etcheverry

- Impossibilité de modifier démarche dans édition de scénario ;

- Deux fichiers de formulaire pour les scénario pédagogiques ;
- Méthode '__toString()' dans Projet (pour le formulaire)
parent 5f76d6d7
......@@ -9,8 +9,12 @@ use Symfony\Component\HttpFoundation\Request;
// To use Security annotations on the top of fuctions
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
// Pour redéfinir EntityType dans le controlleur
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use ScenarioBundle\Entity\Project;
/**
* Pedagogical Scenario controller.
*
......@@ -48,7 +52,8 @@ class PedagogicalScenarioController extends Controller
public function newAction(Request $request)
{
$pedagogicalScenario = new Pedagogicalscenario();
$form = $this->createForm('ScenarioBundle\Form\PedagogicalScenarioType', $pedagogicalScenario);
$form = $this->createForm('ScenarioBundle\Form\PedagogicalScenarioTypeNew', $pedagogicalScenario);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
......@@ -73,23 +78,8 @@ class PedagogicalScenarioController extends Controller
{
$deleteForm = $this->createDeleteForm($pedagogicalScenario);
$entityManager = $this->get('doctrine')->getManager();
// On récupère la liste des étapes (et leur position) pour la démarche courante
$toutesInfos = $entityManager->createQuery ('
select scenarioPedagogique, projet, referent, process
FROM ScenarioBundle:PedagogicalScenario scenarioPedagogique
JOIN scenarioPedagogique.referentTeacher referent
JOIN scenarioPedagogique.project projet
JOIN scenarioPedagogique.scenarisationProcess process
WHERE scenarioPedagogique = :scenarioPedagogique');
$toutesInfos->setParameter('scenarioPedagogique',$pedagogicalScenario);
$pedagogicalScenario = $toutesInfos->getResult();
return $this->render('ScenarioBundle:pedagogicalscenario:show.html.twig', array(
'pedagogicalScenario' => $pedagogicalScenario[0],
'pedagogicalScenario' => $pedagogicalScenario,
'delete_form' => $deleteForm->createView(),
));
}
......@@ -101,10 +91,8 @@ class PedagogicalScenarioController extends Controller
public function editAction(Request $request, PedagogicalScenario $pedagogicalScenario)
{
$deleteForm = $this->createDeleteForm($pedagogicalScenario);
$editForm = $this->createForm('ScenarioBundle\Form\PedagogicalScenarioType', $pedagogicalScenario);
// Une fois que la démarche de scénarisation d'un scénario pédagogique a été défini, on ne peut plus la modifier.
$editForm->remove('scenarisationProcess');
$editForm = $this->createForm('ScenarioBundle\Form\PedagogicalScenarioTypeEdit', $pedagogicalScenario);
$editForm->handleRequest($request);
if ($editForm->isSubmitted() && $editForm->isValid())
......
......@@ -199,15 +199,16 @@ class PedagogicalScenario
*
* @return PedagogicalScenario
*/
/* Il faut mettre la valeur par défaut à 'null' pour que
le déliage du projet d'un scénario pédagogique fonctionne sinon symfony gueule */
public function setProject(\ScenarioBundle\Entity\Project $project = null)
public function setProject(\ScenarioBundle\Entity\Project $project)
{
// faudra faire un remove coco
$this->project = $project;
// Lorsque la liste déroulante du formulaire laisse vide
if ($project != null)
{
$project->addPedagogicalScenario($this);
}
return $this;
}
......
<?php
namespace ScenarioBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
class PedagogicalScenarioTypeEdit extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('project', EntityType::class, array(
'label' => 'project',
'class' => 'ScenarioBundle:Project',
'choice_label' => 'shortname',
'multiple' => false,
'expanded' => false,
'required' => false,
'empty_data' => null
));
$builder->add('shortname','text', array( 'label' => 'shortname'));
$builder->add('fullname','text', array( 'label' => 'fullname'));
$builder->add('referentTeacher', EntityType::class, array(
'label' => 'referentTeacher',
'class' => 'UserBundle:User',
'choice_label' => 'lastnameFirstname',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.roles LIKE :role')
->orderBy('u.lastname', 'ASC')
->setParameter('role','%ROLE_TEACHER%');
}
//'multiple' => true
));
// Une fois que la démarche de scénarisation d'un scénario pédagogique a été défini, on ne peut plus la modifier.
$builder->add('scenarisationProcess', 'text', array(
'label' => 'scenarisationProcess',
'read_only' => 'true',
//'multiple' => true
));
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'ScenarioBundle\Entity\PedagogicalScenario'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'scenariobundle_pedagogicalscenario';
}
}
......@@ -9,7 +9,7 @@ use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
class PedagogicalScenarioType extends AbstractType
class PedagogicalScenarioTypeNew extends AbstractType
{
/**
* {@inheritdoc}
......
......@@ -19,7 +19,11 @@
</tr>
<tr>
<th>{{ 'project'|trans }}</th>
<td>{{ pedagogicalScenario.project.shortname }}</td>
{% if (pedagogicalScenario.project == null) %}
<td>LIE A AUCUN PROJET</td>
{% else %}
<td>{{ pedagogicalScenario.project.shortname}}</td>
{% endif %}
</tr>
<tr>
<th>{{ 'scenarisationProcess'|trans }}</th>
......
......@@ -118,6 +118,11 @@ class ScenarisationProcess
$this->etapesScenarisation = new \Doctrine\Common\Collections\ArrayCollection();
}
public function __toString()
{
return $this->getTitle();
}
/**
* Add scenarisationStageOrder
*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment