Certains ical annoncent une heure UTC mais sont en fait des heures Europe/Pari
This commit is contained in:
parent
ddf17fd0f4
commit
491ffa44ec
@ -145,6 +145,8 @@ def run_recurrent_import_internal(rimport, downloader, req_id):
|
|||||||
extractor = ICALNoBusyExtractor()
|
extractor = ICALNoBusyExtractor()
|
||||||
elif rimport.processor == RecurrentImport.PROCESSOR.ICALNOVC:
|
elif rimport.processor == RecurrentImport.PROCESSOR.ICALNOVC:
|
||||||
extractor = ICALNoVCExtractor()
|
extractor = ICALNoVCExtractor()
|
||||||
|
elif rimport.processor == RecurrentImport.PROCESSOR.ICALNAIVETZ:
|
||||||
|
extractor = ICALNaiveTimezone()
|
||||||
elif rimport.processor == RecurrentImport.PROCESSOR.LACOOPE:
|
elif rimport.processor == RecurrentImport.PROCESSOR.LACOOPE:
|
||||||
extractor = lacoope.CExtractor()
|
extractor = lacoope.CExtractor()
|
||||||
elif rimport.processor == RecurrentImport.PROCESSOR.LACOMEDIE:
|
elif rimport.processor == RecurrentImport.PROCESSOR.LACOMEDIE:
|
||||||
|
@ -18,6 +18,7 @@ logger = get_task_logger(__name__)
|
|||||||
class ICALExtractor(Extractor):
|
class ICALExtractor(Extractor):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.naive_timezone = False
|
||||||
self.to_timezone = pytz.timezone("Europe/Paris")
|
self.to_timezone = pytz.timezone("Europe/Paris")
|
||||||
|
|
||||||
|
|
||||||
@ -54,7 +55,8 @@ class ICALExtractor(Extractor):
|
|||||||
|
|
||||||
if item is not None:
|
if item is not None:
|
||||||
if isinstance(item, datetime):
|
if isinstance(item, datetime):
|
||||||
item = self.to_timezone.normalize(item)
|
if not self.naive_timezone:
|
||||||
|
item = self.to_timezone.normalize(item)
|
||||||
day = item.date()
|
day = item.date()
|
||||||
time = item.time()
|
time = item.time()
|
||||||
elif isinstance(item, date):
|
elif isinstance(item, date):
|
||||||
@ -290,3 +292,8 @@ class ICALNoVCExtractor(ICALExtractor):
|
|||||||
image,
|
image,
|
||||||
image_alt,
|
image_alt,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class ICALNaiveTimezone(ICALExtractor):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.naive_timezone = True
|
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.2.9 on 2025-02-23 10:59
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('agenda_culturel', '0148_alter_recurrentimport_source'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='recurrentimport',
|
||||||
|
name='processor',
|
||||||
|
field=models.CharField(choices=[('ical', 'ical'), ('icalnobusy', 'ical no busy'), ('icalnovc', 'ical no VC'), ('ical naive tz', 'ical naive timezone'), ('lacoope', 'lacoope.org'), ('lacomedie', 'la comédie'), ('lefotomat', 'le fotomat'), ('lapucealoreille', "la puce à l'oreille"), ('Plugin wordpress MEC', 'Plugin wordpress MEC'), ('Facebook events', "Événements d'une page FB"), ('Billetterie CF', 'Billetterie Clermont-Ferrand'), ('arachnee', 'Arachnée concert'), ('rio', 'Le Rio'), ('raymonde', 'La Raymonde'), ('apidae', 'Agenda apidae tourisme'), ('iguana', 'Agenda iguana (médiathèques)'), ('Mille formes', 'Mille formes'), ('Amis cerises', 'Les Amis du Temps des Cerises'), ('Mobilizon', 'Mobilizon')], default='ical', max_length=20, verbose_name='Processor'),
|
||||||
|
),
|
||||||
|
]
|
@ -2147,6 +2147,7 @@ class RecurrentImport(models.Model):
|
|||||||
ICAL = "ical", _("ical")
|
ICAL = "ical", _("ical")
|
||||||
ICALNOBUSY = "icalnobusy", _("ical no busy")
|
ICALNOBUSY = "icalnobusy", _("ical no busy")
|
||||||
ICALNOVC = "icalnovc", _("ical no VC")
|
ICALNOVC = "icalnovc", _("ical no VC")
|
||||||
|
ICALNAIVETZ = "ical naive tz", _("ical naive timezone")
|
||||||
LACOOPE = "lacoope", _("lacoope.org")
|
LACOOPE = "lacoope", _("lacoope.org")
|
||||||
LACOMEDIE = "lacomedie", _("la comédie")
|
LACOMEDIE = "lacomedie", _("la comédie")
|
||||||
LEFOTOMAT = "lefotomat", _("le fotomat")
|
LEFOTOMAT = "lefotomat", _("le fotomat")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user