From 111c563409332cdb5e40a80f4d72be4d656945b8 Mon Sep 17 00:00:00 2001 From: Gergely POLONKAI Date: Wed, 15 Aug 2012 18:07:46 +0200 Subject: [PATCH] Fixed event listing Signed-off-by: Gergely POLONKAI --- .../Controller/EventController.php | 29 ++++++++++++------- src/KekRozsak/FrontBundle/Entity/Event.php | 16 ++++++++++ .../Resources/views/Box/Events.html.twig | 4 +-- .../views/Default/main_template.html.twig | 2 +- .../Resources/views/Event/list.html.twig | 6 +++- .../Resources/views/Event/view.html.twig | 4 +-- 6 files changed, 44 insertions(+), 17 deletions(-) diff --git a/src/KekRozsak/FrontBundle/Controller/EventController.php b/src/KekRozsak/FrontBundle/Controller/EventController.php index 9ec141d..d53dfeb 100644 --- a/src/KekRozsak/FrontBundle/Controller/EventController.php +++ b/src/KekRozsak/FrontBundle/Controller/EventController.php @@ -34,7 +34,7 @@ class EventController extends Controller /** * @Route("/esemeny/{startDate}/{eventSlug}/csatlakozas", name="KekRozsakFrontBundle_eventJoin") * @Template() - * @ParamConverter("event", class="KekRozsakFrontBundle:Event", options={"mapping"={"eventSlug"="slug", "startDate"="startDate"}}) + * @ParamConverter("event", class="KekRozsakFrontBundle:Event", options={"mapping"={"eventSlug": "slug", "startDate": "startDate"}}) * @ParamConverter("startDate", class="DateTime", options={"format"="Y-m-d"}) */ public function joinAction(\DateTime $startDate, Event $event) @@ -58,20 +58,27 @@ class EventController extends Controller } /** - * @Route("/esemenyek/{date}", name="KekRozsakFrontBundle_eventList") + * @Route("/esemenyek/{date}", name="KekRozsakFrontBundle_eventList", defaults={"date": null}) * @Template() - * @ParamConverter("date", options={"format": "Y-m-d"}) */ - public function listAction(\DateTime $date) + public function listAction($date = null) { - $query = $this->getDoctrine()->getEntityManager()->createQuery('SELECT e FROM KekRozsakFrontBundle:Event e WHERE e.cancelled = FALSE AND ((e.startDate < :day AND e.endDate >= :day) OR e.startDate = :day)'); - $query->setParameter('day', $date, \Doctrine\DBAL\Types\Type::DATE); - $events = $query->getResult(); + $realDate = null; - return array( - 'day' => $date, - 'events' => $events, - ); + if ($date === null) { + $query = $this->getDoctrine()->getEntityManager()->createQuery('SELECT e FROM KekRozsakFrontBundle:Event e WHERE e.cancelled = FALSE AND (e.startDate >= :day OR (e.startDate <= :day AND e.endDate >= :day))'); + $query->setParameter('day', new \DateTime('now'), \Doctrine\DBAL\Types\Type::DATE); + } else { + $realDate = \DateTime::createFromFormat('Y-m-d', $date); + $query = $this->getDoctrine()->getEntityManager()->createQuery('SELECT e FROM KekRozsakFrontBundle:Event e WHERE e.cancelled = FALSE AND ((e.startDate < :day AND e.endDate >= :day) OR e.startDate = :day)'); + $query->setParameter('day', $realDate, \Doctrine\DBAL\Types\Type::DATE); + } + $events = $query->getResult(); + + return array( + 'day' => $realDate, + 'events' => $events, + ); } /** diff --git a/src/KekRozsak/FrontBundle/Entity/Event.php b/src/KekRozsak/FrontBundle/Entity/Event.php index 7a0580b..1bcc32d 100644 --- a/src/KekRozsak/FrontBundle/Entity/Event.php +++ b/src/KekRozsak/FrontBundle/Entity/Event.php @@ -399,4 +399,20 @@ class Event ) ); } + + /** + * Check if the event happened before a given date + * + * @param DateTime $date + * @return boolean + */ + public function isPast(\DateTime $date = null) + { + if ($date === null) + { + $date = new \DateTime('now'); + } + + return ($this->endDate < $date); + } } diff --git a/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig index 2217ead..0658b8a 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig @@ -38,7 +38,7 @@ OR (event.startDate <= this day AND evend.endDate >= this day) #} 0 %} class="program" rel="{{ path('KekRozsakFrontBundle_eventAjaxList', {date: eventList[i].date|date('Y-m-d'), _format: 'html'}) }}"{% endif %}> - {{ eventList[i].date|date('d') }} + {{ eventList[i].date|date('d') }} {% if cur is divisibleby(7) %} @@ -56,7 +56,7 @@ OR (event.startDate <= this day AND evend.endDate >= this day) - További események + További események diff --git a/src/KekRozsak/FrontBundle/Resources/views/Default/main_template.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Default/main_template.html.twig index 4941261..0c47411 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Default/main_template.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Default/main_template.html.twig @@ -213,7 +213,7 @@ $('#news-close-button').click(function() { $('#hirek').html(''); $('#hirek').hide(); - $('#content-outline').css('width', '955px'); + $('#content-outline').css('width', '960px'); $('#news-button').show(); resizeBoxes(); }); diff --git a/src/KekRozsak/FrontBundle/Resources/views/Event/list.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Event/list.html.twig index 2190b0e..2a1e30d 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Event/list.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Event/list.html.twig @@ -3,7 +3,7 @@ {% extends 'KekRozsakFrontBundle:Default:main_template.html.twig' %} {% block title %} - Események - {{ day|date('Y-m-d') }}{% endblock %} {% block content %} -

Események - {{ day|date('Y-m-d') }}

+

Események{% if day is not null %} - {{ day|date('Y-m-d') }}{% endif %}

{% if events %} {% else %} +{% if day is not null %}

Erre a napra nincsenek kiírva események.

+{% else %} +

Nincsenek kiírva későbbi események.

+{% endif %} {% endif %} {% endblock content %} diff --git a/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig index 7bd96d1..104bc4d 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig @@ -15,7 +15,7 @@
  • {{ attendee|userdataspan }}
  • {% endfor %} -{% if not event.isAttending(app.user) %} -Megyek +{% if not event.isAttending(app.user) and not event.isPast %} +Megyek {% endif %} {% endblock content %}