diff --git a/src/agenda_culturel/celery.py b/src/agenda_culturel/celery.py index 1b8958c..75d7aa8 100644 --- a/src/agenda_culturel/celery.py +++ b/src/agenda_culturel/celery.py @@ -94,7 +94,12 @@ def run_recurrent_import(self, pk): # prepare downloading and extracting processes downloader = SimpleDownloader() if rimport.downloader == RecurrentImport.DOWNLOADER.SIMPLE else ChromiumHeadlessDownloader() - extractor = ICALExtractor() if rimport.processor == RecurrentImport.PROCESSOR.ICAL else None + if rimport.processor == RecurrentImport.PROCESSOR.ICAL: + extractor = ICALExtractor() + elif rimport.processor == RecurrentImport.PROCESSOR.ICALNOBUSY: + extractor = ICALNoBusyExtractor() + else: + extractor = None if extractor is None: logger.error("Unknown extractor") diff --git a/src/agenda_culturel/import_tasks/extractor_ical.py b/src/agenda_culturel/import_tasks/extractor_ical.py index b83572c..d7eb14b 100644 --- a/src/agenda_culturel/import_tasks/extractor_ical.py +++ b/src/agenda_culturel/import_tasks/extractor_ical.py @@ -111,3 +111,10 @@ class ICALExtractor(Extractor): return self.get_structure() + +class ICALNoBusyExtractor(ICALExtractor): + + def add_event(self, title, category, start_day, location, description, tags, uuid, recurrences=None, url_human=None, start_time=None, end_day=None, end_time=None, last_modified=None, published=False, image=None, image_alt=None): + if title != 'Busy': + super().add_event(title, category, start_day, location, description, tags, uuid, recurrences, url_human, start_time, end_day, end_time, last_modified, published, image, image_alt) + diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index 0d5b70c..8c6f1c0 100644 --- a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po +++ b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: agenda_culturel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-26 12:27+0000\n" +"POT-Creation-Date: 2024-02-16 16:06+0000\n" "PO-Revision-Date: 2023-10-29 14:16+0000\n" "Last-Translator: Jean-Marie Favreau \n" "Language-Team: Jean-Marie Favreau \n" @@ -30,7 +30,7 @@ msgid "JSON in the format expected for the import." msgstr "JSON dans le format attendu pour l'import" #: agenda_culturel/models.py:32 agenda_culturel/models.py:61 -#: agenda_culturel/models.py:695 +#: agenda_culturel/models.py:702 msgid "Name" msgstr "Nom" @@ -79,7 +79,7 @@ msgid "Color used as background for the category" msgstr "Couleur utilisée comme fond de la catégorie" #: agenda_culturel/models.py:101 agenda_culturel/models.py:168 -#: agenda_culturel/models.py:733 +#: agenda_culturel/models.py:741 msgid "Category" msgstr "Catégorie" @@ -87,7 +87,7 @@ msgstr "Catégorie" msgid "Categories" msgstr "Catégories" -#: agenda_culturel/models.py:153 +#: agenda_culturel/models.py:153 agenda_culturel/models.py:739 msgid "Published" msgstr "Publié" @@ -107,7 +107,7 @@ msgstr "Titre" msgid "Short title" msgstr "Titre court" -#: agenda_culturel/models.py:166 agenda_culturel/models.py:756 +#: agenda_culturel/models.py:166 agenda_culturel/models.py:764 msgid "Status" msgstr "Status" @@ -141,7 +141,7 @@ msgstr "Heure de fin" msgid "Recurrence" msgstr "Récurrence" -#: agenda_culturel/models.py:178 agenda_culturel/models.py:731 +#: agenda_culturel/models.py:178 agenda_culturel/models.py:740 msgid "Location" msgstr "Localisation" @@ -225,155 +225,163 @@ msgstr "Événement" msgid "Events" msgstr "Événements" -#: agenda_culturel/models.py:694 +#: agenda_culturel/models.py:701 msgid "Subject" msgstr "Sujet" -#: agenda_culturel/models.py:694 +#: agenda_culturel/models.py:701 msgid "The subject of your message" msgstr "Sujet de votre message" -#: agenda_culturel/models.py:695 +#: agenda_culturel/models.py:702 msgid "Your name" msgstr "Votre nom" -#: agenda_culturel/models.py:696 +#: agenda_culturel/models.py:703 msgid "Email address" msgstr "Adresse email" -#: agenda_culturel/models.py:696 +#: agenda_culturel/models.py:703 msgid "Your email address" msgstr "Votre adresse email" -#: agenda_culturel/models.py:697 +#: agenda_culturel/models.py:704 msgid "Message" msgstr "Message" -#: agenda_culturel/models.py:697 +#: agenda_culturel/models.py:704 msgid "Your message" msgstr "Votre message" -#: agenda_culturel/models.py:701 agenda_culturel/views.py:366 +#: agenda_culturel/models.py:708 agenda_culturel/views.py:376 msgid "Closed" msgstr "Fermé" -#: agenda_culturel/models.py:701 +#: agenda_culturel/models.py:708 msgid "this message has been processed and no longer needs to be handled" msgstr "Ce message a été traité et ne nécessite plus d'être pris en charge" -#: agenda_culturel/models.py:702 +#: agenda_culturel/models.py:709 msgid "Comments" msgstr "Commentaires" -#: agenda_culturel/models.py:702 +#: agenda_culturel/models.py:709 msgid "Comments on the message from the moderation team" msgstr "Commentaires sur ce message par l'équipe de modération" -#: agenda_culturel/models.py:711 +#: agenda_culturel/models.py:718 msgid "ical" msgstr "ical" -#: agenda_culturel/models.py:714 +#: agenda_culturel/models.py:719 +msgid "ical no busy" +msgstr "ical sans busy" + +#: agenda_culturel/models.py:722 msgid "simple" msgstr "simple" -#: agenda_culturel/models.py:715 +#: agenda_culturel/models.py:723 msgid "Headless Chromium" msgstr "chromium sans interface" -#: agenda_culturel/models.py:719 +#: agenda_culturel/models.py:727 msgid "daily" msgstr "chaque jour" -#: agenda_culturel/models.py:720 +#: agenda_culturel/models.py:728 msgid "weekly" msgstr "chaque semaine" -#: agenda_culturel/models.py:722 +#: agenda_culturel/models.py:730 msgid "Processor" msgstr "Processeur" -#: agenda_culturel/models.py:723 +#: agenda_culturel/models.py:731 msgid "Downloader" msgstr "Téléchargeur" -#: agenda_culturel/models.py:725 +#: agenda_culturel/models.py:733 msgid "Import recurrence" msgstr "Récurrence d'import" -#: agenda_culturel/models.py:728 +#: agenda_culturel/models.py:736 msgid "Source" msgstr "Source" -#: agenda_culturel/models.py:728 +#: agenda_culturel/models.py:736 msgid "URL of the source document" msgstr "URL du document source" -#: agenda_culturel/models.py:729 +#: agenda_culturel/models.py:737 msgid "Browsable url" msgstr "URL navigable" -#: agenda_culturel/models.py:729 +#: agenda_culturel/models.py:737 msgid "URL of the corresponding document that will be shown to visitors." msgstr "URL correspondant au document et qui sera montrée aux visiteurs" -#: agenda_culturel/models.py:731 +#: agenda_culturel/models.py:739 +msgid "Status of each imported event (published or draft)" +msgstr "Status de chaque événement importé (publié ou brouillon)" + +#: agenda_culturel/models.py:740 msgid "Address for each imported event" msgstr "Adresse de chaque événement importé" -#: agenda_culturel/models.py:733 +#: agenda_culturel/models.py:741 msgid "Category of each imported event" msgstr "Catégorie de chaque événement importé" -#: agenda_culturel/models.py:734 +#: agenda_culturel/models.py:742 msgid "Tags for each imported event" msgstr "Étiquettes de chaque événement importé" -#: agenda_culturel/models.py:734 +#: agenda_culturel/models.py:742 msgid "A list of tags that describe each imported event." msgstr "Une liste d'étiquettes décrivant chaque événement importé" -#: agenda_culturel/models.py:746 +#: agenda_culturel/models.py:754 msgid "Running" msgstr "En cours" -#: agenda_culturel/models.py:747 +#: agenda_culturel/models.py:755 msgid "Canceled" msgstr "Annulé" -#: agenda_culturel/models.py:748 +#: agenda_culturel/models.py:756 msgid "Success" msgstr "Succès" -#: agenda_culturel/models.py:749 +#: agenda_culturel/models.py:757 msgid "Failed" msgstr "Erreur" -#: agenda_culturel/models.py:754 +#: agenda_culturel/models.py:762 msgid "Recurrent import" msgstr "Import récurrent" -#: agenda_culturel/models.py:754 +#: agenda_culturel/models.py:762 msgid "Reference to the recurrent import processing" msgstr "Référence du processus d'import récurrent" -#: agenda_culturel/models.py:758 +#: agenda_culturel/models.py:766 msgid "Error message" msgstr "Votre message" -#: agenda_culturel/models.py:760 +#: agenda_culturel/models.py:768 msgid "Number of collected events" msgstr "Nombre d'événements collectés" -#: agenda_culturel/models.py:761 +#: agenda_culturel/models.py:769 msgid "Number of imported events" msgstr "Nombre d'événements importés" -#: agenda_culturel/models.py:762 +#: agenda_culturel/models.py:770 msgid "Number of updated events" msgstr "Nombre d'événements mis à jour" -#: agenda_culturel/models.py:763 +#: agenda_culturel/models.py:771 msgid "Number of removed events" msgstr "Nombre d'événements supprimés" @@ -385,27 +393,27 @@ msgstr "anglais" msgid "French" msgstr "français" -#: agenda_culturel/views.py:203 +#: agenda_culturel/views.py:206 msgid "The static content has been successfully updated." msgstr "Le contenu statique a été modifié avec succès." -#: agenda_culturel/views.py:209 +#: agenda_culturel/views.py:212 msgid "The event has been successfully modified." msgstr "L'événement a été modifié avec succès." -#: agenda_culturel/views.py:220 +#: agenda_culturel/views.py:223 msgid "The event has been successfully deleted." msgstr "L'événement a été supprimé avec succès" -#: agenda_culturel/views.py:247 +#: agenda_culturel/views.py:250 msgid "The status has been successfully modified." msgstr "Le status a été modifié avec succès." -#: agenda_culturel/views.py:269 +#: agenda_culturel/views.py:272 msgid "The event is saved." msgstr "L'événement est enregistré." -#: agenda_culturel/views.py:272 +#: agenda_culturel/views.py:275 msgid "" "The event has been submitted and will be published as soon as it has been " "validated by the moderation team." @@ -413,7 +421,7 @@ msgstr "" "L'événement a été soumis et sera publié dès qu'il aura été validé par " "l'équipe de modération." -#: agenda_culturel/views.py:302 +#: agenda_culturel/views.py:312 msgid "" "The event has been successfully extracted, and you can now submit it after " "modifying it if necessary." @@ -421,7 +429,7 @@ msgstr "" "L'événement a été extrait avec succès, vous pouvez maintenant le soumettre " "après l'avoir modifié au besoin." -#: agenda_culturel/views.py:306 +#: agenda_culturel/views.py:316 msgid "" "Unable to extract an event from the proposed URL. Please use the form below " "to submit the event." @@ -429,16 +437,16 @@ msgstr "" "Impossible d'extraire un événement depuis l'URL proposée. Veuillez utiliser " "le formulaire ci-dessous pour soumettre l'événement." -#: agenda_culturel/views.py:315 +#: agenda_culturel/views.py:325 msgid "This URL has already been submitted, and you can find the event below." msgstr "" "Cette URL a déjà été soumise, et vous trouverez l'événement ci-dessous." -#: agenda_culturel/views.py:319 +#: agenda_culturel/views.py:329 msgid "This URL has already been submitted and is awaiting moderation." msgstr "Cette URL a déjà été soumise, et est en attente de modération" -#: agenda_culturel/views.py:321 +#: agenda_culturel/views.py:331 msgid "" "This URL has already been submitted, but has not been selected for " "publication by the moderation team." @@ -446,75 +454,75 @@ msgstr "" "Cette URL a déjà été soumise, mais n'a pas été retenue par l'équipe de " "modération pour la publication." -#: agenda_culturel/views.py:343 +#: agenda_culturel/views.py:353 msgid "Your message has been sent successfully." msgstr "L'événement a été supprimé avec succès" -#: agenda_culturel/views.py:351 +#: agenda_culturel/views.py:361 msgid "The contact message properties has been successfully modified." msgstr "Les propriétés du message de contact ont été modifié avec succès." -#: agenda_culturel/views.py:366 +#: agenda_culturel/views.py:376 msgid "Open" msgstr "Ouvert" -#: agenda_culturel/views.py:406 +#: agenda_culturel/views.py:416 msgid "Search" msgstr "Rechercher" -#: agenda_culturel/views.py:521 +#: agenda_culturel/views.py:531 msgid "The import has been run successfully." msgstr "L'import a été lancé avec succès" -#: agenda_culturel/views.py:537 +#: agenda_culturel/views.py:547 msgid "The import has been canceled." msgstr "L'import a été annulé" -#: agenda_culturel/views.py:571 +#: agenda_culturel/views.py:581 msgid "The recurrent import has been successfully modified." msgstr "L'import récurrent a été modifié avec succès." -#: agenda_culturel/views.py:577 +#: agenda_culturel/views.py:587 msgid "The recurrent import has been successfully deleted." msgstr "L'import récurrent a été supprimé avec succès" -#: agenda_culturel/views.py:606 +#: agenda_culturel/views.py:616 msgid "The import has been launched." msgstr "L'import a été lancé" -#: agenda_culturel/views.py:665 +#: agenda_culturel/views.py:675 msgid "The merge has been successfully completed." msgstr "La fusion a été réalisée avec succès." -#: agenda_culturel/views.py:694 +#: agenda_culturel/views.py:704 msgid "Events have been marked as unduplicated." msgstr "Les événements ont été marqués comme non dupliqués." -#: agenda_culturel/views.py:711 +#: agenda_culturel/views.py:721 msgid "" -"The selected event has been retained, while the other has been moved " -"to the recycle bin." +"The selected event has been retained, while the other has been moved to the " +"recycle bin." msgstr "" "L'événement sélectionné a été conservé, l'autre a été déplacé dans la " "corbeille." -#: agenda_culturel/views.py:713 +#: agenda_culturel/views.py:723 msgid "" -"The selected event has been retained, while the others have been moved " -"to the recycle bin." +"The selected event has been retained, while the others have been moved to " +"the recycle bin." msgstr "" "L'événement sélectionné a été conservé, les autres ont été déplacés dans la " "corbeille." -#: agenda_culturel/views.py:719 +#: agenda_culturel/views.py:729 msgid "The event has been withdrawn from the group and made independent." msgstr "L'événement a été retiré du groupe et rendu indépendant." -#: agenda_culturel/views.py:765 +#: agenda_culturel/views.py:775 msgid "The event was successfully duplicated." msgstr "L'événement a été marqué dupliqué avec succès." -#: agenda_culturel/views.py:768 +#: agenda_culturel/views.py:778 msgid "" "The event has been successfully flagged as a duplicate. The moderation team " "will deal with your suggestion shortly." @@ -522,7 +530,6 @@ msgstr "" "L'événement a été signalé comme dupliqué avec succès. Votre suggestion sera " "prochainement prise en charge par l'équipe de modération." - msgid "Add another" msgstr "Ajouter un autre" diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index ccba7e4..2a73802 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -716,6 +716,7 @@ class RecurrentImport(models.Model): class PROCESSOR(models.TextChoices): ICAL = "ical", _("ical") + ICALNOBUSY = "icalnobusy", _("ical no busy") class DOWNLOADER(models.TextChoices): SIMPLE = "simple", _("simple")