3cn-ecn/nantralPlatform

[TICKET] Exporter les évènements

hydrielax opened this issue · 1 comments

Description

Rendre possible l'export d'évènement en format iCal (.ics), et la synchronisation d'agenda avec WebCal.

Definition of done

  • Sur la page Events, en mode Grid:
    • J'ai un bouton pour Synchroniser l'agenda
    • Quand je clique dessus, une modal s'ouvre avec un lien webcal à copier, que je peux coller dans mon agenda perso. Les events sont alors synchronisés avec mon agenda, avec les filtres sélectionnés dans la vue en grille auparavant. Si un event est modifié sur NP, il l'est aussi dans mon agenda
  • Sur la page Events, en mode Calendar :
    • J'ai un bouton exporter pour télécharger tous les évènements affichés au format iCal (.ics)
    • Lorsque je clique sur le bouton, le fichier est immédiatement téléchargé
  • Sur la page de détails d'un Event :
    • J'ai un bouton exporter pour télécharger l'évènement affiché

Stratégie technique

  • Dans django, dans apps/event/views.py, j'ai une vue IcalFeed faite avec la lib django-ical (https://django-ical.readthedocs.io/)
  • Si j'appelle cette vue en http://, je télécharge un fichier .ics
  • Si j'appelle cette vue en webcal:// depuis une appli de calendrier, je me synchronise avec l'agenda de Nantral Platform
  • La view doit réutiliser les mêmes filtres que la méthode get_queryset de l'api_view pour les events, plus un filtre id pour télécharger un seul event
  • La view doit renvoyer uniquement les évènements auxquels l'utilisateur a accès (permissions)
  • La view ne doit rien renvoyer si l'utilisateur n'est pas connecté (question : comment se connecter avec webcal ? laisser tomber la synchro avec webcal si pas possible)
  • Ajouter les boutons dans le front pour générer le lien webcal avec les filtres, et pour appeler le lien http avec les filtres aussi