diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 7b0800f..dd72fe7 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -44,4 +44,5 @@ security: - { path: ^/reset-password, roles: PUBLIC_ACCESS } - { path: ^/share, roles: PUBLIC_ACCESS } - { path: ^/admin, roles: ROLE_ADMIN } + - { path: ^/directory/history, roles: ROLE_ADMIN } - { path: ^/, roles: IS_AUTHENTICATED_REMEMBERED } #IS_AUTHENTICATED_REMEMBERED= user is logged, with form or with cookie diff --git a/migrations/Version20220910184058.php b/migrations/Version20220910184058.php new file mode 100644 index 0000000..006b282 --- /dev/null +++ b/migrations/Version20220910184058.php @@ -0,0 +1,33 @@ +addSql('ALTER TABLE jail ADD status VARCHAR(255) NOT NULL'); + $this->addSql('UPDATE jail SET status = "🔴 To do"'); + + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE jail DROP status'); + } +} diff --git a/src/Controller/DirectoryController.php b/src/Controller/DirectoryController.php index 00d0eb3..64abd73 100644 --- a/src/Controller/DirectoryController.php +++ b/src/Controller/DirectoryController.php @@ -314,4 +314,21 @@ class DirectoryController extends AbstractController 'deletedDirectory' => $deleted ]); } + + + #[Route('/history/{id}', name: 'history')] + public function history(Directory $Directory, EntityManagerInterface $em): Response + { + + /** + * @var LogEntryRepository $logEntryRepository + */ + $logEntryRepository = $em->getRepository('Gedmo\Loggable\Entity\LogEntry'); + $directoryHistory = $logEntryRepository->getLogEntries($Directory); + return $this->render('directory/history.html.twig', [ + 'controller_name' => 'DocumentController', + 'directory' => $Directory, + 'history' => $directoryHistory, + ]); + } } diff --git a/src/Entity/Directory.php b/src/Entity/Directory.php index b712fc2..4410629 100644 --- a/src/Entity/Directory.php +++ b/src/Entity/Directory.php @@ -417,6 +417,7 @@ class Directory /** * @ORM\Column(type="boolean", options={"default":"1"}) + * @Gedmo\Versioned */ private $wantedDisplay = true; @@ -464,26 +465,31 @@ class Directory /** * @ORM\Column(type="string", length=255, nullable=true) + * @Gedmo\Versioned */ private $gangInfo; /** * @ORM\Column(type="boolean", options={"default":"0"}) + * @Gedmo\Versioned */ private $hasNoPapers = false; /** * @ORM\Column(type="text", nullable=true) + * @Gedmo\Versioned */ private $medicalContact; /** * @ORM\Column(type="text", nullable=true) + * @Gedmo\Versioned */ private $medicaltrusted; /** * @ORM\Column(type="text", nullable=true) + * @Gedmo\Versioned */ private $medicalLastWish; diff --git a/src/Entity/Jail.php b/src/Entity/Jail.php index ff257e3..b997fed 100644 --- a/src/Entity/Jail.php +++ b/src/Entity/Jail.php @@ -50,6 +50,12 @@ class Jail extends Document */ private $medic = false; + /** + * @ORM\Column(type="string", length=255) + * @Gedmo\Versioned + */ + private $status; + public function __construct(User $user) { parent::__construct($user); @@ -129,4 +135,15 @@ class Jail extends Document return $this; } + + public function getStatus(): ?string + { + return $this->status; + } + + public function setStatus(string $status): self + { + $this->status = $status; + return $this; + } } diff --git a/src/Form/JailType.php b/src/Form/JailType.php index 2278c03..d4820f7 100644 --- a/src/Form/JailType.php +++ b/src/Form/JailType.php @@ -8,6 +8,7 @@ use App\Form\Type\ContentType; use App\Form\Type\DateTimeVisionType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; class JailType extends DocumentType @@ -38,6 +39,14 @@ class JailType extends DocumentType ->add('lawyer', CheckboxType::class, ['label' => 'form_label_asked_for_lawyer', 'required' => false]) ->add('medic', CheckboxType::class, ['label' => 'form_label_asked_for_medic', 'required' => false]) ->add('content', ContentType::class) + ->add('status', ChoiceType::class, [ + 'choices' => [ + 'form_choice_jail_status_todo' => 'form_choice_jail_status_todo', + 'form_choice_jail_status_inprogress' => 'form_choice_jail_status_inprogress', + ], + 'label' => 'form_label_jail_status', + 'priority' => -800 + ]) ; } diff --git a/templates/_cells/directoryActions.html.twig b/templates/_cells/directoryActions.html.twig index 94efa4a..157bcb9 100644 --- a/templates/_cells/directoryActions.html.twig +++ b/templates/_cells/directoryActions.html.twig @@ -47,4 +47,8 @@ +{% endif %} + +{% if is_granted('ROLE_ADMIN') %} + {% endif %} \ No newline at end of file diff --git a/templates/directory/history.html.twig b/templates/directory/history.html.twig new file mode 100644 index 0000000..5bcb514 --- /dev/null +++ b/templates/directory/history.html.twig @@ -0,0 +1,12 @@ +{% extends 'base.html.twig' %} + +{% block title %}{{ directory.fullName }} - {% trans %}title_history{% endtrans %}{% endblock %} +{% block subtitle %}#{{ directory.id }}: {{ directory.fullName }} - {% trans %}title_history{% endtrans %} {% endblock %} + +{% block body %} +