From 6a66fe321010f52319eaa005a582ca85a722ffa9 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 18 Apr 2022 14:22:26 +0200 Subject: [PATCH] add debriefing front page --- assets/css/cr.scss | 13 ++++ assets/js/cr.js | 1 + config/packages/app.yaml | 9 ++- src/Controller/DebriefingController.php | 25 +++++++ src/Entity/Debriefing.php | 4 +- src/Entity/Page/EntityPage.php | 19 +++++ templates/admin/debriefing/_show.html.twig | 9 +++ templates/base.html.twig | 4 +- templates/page/debriefing/default.html.twig | 81 +++++++++++++++++++++ webpack.config.js | 1 + 10 files changed, 161 insertions(+), 5 deletions(-) create mode 100644 assets/css/cr.scss create mode 100644 assets/js/cr.js create mode 100644 src/Controller/DebriefingController.php create mode 100644 src/Entity/Page/EntityPage.php create mode 100644 templates/page/debriefing/default.html.twig diff --git a/assets/css/cr.scss b/assets/css/cr.scss new file mode 100644 index 0000000..512076f --- /dev/null +++ b/assets/css/cr.scss @@ -0,0 +1,13 @@ +$theme-colors: ( + "primary": #1ab5dc, + "primary-light": lighten(#3183aa, 40%), + "dark-blue": #1e2430, +) !default; + +@import "~bootstrap/scss/bootstrap.scss"; +@import "~@fortawesome/fontawesome-free/css/all.css"; + +h1 { + padding-top: 30px; + text-align: center; +} diff --git a/assets/js/cr.js b/assets/js/cr.js new file mode 100644 index 0000000..2ba4454 --- /dev/null +++ b/assets/js/cr.js @@ -0,0 +1 @@ +import '../css/cr.scss' diff --git a/config/packages/app.yaml b/config/packages/app.yaml index 05aeb67..a875a70 100644 --- a/config/packages/app.yaml +++ b/config/packages/app.yaml @@ -2,13 +2,18 @@ core: site: name: "Suivi des interventions" logo: "build/images/tinternet.png" - # controllers: - # - {name: 'Foo', action: 'App\Controller\ExampleController::foo'} + controllers: + - {name: 'Compte-rendu', action: 'App\Controller\DebriefingController::debriefing'} pages: App\Entity\Page\SimplePage: name: 'Simple page' templates: - {name: "Default", file: "page/simple/default.html.twig"} + App\Entity\Page\EntityPage: + name: 'Entité' + templates: + - {name: "Compte-rendu", file: "page/debriefing/default.html.twig"} + file_manager: # mimes: # - image/png diff --git a/src/Controller/DebriefingController.php b/src/Controller/DebriefingController.php new file mode 100644 index 0000000..3d9b9f5 --- /dev/null +++ b/src/Controller/DebriefingController.php @@ -0,0 +1,25 @@ +siteRequest->getPage()) { + throw $this->createNotFoundException(); + } + + if ($entity->getDate() != $date) { + throw $this->createNotFoundException(); + } + + return $this->defaultRender($this->siteRequest->getPage()->getTemplate(), [ + 'entity' => $entity, + ]); + } +} diff --git a/src/Entity/Debriefing.php b/src/Entity/Debriefing.php index be757d7..1676bf9 100644 --- a/src/Entity/Debriefing.php +++ b/src/Entity/Debriefing.php @@ -57,7 +57,7 @@ class Debriefing implements EntityInterface public function __construct() { - $this->project = new ArrayCollection(); + $this->projects = new ArrayCollection(); } public function getId(): ?int @@ -94,7 +94,7 @@ class Debriefing implements EntityInterface */ public function getProjects(): Collection { - return $this->projects ?? new ArrayCollection(); + return $this->projects; } public function addProject(Project $project): self diff --git a/src/Entity/Page/EntityPage.php b/src/Entity/Page/EntityPage.php new file mode 100644 index 0000000..b340bd9 --- /dev/null +++ b/src/Entity/Page/EntityPage.php @@ -0,0 +1,19 @@ + +
  • + Partager + + {% set url = safe_path('main_fr_menu_debriefing', {entity: entity.id, date: entity.date|date('d-m-Y')}) %} + + + Partager + +
  • diff --git a/templates/base.html.twig b/templates/base.html.twig index 86fdb1a..bd60e13 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -22,7 +22,9 @@ {{ encore_entry_link_tags('app') }} {%- endblock -%} - {{ _page.metaTitle }} + {%- block title -%} + {{ _page.metaTitle }} + {%- endblock -%} diff --git a/templates/page/debriefing/default.html.twig b/templates/page/debriefing/default.html.twig new file mode 100644 index 0000000..3b2e839 --- /dev/null +++ b/templates/page/debriefing/default.html.twig @@ -0,0 +1,81 @@ +{% extends 'base.html.twig' %} + +{%- block opengraph -%} + + + + + + {%- if _page.ogImage -%} + + {%- endif -%} +{%- endblock -%} + +{%- block stylesheets -%} + {{ encore_entry_link_tags('cr') }} +{%- endblock -%} + +{%- block javascripts -%} + {{ encore_entry_script_tags('cr') }} +{%- endblock -%} + +{%- block title -%} + {{ _page.metaTitle|build_string(entity) }} +{%- endblock -%} + +{% block page %} +
    +
    +
    + Tinternet & Cie +
    +
    +

    {{ entity.topic }}

    +
    +
    +
    +
    +
      +
    • + Date + + {{ entity.date|date('d/m/Y') }} +
    • +
    • + Projets + + {% for item in entity.projects %} + {{ item.label }}
      + {% else %} + Aucun projet + {% endfor %} +
    • +
    • + Contributeurs internes + + {{ entity.internalContributors|nl2br }} +
    • +
    • + Contributeurs externes + + {{ entity.externalContributors|nl2br }} +
    • +
    • + Fichiers + + {% for item in entity.files %} + + {{ item.name }} + + {% else %} + - + {% endfor %} +
    • +
    +
    +
    + {{ entity.content|raw }} +
    +
    +
    +{% endblock %} diff --git a/webpack.config.js b/webpack.config.js index a61b3a7..ee48ef9 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -22,6 +22,7 @@ Encore */ .addEntry('admin', './assets/js/admin.js') .addEntry('app', './assets/js/app.js') + .addEntry('cr', './assets/js/cr.js') // When enabled, Webpack "splits" your files into smaller pieces for greater optimization. .splitEntryChunks()