Projet

Général

Profil

Task #22510

fonctionnement du calendrier de Nouvelle

Ajouté par Robin Varenas il y a environ 7 ans. Mis à jour il y a environ 7 ans.

Statut:
Closed
Priorité:
Urgent
Assigné à:
Kienan Stewart
Début:
2017-02-17
Echéance:
% réalisé:

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 Voir (250 ko) Robin Varenas, 2017-02-17 13:15

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

Historique

#1 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Robin Varenas à Emmanuel Décarie

#3 Mis à jour par Robin Varenas il y a environ 7 ans

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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Robin Varenas il y a environ 7 ans

  • Assigné à changé de Robin Varenas à 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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Robin Varenas à Emmanuel Décarie

#8 Mis à jour par Robin Varenas il y a environ 7 ans

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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Robin Varenas à Emmanuel Décarie

#11 Mis à jour par Robin Varenas il y a environ 7 ans

  • Priorité changé de High à Urgent

#12 Mis à jour par Emmanuel Décarie il y a environ 7 ans

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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Privée changé de Oui à Non

#18 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Statut changé de New à Needs client approval
  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Robin Varenas il y a environ 7 ans

  • Assigné à changé de Robin Varenas à 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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Robin Varenas il y a environ 7 ans

  • Assigné à changé de Robin Varenas à 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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Robin Varenas à Emmanuel Décarie

#26 Mis à jour par Emmanuel Décarie il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à 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 Mis à jour par Robin Varenas il y a environ 7 ans

  • Statut changé de Needs client approval à Resolved

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

#28 Mis à jour par Robin Varenas il y a environ 7 ans

  • Statut changé de Resolved à In progress
  • Assigné à changé de Robin Varenas à 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 Mis à jour par Kienan Stewart il y a environ 7 ans

  • Assigné à changé de Emmanuel Décarie à Kienan Stewart

je check ça maintenant

#30 Mis à jour par Kienan Stewart il y a environ 7 ans

  • Statut changé de In progress à Need more info
  • Assigné à changé de Kienan Stewart à 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 Mis à jour par Robin Varenas il y a environ 7 ans

  • Assigné à changé de Robin Varenas à 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 Mis à jour par Kienan Stewart il y a environ 7 ans

  • Fichier signature.asc ajouté
  • Statut changé de Need more info à Resolved

C'est fait.

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

#33 Mis à jour par Kienan Stewart il y a environ 7 ans

  • Statut changé de Resolved à Closed

Formats disponibles : Atom PDF