Commit 762dafec authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Modification de mission déjà validée

parent 06e0e6f3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -227,7 +227,7 @@ export default {
            } else if (this.mission.heuresValidees == 0) {
                return Util.formattedHeures(this.mission.heures) + ' heures (non validées)';
            } else {
                return Util.formattedHeures(this.mission.heures) + ' heures (' + Util.formattedHeures(this.mission.heuresValidees) + ' validées)';
                return '<span class="bg-info">'+Util.formattedHeures(this.mission.heures) + '</span> heures (' + Util.formattedHeures(this.mission.heuresValidees) + ' validées)';
            }
        }
    },
+4 −0
Original line number Diff line number Diff line
@@ -145,6 +145,10 @@ class SaisieController extends AbstractController

        $form = $this->getFormMission();

        if ($mission->isValide()){
            $form->editValide();
        }

        if ($this->getServiceContext()->getStructure()) {
            $form->remove('structure');
        }
+1 −1
Original line number Diff line number Diff line
@@ -486,7 +486,7 @@ class Mission implements HistoriqueAwareInterface, ResourceInterface, EntityMana

    public function canSaisie(): bool
    {
        return !$this->isValide();
        return true;
    }


+27 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ use UnicaenApp\Util;
 */
class MissionForm extends AbstractForm
{
    protected bool $valide = false;

    use ContextServiceAwareTrait;

    public function init()
@@ -72,4 +74,29 @@ class MissionForm extends AbstractForm

        $this->addSubmit();
    }



    public function editValide(): self
    {
        $this->valide = true;

        $elements = $this->getElements();
        unset($elements['heures']);
        unset($elements['dateFin']);

        // On met en lecture seule tout le formulaire, sauf le nombre d'heures & la date de fin
        // ces deux données uniquement sont modifiables après validation
        $elements = array_keys($elements);
        $this->readOnly(true, $elements);

        return $this;
    }



    public function isValide(): bool
    {
        return $this->valide;
    }
}
 No newline at end of file
+3 −0
Original line number Diff line number Diff line
@@ -7,6 +7,9 @@
 */

echo $this->messenger()->addCurrentMessagesFromFlashMessengerWithNamespace('error');
if ($form->isValide()){
    echo $this->messenger()->renderMessage("Cette mission est déjà validée. Il n'est possible de ne modifier que son nombre d'heures et sa date de fin.", 'info');
}

echo $this->tag('h1', ['class' => 'page-header'])->html($title);
echo $this->form()->openTag($form);