Development #19460
cellule "calendar": afficher premier créneau disponible dans intitulé
100%
Description
Dans le seul cas d'usage de la cellule "calendar", à Orléans la cellule remonte la liste des agendas et affiche l'intitulé de ceux-ci.
Afin d'apporter plus d'informations à l'usager, prévoir affichage, à la suite de l'intitulé, du premier créneau disponible dans cet agenda.
Cela donnerait, dans le cas d'Orléans :- Crèche Collective Bolière (prochain créneau disponible : jeudi 12 octobre à 13h30)
- Crèche Collective des BLOSSIERES (prochain créneau disponible : vendredi 13 octobre à 10h00)
NB : "premier créneau disponible dans cet agenda" correpond dans le cas d'Orléans premier créneau libre de 2 heures d'affilée
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 6 ans
- Lié à Bug #19370: Dégager combo.apps.calendar ajouté
Mis à jour par Josué Kouka il y a plus de 6 ans
- Lié à Development #19452: cellule "calendar": combiner tous les agendas dans la même cellule ajouté
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 6 ans
Le mockup affiche cette information entre parenthèses et sans point final. Il affiche aussi une information quand aucun créneau n'existe.
Mis à jour par Josué Kouka il y a plus de 6 ans
Mis à jour par Josué Kouka il y a plus de 6 ans
Frédéric Péters a écrit :
Le mockup affiche cette information entre parenthèses et sans point final. Il affiche aussi une information quand aucun créneau n'existe.
C'est fait dans le patch juste ne dessus, en prenant en compte ce qui a été défini dans #19452
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Correction d'une error lors de l'initialisation de l'objet Calendar
.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Un pacth qui se base sur #19368. J'y rajoyte du style pour afficher l'information sur le premier créneau disponible en italique.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Patch se rebasant sur #19368
Mis à jour par Serghei Mihai il y a plus de 6 ans
J'ai peut-être raté un bout, mais pourquoi une méthode __str__
en plus pour DaySlot
alors qu'il y a déjà un __repr__
? Et dédans l'utilisation de l'objet DateFormat
alors que self.date_time
est déjà un objet datetime
et on peut appeler strftime
dessus.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Serghei Mihai a écrit :
J'ai peut-être raté un bout, mais pourquoi une méthode
__str__
en plus pourDaySlot
alors qu'il y a déjà un__repr__
? Et dédans l'utilisation de l'objetDateFormat
alors queself.date_time
est déjà un objetdatetime
et on peut appelerstrftime
dessus.
C'etait juste pour avoir le slot au format '<date> at <hour>' déja localisé. J'ai changé en info
qui est plus parlant.
Mis à jour par Serghei Mihai il y a plus de 6 ans
Vire les espaces dans autour de "-"
if (tmp[-1].date_time - tmp[0].date_time) != ((step - 1) * offset):
et ack
Mis à jour par Frédéric Péters il y a plus de 6 ans
Juste lire
if (tmp[-1].date_time - tmp0.date_time) != ((step - 1) * offset):
Ici m'effraie.
Je me dis que dans le code il y aura des commentaires pour accompagner.
(et je vérifie et non)
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Frédéric Péters a écrit :
Juste lire
if (tmp[-1].date_time - tmp0.date_time) != ((step - 1) * offset):
Ici m'effraie.
Je me dis que dans le code il y aura des commentaires pour accompagner.
(et je vérifie et non)
J'ai rajouté des commentaires dans ce patch.
Mis à jour par Frédéric Péters il y a plus de 6 ans
font-size: 13px;
nope nope nope. Ce calendar.css emmerde déjà les choses, n'obligeons pas les thèmes à contourner cette propriété; le souhait est d'être plus petit que la taille par défaut, disons ok, mais que ça passe par un pourcentage.
def get_first_available_slot(self, offset, min_duration): """Search the first available slots but more importantly contiguous ones
Le commentaire ne semble pas tout à fait correspondre au nom de la fonction; le commentaire parle de retourner plusieurs slots.
Sur la forme, il me semble qu'il aurait été équivalent d'écrire :
required_contiguous_slots = ... # c'est peut-être équivalent au step mais je n'ai pas cherché ce que contien offset pour vérifier. for i in range(len(self.slots) - required_contiguous_slots): if all([x.available for x in slots[i:i+required_contiguous_slots]): # got n contiguous slots, that's the one. return slots[i] return None
(sur l'idée que les slots sont contigus, ce qui me semble être le cas à la lecture du patch)
+ return _('(No slot available)')
No available slots.
De manière générale, ce code qui joue avec ce qui est à afficher, ça aurait plutôt sa place dans le template, genre :
<span class="calinfo"> {% with calendar.get_first_available_slot as slot %} ({% if slot %}{% trans "Next available slot :" %}{{ slot|date:"whatever date format"}{% else %}{% trans "No available slots." %}{% endif %} {% endwith %} </span>
(la boucle qui se trouve dans get_info, qui se trouverait ici déplacée dans get_first_available_slot, pourrait sans doute aussi se trouver dans le template mais ce serait trop.)
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Frédéric Péters a écrit :
[...]
nope nope nope. Ce calendar.css emmerde déjà les choses, n'obligeons pas les thèmes à contourner cette propriété; le souhait est d'être plus petit que la taille par défaut, disons ok, mais que ça passe par un pourcentage.
Ok modifié.
[...]
Le commentaire ne semble pas tout à fait correspondre au nom de la fonction; le commentaire parle de retourner plusieurs slots.
Sur la forme, il me semble qu'il aurait été équivalent d'écrire :
[...]
(sur l'idée que les slots sont contigus, ce qui me semble être le cas à la lecture du patch)
+1
[...]
No available slots.
De manière générale, ce code qui joue avec ce qui est à afficher, ça aurait plutôt sa place dans le template, genre :
[...]
(la boucle qui se trouve dans get_info, qui se trouverait ici déplacée dans get_first_available_slot, pourrait sans doute aussi se trouver dans le template mais ce serait trop.)
Pris en compte avec get_first_available_slot
au niveau de Calendar
.
Mis à jour par Frédéric Péters il y a plus de 6 ans
font-size: 0.8em;
ça passe par un pourcentage → 80% ou whatever. Pas une autre unité.
"""Search the first available slots
but more importantly contiguous ones
Pas changé : le commentaire ne semble pas tout à fait correspondre au nom de la fonction; le commentaire parle de retourner plusieurs slots.
required_contiguous_slots = self.min_duration.seconds / self.offset.seconds
Pas besoin de calculer ça à chaque itération.
{% trans "Next available slot :" %}
Il y avait un piège, pas d'espace avant : en anglais.
assert '(Next available slot :June 13' in page.content
Écrire ce test devrait être suffisant pour se dire qu'il y a un truc à corriger.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Frédéric Péters a écrit :
font-size: 0.8em;
ça passe par un pourcentage → 80% ou whatever. Pas une autre unité.
Ok corrigé
"""Search the first available slots
but more importantly contiguous onesPas changé : le commentaire ne semble pas tout à fait correspondre au nom de la fonction; le commentaire parle de retourner plusieurs slots.
Fait.
required_contiguous_slots = self.min_duration.seconds / self.offset.seconds
Pas besoin de calculer ça à chaque itération.
J'avais pas fait attention.
{% trans "Next available slot :" %}
Il y avait un piège, pas d'espace avant : en anglais.
assert '(Next available slot :June 13' in page.content
Écrire ce test devrait être suffisant pour se dire qu'il y a un truc à corriger.
Confusion sur la typographie, c'est corrigé aussi.
Mis à jour par Frédéric Péters il y a plus de 6 ans
{% trans "Next available slot: " %}
Non, on ne pose pas des espaces de fin de ligne dans les chaines à traduire, c'est trop facile ensuite de les rater. L'espace doit être dans le template entre {% trans "Next available slot: " %} et {{ slot.date_time...
def get_first_available_slot(self): """Return the first available slot
Comme le commentaire n'apporte rien qu'une répétition du nom de la méthode, il ne sert vraiment pas. Pour le garder faut le prolonger avec de l'info supplémentaire, genre "return the first available slot that has enough consecutive available slots to be allowed for booking".
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Frédéric Péters a écrit :
{% trans "Next available slot: " %}
Non, on ne pose pas des espaces de fin de ligne dans les chaines à traduire, c'est trop facile ensuite de les rater. L'espace doit être dans le template entre {% trans "Next available slot: " %} et {{ slot.date_time...
[...]
Corrigé
Comme le commentaire n'apporte rien qu'une répétition du nom de la méthode, il ne sert vraiment pas. Pour le garder faut le prolonger avec de l'info supplémentaire, genre "return the first available slot that has enough consecutive available slots to be allowed for booking".
Done.
Mis à jour par Frédéric Péters il y a plus de 6 ans
À rebaser pour ne pas utiliser calendar.css. → inclure <style>.calinfo { font-style: italic; font-size: 80%; } dans le template de la cellule.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Frédéric Péters a écrit :
À rebaser pour ne pas utiliser calendar.css. → inclure <style>.calinfo { font-style: italic; font-size: 80%; } dans le template de la cellule.
Ok, ajouté dans ce patch.
Mis à jour par Frédéric Péters il y a plus de 6 ans
Ok, ajouté dans ce patch.
Pas du tout, tu l'as ajouté en dur en attribut de l'élément alors que je disais qu'il fallait taper ça dans une balise <style>.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Frédéric Péters a écrit :
Ok, ajouté dans ce patch.
Pas du tout, tu l'as ajouté en dur en attribut de l'élément alors que je disais qu'il fallait taper ça dans une balise <style>.
Corrigé.
Mis à jour par Frédéric Péters il y a plus de 6 ans
<style>.calinfo { ...
Vraiment.
Pas style="...".
Pas non plus <style>h2 > .calinfo.
Le raisonnement derrière c'est avoir le sélecteur avec la plus petite priorité/spécificité possible.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Fichier 0001-booking-calendar-cell-display-first-available-slot-i.patch 0001-booking-calendar-cell-display-first-available-slot-i.patch ajouté
Frédéric Péters a écrit :
<style>.calinfo { ...
Vraiment.
Pas style="...".
Pas non plus <style>h2 > .calinfo.
Le raisonnement derrière c'est avoir le sélecteur avec la plus petite priorité/spécificité possible.
Ok, j'ai éssayé de rester fidèle à ce que t'as dit.
Mis à jour par Josué Kouka il y a plus de 6 ans
- Statut changé de En cours à Résolu (à déployer)
- % réalisé changé de 0 à 100
commit f2b51d40774c31109048bb959024037a0e9f772d Author: Josue Kouka <jkouka@entrouvert.com> Date: Tue Oct 17 16:13:45 2017 +0200 booking calendar cell: display first available slot if any (#19460)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Fermé
booking calendar cell: display first available slot if any (#19460)