Commit 8b4acf9b authored by Chrystel Moreau's avatar Chrystel Moreau
Browse files

ajout agenda statique ds dashboard participant

parent 2933b56c
......@@ -81,6 +81,9 @@ $container[App\Action\DashboardParticipantParcoursFormationAction::class] = func
return new App\Action\DashboardParticipantParcoursFormationAction($c->get('view'), $c->get('logger'), $c->get('em'));
};
$container[App\Action\DashboardParticipantAgendaAction::class] = function ($c) {
return new App\Action\DashboardParticipantAgendaAction($c->get('view'), $c->get('logger'), $c->get('em'), $c->get('settings'));
};
// =============================================================
......
......@@ -64,6 +64,9 @@ $app->map(['GET', 'POST'],'/dashboard-participant-parcours-formation', App\Actio
->add(App\Middleware\TokenMiddleware::class)
->setName('dashboard_participant_parcours_formation');
$app->get('/dashboard-participant-agenda', App\Action\DashboardParticipantAgendaAction::class)
->add(App\Middleware\TokenMiddleware::class)
->setName('dashboard_participant_agenda');
// =============================================================
// Dashboard Admin
......
<?php
namespace App\Action;
use Slim\Views\Twig;
use Psr\Log\LoggerInterface;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
final class DashboardParticipantAgendaAction
{
private $view;
private $logger;
private $em;
private $settings;
public function __construct(Twig $view, LoggerInterface $logger, EntityManagerInterface $em, $settings)
{
$this->view = $view;
$this->logger = $logger;
$this->em = $em;
$this->settings = $settings;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("dashboard formation page action dispatched");
$params = $request->getQueryParams();
$token = $params['token'];
$roleSI = $request->getAttribute('roleSI');
$a = [
'token' => $token,
'role_si'=> $roleSI,
'jdev' => $this->settings['jdev']
];
if (array_key_exists('jour', $params)) {
$a['jour'] = $params['jour'];
if ($params['debut'] == '08:00:00'){ $a['journee'] = ' - Matin';}
if ($params['debut'] == '13:00:00'){ $a['journee'] = ' - Après-midi';}
$agendas = $this->getAgendas($params['jour'],$params['debut'],$params['fin']);
$a['agendas'] = $agendas;
}
$a['pa_4_am'] = $this->getAgendas($this->settings['jdev']['j1'],'08:00:00','13:00:00');
$a['pa_4_pm'] = $this->getAgendas($this->settings['jdev']['j1'],'12:00:00','19:00:00');
$a['pa_5_am'] = $this->getAgendas($this->settings['jdev']['j2'],'08:00:00','13:00:00');
$a['pa_5_pm'] = $this->getAgendas($this->settings['jdev']['j2'],'12:00:00','19:00:00');
$a['pa_6_am'] = $this->getAgendas($this->settings['jdev']['j3'],'08:00:00','13:00:00');
$a['pa_6_pm'] = $this->getAgendas($this->settings['jdev']['j3'],'12:00:00','19:00:00');
$a['pa_7_am'] = $this->getAgendas($this->settings['jdev']['j4'],'08:00:00','13:00:00');
$a['pa_7_pm'] = $this->getAgendas($this->settings['jdev']['j4'],'12:00:00','19:00:00');
$this->view->render($response, 'dashboard_participant_agenda.twig', $a);
return $response;
}
public function getAgendas($jour,$debut,$fin) {
$date_debut=$jour." ".$debut;
$date_fin=$jour." ".$fin;
$dql = "SELECT a as agenda, ";
$dql .= "(select count(pa) from App\Entity\ParticipantAgenda pa where pa.agenda=a.id) as nb_inscrits ";
$dql .= "FROM App\Entity\Agenda a ";
$dql .= "WHERE a.dateDebut between '$date_debut' and '$date_fin' and a.dateFin between '$date_debut' and '$date_fin' ORDER BY a.dateDebut ASC";
$query = $this->em->createQuery($dql);
return $query->getResult();
}
}
......@@ -12,11 +12,14 @@
</li>
<!--
<li class="navbar-dashboard-item">
<a href="dashboard-participant-sondage?token={{ token }}"><i class="fa fa-address-card-o"></i> Sondage</a>
<a href="dashboard-participant-sondage?token={{ token }}"><i class="fa fa-calendar-o"></i> Sondage</a>
</li>
<li class="navbar-dashboard-item">
<a href="dashboard-participant-agenda?token={{ token }}"><i class="fa fa-calendar"></i> Agenda JDEVs</a>
</li>
<li class="navbar-dashboard-item">
<a href="dashboard-participant-parcours?token={{ token }}"><i class="fa fa-cogs"></i> Parcours</a>
<a href="dashboard-participant-parcours?token={{ token }}"><i class="fa fa-cogs"></i> Mon Parcours</a>
</li>
-->
</ul>
......
{% extends "base_dashboard.twig" %}
{% block content_dashboard %}
<div class="content-dashboard">
<div class="title-main">
<div class="title-main-content">Agenda {{ jdev.label }}</div>
</div>
<div class="text-center" id="tabs_agenda_loading">
<i class="fa fa-spinner fa-spin fa-5x fa-fw"></i>
</div>
<div id="tabs_agenda">
<table id="tab_programme" class="table table-responsive">
<thead>
<tr>
<th class="th-parcours">{{ jdev.j1 |date("d/m/Y")}}</th>
<th class="th-parcours">{{ jdev.j2 |date("d/m/Y")}}</th>
<th class="th-parcours">{{ jdev.j3 |date("d/m/Y")}}</th>
<th class="th-parcours">{{ jdev.j4 |date("d/m/Y")}}</th>
</tr>
</thead>
<tbody>
<tr>
<th class="td-parcours">Matin</th>
<th class="td-parcours">Matin</th>
<th class="td-parcours">Matin</th>
<th class="td-parcours">Matin</th>
</tr>
<tr>
<td>
{% if pa_4_am %}
{% for p in pa_4_am %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
{% endfor %}
{% endif %}
</td>
<td>
{% if pa_5_am %}
{% for p in pa_5_am %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
{% endfor %}
{% endif %}
</td>
<td>
{% if pa_6_am %}
{% for p in pa_6_am %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
{% endfor %}
{% endif %}
</td>
<td>
{% if pa_7_am %}
{% for p in pa_7_am %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
{% endfor %}
{% endif %}
</td>
</tr>
<tr>
<th class="td-parcours">Après-Midi</th>
<th class="td-parcours">Après-Midi</th>
<th class="td-parcours">Après-Midi</th>
<th class="td-parcours">Après-Midi</th>
</tr>
<tr>
<td>
{% if pa_4_pm %}
{% for p in pa_4_pm %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
</a>
{% endfor %}
{% endif %}
</td>
<td>
{% if pa_5_pm %}
{% for p in pa_5_pm %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
{% endfor %}
{% endif %}
</td>
<td>
{% if pa_6_pm %}
{% for p in pa_6_pm %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
{% endfor %}
{% endif %}
</td>
<td>
{% if pa_7_pm %}
{% for p in pa_7_pm %}
{% set label = p.agenda.getFormation().getNom() | split('.') %}
<a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}/{{ p.agenda.getFormation().getNom() }}" target="_blank" class="{{label[0]}} btn btn-sm btn-session btn-jour" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<b>{{ p.agenda.getFormation().getNom() }}</b><p>Intitulé : {{ p.agenda.getFormation().getTitre() }}<br><b>Horaire</b> : {{ p.agenda.getDateDebut() | date("H:i") }} - {{ p.agenda.getDateFin() | date("H:i") }}<br><b>Salle</b> : {{ p.agenda.getSalle().getNom() }}<br>">{{ p.agenda.getFormation().getNom() }}</a>
{% endfor %}
{% endif %}
</td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
{% endblock %}
......@@ -9,7 +9,11 @@
<div>
<div id="seances">
Vous devez selectionner une demi-journée pour visualier les sessions de formation proposées.<p>
<p>
Choisissez par 1/2 journée une présentation ou un atelier ou un GT de debut de session et un GT de fin de session.
Consultez le <a href="http://devlog.cnrs.fr/{{ jdev.label | lower}}" target="_blank">dokuwiki</a> pour avoir la description des thematiques, des ateliers et des GTs.
</p>
<hr>
<form id="form_inscription">
<input type="hidden" id="token" name="token" value="{{ token }}">
......
......@@ -14,7 +14,6 @@
<div id="seances">
<p>
Choisissez par 1/2 journée une présentation ou un atelier ou un GT de debut de session et un GT de fin de session.
Consultez le dokuwiki pour avoir la description des thematiques, des ateliers et des GTs.</p>
<form id="form_inscription">
<input type="hidden" id="token" name="token" value="{{ token }}">
......
......@@ -49,6 +49,50 @@ $(document).ready(function(){
}
]
});
// ======================================================================
// Affichage de l'Agenda
// ======================================================================
$('#tab_programme').DataTable( {
dom: 'Brt',
buttons: [
{
extend: 'pdfHtml5',
text: 'Exporter en PDF',
orientation: 'landscape',
//download: 'open',
pageSize: 'A4',
header: true,
filename:'jdev2017-agenda',
customize: function ( doc ) {
doc.content[1].table.widths = Array(doc.content[1].table.body[0].length + 1).join('*').split('');
},
exportOptions: {
format: {
body: function ( data, row, column, node ) {
var formation=data.split('<br>">');
var djournee='';
for (i=1;i<formation.length;i++){
var label=formation[i].split('</a>');
//label[0]=label[0].replace('<i class="fa fa-user" aria-hidden="true"></i>','p' );
djournee+=label[0]+'\n';
}
if ( (djournee.length !== 0) && (djournee.charAt(0) === 't') ) {
data=djournee;
}
return data;
}
}
}
}
],
"ordering": false
});
// ======================================================================
// Gestion du parcours
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment