diff --git a/src/agenda_culturel/celery.py b/src/agenda_culturel/celery.py index 6f063ae..f391e9a 100644 --- a/src/agenda_culturel/celery.py +++ b/src/agenda_culturel/celery.py @@ -11,6 +11,7 @@ from celery.utils.log import get_task_logger from django.conf import settings from django.core.cache import cache from datetime import date +from django.db.models import Q from .import_tasks.custom_extractors import ( lacomedie, @@ -367,10 +368,13 @@ def run_all_recurrent_imports(self, only_fb=False): logger.info("Run all imports") if only_fb: imports = RecurrentImport.objects.filter( - processor=RecurrentImport.PROCESSOR.FBEVENTS + Q(processor=RecurrentImport.PROCESSOR.FBEVENTS) + & ~Q(recurrence=RecurrentImport.RECURRENCE.NEVER) ).order_by("pk") else: - imports = RecurrentImport.objects.all().order_by("pk") + imports = RecurrentImport.objects.filter( + ~Q(recurrence=RecurrentImport.RECURRENCE.NEVER) + ).order_by("pk") run_recurrent_imports_from_list([imp.pk for imp in imports]) @@ -380,7 +384,9 @@ def run_all_recurrent_imports_failed(self): from agenda_culturel.models import BatchImportation, RecurrentImport logger.info("Run only failed imports") - imports = RecurrentImport.objects.all().order_by("pk") + imports = RecurrentImport.objects.filter( + ~Q(recurrence=RecurrentImport.RECURRENCE.NEVER) + ).order_by("pk") imports = [(imp.pk, imp.last_import()) for imp in imports] run_recurrent_imports_from_list( @@ -397,7 +403,9 @@ def run_all_recurrent_imports_canceled(self): from agenda_culturel.models import BatchImportation, RecurrentImport logger.info("Run only canceled imports") - imports = RecurrentImport.objects.all().order_by("pk") + imports = RecurrentImport.objects.filter( + ~Q(recurrence=RecurrentImport.RECURRENCE.NEVER) + ).order_by("pk") imports = [(imp.pk, imp.last_import()) for imp in imports] run_recurrent_imports_from_list( diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index 50f3619..1b2355d 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: 2025-03-01 14:46+0100\n" +"POT-Creation-Date: 2025-03-02 21:58+0100\n" "PO-Revision-Date: 2023-10-29 14:16+0000\n" "Last-Translator: Jean-Marie Favreau \n" "Language-Team: Jean-Marie Favreau \n" @@ -17,272 +17,272 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: agenda_culturel/calendar.py:171 +#: agenda_culturel/calendar.py:189 msgid "All day today" msgstr "Aujourd'hui toute la journée" -#: agenda_culturel/calendar.py:172 +#: agenda_culturel/calendar.py:191 msgid "This morning" msgstr "Ce matin" -#: agenda_culturel/calendar.py:172 +#: agenda_culturel/calendar.py:192 msgid "This noon" msgstr "Ce midi" -#: agenda_culturel/calendar.py:172 +#: agenda_culturel/calendar.py:193 msgid "This afternoon" msgstr "Cet après-midi" -#: agenda_culturel/calendar.py:172 +#: agenda_culturel/calendar.py:194 msgid "This evening" msgstr "Ce soir" -#: agenda_culturel/calendar.py:174 +#: agenda_culturel/calendar.py:197 msgid "Tomorrow" msgstr "Demain" -#: agenda_culturel/calendar.py:175 +#: agenda_culturel/calendar.py:198 msgid "All day tomorrow" msgstr "Toute la journée de demain" -#: agenda_culturel/calendar.py:176 agenda_culturel/calendar.py:180 +#: agenda_culturel/calendar.py:200 agenda_culturel/calendar.py:209 #, python-format msgid "%s morning" msgstr "%s matin" -#: agenda_culturel/calendar.py:176 agenda_culturel/calendar.py:180 +#: agenda_culturel/calendar.py:201 agenda_culturel/calendar.py:210 #, python-format msgid "%s noon" msgstr "%s midi" -#: agenda_culturel/calendar.py:176 agenda_culturel/calendar.py:180 +#: agenda_culturel/calendar.py:202 agenda_culturel/calendar.py:211 #, python-format msgid "%s afternoon" msgstr "%s après-midi" -#: agenda_culturel/calendar.py:176 agenda_culturel/calendar.py:180 +#: agenda_culturel/calendar.py:203 agenda_culturel/calendar.py:212 #, python-format msgid "%s evening" msgstr "%s soir" -#: agenda_culturel/calendar.py:179 +#: agenda_culturel/calendar.py:207 #, python-format msgid "All day %s" msgstr "Toute la journée de %s" -#: agenda_culturel/calendar.py:181 +#: agenda_culturel/calendar.py:214 msgid "All day" msgstr "Toute la journée" -#: agenda_culturel/calendar.py:182 +#: agenda_culturel/calendar.py:216 msgid "Morning" msgstr "Matin" -#: agenda_culturel/calendar.py:182 +#: agenda_culturel/calendar.py:217 msgid "Noon" msgstr "Midi" -#: agenda_culturel/calendar.py:182 +#: agenda_culturel/calendar.py:218 msgid "Afternoon" msgstr "Après-midi" -#: agenda_culturel/calendar.py:182 +#: agenda_culturel/calendar.py:219 msgid "Evening" msgstr "Soir" -#: agenda_culturel/filters.py:65 +#: agenda_culturel/filters.py:34 msgid "Select a location" msgstr "Choisir une localité" -#: agenda_culturel/filters.py:324 +#: agenda_culturel/filters.py:339 msgid "Representative version" msgstr "Version représentative" -#: agenda_culturel/filters.py:325 agenda_culturel/filters.py:331 -#: agenda_culturel/filters.py:337 agenda_culturel/filters.py:454 +#: agenda_culturel/filters.py:340 agenda_culturel/filters.py:347 +#: agenda_culturel/filters.py:354 agenda_culturel/filters.py:482 msgid "Yes" msgstr "Oui" -#: agenda_culturel/filters.py:325 agenda_culturel/filters.py:331 -#: agenda_culturel/filters.py:337 agenda_culturel/filters.py:454 +#: agenda_culturel/filters.py:340 agenda_culturel/filters.py:347 +#: agenda_culturel/filters.py:354 agenda_culturel/filters.py:482 msgid "No" msgstr "Non" -#: agenda_culturel/filters.py:330 +#: agenda_culturel/filters.py:346 msgid "Pure import" msgstr "Événement importé" -#: agenda_culturel/filters.py:336 +#: agenda_culturel/filters.py:353 msgid "In recurrent import" msgstr "Inclut dans un import récurrent" -#: agenda_culturel/filters.py:342 +#: agenda_culturel/filters.py:360 msgid "Sort by" msgstr "Trier par" -#: agenda_culturel/filters.py:344 +#: agenda_culturel/filters.py:362 msgid "last moderated first" msgstr "dernier modéré d'abord" -#: agenda_culturel/filters.py:345 +#: agenda_culturel/filters.py:363 msgid "last modified first" msgstr "dernier modifié d'abord" -#: agenda_culturel/filters.py:346 +#: agenda_culturel/filters.py:364 msgid "last imported first" msgstr "dernier importé d'abord" -#: agenda_culturel/filters.py:347 +#: agenda_culturel/filters.py:365 msgid "last created first" msgstr "dernier créé d'abord" -#: agenda_culturel/filters.py:352 +#: agenda_culturel/filters.py:371 msgid "Imported from" msgstr "Importé depuis" -#: agenda_culturel/filters.py:415 agenda_culturel/models.py:655 -#: agenda_culturel/models.py:2332 +#: agenda_culturel/filters.py:439 agenda_culturel/models.py:718 +#: agenda_culturel/models.py:2661 msgid "Status" msgstr "Status" -#: agenda_culturel/filters.py:416 agenda_culturel/models.py:2114 +#: agenda_culturel/filters.py:440 agenda_culturel/models.py:2427 msgid "Closed" msgstr "Fermé" -#: agenda_culturel/filters.py:416 +#: agenda_culturel/filters.py:440 msgid "Open" msgstr "Ouvert" -#: agenda_culturel/filters.py:420 agenda_culturel/filters.py:421 -#: agenda_culturel/models.py:2108 +#: agenda_culturel/filters.py:444 agenda_culturel/filters.py:445 +#: agenda_culturel/models.py:2421 msgid "Spam" msgstr "Spam" -#: agenda_culturel/filters.py:421 +#: agenda_culturel/filters.py:445 msgid "Non spam" msgstr "Non spam" -#: agenda_culturel/filters.py:426 agenda_culturel/models.py:2129 +#: agenda_culturel/filters.py:450 agenda_culturel/models.py:2442 msgid "Type" msgstr "Type" -#: agenda_culturel/filters.py:441 +#: agenda_culturel/filters.py:469 msgid "Search" msgstr "Rechercher" -#: agenda_culturel/filters.py:453 +#: agenda_culturel/filters.py:481 msgid "In the past" msgstr "Dans le passé" -#: agenda_culturel/forms.py:80 +#: agenda_culturel/forms.py:98 msgid "Other" msgstr "Autres" -#: agenda_culturel/forms.py:113 +#: agenda_culturel/forms.py:140 msgid "Name of new tag" msgstr "Nom de la nouvelle étiquette" -#: agenda_culturel/forms.py:118 +#: agenda_culturel/forms.py:144 msgid "" "Force renaming despite the existence of events already using the chosen tag." msgstr "" "Forcer le renommage malgré l'existence d'événements utilisant déjà " "l'étiquette choisie." -#: agenda_culturel/forms.py:137 +#: agenda_culturel/forms.py:163 msgid "Your email" msgstr "Votre adresse email" -#: agenda_culturel/forms.py:138 agenda_culturel/models.py:2098 +#: agenda_culturel/forms.py:164 agenda_culturel/models.py:2409 msgid "Your email address" msgstr "Votre adresse email" -#: agenda_culturel/forms.py:144 agenda_culturel/models.py:2121 +#: agenda_culturel/forms.py:170 agenda_culturel/models.py:2434 msgid "Comments" msgstr "Commentaires" -#: agenda_culturel/forms.py:145 +#: agenda_culturel/forms.py:172 msgid "" "Your message for the moderation team (comments, clarifications, requests...)" msgstr "" "Votre message pour l'équipe de modération (commentaires, précisions, " "demandes, ...)" -#: agenda_culturel/forms.py:157 +#: agenda_culturel/forms.py:187 msgid "Receive notification of publication or leave a message for moderation" msgstr "Être notifié de la publication ou laisser un message à la modération" -#: agenda_culturel/forms.py:174 agenda_culturel/models.py:189 -#: agenda_culturel/models.py:660 agenda_culturel/models.py:2254 -#: agenda_culturel/models.py:2364 +#: agenda_culturel/forms.py:204 agenda_culturel/models.py:179 +#: agenda_culturel/models.py:726 agenda_culturel/models.py:2585 +#: agenda_culturel/models.py:2696 msgid "Category" msgstr "Catégorie" -#: agenda_culturel/forms.py:180 agenda_culturel/forms.py:214 -#: agenda_culturel/forms.py:245 agenda_culturel/forms.py:405 -#: agenda_culturel/models.py:230 agenda_culturel/models.py:768 +#: agenda_culturel/forms.py:210 agenda_culturel/forms.py:243 +#: agenda_culturel/forms.py:271 agenda_culturel/forms.py:441 +#: agenda_culturel/models.py:223 agenda_culturel/models.py:833 msgid "Tags" msgstr "Étiquettes" -#: agenda_culturel/forms.py:191 agenda_culturel/forms.py:552 -#: agenda_culturel/models.py:864 +#: agenda_culturel/forms.py:218 agenda_culturel/forms.py:594 +#: agenda_culturel/models.py:934 msgid "Event" msgstr "Événement" -#: agenda_culturel/forms.py:301 +#: agenda_culturel/forms.py:325 msgid "Main fields" msgstr "Champs principaux" -#: agenda_culturel/forms.py:304 +#: agenda_culturel/forms.py:328 msgid "Start of event" msgstr "Début de l'événement" -#: agenda_culturel/forms.py:308 +#: agenda_culturel/forms.py:332 msgid "End of event" msgstr "Fin de l'événement" -#: agenda_culturel/forms.py:313 +#: agenda_culturel/forms.py:338 msgid "This is a recurring event" msgstr "Cet événement est récurrent" -#: agenda_culturel/forms.py:322 +#: agenda_culturel/forms.py:350 msgid "Details" msgstr "Détails" -#: agenda_culturel/forms.py:327 agenda_culturel/models.py:690 -#: agenda_culturel/models.py:2229 +#: agenda_culturel/forms.py:355 agenda_culturel/models.py:755 +#: agenda_culturel/models.py:2560 msgid "Location" msgstr "Localisation" -#: agenda_culturel/forms.py:331 agenda_culturel/models.py:724 +#: agenda_culturel/forms.py:359 agenda_culturel/models.py:789 msgid "Illustration" msgstr "Illustration" -#: agenda_culturel/forms.py:335 +#: agenda_culturel/forms.py:363 msgid "URLs" msgstr "URLs" -#: agenda_culturel/forms.py:339 agenda_culturel/forms.py:344 +#: agenda_culturel/forms.py:367 agenda_culturel/forms.py:372 msgid "Meta information" msgstr "Méta-informations" -#: agenda_culturel/forms.py:359 +#: agenda_culturel/forms.py:387 msgid "The end date must be after the start date." msgstr "La date de fin doit être après la date de début." -#: agenda_culturel/forms.py:375 +#: agenda_culturel/forms.py:403 msgid "The end time cannot be earlier than the start time." msgstr "L'heure de fin ne peut pas être avant l'heure de début." -#: agenda_culturel/forms.py:406 +#: agenda_culturel/forms.py:442 msgid "Select tags from existing ones." msgstr "Sélectionner des étiquettes depuis celles existantes." -#: agenda_culturel/forms.py:411 +#: agenda_culturel/forms.py:447 msgid "New tags" msgstr "Nouvelles étiquettes" -#: agenda_culturel/forms.py:412 +#: agenda_culturel/forms.py:449 msgid "" "Create new labels (sparingly). Note: by starting your tag with the " "characters “TW:”, youll create a “trigger warning” tag, and the associated " @@ -293,117 +293,117 @@ msgstr "" "étiquette “trigger warning”, et les événements associés seront annoncés " "comme tels." -#: agenda_culturel/forms.py:458 +#: agenda_culturel/forms.py:491 msgid "JSON in the format expected for the import." msgstr "JSON dans le format attendu pour l'import" -#: agenda_culturel/forms.py:480 +#: agenda_culturel/forms.py:513 msgid " (locally modified version)" msgstr " (version modifiée localement)" -#: agenda_culturel/forms.py:484 +#: agenda_culturel/forms.py:517 msgid " (synchronized on import version)" msgstr " (version synchronisée sur l'import)" -#: agenda_culturel/forms.py:488 +#: agenda_culturel/forms.py:521 msgid "Select {} as representative version." msgstr "Sélectionner {} comme version représentative" -#: agenda_culturel/forms.py:497 +#: agenda_culturel/forms.py:531 msgid "Update {} using some fields from other versions (interactive mode)." msgstr "" "Mettre à jour {} en utilisant quelques champs des autres versions (mode " "interactif)." -#: agenda_culturel/forms.py:504 +#: agenda_culturel/forms.py:538 msgid " Warning: a version is already locally modified." msgstr " Attention: une version a déjà été modifiée localement." -#: agenda_culturel/forms.py:509 +#: agenda_culturel/forms.py:545 msgid "Create a new version by merging (interactive mode)." msgstr "Créer une nouvelle version par fusion (mode interactif)." -#: agenda_culturel/forms.py:516 +#: agenda_culturel/forms.py:553 msgid "Make {} independent." msgstr "Rendre {} indépendant." -#: agenda_culturel/forms.py:518 +#: agenda_culturel/forms.py:556 msgid "Make all versions independent." msgstr "Rendre toutes les versions indépendantes." -#: agenda_culturel/forms.py:578 agenda_culturel/forms.py:585 +#: agenda_culturel/forms.py:628 agenda_culturel/forms.py:641 msgid "Value of version {}" msgstr "Valeur de la version {}" -#: agenda_culturel/forms.py:579 +#: agenda_culturel/forms.py:633 msgid "Value of the selected version" msgstr "Valeur de la version sélectionnée" -#: agenda_culturel/forms.py:736 +#: agenda_culturel/forms.py:803 msgid "Apply category {} to the event {}" msgstr "Appliquer la catégorie {} à l'événement {}" -#: agenda_culturel/forms.py:753 agenda_culturel/models.py:502 -#: agenda_culturel/models.py:2416 +#: agenda_culturel/forms.py:820 agenda_culturel/models.py:554 +#: agenda_culturel/models.py:2748 msgid "Place" msgstr "Lieu" -#: agenda_culturel/forms.py:755 +#: agenda_culturel/forms.py:822 msgid "Create a missing place" msgstr "Créer un lieu manquant" -#: agenda_culturel/forms.py:765 +#: agenda_culturel/forms.py:832 msgid "Add \"{}\" to the aliases of the place" msgstr "Ajouter « {} » aux alias du lieu" -#: agenda_culturel/forms.py:794 +#: agenda_culturel/forms.py:861 msgid "On saving, use aliases to detect all matching events with missing place" msgstr "" "Lors de l'enregistrement, utiliser des alias pour détecter tous les " "événements correspondants dont la place est manquante." -#: agenda_culturel/forms.py:807 +#: agenda_culturel/forms.py:874 msgid "Header" msgstr "Entête" -#: agenda_culturel/forms.py:811 agenda_culturel/models.py:475 +#: agenda_culturel/forms.py:877 agenda_culturel/models.py:516 msgid "Address" msgstr "Adresse" -#: agenda_culturel/forms.py:817 +#: agenda_culturel/forms.py:883 msgid "Meta" msgstr "Méta" -#: agenda_culturel/forms.py:820 +#: agenda_culturel/forms.py:886 msgid "Information" msgstr "Informations" -#: agenda_culturel/forms.py:870 +#: agenda_culturel/forms.py:938 msgid "Add a comment" msgstr "Ajouter un commentaire" -#: agenda_culturel/import_tasks/extractor.py:220 +#: agenda_culturel/import_tasks/extractor.py:225 msgid "Unknown title" msgstr "Titre inconnu" -#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:250 +#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:248 msgid "Error while waiting for the cookie button to be visible: " msgstr "Erreur lors de l'attente de la visibilité du bouton cookie : " -#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:254 +#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:259 msgid "Error while getting the cookie button to be visible: " msgstr "Erreur lors de l'affichage du bouton cookie : " -#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:258 +#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:270 msgid "Error while clicking on the cookie button to be visible: " msgstr "Erreur lors du clic sur le bouton cookie pour être visible : " -#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:318 -#: agenda_culturel/import_tasks/generic_extractors/fbevents.py:121 +#: agenda_culturel/import_tasks/generic_extractors/fbevent.py:337 +#: agenda_culturel/import_tasks/generic_extractors/fbevents.py:122 msgid "Cannot get Facebook event from {}" msgstr "Impossible de récupérer un événement Facebook depuis {}" -#: agenda_culturel/import_tasks/generic_extractors/fbevents.py:75 +#: agenda_culturel/import_tasks/generic_extractors/fbevents.py:78 msgid "" "the page was not yet populated with events, so the loading time was probably " "too short" @@ -411,83 +411,83 @@ msgstr "" "la page n'était pas encore peuplée des événements, le temps de chargement a " "sans doute été trop court" -#: agenda_culturel/models.py:68 agenda_culturel/models.py:116 -#: agenda_culturel/models.py:199 agenda_culturel/models.py:445 -#: agenda_culturel/models.py:473 agenda_culturel/models.py:560 -#: agenda_culturel/models.py:2090 agenda_culturel/models.py:2182 +#: agenda_culturel/models.py:62 agenda_culturel/models.py:109 +#: agenda_culturel/models.py:188 agenda_culturel/models.py:473 +#: agenda_culturel/models.py:514 agenda_culturel/models.py:620 +#: agenda_culturel/models.py:2401 agenda_culturel/models.py:2510 msgid "Name" msgstr "Nom" -#: agenda_culturel/models.py:69 agenda_culturel/models.py:116 +#: agenda_culturel/models.py:63 agenda_culturel/models.py:109 msgid "Category name" msgstr "Nom de la catégorie" -#: agenda_culturel/models.py:74 +#: agenda_culturel/models.py:68 msgid "Content" msgstr "Contenu" -#: agenda_culturel/models.py:74 +#: agenda_culturel/models.py:69 msgid "Text as shown to the visitors" msgstr "Texte tel que présenté aux visiteureuses" -#: agenda_culturel/models.py:78 +#: agenda_culturel/models.py:73 msgid "URL path" msgstr "Chemin URL" -#: agenda_culturel/models.py:79 +#: agenda_culturel/models.py:74 msgid "URL path where the content is included." msgstr "Chemin URL où le contenu est présent." -#: agenda_culturel/models.py:83 +#: agenda_culturel/models.py:78 msgid "Static content" msgstr "Contenu statique" -#: agenda_culturel/models.py:84 +#: agenda_culturel/models.py:79 msgid "Static contents" msgstr "Contenus statiques" -#: agenda_culturel/models.py:122 +#: agenda_culturel/models.py:115 msgid "Color" msgstr "Couleur" -#: agenda_culturel/models.py:123 +#: agenda_culturel/models.py:116 msgid "Color used as background for the category" msgstr "Couleur utilisée comme fond de la catégorie" -#: agenda_culturel/models.py:129 +#: agenda_culturel/models.py:122 msgid "Pictogram" msgstr "Pictogramme" -#: agenda_culturel/models.py:130 +#: agenda_culturel/models.py:123 msgid "Pictogram of the category (svg format)" msgstr "Pictogramme de la catégorie (format svg)" -#: agenda_culturel/models.py:137 +#: agenda_culturel/models.py:130 msgid "Position for ordering categories" msgstr "Position pour ordonner les catégories" -#: agenda_culturel/models.py:190 +#: agenda_culturel/models.py:180 msgid "Categories" msgstr "Catégories" -#: agenda_culturel/models.py:199 +#: agenda_culturel/models.py:189 msgid "Tag name" msgstr "Nom de l'étiquette" -#: agenda_culturel/models.py:204 agenda_culturel/models.py:485 -#: agenda_culturel/models.py:572 agenda_culturel/models.py:707 +#: agenda_culturel/models.py:195 agenda_culturel/models.py:537 +#: agenda_culturel/models.py:636 agenda_culturel/models.py:772 msgid "Description" msgstr "Description" -#: agenda_culturel/models.py:205 +#: agenda_culturel/models.py:196 msgid "Description of the tag" msgstr "Description de l'étiquette" -#: agenda_culturel/models.py:211 +#: agenda_culturel/models.py:202 msgid "Principal" msgstr "Principal" -#: agenda_culturel/models.py:212 +#: agenda_culturel/models.py:204 msgid "" "This tag is highlighted as a main tag for visitors, particularly in the " "filter." @@ -495,91 +495,91 @@ msgstr "" "Cette étiquette est mise en avant comme étiquette principale pour les " "visiteurs, en particulier dans le filtre." -#: agenda_culturel/models.py:217 +#: agenda_culturel/models.py:210 msgid "In excluded suggestions" msgstr "Dans les suggestions d'exclusion" -#: agenda_culturel/models.py:218 +#: agenda_culturel/models.py:211 msgid "This tag will be part of the excluded suggestions." msgstr "Cette étiquette fera partie des suggestions d'exclusion." -#: agenda_culturel/models.py:223 +#: agenda_culturel/models.py:216 msgid "In included suggestions" msgstr "Dans les suggestions d'inclusion." -#: agenda_culturel/models.py:224 +#: agenda_culturel/models.py:217 msgid "This tag will be part of the included suggestions." msgstr "Cette étiquette fera partie des suggestions d'inclusion." -#: agenda_culturel/models.py:229 +#: agenda_culturel/models.py:222 msgid "Tag" msgstr "Étiquette" -#: agenda_culturel/models.py:287 +#: agenda_culturel/models.py:311 msgid "Suggestions" msgstr "Suggestions" -#: agenda_culturel/models.py:288 +#: agenda_culturel/models.py:312 msgid "Others" msgstr "Autres" -#: agenda_culturel/models.py:303 +#: agenda_culturel/models.py:325 msgid "Representative event" msgstr "Événement représentatif" -#: agenda_culturel/models.py:304 +#: agenda_culturel/models.py:327 msgid "This event is the representative event of the duplicated events group" msgstr "" "Cet événement est l'événement représentatif du groupe d'événements dupliqués." -#: agenda_culturel/models.py:311 agenda_culturel/models.py:312 +#: agenda_culturel/models.py:335 agenda_culturel/models.py:336 msgid "Duplicated events" msgstr "Événements dupliqués" -#: agenda_culturel/models.py:445 +#: agenda_culturel/models.py:474 msgid "Name of the location" msgstr "Nom de la position" -#: agenda_culturel/models.py:448 +#: agenda_culturel/models.py:485 msgid "Main" msgstr "Principale" -#: agenda_culturel/models.py:449 +#: agenda_culturel/models.py:487 msgid "This location is one of the main locations (shown first higher values)." msgstr "" "Cette position est une position principale (affichage en premier des plus " "grandes valeurs)." -#: agenda_culturel/models.py:453 +#: agenda_culturel/models.py:492 msgid "Suggested distance (km)" msgstr "" -#: agenda_culturel/models.py:454 +#: agenda_culturel/models.py:494 msgid "" "If this distance is given, this location is part of the suggested filters." msgstr "" -#: agenda_culturel/models.py:460 +#: agenda_culturel/models.py:503 msgid "Reference location" msgstr "Position de référence" -#: agenda_culturel/models.py:461 +#: agenda_culturel/models.py:504 msgid "Reference locations" msgstr "Positions de référence" -#: agenda_culturel/models.py:473 +#: agenda_culturel/models.py:514 msgid "Name of the place" msgstr "Nom du lieu" -#: agenda_culturel/models.py:476 +#: agenda_culturel/models.py:517 msgid "Address of this place (without city name)" msgstr "Adresse de ce lieu (sans le nom de la ville)" -#: agenda_culturel/models.py:480 +#: agenda_culturel/models.py:522 msgid "Postcode" msgstr "Code postal" -#: agenda_culturel/models.py:480 +#: agenda_culturel/models.py:524 msgid "" "The post code is not displayed, but makes it easier to find an address when " "you enter it." @@ -587,23 +587,23 @@ msgstr "" "Le code postal ne sera pas affiché, mais facilite la recherche d'adresse au " "moment de la saisie." -#: agenda_culturel/models.py:481 +#: agenda_culturel/models.py:529 msgid "City" msgstr "Ville" -#: agenda_culturel/models.py:481 +#: agenda_culturel/models.py:529 msgid "City name" msgstr "Nom de la ville" -#: agenda_culturel/models.py:486 +#: agenda_culturel/models.py:538 msgid "Description of the place, including accessibility." msgstr "Description du lieu, inclus l'accessibilité." -#: agenda_culturel/models.py:493 +#: agenda_culturel/models.py:545 msgid "Alternative names" msgstr "Noms alternatifs" -#: agenda_culturel/models.py:495 +#: agenda_culturel/models.py:547 msgid "" "Alternative names or addresses used to match a place with the free-form " "location of an event." @@ -611,31 +611,31 @@ msgstr "" "Noms et adresses alternatives qui seront utilisées pour associer une adresse " "avec la localisation en forme libre d'un événement" -#: agenda_culturel/models.py:503 +#: agenda_culturel/models.py:555 msgid "Places" msgstr "Lieux" -#: agenda_culturel/models.py:560 +#: agenda_culturel/models.py:621 msgid "Organisation name" msgstr "Nom de l'organisme" -#: agenda_culturel/models.py:564 +#: agenda_culturel/models.py:628 msgid "Website" msgstr "Site internet" -#: agenda_culturel/models.py:565 +#: agenda_culturel/models.py:629 msgid "Website of the organisation" msgstr "Site internet de l'organisme" -#: agenda_culturel/models.py:573 +#: agenda_culturel/models.py:637 msgid "Description of the organisation." msgstr "Description de l'organisme" -#: agenda_culturel/models.py:580 +#: agenda_culturel/models.py:644 msgid "Principal place" msgstr "Lieu principal" -#: agenda_culturel/models.py:581 +#: agenda_culturel/models.py:646 msgid "" "Place mainly associated with this organizer. Mainly used if there is a " "similarity in the name, to avoid redundant displays." @@ -643,71 +643,71 @@ msgstr "" "Lieu principalement associé à cet organisateur. Principalement utilisé s'il " "y a une similarité de nom, pour éviter les affichages redondants." -#: agenda_culturel/models.py:588 +#: agenda_culturel/models.py:654 msgid "Organisation" msgstr "Organisme" -#: agenda_culturel/models.py:589 +#: agenda_culturel/models.py:655 msgid "Organisations" msgstr "Organismes" -#: agenda_culturel/models.py:601 agenda_culturel/models.py:2224 +#: agenda_culturel/models.py:666 agenda_culturel/models.py:2555 msgid "Published" msgstr "Publié" -#: agenda_culturel/models.py:602 +#: agenda_culturel/models.py:667 msgid "Draft" msgstr "Brouillon" -#: agenda_culturel/models.py:603 +#: agenda_culturel/models.py:668 msgid "Trash" msgstr "Corbeille" -#: agenda_culturel/models.py:612 +#: agenda_culturel/models.py:677 msgid "Author of the event creation" msgstr "Auteur de la création de l'événement" -#: agenda_culturel/models.py:621 +#: agenda_culturel/models.py:686 msgid "Author of the last importation" msgstr "Auteur de la dernière importation" -#: agenda_culturel/models.py:630 +#: agenda_culturel/models.py:695 msgid "Author of the last modification" msgstr "Auteur de la dernière modification" -#: agenda_culturel/models.py:639 +#: agenda_culturel/models.py:704 msgid "Author of the last moderation" msgstr "Auteur de la dernière modération" -#: agenda_culturel/models.py:651 +#: agenda_culturel/models.py:715 msgid "Title" msgstr "Titre" -#: agenda_culturel/models.py:667 +#: agenda_culturel/models.py:732 msgid "Start day" msgstr "Date de début" -#: agenda_culturel/models.py:670 +#: agenda_culturel/models.py:734 msgid "Start time" msgstr "Heure de début" -#: agenda_culturel/models.py:676 +#: agenda_culturel/models.py:740 msgid "End day" msgstr "Date de fin" -#: agenda_culturel/models.py:681 +#: agenda_culturel/models.py:744 msgid "End time" msgstr "Heure de fin" -#: agenda_culturel/models.py:685 +#: agenda_culturel/models.py:747 msgid "Recurrence" msgstr "Récurrence" -#: agenda_culturel/models.py:696 +#: agenda_culturel/models.py:761 msgid "Location (free form)" msgstr "Localisation (forme libre)" -#: agenda_culturel/models.py:698 +#: agenda_culturel/models.py:763 msgid "" "Address of the event in case its not available in the already known places " "(free form)" @@ -715,11 +715,11 @@ msgstr "" "Adresse d'un événement si elle n'est pas déjà présente dans la liste des " "lieux disponibles (forme libre)" -#: agenda_culturel/models.py:715 +#: agenda_culturel/models.py:780 msgid "Organisers" msgstr "Organisateurs" -#: agenda_culturel/models.py:717 +#: agenda_culturel/models.py:782 msgid "" "list of event organisers. Organizers will only be displayed if one of them " "does not normally use the venue." @@ -727,112 +727,112 @@ msgstr "" "Liste des organisateurs de l'événements. Les organisateurs seront affichés " "uniquement si au moins un d'entre eux n'utilise pas habituellement le lieu." -#: agenda_culturel/models.py:731 +#: agenda_culturel/models.py:796 msgid "Illustration (URL)" msgstr "Illustration (URL)" -#: agenda_culturel/models.py:732 +#: agenda_culturel/models.py:797 msgid "External URL of the illustration image" msgstr "URL externe de l'image illustrative" -#: agenda_culturel/models.py:738 +#: agenda_culturel/models.py:803 msgid "Illustration description" msgstr "Description de l'illustration" -#: agenda_culturel/models.py:739 +#: agenda_culturel/models.py:804 msgid "Alternative text used by screen readers for the image" msgstr "Texte alternatif utiliser par les lecteurs d'écrans pour l'image" -#: agenda_culturel/models.py:747 +#: agenda_culturel/models.py:812 msgid "Importation source" msgstr "Source d'importation" -#: agenda_culturel/models.py:748 +#: agenda_culturel/models.py:813 msgid "Importation source used to detect removed entries." msgstr "Source d'importation utilisée pour détecter les éléments supprimés/" -#: agenda_culturel/models.py:754 +#: agenda_culturel/models.py:819 msgid "UUIDs" msgstr "UUIDs" -#: agenda_culturel/models.py:755 +#: agenda_culturel/models.py:820 msgid "UUIDs from import to detect duplicated entries." msgstr "UUIDs utilisés pendant l'import pour détecter les entrées dupliquées" -#: agenda_culturel/models.py:761 +#: agenda_culturel/models.py:826 msgid "Online sources or ticketing" msgstr "Sources en ligne ou billetterie" -#: agenda_culturel/models.py:775 +#: agenda_culturel/models.py:840 msgid "Other versions" msgstr "" -#: agenda_culturel/models.py:865 +#: agenda_culturel/models.py:935 msgid "Events" msgstr "Événements" -#: agenda_culturel/models.py:893 +#: agenda_culturel/models.py:991 msgid "recurrent import" msgstr "import récurrent" -#: agenda_culturel/models.py:895 +#: agenda_culturel/models.py:993 msgid "a non authenticated user" msgstr "un utilisateur non connecté" -#: agenda_culturel/models.py:1279 +#: agenda_culturel/models.py:1460 msgid "Your event has been published" msgstr "Ton événement a été publié" -#: agenda_culturel/models.py:1282 +#: agenda_culturel/models.py:1465 msgid "Your message has not been retained" msgstr "Ton événement n'a pas été retenu" -#: agenda_culturel/models.py:1364 agenda_culturel/models.py:2052 +#: agenda_culturel/models.py:1553 agenda_culturel/models.py:2365 msgid "Warning" msgstr "Warning" -#: agenda_culturel/models.py:1364 agenda_culturel/models.py:1454 +#: agenda_culturel/models.py:1555 agenda_culturel/models.py:1657 msgid "the date has not been imported correctly." msgstr "la date n'a pas été importée correctement." -#: agenda_culturel/models.py:1444 +#: agenda_culturel/models.py:1639 msgid "during import process" msgstr "pendant le processus d'import" -#: agenda_culturel/models.py:1452 agenda_culturel/models.py:1458 -#: agenda_culturel/models.py:1465 +#: agenda_culturel/models.py:1655 agenda_culturel/models.py:1665 +#: agenda_culturel/models.py:1676 msgid "warning" msgstr "attention" -#: agenda_culturel/models.py:1460 +#: agenda_culturel/models.py:1667 msgid "the title has not been imported correctly." msgstr "le titre n'a pas été importé correctement." -#: agenda_culturel/models.py:1467 +#: agenda_culturel/models.py:1679 msgid "The import was unable to find an event in the page." msgstr "L'import a été incapable de trouver un événement dans la page." -#: agenda_culturel/models.py:1788 +#: agenda_culturel/models.py:2027 msgid "Updated field(s): " msgstr "Champ(s) mis à jour: " -#: agenda_culturel/models.py:1789 +#: agenda_culturel/models.py:2031 msgid "Update" msgstr "Mise à jour" -#: agenda_culturel/models.py:1790 +#: agenda_culturel/models.py:2032 msgid "update process" msgstr "processus de mise à jour" -#: agenda_culturel/models.py:1844 +#: agenda_culturel/models.py:2101 msgid "Import" msgstr "Import" -#: agenda_culturel/models.py:1845 +#: agenda_culturel/models.py:2102 msgid "import process" msgstr "processus d'import" -#: agenda_culturel/models.py:1846 +#: agenda_culturel/models.py:2104 msgid "" "The duration of the event is a little too long for direct publication. " "Moderators can choose to publish it or not." @@ -840,187 +840,191 @@ msgstr "" "La durée de l'événement est un peu trop longue pour qu'il soit publié " "directement. Les modérateurs peuvent choisir de le publier ou non." -#: agenda_culturel/models.py:2046 +#: agenda_culturel/models.py:2356 msgid "From contributor" msgstr "D'un·e contributeurice" -#: agenda_culturel/models.py:2047 +#: agenda_culturel/models.py:2357 msgid "Import process" msgstr "Processus d'import" -#: agenda_culturel/models.py:2048 +#: agenda_culturel/models.py:2358 msgid "Update process" msgstr "Processus de mise à jour" -#: agenda_culturel/models.py:2049 +#: agenda_culturel/models.py:2359 msgid "Contact form" msgstr "Formulaire de contact" -#: agenda_culturel/models.py:2050 +#: agenda_culturel/models.py:2360 msgid "Event report" msgstr "Signalemet d'événement" -#: agenda_culturel/models.py:2051 +#: agenda_culturel/models.py:2363 msgid "From contributor (without message)" msgstr "D'un·e contributeurice (sans message)" -#: agenda_culturel/models.py:2055 agenda_culturel/models.py:2103 +#: agenda_culturel/models.py:2368 agenda_culturel/models.py:2415 msgid "Message" msgstr "Message" -#: agenda_culturel/models.py:2056 +#: agenda_culturel/models.py:2369 msgid "Messages" msgstr "Messages" -#: agenda_culturel/models.py:2067 +#: agenda_culturel/models.py:2378 msgid "Subject" msgstr "Sujet" -#: agenda_culturel/models.py:2068 +#: agenda_culturel/models.py:2379 msgid "The subject of your message" msgstr "Sujet de votre message" -#: agenda_culturel/models.py:2074 +#: agenda_culturel/models.py:2385 msgid "Related event" msgstr "Événement associé" -#: agenda_culturel/models.py:2075 +#: agenda_culturel/models.py:2386 msgid "The message is associated with this event." msgstr "Le message est associé à cet événement." -#: agenda_culturel/models.py:2083 +#: agenda_culturel/models.py:2394 msgid "Author of the message" msgstr "Auteur du message" -#: agenda_culturel/models.py:2091 +#: agenda_culturel/models.py:2402 msgid "Your name" msgstr "Votre nom" -#: agenda_culturel/models.py:2097 +#: agenda_culturel/models.py:2408 msgid "Email address" msgstr "Adresse email" -#: agenda_culturel/models.py:2103 +#: agenda_culturel/models.py:2415 msgid "Your message" msgstr "Votre message" -#: agenda_culturel/models.py:2109 +#: agenda_culturel/models.py:2422 msgid "This message is a spam." msgstr "Ce message est un spam." -#: agenda_culturel/models.py:2116 +#: agenda_culturel/models.py:2429 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:2122 +#: agenda_culturel/models.py:2435 msgid "Comments on the message from the moderation team" msgstr "Commentaires sur ce message par l'équipe de modération" -#: agenda_culturel/models.py:2144 agenda_culturel/models.py:2312 +#: agenda_culturel/models.py:2468 agenda_culturel/models.py:2643 msgid "Recurrent import" msgstr "Import récurrent" -#: agenda_culturel/models.py:2145 +#: agenda_culturel/models.py:2469 msgid "Recurrent imports" msgstr "Imports récurrents" -#: agenda_culturel/models.py:2149 +#: agenda_culturel/models.py:2473 msgid "ical" msgstr "ical" -#: agenda_culturel/models.py:2150 +#: agenda_culturel/models.py:2474 msgid "ical no busy" msgstr "ical sans busy" -#: agenda_culturel/models.py:2151 +#: agenda_culturel/models.py:2475 msgid "ical no VC" msgstr "ical sans VC" -#: agenda_culturel/models.py:2152 +#: agenda_culturel/models.py:2476 msgid "ical naive timezone" msgstr "ical timezone naïve" -#: agenda_culturel/models.py:2153 +#: agenda_culturel/models.py:2477 msgid "lacoope.org" msgstr "lacoope.org" -#: agenda_culturel/models.py:2154 +#: agenda_culturel/models.py:2478 msgid "la comédie" msgstr "la comédie" -#: agenda_culturel/models.py:2155 +#: agenda_culturel/models.py:2479 msgid "le fotomat" msgstr "le fotomat" -#: agenda_culturel/models.py:2156 +#: agenda_culturel/models.py:2480 msgid "la puce à l'oreille" msgstr "la puce à loreille" -#: agenda_culturel/models.py:2157 +#: agenda_culturel/models.py:2481 msgid "Plugin wordpress MEC" msgstr "Plugin wordpress MEC" -#: agenda_culturel/models.py:2158 +#: agenda_culturel/models.py:2482 msgid "Événements d'une page FB" msgstr "Événements d'une page FB" -#: agenda_culturel/models.py:2159 +#: agenda_culturel/models.py:2483 msgid "Billetterie Clermont-Ferrand" msgstr "" -#: agenda_culturel/models.py:2160 +#: agenda_culturel/models.py:2484 msgid "Arachnée concert" msgstr "Arachnée concert" -#: agenda_culturel/models.py:2161 +#: agenda_culturel/models.py:2485 msgid "Le Rio" msgstr "Le Rio" -#: agenda_culturel/models.py:2162 +#: agenda_culturel/models.py:2486 msgid "La Raymonde" msgstr "La Raymone" -#: agenda_culturel/models.py:2163 +#: agenda_culturel/models.py:2487 msgid "Agenda apidae tourisme" msgstr "Agenda apidae tourisme" -#: agenda_culturel/models.py:2164 +#: agenda_culturel/models.py:2488 msgid "Agenda iguana (médiathèques)" msgstr "Agenda iguana (médiathèques)" -#: agenda_culturel/models.py:2165 +#: agenda_culturel/models.py:2489 msgid "Mille formes" msgstr "Mille Formes" -#: agenda_culturel/models.py:2166 +#: agenda_culturel/models.py:2490 msgid "Les Amis du Temps des Cerises" msgstr "Les Amis du Temps des Cerises" -#: agenda_culturel/models.py:2167 +#: agenda_culturel/models.py:2491 msgid "Mobilizon" msgstr "Mobilizon" -#: agenda_culturel/models.py:2170 +#: agenda_culturel/models.py:2494 msgid "simple" msgstr "simple" -#: agenda_culturel/models.py:2171 +#: agenda_culturel/models.py:2495 msgid "Headless Chromium" msgstr "chromium sans interface" -#: agenda_culturel/models.py:2172 +#: agenda_culturel/models.py:2498 msgid "Headless Chromium (pause)" msgstr "chromium sans interface (pause)" -#: agenda_culturel/models.py:2177 +#: agenda_culturel/models.py:2504 msgid "daily" msgstr "chaque jour" -#: agenda_culturel/models.py:2179 +#: agenda_culturel/models.py:2506 msgid "weekly" msgstr "chaque semaine" -#: agenda_culturel/models.py:2184 +#: agenda_culturel/models.py:2507 +msgid "never" +msgstr "jamais" + +#: agenda_culturel/models.py:2512 msgid "" "Recurrent import name. Be careful to choose a name that is easy to " "understand, as it will be public and displayed on the sites About page." @@ -1028,151 +1032,151 @@ msgstr "" "Nom de l'import récurrent. Attention à choisir un nom compréhensible, car il " "sera public, et affiché sur la page à propos du site." -#: agenda_culturel/models.py:2191 +#: agenda_culturel/models.py:2519 msgid "Processor" msgstr "Processeur" -#: agenda_culturel/models.py:2194 +#: agenda_culturel/models.py:2525 msgid "Downloader" msgstr "Téléchargeur" -#: agenda_culturel/models.py:2201 +#: agenda_culturel/models.py:2532 msgid "Import recurrence" msgstr "Récurrence d'import" -#: agenda_culturel/models.py:2208 +#: agenda_culturel/models.py:2539 msgid "Source" msgstr "Source" -#: agenda_culturel/models.py:2209 +#: agenda_culturel/models.py:2540 msgid "URL of the source document" msgstr "URL du document source" -#: agenda_culturel/models.py:2214 +#: agenda_culturel/models.py:2545 msgid "Browsable url" msgstr "URL navigable" -#: agenda_culturel/models.py:2216 +#: agenda_culturel/models.py:2547 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:2225 +#: agenda_culturel/models.py:2556 msgid "Status of each imported event (published or draft)" msgstr "Status de chaque événement importé (publié ou brouillon)" -#: agenda_culturel/models.py:2230 +#: agenda_culturel/models.py:2561 msgid "Address for each imported event" msgstr "Adresse de chaque événement importé" -#: agenda_culturel/models.py:2237 +#: agenda_culturel/models.py:2568 msgid "Force location" msgstr "Focer la localisation" -#: agenda_culturel/models.py:2238 +#: agenda_culturel/models.py:2569 msgid "force location even if another is detected." msgstr "Forcer la localisation même si une autre a été détectée." -#: agenda_culturel/models.py:2244 +#: agenda_culturel/models.py:2575 msgid "Organiser" msgstr "Organisateur" -#: agenda_culturel/models.py:2245 +#: agenda_culturel/models.py:2576 msgid "Organiser of each imported event" msgstr "Organisateur de chaque événement importé" -#: agenda_culturel/models.py:2255 +#: agenda_culturel/models.py:2586 msgid "Category of each imported event" msgstr "Catégorie de chaque événement importé" -#: agenda_culturel/models.py:2263 +#: agenda_culturel/models.py:2594 msgid "Tags for each imported event" msgstr "Étiquettes de chaque événement importé" -#: agenda_culturel/models.py:2264 +#: agenda_culturel/models.py:2595 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:2293 +#: agenda_culturel/models.py:2624 msgid "Running" msgstr "En cours" -#: agenda_culturel/models.py:2294 +#: agenda_culturel/models.py:2625 msgid "Canceled" msgstr "Annulé" -#: agenda_culturel/models.py:2295 +#: agenda_culturel/models.py:2626 msgid "Success" msgstr "Succès" -#: agenda_culturel/models.py:2296 +#: agenda_culturel/models.py:2627 msgid "Failed" msgstr "Erreur" -#: agenda_culturel/models.py:2299 +#: agenda_culturel/models.py:2630 msgid "Batch importation" msgstr "Importation par lot" -#: agenda_culturel/models.py:2300 +#: agenda_culturel/models.py:2631 msgid "Batch importations" msgstr "Importations par lot" -#: agenda_culturel/models.py:2313 +#: agenda_culturel/models.py:2644 msgid "Reference to the recurrent import processing" msgstr "Référence du processus d'import récurrent" -#: agenda_culturel/models.py:2321 +#: agenda_culturel/models.py:2652 msgid "URL (if not recurrent import)" msgstr "URL (si pas d'import récurrent)" -#: agenda_culturel/models.py:2323 +#: agenda_culturel/models.py:2653 msgid "Source URL if no RecurrentImport is associated." msgstr "URL source si aucun import récurrent n'est associé" -#: agenda_culturel/models.py:2336 +#: agenda_culturel/models.py:2668 msgid "Error message" msgstr "Votre message" -#: agenda_culturel/models.py:2340 +#: agenda_culturel/models.py:2672 msgid "Number of collected events" msgstr "Nombre d'événements collectés" -#: agenda_culturel/models.py:2343 +#: agenda_culturel/models.py:2675 msgid "Number of imported events" msgstr "Nombre d'événements importés" -#: agenda_culturel/models.py:2346 +#: agenda_culturel/models.py:2678 msgid "Number of updated events" msgstr "Nombre d'événements mis à jour" -#: agenda_culturel/models.py:2349 +#: agenda_culturel/models.py:2681 msgid "Number of removed events" msgstr "Nombre d'événements supprimés" -#: agenda_culturel/models.py:2357 +#: agenda_culturel/models.py:2689 msgid "Weight" msgstr "Poids" -#: agenda_culturel/models.py:2358 +#: agenda_culturel/models.py:2690 msgid "The lower is the weight, the earlier the filter is applied" msgstr "Plus le poids est léger, plus le filtre sera appliqué tôt" -#: agenda_culturel/models.py:2365 +#: agenda_culturel/models.py:2697 msgid "Category applied to the event" msgstr "Catégorie appliquée à l'événement" -#: agenda_culturel/models.py:2370 +#: agenda_culturel/models.py:2702 msgid "Contained in the title" msgstr "Contenu dans le titre" -#: agenda_culturel/models.py:2371 +#: agenda_culturel/models.py:2703 msgid "Text contained in the event title" msgstr "Texte contenu dans le titre de l'événement" -#: agenda_culturel/models.py:2377 +#: agenda_culturel/models.py:2709 msgid "Exact title extract" msgstr "Extrait exact du titre" -#: agenda_culturel/models.py:2379 +#: agenda_culturel/models.py:2711 msgid "" "If checked, the extract will be searched for in the title using the exact " "form (capitals, accents)." @@ -1180,19 +1184,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans le titre en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:2385 +#: agenda_culturel/models.py:2717 msgid "Contained in the description" msgstr "Contenu dans la description" -#: agenda_culturel/models.py:2386 +#: agenda_culturel/models.py:2718 msgid "Text contained in the description" msgstr "Texte contenu dans la description" -#: agenda_culturel/models.py:2392 +#: agenda_culturel/models.py:2724 msgid "Exact description extract" msgstr "Extrait exact de description" -#: agenda_culturel/models.py:2394 +#: agenda_culturel/models.py:2726 msgid "" "If checked, the extract will be searched for in the description using the " "exact form (capitals, accents)." @@ -1200,19 +1204,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans la description en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:2400 +#: agenda_culturel/models.py:2732 msgid "Contained in the location" msgstr "Contenu dans la localisation" -#: agenda_culturel/models.py:2401 +#: agenda_culturel/models.py:2733 msgid "Text contained in the event location" msgstr "Texte contenu dans la localisation de l'événement" -#: agenda_culturel/models.py:2407 +#: agenda_culturel/models.py:2739 msgid "Exact location extract" msgstr "Extrait exact de localisation" -#: agenda_culturel/models.py:2409 +#: agenda_culturel/models.py:2741 msgid "" "If checked, the extract will be searched for in the location using the exact " "form (capitals, accents)." @@ -1220,35 +1224,35 @@ msgstr "" "Si coché, l'extrait sera recherché dans la localisation en utilisant la " "forme exacte (majuscules, accents)" -#: agenda_culturel/models.py:2417 +#: agenda_culturel/models.py:2749 msgid "Location from place" msgstr "Localisation depuis le lieu" -#: agenda_culturel/models.py:2426 +#: agenda_culturel/models.py:2758 msgid "Categorisation rule" msgstr "Règle de catégorisation" -#: agenda_culturel/models.py:2427 +#: agenda_culturel/models.py:2759 msgid "Categorisation rules" msgstr "Règles de catégorisation" -#: agenda_culturel/settings/base.py:170 +#: agenda_culturel/settings/base.py:180 msgid "French" msgstr "français" -#: agenda_culturel/views.py:157 +#: agenda_culturel/views.py:155 msgid "Recurrent import name" msgstr "Nome de l'import récurrent" -#: agenda_culturel/views.py:158 +#: agenda_culturel/views.py:156 msgid "Add another" msgstr "Ajouter un autre" -#: agenda_culturel/views.py:159 +#: agenda_culturel/views.py:157 msgid "Browse..." msgstr "Naviguer..." -#: agenda_culturel/views.py:160 +#: agenda_culturel/views.py:158 msgid "No file selected." msgstr "Pas de fichier sélectionné." @@ -1260,11 +1264,11 @@ msgstr ": erreur 500" msgid "An internal error has occurred on site {} at address {}." msgstr "Une erreur interne s'est produite sur le site {} à l'adresse {}." -#: agenda_culturel/views.py:351 +#: agenda_culturel/views.py:406 msgid "The static content has been successfully updated." msgstr "Le contenu statique a été modifié avec succès." -#: agenda_culturel/views.py:359 +#: agenda_culturel/views.py:417 msgid "" "The event cannot be updated because the import process is not available for " "the referenced sources." @@ -1272,21 +1276,21 @@ msgstr "" "La mise à jour de l'événement n'est pas possible car le processus d'import " "n'est pas disponible pour les sources référencées." -#: agenda_culturel/views.py:362 +#: agenda_culturel/views.py:430 msgid "The event update has been queued and will be completed shortly." msgstr "" "La mise à jour de l'événement a été mise en attente et sera effectuée sous " "peu." -#: agenda_culturel/views.py:381 agenda_culturel/views.py:436 +#: agenda_culturel/views.py:455 agenda_culturel/views.py:521 msgid " A message has been sent to the person who proposed the event." msgstr " Un message a été envoyé à la personne qui a proposé l'événement." -#: agenda_culturel/views.py:382 +#: agenda_culturel/views.py:459 msgid "The event has been successfully modified." msgstr "L'événement a été modifié avec succès." -#: agenda_culturel/views.py:398 +#: agenda_culturel/views.py:478 msgid "" "Changes will be visible on a local copy of the event. The version identical " "to the imported source will be hidden." @@ -1294,19 +1298,19 @@ msgstr "" "Les modifications seront visibles sur une copie locale de l'événement. La " "version fidèle à la source importée sera masquée." -#: agenda_culturel/views.py:437 +#: agenda_culturel/views.py:526 msgid "The event {} has been moderated with success." msgstr "L'événement {} a été modéré avec succès." -#: agenda_culturel/views.py:556 +#: agenda_culturel/views.py:662 msgid "The event has been successfully deleted." msgstr "L'événement a été supprimé avec succès." -#: agenda_culturel/views.py:601 +#: agenda_culturel/views.py:712 msgid "Comment" msgstr "Commentaire" -#: agenda_culturel/views.py:626 +#: agenda_culturel/views.py:738 msgid "" "The status has been successfully modified and a message has been sent to the " "person who proposed the event." @@ -1314,15 +1318,15 @@ msgstr "" "Le status a été modifié avec succès et un message a été envoyé à la personne " "qui a proposé l'événement." -#: agenda_culturel/views.py:628 +#: agenda_culturel/views.py:742 msgid "The status has been successfully modified." msgstr "Le status a été modifié avec succès." -#: agenda_culturel/views.py:662 +#: agenda_culturel/views.py:779 msgid "The event was created: {}." msgstr "L'événement a été créé: {}." -#: agenda_culturel/views.py:664 +#: agenda_culturel/views.py:785 msgid "" "The event has been submitted and will be published as soon as it has been " "validated by the moderation team." @@ -1330,99 +1334,99 @@ 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:678 +#: agenda_culturel/views.py:799 msgid "during the creation process" msgstr "pendant le processus d'import" -#: agenda_culturel/views.py:692 +#: agenda_culturel/views.py:822 msgid "A message has been sent to the person who proposed the initial event." msgstr "" "Un message a été envoyé à la personne qui a proposé l'événement initial." -#: agenda_culturel/views.py:780 agenda_culturel/views.py:844 +#: agenda_culturel/views.py:915 agenda_culturel/views.py:993 msgid "{} has not been submitted since its already known: {}." msgstr "{} n'a pas été soumis car il est déjà connu: {}." -#: agenda_culturel/views.py:785 agenda_culturel/views.py:850 +#: agenda_culturel/views.py:924 agenda_culturel/views.py:1002 msgid "" "{} has not been submitted since its already known and currently into " "moderation process." msgstr "{} n'a pas été soumis car il est déjà connu et en cours de modération" -#: agenda_culturel/views.py:795 +#: agenda_culturel/views.py:936 msgid "Integrating {} url(s) into our import process." msgstr "Intégration de {} url(s) dans notre processus d'import." -#: agenda_culturel/views.py:857 +#: agenda_culturel/views.py:1011 msgid "Integrating {} into our import process." msgstr "Intégration de {} dans notre processus d'import." -#: agenda_culturel/views.py:934 +#: agenda_culturel/views.py:1097 msgid "Your message has been sent successfully." msgstr "Votre message a été envoyé avec succès." -#: agenda_culturel/views.py:964 +#: agenda_culturel/views.py:1130 msgid "Reporting the event {} on {}" msgstr "Signaler l'événement {} du {}" -#: agenda_culturel/views.py:974 +#: agenda_culturel/views.py:1140 msgid "The contact message has been successfully deleted." msgstr "Le message de contact a été supprimé avec succès." -#: agenda_culturel/views.py:988 +#: agenda_culturel/views.py:1156 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:1146 +#: agenda_culturel/views.py:1334 msgid "Spam has been successfully deleted." msgstr "Le spam a été supprimé avec succès" -#: agenda_culturel/views.py:1281 +#: agenda_culturel/views.py:1511 msgid "The import has been run successfully." msgstr "L'import a été lancé avec succès" -#: agenda_culturel/views.py:1300 +#: agenda_culturel/views.py:1533 msgid "The import has been canceled." msgstr "L'import a été annulé" -#: agenda_culturel/views.py:1319 +#: agenda_culturel/views.py:1556 msgid "The orphan event update has been launched." msgstr "La mise à jour de l'événement orphelin a été lancée." -#: agenda_culturel/views.py:1403 +#: agenda_culturel/views.py:1652 msgid "The recurrent import has been successfully modified." msgstr "L'import récurrent a été modifié avec succès." -#: agenda_culturel/views.py:1412 +#: agenda_culturel/views.py:1664 msgid "The recurrent import has been successfully deleted." msgstr "L'import récurrent a été supprimé avec succès" -#: agenda_culturel/views.py:1452 +#: agenda_culturel/views.py:1710 msgid "The import has been launched." msgstr "L'import a été lancé" -#: agenda_culturel/views.py:1474 +#: agenda_culturel/views.py:1737 msgid "Imports has been launched." msgstr "Les imports ont été lancés" -#: agenda_culturel/views.py:1493 +#: agenda_culturel/views.py:1759 msgid "Facebook imports has been launched." msgstr "Les imports Facebook ont été lancés" -#: agenda_culturel/views.py:1550 +#: agenda_culturel/views.py:1822 msgid "Update successfully completed." msgstr "Mise à jour réalisée avec succès." -#: agenda_culturel/views.py:1611 +#: agenda_culturel/views.py:1890 msgid "Creation of a merged event has been successfully completed." msgstr "Création d'un événement fusionné réalisée avec succès." -#: agenda_culturel/views.py:1647 +#: agenda_culturel/views.py:1927 msgid "Events have been marked as unduplicated." msgstr "Les événements ont été marqués comme non dupliqués." -#: agenda_culturel/views.py:1661 agenda_culturel/views.py:1670 -#: agenda_culturel/views.py:1688 +#: agenda_culturel/views.py:1944 agenda_culturel/views.py:1961 +#: agenda_culturel/views.py:1989 msgid "" "The selected item is no longer included in the list of duplicates. Someone " "else has probably modified the list in the meantime." @@ -1430,23 +1434,23 @@ msgstr "" "L'élément sélectionné ne fait plus partie de la liste des dupliqués. Une " "autre personne a probablement modifié la liste entre temps." -#: agenda_culturel/views.py:1664 +#: agenda_culturel/views.py:1951 msgid "The selected event has been set as representative" msgstr "L'événement sélectionné a été défini comme representatif." -#: agenda_culturel/views.py:1679 +#: agenda_culturel/views.py:1975 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:1723 +#: agenda_culturel/views.py:2025 msgid "Cleaning up duplicates: {} item(s) fixed." msgstr "Nettoyage des dupliqués: {} élément(s) corrigé(s)." -#: agenda_culturel/views.py:1773 +#: agenda_culturel/views.py:2074 msgid "The event was successfully duplicated." msgstr "L'événement a été marqué dupliqué avec succès." -#: agenda_culturel/views.py:1781 +#: agenda_culturel/views.py:2082 msgid "" "The event has been successfully flagged as a duplicate. The moderation team " "will deal with your suggestion shortly." @@ -1454,32 +1458,32 @@ 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." -#: agenda_culturel/views.py:1834 +#: agenda_culturel/views.py:2144 msgid "The categorisation rule has been successfully modified." msgstr "La règle de catégorisation a été modifiée avec succès." -#: agenda_culturel/views.py:1843 +#: agenda_culturel/views.py:2156 msgid "The categorisation rule has been successfully deleted." msgstr "La règle de catégorisation a été supprimée avec succès" -#: agenda_culturel/views.py:1865 +#: agenda_culturel/views.py:2178 msgid "The rules were successfully applied and 1 event was categorised." msgstr "" "Les règles ont été appliquées avec succès et 1 événement a été catégorisé" -#: agenda_culturel/views.py:1872 +#: agenda_culturel/views.py:2185 msgid "The rules were successfully applied and {} events were categorised." msgstr "" "Les règles ont été appliquées avec succès et {} événements ont été " "catégorisés" -#: agenda_culturel/views.py:1879 agenda_culturel/views.py:1932 +#: agenda_culturel/views.py:2192 agenda_culturel/views.py:2256 msgid "The rules were successfully applied and no events were categorised." msgstr "" "Les règles ont été appliquées avec succès et aucun événement n'a été " "catégorisé" -#: agenda_culturel/views.py:1918 +#: agenda_culturel/views.py:2242 msgid "" "The rules were successfully applied and 1 event with default category was " "categorised." @@ -1487,7 +1491,7 @@ msgstr "" "Les règles ont été appliquées avec succès et 1 événement avec catégorie par " "défaut a été catégorisé" -#: agenda_culturel/views.py:1925 +#: agenda_culturel/views.py:2249 msgid "" "The rules were successfully applied and {} events with default category were " "categorised." @@ -1495,58 +1499,58 @@ msgstr "" "Les règles ont été appliquées avec succès et {} événements avec catégorie " "par défaut ont été catégorisés" -#: agenda_culturel/views.py:2017 agenda_culturel/views.py:2079 -#: agenda_culturel/views.py:2117 +#: agenda_culturel/views.py:2355 agenda_culturel/views.py:2417 +#: agenda_culturel/views.py:2457 msgid "{} events have been updated." msgstr "{} événements ont été mis à jour." -#: agenda_culturel/views.py:2020 agenda_culturel/views.py:2081 -#: agenda_culturel/views.py:2120 +#: agenda_culturel/views.py:2358 agenda_culturel/views.py:2419 +#: agenda_culturel/views.py:2460 msgid "1 event has been updated." msgstr "1 événement a été mis à jour" -#: agenda_culturel/views.py:2022 agenda_culturel/views.py:2083 -#: agenda_culturel/views.py:2122 +#: agenda_culturel/views.py:2360 agenda_culturel/views.py:2421 +#: agenda_culturel/views.py:2462 msgid "No events have been modified." msgstr "Aucun événement n'a été modifié." -#: agenda_culturel/views.py:2031 +#: agenda_culturel/views.py:2369 msgid "The place has been successfully updated." msgstr "Le lieu a été modifié avec succès." -#: agenda_culturel/views.py:2040 +#: agenda_culturel/views.py:2378 msgid "The place has been successfully created." msgstr "Le lieu a été créé avec succès." -#: agenda_culturel/views.py:2105 +#: agenda_culturel/views.py:2444 msgid "The selected place has been assigned to the event." msgstr "Le lieu sélectionné a été assigné à l'événement." -#: agenda_culturel/views.py:2109 +#: agenda_culturel/views.py:2449 msgid "A new alias has been added to the selected place." msgstr "Un nouvel alias a été créé pour le lieu sélectionné." -#: agenda_culturel/views.py:2217 +#: agenda_culturel/views.py:2576 msgid "The organisation has been successfully updated." msgstr "L'organisme a été modifié avec succès." -#: agenda_culturel/views.py:2226 +#: agenda_culturel/views.py:2583 msgid "The organisation has been successfully created." msgstr "L'organisme a été créé avec succès." -#: agenda_culturel/views.py:2243 +#: agenda_culturel/views.py:2602 msgid "The tag has been successfully updated." msgstr "L'étiquette a été modifiée avec succès." -#: agenda_culturel/views.py:2250 +#: agenda_culturel/views.py:2609 msgid "The tag has been successfully created." msgstr "L'étiquette a été créée avec succès." -#: agenda_culturel/views.py:2365 +#: agenda_culturel/views.py:2767 msgid "You have not modified the tag name." msgstr "Vous n'avez pas modifié le nom de l'étiquette." -#: agenda_culturel/views.py:2375 +#: agenda_culturel/views.py:2782 msgid "" "This tag {} is already in use, and is described by different information " "from the current tag. You can force renaming by checking the corresponding " @@ -1559,7 +1563,7 @@ msgstr "" "sera supprimée, et tous les événements associés à l'étiquette {} seront " "associés à l'étiquette {}." -#: agenda_culturel/views.py:2382 +#: agenda_culturel/views.py:2796 msgid "" "This tag {} is already in use. You can force renaming by checking the " "corresponding option." @@ -1567,15 +1571,15 @@ msgstr "" "Cette étiquette {} est déjà utilisée. Vous pouvez forcer le renommage en " "cochant l'option correspondante." -#: agenda_culturel/views.py:2416 +#: agenda_culturel/views.py:2829 msgid "The tag {} has been successfully renamed to {}." msgstr "L'étiquette {} a été renommée avec succès en {}." -#: agenda_culturel/views.py:2454 +#: agenda_culturel/views.py:2871 msgid "The tag {} has been successfully deleted." msgstr "L'événement {} a été supprimé avec succès." -#: agenda_culturel/views.py:2475 +#: agenda_culturel/views.py:2897 msgid "Cache successfully cleared." msgstr "Le cache a été vidé avec succès." diff --git a/src/agenda_culturel/migrations/0152_alter_recurrentimport_recurrence.py b/src/agenda_culturel/migrations/0152_alter_recurrentimport_recurrence.py new file mode 100644 index 0000000..d6c7414 --- /dev/null +++ b/src/agenda_culturel/migrations/0152_alter_recurrentimport_recurrence.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.19 on 2025-03-02 21:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("agenda_culturel", "0151_referencelocation_slug"), + ] + + operations = [ + migrations.AlterField( + model_name="recurrentimport", + name="recurrence", + field=models.CharField( + choices=[("daily", "daily"), ("weekly", "weekly"), ("never", "never")], + default="daily", + max_length=10, + verbose_name="Import recurrence", + ), + ), + ] diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index 2ec08a5..7fa4926 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -2504,6 +2504,7 @@ class RecurrentImport(models.Model): _("daily"), ) WEEKLY = "weekly", _("weekly") + NEVER = "never", _("never") name = models.CharField( verbose_name=_("Name"), diff --git a/src/agenda_culturel/templates/agenda_culturel/batch-imports-inc.html b/src/agenda_culturel/templates/agenda_culturel/batch-imports-inc.html index a95b4cb..201ceae 100644 --- a/src/agenda_culturel/templates/agenda_culturel/batch-imports-inc.html +++ b/src/agenda_culturel/templates/agenda_culturel/batch-imports-inc.html @@ -1,3 +1,4 @@ +{% load i18n %}
@@ -47,7 +48,7 @@ {% endif %}
- {{ obj.status }} + {% trans obj.status %} {% if obj.status == "running" %} (annuler) {% endif %} diff --git a/src/agenda_culturel/templates/agenda_culturel/page-rimport.html b/src/agenda_culturel/templates/agenda_culturel/page-rimport.html index 5190ab6..0b01b68 100644 --- a/src/agenda_culturel/templates/agenda_culturel/page-rimport.html +++ b/src/agenda_culturel/templates/agenda_culturel/page-rimport.html @@ -3,6 +3,7 @@ {% block og_title %}Import récurrent #{{ object.pk }}{% endblock %} {% endblock %} {% load cat_extra %} +{% load i18n %} {% load utils_extra %} {% load tag_extra %} {% block entete_header %} @@ -42,7 +43,7 @@ Téléchargeur : {{ object.downloader }}
  • - Recurrence : {{ object.recurrence }} + Recurrence : {% trans object.recurrence %}
  • Source : {{ object.source }} diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py index e726b86..8c4add4 100644 --- a/src/agenda_culturel/views.py +++ b/src/agenda_culturel/views.py @@ -197,7 +197,11 @@ def mentions_legales(request): def about(request): - rimports = RecurrentImport.objects.order_by("name__unaccent").all() + rimports = ( + RecurrentImport.objects.filter(~Q(recurrence=RecurrentImport.RECURRENCE.NEVER)) + .order_by("name__unaccent") + .all() + ) context = { "title": "À propos", "static_content": "about",