Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Django] Flux ICS

Pas de synchro...

Sujet résolu
    13 octobre 2012 à 22:22:29

    Salut à tous !

    Je suis en train de mettre en place un flux ICS sur mon site en utilisant le petit module django_ical !

    Voici ma classe principale :
    # -*- encoding: utf-8 -*-
    
    from django_ical.views import ICalFeed
    from django.conf import settings
    
    import datetime
    
    from reservation.models import *
    
    class ReservationICS(ICalFeed):
        """ ICalendar corresponding to reservations. """
        product_id = 'StupidNAME'
        timezone = settings.TIME_ZONE
    
        def items(self):
            return Reservation.objects.all().order_by('slot')
    
        def item_title (self, item):
            if item.is_blocked:
                return "Blocage - " + item.block_info.short_info
            else:
                return "Reservation - " + item.owner.name
    
        def item_description (self, item):
            if item.is_blocked:
                return item.block_info.information
            else:
                return "Reservation - " + self.item_title (item)
    
        def item_link (self, item):
            return ""
    
        def item_location (self, item):
            return item.room.get_number_display()
    
        def item_start_datetime (self, item):
            day = item.slot.day
            nsec = (9 + item.slot.hour * 3) * 3600
            return datetime.datetime(day.year, day.month, day.day) + datetime.timedelta(0, nsec)
    
        def item_end_datetime (self, item):
            return self.item_start_datetime(item) + datetime.timedelta(0, 3600*3)
    
        # Rajout pour que ça marche :
        def item_guid (self, item):
            return self.item_start_datetime (item).strftime("%Y%m%d%H") + str(item.room.pk) + "@mydomain"
    


    J'ai bien modifié le urls.py comme indiqué sur le site, en fait, mon ICS est généré correctement ! Je vais sur la page, ça me fait télécharger un fichier "telechargement.ics", et si je l'ouvre avec Outlook, j'ai bien tout ce que je veux !

    Par contre, au niveau de Google Agenda, je n'ai aucune synchronisation ! Seul le dernier évènement est affiché et le flux ne se synchronise jamais... Du coup je me demandais si je ne devais pas ajouter un petit quelque chose au code ci-dessus pour permettre à Google Agenda de synchroniser ?

    Merci d'avance !

    EDIT : Résolu en ajoutant un ID unique pour chaque event :)
    • Partager sur Facebook
    • Partager sur Twitter

    [Django] Flux ICS

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown