Project

General

Profile

Task #22510

fonctionnement du calendrier de Nouvelle

Added by Robin Varenas about 7 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
Urgent
Assignee:
Kienan Stewart
Start date:
2017-02-17
Due date:
% Done:

0%

RT ticket:

Description

Bonjour Emmanuel,

En l'absence de Kienan, je t'assigne cette tâche en ignorant si tu es disponible (ou l'un de tes collègues) pour traiter les tickets du Nt2 actuellement. On a un besoin assez urgent avec 2 demandes à traiter ( celle-ci et voici l'autre demande #22509). Idéalement, il faudrait que ces 2 demandes soient traités pour le vendredi 24/02 au plus tard.

Concernant le calendrier : nous utilisons sur ce site le module Calendar pour y afficher le type de contenu Nouvelle. Le calendrier prend en compte 2 champs (field_date et field_date_evenement) et voici la vue qui affiche le calendrier http://rrn.aegirnt2.uqam.ca/admin/structure/views/view/calendrier_nouvelle/edit

À ce stade-ci nous aimerions modifier le fonctionnement du calendrier. Actuellement, lorsqu'un utilisateur clique sur un jour avec un lien actif, il est renvoyé sur une nouvelle page listant les nouvelles associées à ce jour.
Nous aimerions contourner cette fonctionnalité et proposer l'affichage suivant :

Lorsque l'utilisateur arrive sur la page Nouvelles (http://rrn.aegirnt2.uqam.ca/nouvelles), le bloc "Calendrier des activités" affiche par défaut la ou les nouvelles du jour.
Lorsque l'utilisateur clique sur un jour avec un lien actif, le bloc Calendrier affiche les nouvelles du jour sélectionné mais l'utilisateur reste sur la même page (et continue de voir le calendrier et le bloc "Toutes les nouvelles des membres du réseau").

Au cas où je ne suis pas assez clair :
- je te joins ce lien vers un calendrier qui propose un fonctionnement identique : https://www.evenements.uqam.ca/?com=EventList&day=17&month=02&year=2017
- je te joins également la maquette de la section Nouvelle pour référence (nous gérerons nous même la mise forme de la page)

Merci.

RRN-Liste nouvelles_v5.jpg View (250 KB) Robin Varenas, 2017-02-17 01:15 PM

signature.asc (833 Bytes) Kienan Stewart, 2017-03-08 11:11 AM

History

#1 Updated by Emmanuel Décarie about 7 years ago

  • Assignee changed from Emmanuel Décarie to Robin Varenas

Bonjour Robin,

J'ai mis cela dans mes tâches urgentes à faire. Je vais m'arranger pour que cela soit réglé pour vendredi de la semaine prochaine. Si j'ai besoin d'explication supplémentaire, je t'appellerais si c'est possible (je n'ai pas encore ton téléphone, alors si tu peux me le donner, je vais le mettre dans l'onglet "Aperçu" de ce projet Redmine).

#2 Updated by Emmanuel Décarie about 7 years ago

  • Assignee changed from Robin Varenas to Emmanuel Décarie

#3 Updated by Robin Varenas about 7 years ago

Merci pour ton retour et ta disponibilité.

Voici le numéro où tu peux nous joindre, Sylvain et moi : 514 987 3000 p. 7009

#4 Updated by Emmanuel Décarie about 7 years ago

  • Assignee changed from Emmanuel Décarie to Robin Varenas

Allo Robin,

J'ai regardé la fonctionnalité demandée et si je me fie sur l'exemple http://rrn.aegirnt2.uqam.ca/nouvelles, l'utilisateur change de page qui possède sa propre URL qui pourra servir d'identifiant unique pour une nouvelle donnée, ce qui est bien en soi quand on veut partager une nouvelle précise.

Ce qui se passe dans l'exemple précédent est que le calendrier est généré à nouveau sur la page de la nouvelle.

Exemple:

https://www.evenements.uqam.ca/?com=EventList&day=22&month=02&year=2017

Cette URL liste toutes les nouvelles du 22 février 2017.

https://www.evenements.uqam.ca/detail/746015-conference-lla-fin-du-lpivotr-asiatique-de-washingtonr

Cette page affiche une nouvelle donnée avec le même calendrier que la page listant toutes les nouvelles.

Je précise, car on pourrait avec du javascript faire en sorte que lorsqu'un utilisateur clique sur une nouvelle, toutes les autres nouvelles deviennent invisibles, par conséquent, dans ce cas, l'utilisateur ne passerait pas à une autre page. Par contre, à moins d'ajouter une fonctionnalité de type partage, l'utilisateur n'aurait plus de référence à l'URL de la nouvelle qui est affichée.

Si tu veux que je reproduise le comportement d'evenements.uqam.ca, il s'agira simplement d'ajouter le calendrier sur la page d'une nouvelle choisie par l'utilisateur à partir de la liste de toutes les nouvelles.

Si tu préfères que l'utilisateur reste sur la même page, il s'agira de cacher toutes les autres nouvelles via javascript (sans que la page se recharge) et de penser à une façon de partager la nouvelle en affichant l'URL de cette nouvelle.

#5 Updated by Robin Varenas about 7 years ago

  • Assignee changed from Robin Varenas to Emmanuel Décarie

Allo Emmanuel,

Merci pour ton retour.

En fait notre demande ne concerne pas les nouvelles mais le fonctionnement du calendrier.

On veut que l’utilisateur puisse cliquer sur l’accroche d’une nouvelle et accéder au contenu complet d’une nouvelle. Nous ne souhaitons pas afficher le calendrier sur le contenu complet Nouvelle.

Actuellement, lorsqu’on clique sur une journée active du calendrier, l’utilisateur est renvoyé sur ce type de page, généré par le module Calendar, ce que nous souhaitons éviter :
http://rrn.aegirnt2.uqam.ca/calendar-node-field-date/day/2017-03-04

Ce nous souhaitons est le fonctionnement suivant :
==> lorsque l’utilisateur clique sur un jour actif au sein du calendrier :
- toutes les nouvelles de la journée sélectionnée sont affichées en liste en accroche
- le calendrier continue d’être visible sur la liste des nouvelles en accroche de la journée sélectionnée
- la vue Nouvelles (sous la vue Calendar) continue également d’être visible après sélection d’une journée dans le calendrier.

Ce que nous souhaitons correspond à cet exemple:
https://www.evenements.uqam.ca/?com=EventList&day=22&month=02&year=2017

Cet exemple ci n’est pas pertinent pour nous:
https://www.evenements.uqam.ca/detail/746015-conference-lla-fin-du-lpivotr-asiatique-de-washingtonr

Une précision concernant la page http://rrn.aegirnt2.uqam.ca/nouvelles:
Elle est constituée de 2 vues : Block Calendar (sert à montrer les nouvelles du jour et les nouvelles associées à un jour particulier) et Page Nouvelles (qui affiche par ailleurs toutes les nouvelles par ordre chronologique). Nous affichons, via le module Context, le block Calendar sur la vue en page Nouvelles.

Je suis au labo jusqu’à 17h30 aujourd’hui, si tu souhaites m’appeler. Sinon, on peut se parler demain si tu as encore besoin de précision (je suis au bureau à partir de 10h).

Merci!

#6 Updated by Emmanuel Décarie about 7 years ago

  • Assignee changed from Emmanuel Décarie to Robin Varenas

Bonjour Robin,

Ok je crois que je comprends enfin ce qui est demandé.

Je vais voir si c'est possible de faire cela au sein du module Calendar.

Je vais regarder aussi s'il ne faut pas aussi créer un nouvelle view qui listerait tous les éléments d'une journée donnée comme dans l'exemple à https://www.evenements.uqam.ca/?com=EventList&day=22&month=02&year=2017

Peut-être que cette view existe déjà? Mais je ne la vois pas ici: http://rrn.aegirnt2.uqam.ca/admin/structure/views

Je ne sais pas si je pourrais terminer par contre pour ce vendredi. Kienan a dû s'absenter cette semaine pour raison familiale et moi j'ai eu une chirurgie chez le dentiste cette semaine, alors je suis encore sous la coupe des médicaments.

J'ai essayé de te joindre ce matin, mais tu étais absent et je n'ai pas laissé de message. On peut me joindre au 514 907-9494 #213. Par contre, j'ai une réunion à 14h30 et après je vais être sur la route.

#7 Updated by Emmanuel Décarie about 7 years ago

  • Assignee changed from Robin Varenas to Emmanuel Décarie

#8 Updated by Robin Varenas about 7 years ago

Bonjour Emmanuel,

Je viens de te laisser un message mais je double ici les infos transmises.

Effectivement la vue filtrant les événements n'existe pas.
Pas de problème si tu ne peux pas finaliser ça pour vendredi. Le site doit être livré le 10 mars pour une mise en ligne le 17 mars. Dans ce contexte, on peut clairement étirer le travail jusqu'à la fin de la semaine prochaine.

J'étais en réunion ce matin, je suis dispo maintenant si tu souhaites qu'on se parle au tél.

À+

#9 Updated by Emmanuel Décarie about 7 years ago

  • Assignee changed from Emmanuel Décarie to Robin Varenas

Bonjour Robin,

Merci pour ton message. Je suis soulagé d'apprendre qu'on a un peu plus de temps pour faire le travail.

Je te téléphone si j'ai besoin de plus de précisions.

#10 Updated by Emmanuel Décarie about 7 years ago

  • Assignee changed from Robin Varenas to Emmanuel Décarie

#11 Updated by Robin Varenas about 7 years ago

  • Priority changed from High to Urgent

#12 Updated by Emmanuel Décarie about 7 years ago

Note de travail pour Emmanuel

Je commence à mettre en place la fonctionnalité.

1. Modifier le gabarit du calendar sur la view actuelle des nouvelles (http://rrn.aegirnt2.uqam.ca/nouvelles) pour générer un nouveau type de lien qui sera attrapé par un block view.
2. Créer une deuxième view qui va générer l'affichage attendue.
3. Peut-être créer ou utiliser un module personnalisé avec hook_views_pre_execute (https://api.drupal.org/api/views/views.api.php/function/hook_views_pre_execute/7.x-3.x) pour passer le nouveau lien à la seconde view.

#14 Updated by Emmanuel Décarie almost 7 years ago

  • Private changed from Yes to No

#18 Updated by Emmanuel Décarie almost 7 years ago

  • Status changed from New to Needs client approval
  • Assignee changed from Emmanuel Décarie to Robin Varenas

Bonjour Robin,

Je crois que la tâche est résolue, mais plusieurs problèmes restent en suspend (voir plus bas).

Cela a été vraiment long à résoudre parce que d'une part il y a deux champs liés aux dates (field_date, field_date_evenement). Je recommanderais de n'utiliser qu'un seul champ, cela va beaucoup simplifier la programmation à l'avenir.

D'autres parts, il fallait aussi trouver une solution pour les dates qui sont dans un intervalle, par exemple un événement du 5 au 10 mai, et lorsque l'utilisateur clique sur la date du 8.

J'ai donc travaillé en fin de semaine, et j'ai même mis à contribution Kienan. Je ne pourrais donc pas résoudre pour lundi #22509, cela va aller à mardi et est dans mes priorités. Je vais voir avec l'équipe Web si on ne peut pas accélérer cela.

Ce qui reste en suspend:

  • Pas une bonne idée d'employer deux types de champs pour les dates (field_date, field_date_evenement).
  • La navigation du calendrier n'est pas liée aux nouvelles affichées, c'est un peu bizarre de passer de mai à juin et de voir encore les nouvelles de mai.
  • Plus embêtant, si je clique sur une date (8 mai 2017) et que je passe à un autre mois (juin 2017), l'affichage dans le bas des nouvelles n'est pas réinitialisé et continue d'afficher la nouvelle du 8 mai.
  • Il semble que seuls les contenus liés au champ field_date s'affichent dans le mini calendrier, je n'ai pas exploré les causes liées à ce comportement

Je vais être en réunion pas toute la journée demain, mais je vais répondre dans la mesure du possible au ticket redmine et aux appels.

#19 Updated by Robin Varenas almost 7 years ago

  • Assignee changed from Robin Varenas to Emmanuel Décarie

Bonjour Emmanuel,

Merci pour ton suivi. Ci-dessous nos réponses à tes différentes questions :

- 2 champs Date : nous utilisons 2 champs de type date puisque nous avons besoin d'une granularité différente. En effet, dans un cas il est possible d'indiquer un horaire et dans l'autre cas ce n'est pas possible. D'expérience, nous savons que le module Date ne permet pas ce type de fonctionnement, c'est à dire de ne pas renseigner une partie des valeurs du champ Date (ici l'horaire) puisque le module va automatiquement assigné un horaire par défaut. Peut-être, faisons-nous erreur ou peut être pourrions-nous utiliser un module de ce type https://www.drupal.org/project/partial_date ?
Merci de nous préciser ce qu'il est possible pour obtenir un seul champ Date qui permettrait de laisser la possibilité à un utilisateur d'utiliser ou non un horaire dans le champ.

- Calendrier et liste Nouvelles ne sont pas liés : c'est effectivement la demande du client. La liste des Nouvelles (sous le calendrier) n'interagit pas avec le calendrier. Donc quand on change de mois dans le Calendrier, la liste des nouvelles ne bougent pas (elle affiche simplement les nouvelles de manière chronologique sans rapport avec le calendrier).
D'ailleurs actuellement, nous observons que lorsqu'on clique sur une journée du calendrier la liste des Nouvelles disparait au profit des nouvelles associées à la journée cliquée. Ici il faut continuer à afficher la liste des nouvelles. En clair, quand je clique sur une journée, le calendrier affiche les nouvelles associées à la journée cliquée et d'autre part la liste Nouvelles continue d'être affichée, sous les "résultats" du calendrier

- Non réinitialisation de la nouvelle affichée après changement de mois : ceci n'est pas un problème pour nous. Le calendrier sert simplement à afficher les nouvelles pour lesquelles une journée a été cliquée.

Je suis disponible au bureau pour un appel téléphonique jusqu'à 17h aujourd'hui.

#21 Updated by Emmanuel Décarie almost 7 years ago

  • Assignee changed from Emmanuel Décarie to Robin Varenas

Allo Robin, je vais donc mettre la sélection créée par un clic sur une date dans un bloc.

Je vais essayer de te joindre par téléphone.

#23 Updated by Robin Varenas almost 7 years ago

  • Assignee changed from Robin Varenas to Emmanuel Décarie

on a essayé d'afficher le bloc 2 sur d'autres pages, sans succès (ex: dans le footer et sur toutes les pages), rien n'est visible dans le html.
on aimerait que tu poursuives dans la résolution de ce bug.
on se donne des nouvelles demain en fin de journée et on voit si un plan B est nécessaire.
merci

#24 Updated by Emmanuel Décarie almost 7 years ago

  • Assignee changed from Emmanuel Décarie to Robin Varenas

Je regarde cela aujourd'hui. J'ai oublié un rv ce matin à 10h et à part cela je vais mettre la priorité sur la résolution de ce bogue.

#25 Updated by Emmanuel Décarie almost 7 years ago

  • Assignee changed from Robin Varenas to Emmanuel Décarie

#26 Updated by Emmanuel Décarie almost 7 years ago

  • Assignee changed from Emmanuel Décarie to Robin Varenas

Allo Robin, le problème semble réglé. J'ai travaillé aussi avec Kienan qui a découvert que le bloc ne recevait pas les arguments concernant la date.

Nous avons donc utilisé dans /sites/rrn.aegirnt2.uqam.ca/modules/nt2_calendar/nt2_calendar.module le hook views_query_alter() pour envoyer au bloc la date sélectionnée.

On pourrait éventuellement simplifier l'URL qui s'affiche quand on sélectionne une date (par ex: ?date_nouvelles=2017_03-04), mais cela ne sera que cosmétique.

En passant, nos bureaux sont fermés demain pour célébrer le 8 mars, journée de la femme.

#27 Updated by Robin Varenas almost 7 years ago

  • Status changed from Needs client approval to Resolved

j'ai testé avec Sylvain tantôt et le fonctionnement est parfait.
merci beaucoup à vous deux pour ce travail!

#28 Updated by Robin Varenas almost 7 years ago

  • Status changed from Resolved to In progress
  • Assignee changed from Robin Varenas to Emmanuel Décarie

Bonjour Emmanuel et Kienan,

Je suis désolé de vous relancer sur ce ticket mais il semble que le calendrier ne fonctionne plus.
Depuis hier soir, seule la journée du 4 mars est active, les autres nouvelles (avant et après le 4 mars) ne sont plus liées au calendrier.

Peut-être que certains des ajouts que nous avons effectué à la vue bloc 2 sont responsables du bug, auquel cas nous en sommes désolés. Voici les ajouts que nous avons fait :
- ajout de champs dans la section Fields de la vue bloc 2, pour harmoniser le teaser des nouvelles avec la page Nouvelles affichée sous le bloc 2
- ajout d'un champ dans la section No results behaviour de la vue bloc 2 pour indiquer lorsqu'il y a aucune nouvelle pour une journée particulière
- un peu de CSS pour faire passer le bloc 2 à gauche du calendrier

Nous n'avons absolument pas touché à la section Filter criteria de la vue bloc 2.

Pouvez-vous y jeter un coup d'oeil quand vous le pourrez ? merci

#29 Updated by Kienan Stewart almost 7 years ago

  • Assignee changed from Emmanuel Décarie to Kienan Stewart

je check ça maintenant

#30 Updated by Kienan Stewart almost 7 years ago

  • Status changed from In progress to Need more info
  • Assignee changed from Kienan Stewart to Robin Varenas

Ce que vous voyez sur le calendrier semble être normal selon le contenu existant sur le site. Il y a 3 noeux qui ont des dates field_date rempli, dont deux sur le 4 mars 2017 et l'autre non-publié.

Je pense que Emmanuel a évoqué plus tôt que le calendrier fonction seulement avec field_date, ça ne prend pas en compte field_date_evenement. Veut-tu que le calendrier prend ce champ en compte aussi?

mysql> select * from field_data_field_date;
+-------------+----------+---------+-----------+-------------+----------+-------+---------------------+---------------------+
| entity_type | bundle   | deleted | entity_id | revision_id | language | delta | field_date_value    | field_date_value2   |
+-------------+----------+---------+-----------+-------------+----------+-------+---------------------+---------------------+
| node        | nouvelle |       0 |         1 |         133 | und      |     0 | 2017-03-04 00:00:00 | 2017-03-04 00:00:00 |
| node        | nouvelle |       0 |       105 |         144 | und      |     0 | 2017-04-05 00:00:00 | 2017-04-10 00:00:00 |
| node        | nouvelle |       0 |        13 |          13 | und      |     0 | 2017-03-04 00:00:00 | 2017-03-04 00:00:00 |
+-------------+----------+---------+-----------+-------------+----------+-------+---------------------+---------------------+

mysql> select nid, status from node where nid in (1, 105, 13);
+-----+--------+
| nid | status |
+-----+--------+
|   1 |      1 |
|  13 |      1 |
| 105 |      0 |
+-----+--------+
3 rows in set (0.00 sec)

#31 Updated by Robin Varenas almost 7 years ago

  • Assignee changed from Robin Varenas to Kienan Stewart

Ok, nous n'avions pas compris ce point, nous pensions que les 2 champs Date étaient finalement pris en compte.

oui, il faut absolument que le calendrier prenne en compte les 2 champs Date : field_date et field_date_evenement.

merci!

#32 Updated by Kienan Stewart almost 7 years ago

  • File signature.asc added
  • Status changed from Need more info to Resolved

C'est fait.

On Wed, Mar 08, 2017 at 10:34:47AM -0500, wrote:

#33 Updated by Kienan Stewart almost 7 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF