#Python : rajouter un champ de recherche dans mon agenda-calendrier

Bonjour à tous,

Aujourd’hui, dans mon agenda-calendrier qui me comble de joie, j’ai instancié un champ de recherche couplé à un bouton représentant une loupe. Il m’a fallu plusieurs jours pour arriver à mes fins mais je dois reconnaître que je suis bien content car il s’agit d’une fonction fort utile au demeurant. Le code est ici:

//pastebin.com/embed_iframe/C0eZJk5u

Comme vous pouvez le voir dans le diaporama ci-dessous, j’ai entré le mot « Espéranto » dans le champ de recherche. Vous pouvez mettre des majuscules ou des minuscules si cela vous chante… Peu importe puisque de toute manière, grâce à la méthode lower() que j’utilise dans mon code, toutes les lettres sont transformées en minuscules.

Lorsque je lance la recherche, la fonction (ou plutôt la méthode) ouvre une fenêtre Toplevel et me retourne toutes les dates où apparaît l’occurrence recherchée. Elle me les retourne sous forme de boutons, c’est-à dire que si vous cliquez sur le bouton 17/09/2016 par exemple, cela provoque l’ouverture de la page correspondante. Regardez comme c’est beau :

Ce diaporama nécessite JavaScript.

Oui, mais keskispasse si par hasard l’occurrence n’est présente dans aucune des pages de l’agenda? Eh bien là encore, pas de panique! La méthode vous prévient en ouvrant une fenêtre Toplevel contenant un message idoine… Le fond est rouge pour bien vous faire comprendre que votre recherche n’a rien donné :

recherche4

#Python : rajouter une fenêtre surgissante de rappel dans mon agenda-calendrier

Bonjour à tous,

Il y a deux jours, j’ai doté mon agenda-calendrier d’une fonctionnalité hyper pratique pour celles et ceux qui, comme moi, ont la fâcheuse habitude de remettre au lendemain ce qui peut être réglé le jour même… A savoir, une fenêtre pop-up qui me rappelle que je n’ai pas validé un événement passé depuis au moins deux jours.

Un exemple valant mieux qu’un long discours, j’ai créé un événement « Rendez-vous chez le dermatologue » le  1er septembre 2016. Je n’ai pas de problèmes de peau! C’est juste pour vous expliquer le principe.

Le 3 Septembre, n’ayant toujours pas validé l’événement, une fenêtre surgissante apparait lorsqu’on j’ouvre mon application. Elle apparaitra tant que je n’aurai pas validé, effacé ou déplacé l’événement dans le futur. C’est simple mais bougrement efficace!

popuprappel

Dès que l’événement a été validé (c’est-à dire en vert comme dans la capture d’écran ci-dessous), la fenêtre surgissante cesse d’apparaitre.

popup_valide

#Python : programmer un calendrier-agenda (suite)

Bonjour à tous,

Je viens tout juste de terminer de coder le module agenda et je suis relativement satisfait du résultat (même si c’est un peu bancal par moments) . Comme je l’ai déjà expliqué dans mon article précédent, chaque jour du mois est un bouton qui, lorsqu’il est pressé, ouvre une page d’agenda.

Ensuite, il est possible de feuilleter l’agenda, c’est-à-dire de passer d’une page à l’autre. Voici donc mon agendrier personnel avec le code de l’agenda. Le code du calendrier est dans l’article précédent.

//pastebin.com/embed_iframe/C0eZJk5u

agendrier

#Python : Programmer un calendrier-agenda

Bonjour,

Je suis en vacances depuis déjà deux bonnes semaines et je viens de réaliser que j’ai passé une bonne partie de mon temps libre à coder! Parfois, je me demande si ça ne tourne pas à l’obsession…

Bref, après le jeu du pendu, je me suis mis en tête de programmer un agendrier, c’est-à-dire un agenda-calendrier. J’ai terminé la première partie, à savoir le calendrier. Le résultat me comble de joie. Pourtant, au départ c’était loin d’être gagner.

agendrier

Le plus difficile a été d’instancier les numéros de semaine. Quelle galère! A ma grande surprise, j’ai découvert que certaines années comptaient 53 semaines, que la semaine 1 pouvait débuter en Décembre de l’année précédente et que la semaine 52 pouvait se terminer en Janvier de l’année suivante…. Tout en tenant compte des années bissextiles tous les quatre ans si l’année est divisible par 4 et non divisible par 100… Ou bien si l’année est divisible par 400!

Comme d’habitude, je me suis lancé dans l’érection d’une véritable usine à gaz jusqu’à ce que je découvre qu’il existait déjà des modules susceptibles de me faciliter la tâche. Merci donc aux modules monthcalendar et localtime. Je n’oublie pas non plus le module datetime et sa méthode isocalendar() laquelle fut d’un grand secours.

Il s’agit donc d’un calendrier dont chaque jour du mois est composé d’un bouton sur lequel on peut cliquer. A terme, ce clic est censé ouvrir la page d’agenda corrélative. Je dis « A terme » car je n’ai pas encore commencé à coder l’agenda. Ce sera la prochaine étape et pour ce faire, je souhaite exploiter toutes les possibilités offertes par le widget Text et ses méthodes. Du reste, ce sera l’objet d’un prochain article.

En attendant, voici le code du calendrier que vous pouvez utiliser et modifier comme bon vous semble.

//pastebin.com/embed_iframe/eXtcFgUN