Commit 63d2b7f6 authored by Jean-Baptiste Oellers's avatar Jean-Baptiste Oellers
Browse files

Ajout publier

parent 49f845f4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -42,6 +42,10 @@ class ConventionModeleAdministrationController extends AbstractOscarController
            return $this->redirect()->toRoute('administration/conventionModeles');
        } else if ($this->params()->fromPost('action') == "modifier_nom") {
            $this->conventionModeleService->modifierNom($conventionModele, $this->params()->fromPost('nom'), $this->getCurrentPerson());
        } else if ($this->params()->fromPost('action') == "publier") {
            $this->conventionModeleService->publier($conventionModele, $this->getCurrentPerson());
        } else if ($this->params()->fromPost('action') == "dépublier") {
            $this->conventionModeleService->dépublier($conventionModele, $this->getCurrentPerson());
        }

        return $this->redirect()->toRoute('administration/conventionModeles/configurer', ['id' => $conventionModele->id]);
+1 −0
Original line number Diff line number Diff line
@@ -371,6 +371,7 @@ class PublicController extends AbstractOscarController implements UseTimesheetSe
            $conventionModeleRepository = $this->getEntityManager()->getRepository(\Oscar\Entity\ConventionModele::class);
            $conventionModeles = $conventionModeleRepository->createQueryBuilder('c')
                ->select('c')
                ->where('c.publishedAt is not null')
                ->orderBy('c.nom', 'ASC')->getQuery()->getResult();
        }

+7 −1
Original line number Diff line number Diff line
@@ -66,6 +66,12 @@ class ConventionModele
     */
    public $etapes;

    /**
     * @var \DateTime
     * @ORM\Column(type="datetime", nullable=true)
     */
    public $publishedAt;

    public function __construct()
    {
        $this->dateCreated = new \DateTime();
+20 −0
Original line number Diff line number Diff line
@@ -46,4 +46,24 @@ class ConventionModeleService implements UseEntityManager, UseLoggerService, Use
    $conventionModele->dateUpdated = new \DateTime();
    $this->getEntityManager()->flush();
  }

  public function publier(\Oscar\Entity\ConventionModele $conventionModele, \Oscar\Entity\Person $person): void
  {
    $this->getLoggerService()->info("ConventionModeleService publier");
    $this->getLoggerService()->info("by: " . $person);
    $conventionModele->updatedBy = $person;
    $conventionModele->dateUpdated = new \DateTime();
    $conventionModele->publishedAt = new \DateTime();
    $this->getEntityManager()->flush();
  }

  public function dépublier(\Oscar\Entity\ConventionModele $conventionModele, \Oscar\Entity\Person $person): void
  {
    $this->getLoggerService()->info("ConventionModeleService dépublier");
    $this->getLoggerService()->info("by: " . $person);
    $conventionModele->updatedBy = $person;
    $conventionModele->dateUpdated = new \DateTime();
    $conventionModele->publishedAt = NULL;
    $this->getEntityManager()->flush();
  }
}
+20 −0
Original line number Diff line number Diff line
@@ -25,6 +25,26 @@
      <input type="text" id="nom" name="nom" required placeholder="Nom du modèle de convention" size="80" value="<?= $conventionModele->nom ?>">
      <input type="submit" value="✏ Modifier le nom du modèle de convention">
    </form>

    <div style="margin-left: 2rem; margin-top: 2rem; margin-bottom: 4rem;">
      <?php if($conventionModele->publishedAt == NULL): ?>
      <span>
        Le modèle de convention n'est pas publié et n'est donc pas accessible aux utilisateurs. Cliquez sur le bouton ci-dessous pour publier le modèle de convention.
      </span>
      <form method="post">
        <input type="hidden" name="action" value="publier">
        <input type="submit" value="📖 Publier">
      </form>
      <?php else: ?>
      <span>
        Le modèle de convention est pas publié et est donc accessible aux utilisateurs. Cliquez sur le bouton ci-dessous pour dépublier le modèle de convention.
      </span>
      <form method="post">
        <input type="hidden" name="action" value="dépublier">
        <input type="submit" value="📕 Dépublier">
      </form>
      <?php endif; ?>
    </div>
  </div>

  <div style="margin-bottom: 4rem; background-color: white; border-radius: 1rem; padding: 1rem; margin-top: 1rem;">