From e8c6e5dec02f838d76484521e57d6b10930fe387 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Tue, 16 Apr 2024 13:51:55 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20de=20la=20localisation=20aux=20conditio?= =?UTF-8?q?ns=20de=20cat=C3=A9gorisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../locale/fr/LC_MESSAGES/django.po | 340 ++++++++++-------- ...7_categorisationrule_loc_exact_and_more.py | 23 ++ src/agenda_culturel/models.py | 11 + .../agenda_culturel/categorisation_rules.html | 3 + 4 files changed, 221 insertions(+), 156 deletions(-) create mode 100644 src/agenda_culturel/migrations/0047_categorisationrule_loc_exact_and_more.py diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index 4dd46e8..a656956 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-04-05 17:45+0000\n" +"POT-Creation-Date: 2024-04-16 11:49+0000\n" "PO-Revision-Date: 2023-10-29 14:16+0000\n" "Last-Translator: Jean-Marie Favreau \n" "Language-Team: Jean-Marie Favreau \n" @@ -29,417 +29,423 @@ msgstr "L'heure de fin ne peut pas être avant l'heure de début." msgid "JSON in the format expected for the import." msgstr "JSON dans le format attendu pour l'import" -#: agenda_culturel/models.py:36 agenda_culturel/models.py:65 -#: agenda_culturel/models.py:730 agenda_culturel/models.py:765 +#: agenda_culturel/forms.py:291 +#, fuzzy +#| msgid "Category of the event" +msgid "Apply category {} to the event {}" +msgstr "Catégorie de l'événement" + +#: agenda_culturel/models.py:37 agenda_culturel/models.py:66 +#: agenda_culturel/models.py:732 agenda_culturel/models.py:767 msgid "Name" msgstr "Nom" -#: agenda_culturel/models.py:36 agenda_culturel/models.py:65 +#: agenda_culturel/models.py:37 agenda_culturel/models.py:66 msgid "Category name" msgstr "Nom de la catégorie" -#: agenda_culturel/models.py:37 +#: agenda_culturel/models.py:38 msgid "Content" msgstr "Contenu" -#: agenda_culturel/models.py:37 +#: agenda_culturel/models.py:38 msgid "Text as shown to the visitors" msgstr "Text tel que présenté aux visiteureuses" -#: agenda_culturel/models.py:38 +#: agenda_culturel/models.py:39 msgid "URL path" msgstr "Chemin URL" -#: agenda_culturel/models.py:38 +#: agenda_culturel/models.py:39 msgid "URL path where the content is included." msgstr "Chemin URL où le contenu est présent." -#: agenda_culturel/models.py:66 +#: agenda_culturel/models.py:67 msgid "Alternative Name" msgstr "Nom alternatif" -#: agenda_culturel/models.py:66 +#: agenda_culturel/models.py:67 msgid "Alternative name used with a time period" msgstr "Nom alternatif utilisé avec une période de temps" -#: agenda_culturel/models.py:67 +#: agenda_culturel/models.py:68 msgid "Short name" msgstr "Nom court" -#: agenda_culturel/models.py:67 +#: agenda_culturel/models.py:68 msgid "Short name of the category" msgstr "Nom court de la catégorie" -#: agenda_culturel/models.py:68 +#: agenda_culturel/models.py:69 msgid "Color" msgstr "Couleur" -#: agenda_culturel/models.py:68 +#: agenda_culturel/models.py:69 msgid "Color used as background for the category" msgstr "Couleur utilisée comme fond de la catégorie" -#: agenda_culturel/models.py:105 agenda_culturel/models.py:172 -#: agenda_culturel/models.py:777 agenda_culturel/models.py:821 +#: agenda_culturel/models.py:106 agenda_culturel/models.py:174 +#: agenda_culturel/models.py:779 agenda_culturel/models.py:823 msgid "Category" msgstr "Catégorie" -#: agenda_culturel/models.py:106 +#: agenda_culturel/models.py:107 msgid "Categories" msgstr "Catégories" -#: agenda_culturel/models.py:157 agenda_culturel/models.py:775 +#: agenda_culturel/models.py:158 agenda_culturel/models.py:777 msgid "Published" msgstr "Publié" -#: agenda_culturel/models.py:158 +#: agenda_culturel/models.py:159 msgid "Draft" msgstr "Brouillon" -#: agenda_culturel/models.py:159 +#: agenda_culturel/models.py:160 msgid "Trash" msgstr "Corbeille" -#: agenda_culturel/models.py:168 +#: agenda_culturel/models.py:170 msgid "Title" msgstr "Titre" -#: agenda_culturel/models.py:168 +#: agenda_culturel/models.py:170 msgid "Short title" msgstr "Titre court" -#: agenda_culturel/models.py:170 agenda_culturel/models.py:805 +#: agenda_culturel/models.py:172 agenda_culturel/models.py:807 msgid "Status" msgstr "Status" -#: agenda_culturel/models.py:172 +#: agenda_culturel/models.py:174 msgid "Category of the event" msgstr "Catégorie de l'événement" -#: agenda_culturel/models.py:174 +#: agenda_culturel/models.py:176 msgid "Day of the event" msgstr "Date de l'événement" -#: agenda_culturel/models.py:175 +#: agenda_culturel/models.py:177 msgid "Starting time" msgstr "Heure de début" -#: agenda_culturel/models.py:177 +#: agenda_culturel/models.py:179 msgid "End day of the event" msgstr "Fin de l'événement" -#: agenda_culturel/models.py:177 +#: agenda_culturel/models.py:179 msgid "End day of the event, only required if different from the start day." msgstr "" "Date de fin de l'événement, uniquement nécessaire s'il est différent du " "premier jour de l'événement" -#: agenda_culturel/models.py:178 +#: agenda_culturel/models.py:180 msgid "Final time" msgstr "Heure de fin" -#: agenda_culturel/models.py:180 +#: agenda_culturel/models.py:182 msgid "Recurrence" msgstr "Récurrence" -#: agenda_culturel/models.py:182 agenda_culturel/models.py:776 +#: agenda_culturel/models.py:184 agenda_culturel/models.py:778 msgid "Location" msgstr "Localisation" -#: agenda_culturel/models.py:182 +#: agenda_culturel/models.py:184 msgid "Address of the event" msgstr "Adresse de l'événement" -#: agenda_culturel/models.py:184 +#: agenda_culturel/models.py:186 msgid "Description" msgstr "Description" -#: agenda_culturel/models.py:184 +#: agenda_culturel/models.py:186 msgid "General description of the event" msgstr "Description générale de l'événement" -#: agenda_culturel/models.py:186 +#: agenda_culturel/models.py:188 msgid "Illustration (local image)" msgstr "Illustration (image locale)" -#: agenda_culturel/models.py:186 +#: agenda_culturel/models.py:188 msgid "Illustration image stored in the agenda server" msgstr "Image d'illustration stockée sur le serveur de l'agenda" -#: agenda_culturel/models.py:188 +#: agenda_culturel/models.py:190 msgid "Illustration" msgstr "Illustration" -#: agenda_culturel/models.py:188 +#: agenda_culturel/models.py:190 msgid "URL of the illustration image" msgstr "URL de l'image illustrative" -#: agenda_culturel/models.py:189 +#: agenda_culturel/models.py:191 msgid "Illustration description" msgstr "Description de l'illustration" -#: agenda_culturel/models.py:189 +#: agenda_culturel/models.py:191 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:191 +#: agenda_culturel/models.py:193 msgid "Importation source" msgstr "Source d'importation" -#: agenda_culturel/models.py:191 +#: agenda_culturel/models.py:193 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:192 +#: agenda_culturel/models.py:194 msgid "UUIDs" msgstr "UUIDs" -#: agenda_culturel/models.py:192 +#: agenda_culturel/models.py:194 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:193 +#: agenda_culturel/models.py:195 msgid "URLs" msgstr "URLs" -#: agenda_culturel/models.py:193 +#: agenda_culturel/models.py:195 msgid "List of all the urls where this event can be found." msgstr "Liste de toutes les urls où l'événement peut être trouvé." -#: agenda_culturel/models.py:195 +#: agenda_culturel/models.py:197 msgid "Tags" msgstr "Étiquettes" -#: agenda_culturel/models.py:195 +#: agenda_culturel/models.py:197 msgid "A list of tags that describe the event." msgstr "Une liste d'étiquettes décrivant l'événement" -#: agenda_culturel/models.py:197 +#: agenda_culturel/models.py:199 msgid "Possibly duplicated" msgstr "Possibles doublons" -#: agenda_culturel/models.py:238 +#: agenda_culturel/models.py:240 msgid "Event" msgstr "Événement" -#: agenda_culturel/models.py:239 +#: agenda_culturel/models.py:241 msgid "Events" msgstr "Événements" -#: agenda_culturel/models.py:726 +#: agenda_culturel/models.py:728 msgid "Contact message" msgstr "Message de contact" -#: agenda_culturel/models.py:727 +#: agenda_culturel/models.py:729 #, fuzzy #| msgid "Your message" msgid "Contact messages" msgstr "Messages de contact" -#: agenda_culturel/models.py:729 +#: agenda_culturel/models.py:731 msgid "Subject" msgstr "Sujet" -#: agenda_culturel/models.py:729 +#: agenda_culturel/models.py:731 msgid "The subject of your message" msgstr "Sujet de votre message" -#: agenda_culturel/models.py:730 +#: agenda_culturel/models.py:732 msgid "Your name" msgstr "Votre nom" -#: agenda_culturel/models.py:731 +#: agenda_culturel/models.py:733 msgid "Email address" msgstr "Adresse email" -#: agenda_culturel/models.py:731 +#: agenda_culturel/models.py:733 msgid "Your email address" msgstr "Votre adresse email" -#: agenda_culturel/models.py:732 +#: agenda_culturel/models.py:734 msgid "Message" msgstr "Message" -#: agenda_culturel/models.py:732 +#: agenda_culturel/models.py:734 msgid "Your message" msgstr "Votre message" -#: agenda_culturel/models.py:736 agenda_culturel/views.py:397 +#: agenda_culturel/models.py:738 agenda_culturel/views.py:430 msgid "Closed" msgstr "Fermé" -#: agenda_culturel/models.py:736 +#: agenda_culturel/models.py:738 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:737 +#: agenda_culturel/models.py:739 msgid "Comments" msgstr "Commentaires" -#: agenda_culturel/models.py:737 +#: agenda_culturel/models.py:739 msgid "Comments on the message from the moderation team" msgstr "Commentaires sur ce message par l'équipe de modération" -#: agenda_culturel/models.py:747 agenda_culturel/models.py:803 +#: agenda_culturel/models.py:749 agenda_culturel/models.py:805 msgid "Recurrent import" msgstr "Import récurrent" -#: agenda_culturel/models.py:748 +#: agenda_culturel/models.py:750 msgid "Recurrent imports" msgstr "Imports récurrents" -#: agenda_culturel/models.py:752 +#: agenda_culturel/models.py:754 msgid "ical" msgstr "ical" -#: agenda_culturel/models.py:753 +#: agenda_culturel/models.py:755 msgid "ical no busy" msgstr "ical sans busy" -#: agenda_culturel/models.py:754 +#: agenda_culturel/models.py:756 msgid "ical no VC" msgstr "ical sans VC" -#: agenda_culturel/models.py:757 +#: agenda_culturel/models.py:759 msgid "simple" msgstr "simple" -#: agenda_culturel/models.py:758 +#: agenda_culturel/models.py:760 msgid "Headless Chromium" msgstr "chromium sans interface" -#: agenda_culturel/models.py:762 +#: agenda_culturel/models.py:764 msgid "daily" msgstr "chaque jour" -#: agenda_culturel/models.py:763 +#: agenda_culturel/models.py:765 msgid "weekly" msgstr "chaque semaine" -#: agenda_culturel/models.py:765 +#: agenda_culturel/models.py:767 msgid "Recurrent import name" msgstr "Nome de l'import récurrent" -#: agenda_culturel/models.py:766 +#: agenda_culturel/models.py:768 msgid "Processor" msgstr "Processeur" -#: agenda_culturel/models.py:767 +#: agenda_culturel/models.py:769 msgid "Downloader" msgstr "Téléchargeur" -#: agenda_culturel/models.py:769 +#: agenda_culturel/models.py:771 msgid "Import recurrence" msgstr "Récurrence d'import" -#: agenda_culturel/models.py:772 +#: agenda_culturel/models.py:774 msgid "Source" msgstr "Source" -#: agenda_culturel/models.py:772 +#: agenda_culturel/models.py:774 msgid "URL of the source document" msgstr "URL du document source" -#: agenda_culturel/models.py:773 +#: agenda_culturel/models.py:775 msgid "Browsable url" msgstr "URL navigable" -#: agenda_culturel/models.py:773 +#: agenda_culturel/models.py:775 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:775 +#: agenda_culturel/models.py:777 msgid "Status of each imported event (published or draft)" msgstr "Status de chaque événement importé (publié ou brouillon)" -#: agenda_culturel/models.py:776 +#: agenda_culturel/models.py:778 msgid "Address for each imported event" msgstr "Adresse de chaque événement importé" -#: agenda_culturel/models.py:777 +#: agenda_culturel/models.py:779 msgid "Category of each imported event" msgstr "Catégorie de chaque événement importé" -#: agenda_culturel/models.py:778 +#: agenda_culturel/models.py:780 msgid "Tags for each imported event" msgstr "Étiquettes de chaque événement importé" -#: agenda_culturel/models.py:778 +#: agenda_culturel/models.py:780 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:790 +#: agenda_culturel/models.py:792 msgid "Running" msgstr "En cours" -#: agenda_culturel/models.py:791 +#: agenda_culturel/models.py:793 msgid "Canceled" msgstr "Annulé" -#: agenda_culturel/models.py:792 +#: agenda_culturel/models.py:794 msgid "Success" msgstr "Succès" -#: agenda_culturel/models.py:793 +#: agenda_culturel/models.py:795 msgid "Failed" msgstr "Erreur" -#: agenda_culturel/models.py:796 +#: agenda_culturel/models.py:798 msgid "Batch importation" msgstr "Importation par lot" -#: agenda_culturel/models.py:797 +#: agenda_culturel/models.py:799 msgid "Batch importations" msgstr "Importations par lot" -#: agenda_culturel/models.py:803 +#: agenda_culturel/models.py:805 msgid "Reference to the recurrent import processing" msgstr "Référence du processus d'import récurrent" -#: agenda_culturel/models.py:807 +#: agenda_culturel/models.py:809 msgid "Error message" msgstr "Votre message" -#: agenda_culturel/models.py:809 +#: agenda_culturel/models.py:811 msgid "Number of collected events" msgstr "Nombre d'événements collectés" -#: agenda_culturel/models.py:810 +#: agenda_culturel/models.py:812 msgid "Number of imported events" msgstr "Nombre d'événements importés" -#: agenda_culturel/models.py:811 +#: agenda_culturel/models.py:813 msgid "Number of updated events" msgstr "Nombre d'événements mis à jour" -#: agenda_culturel/models.py:812 +#: agenda_culturel/models.py:814 msgid "Number of removed events" msgstr "Nombre d'événements supprimés" -#: agenda_culturel/models.py:819 +#: agenda_culturel/models.py:821 msgid "Weight" msgstr "Poids" -#: agenda_culturel/models.py:819 +#: agenda_culturel/models.py:821 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:821 +#: agenda_culturel/models.py:823 msgid "Category applied to the event" msgstr "Catégorie appliquée à l'événement" -#: agenda_culturel/models.py:823 +#: agenda_culturel/models.py:825 msgid "Contained in the description" msgstr "Contenu dans la description" -#: agenda_culturel/models.py:823 +#: agenda_culturel/models.py:825 msgid "Text contained in the description" msgstr "Texte contenu dans la description" -#: agenda_culturel/models.py:824 +#: agenda_culturel/models.py:826 msgid "Exact description extract" msgstr "Extrait exact de description" -#: agenda_culturel/models.py:824 +#: agenda_culturel/models.py:826 msgid "" "If checked, the extract will be searched for in the description using the " "exact form (capitals, accents)." @@ -447,19 +453,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans la description en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:826 +#: agenda_culturel/models.py:828 msgid "Contained in the title" msgstr "Contenu dans le titre" -#: agenda_culturel/models.py:826 +#: agenda_culturel/models.py:828 msgid "Text contained in the event title" msgstr "Texte contenu dans le titre de l'événement" -#: agenda_culturel/models.py:827 +#: agenda_culturel/models.py:829 msgid "Exact title extract" msgstr "Extrait exact du titre" -#: agenda_culturel/models.py:827 +#: agenda_culturel/models.py:829 msgid "" "If checked, the extract will be searched for in the title using the exact " "form (capitals, accents)." @@ -467,53 +473,75 @@ msgstr "" "Si coché, l'extrait sera recherché dans le titre en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:830 +#: agenda_culturel/models.py:831 +msgid "Contained in the location" +msgstr "Contenu dans la localisation" + +#: agenda_culturel/models.py:831 +msgid "Text contained in the event location" +msgstr "Texte contenu dans la localisation de l'événement" + +#: agenda_culturel/models.py:832 +msgid "Exact location extract" +msgstr "Extrait exact de localisation" + +#: agenda_culturel/models.py:832 +msgid "" +"If checked, the extract will be searched for in the location using the exact " +"form (capitals, accents)." +msgstr "" +"Si coché, l'extrait sera recherché dans la localisation en utilisant la forme " +"exacte (majuscules, accents)" + +#: agenda_culturel/models.py:835 msgid "Categorisation rule" msgstr "Règle de catégorisation" -#: agenda_culturel/models.py:831 +#: agenda_culturel/models.py:836 msgid "Categorisation rules" msgstr "Règles de catégorisation" -#: agenda_culturel/models.py:868 agenda_culturel/models.py:886 +#: agenda_culturel/models.py:891 agenda_culturel/models.py:912 msgid "Question" msgstr "Question" -#: agenda_culturel/models.py:868 agenda_culturel/models.py:888 +#: agenda_culturel/models.py:891 agenda_culturel/models.py:914 msgid "Text that will be shown to moderators" msgstr "Text tel que présenté aux modérateurices" -#: agenda_culturel/models.py:871 +#: agenda_culturel/models.py:894 msgid "Moderation question" msgstr "Question de modération" -#: agenda_culturel/models.py:872 +#: agenda_culturel/models.py:895 msgid "Moderation questions" msgstr "Questions de modération" -#: agenda_culturel/models.py:886 +#: agenda_culturel/models.py:912 msgid "Associated question from moderation" msgstr "Question associée pour la modération" -#: agenda_culturel/models.py:888 +#: agenda_culturel/models.py:914 msgid "Answer" msgstr "Réponse" -#: agenda_culturel/models.py:890 +#: agenda_culturel/models.py:916 msgid "Adds tags" msgstr "Ajoute les étiquettes" -#: agenda_culturel/models.py:890 +#: agenda_culturel/models.py:916 msgid "A list of tags that will be added if you choose this answer." -msgstr "Une liste d'étiquettes qui seront ajoutées si vous choisissez cette réponse." +msgstr "" +"Une liste d'étiquettes qui seront ajoutées si vous choisissez cette réponse." -#: agenda_culturel/models.py:891 +#: agenda_culturel/models.py:917 msgid "Removes tags" msgstr "Retire les étiquettes" -#: agenda_culturel/models.py:891 +#: agenda_culturel/models.py:917 msgid "A list of tags that will be removed if you choose this answer." -msgstr "Une liste d'étiquettes qui seront retirées si vous choisissez cette réponse." +msgstr "" +"Une liste d'étiquettes qui seront retirées si vous choisissez cette réponse." #: agenda_culturel/settings/base.py:135 msgid "English" @@ -523,27 +551,27 @@ msgstr "anglais" msgid "French" msgstr "français" -#: agenda_culturel/views.py:223 +#: agenda_culturel/views.py:229 msgid "The static content has been successfully updated." msgstr "Le contenu statique a été modifié avec succès." -#: agenda_culturel/views.py:230 +#: agenda_culturel/views.py:236 agenda_culturel/views.py:271 msgid "The event has been successfully modified." msgstr "L'événement a été modifié avec succès." -#: agenda_culturel/views.py:242 +#: agenda_culturel/views.py:248 msgid "The event has been successfully deleted." msgstr "L'événement a été supprimé avec succès" -#: agenda_culturel/views.py:270 +#: agenda_culturel/views.py:297 msgid "The status has been successfully modified." msgstr "Le status a été modifié avec succès." -#: agenda_culturel/views.py:292 +#: agenda_culturel/views.py:319 msgid "The event is saved." msgstr "L'événement est enregistré." -#: agenda_culturel/views.py:295 +#: agenda_culturel/views.py:322 msgid "" "The event has been submitted and will be published as soon as it has been " "validated by the moderation team." @@ -551,7 +579,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:332 +#: agenda_culturel/views.py:359 msgid "" "The event has been successfully extracted, and you can now submit it after " "modifying it if necessary." @@ -559,7 +587,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:336 +#: agenda_culturel/views.py:363 msgid "" "Unable to extract an event from the proposed URL. Please use the form below " "to submit the event." @@ -567,16 +595,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:345 +#: agenda_culturel/views.py:372 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:349 +#: agenda_culturel/views.py:376 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:351 +#: agenda_culturel/views.py:378 msgid "" "This URL has already been submitted, but has not been selected for " "publication by the moderation team." @@ -584,51 +612,51 @@ 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:373 +#: agenda_culturel/views.py:400 msgid "Your message has been sent successfully." msgstr "Votre message a été envoyé avec succès." -#: agenda_culturel/views.py:382 +#: agenda_culturel/views.py:415 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:397 +#: agenda_culturel/views.py:430 msgid "Open" msgstr "Ouvert" -#: agenda_culturel/views.py:439 +#: agenda_culturel/views.py:472 msgid "Search" msgstr "Rechercher" -#: agenda_culturel/views.py:556 +#: agenda_culturel/views.py:589 msgid "The import has been run successfully." msgstr "L'import a été lancé avec succès" -#: agenda_culturel/views.py:573 +#: agenda_culturel/views.py:606 msgid "The import has been canceled." msgstr "L'import a été annulé" -#: agenda_culturel/views.py:610 +#: agenda_culturel/views.py:643 msgid "The recurrent import has been successfully modified." msgstr "L'import récurrent a été modifié avec succès." -#: agenda_culturel/views.py:617 +#: agenda_culturel/views.py:650 msgid "The recurrent import has been successfully deleted." msgstr "L'import récurrent a été supprimé avec succès" -#: agenda_culturel/views.py:648 +#: agenda_culturel/views.py:681 msgid "The import has been launched." msgstr "L'import a été lancé" -#: agenda_culturel/views.py:708 +#: agenda_culturel/views.py:741 msgid "The merge has been successfully completed." msgstr "La fusion a été réalisée avec succès." -#: agenda_culturel/views.py:738 +#: agenda_culturel/views.py:771 msgid "Events have been marked as unduplicated." msgstr "Les événements ont été marqués comme non dupliqués." -#: agenda_culturel/views.py:755 +#: agenda_culturel/views.py:788 msgid "" "The selected event has been retained, while the other has been moved to the " "recycle bin." @@ -636,7 +664,7 @@ msgstr "" "L'événement sélectionné a été conservé, l'autre a été déplacé dans la " "corbeille." -#: agenda_culturel/views.py:757 +#: agenda_culturel/views.py:790 msgid "" "The selected event has been retained, while the others have been moved to " "the recycle bin." @@ -644,15 +672,15 @@ msgstr "" "L'événement sélectionné a été conservé, les autres ont été déplacés dans la " "corbeille." -#: agenda_culturel/views.py:763 +#: agenda_culturel/views.py:796 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:810 +#: agenda_culturel/views.py:843 msgid "The event was successfully duplicated." msgstr "L'événement a été marqué dupliqué avec succès." -#: agenda_culturel/views.py:813 +#: agenda_culturel/views.py:846 msgid "" "The event has been successfully flagged as a duplicate. The moderation team " "will deal with your suggestion shortly." @@ -660,32 +688,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:852 +#: agenda_culturel/views.py:885 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:859 +#: agenda_culturel/views.py:892 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:875 +#: agenda_culturel/views.py:912 agenda_culturel/views.py:941 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:877 +#: agenda_culturel/views.py:914 agenda_culturel/views.py:943 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:879 +#: agenda_culturel/views.py:916 agenda_culturel/views.py:945 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:902 +#: agenda_culturel/views.py:973 msgid "The moderation question has been created with success." msgstr "La question de modération a été créée avec succès." diff --git a/src/agenda_culturel/migrations/0047_categorisationrule_loc_exact_and_more.py b/src/agenda_culturel/migrations/0047_categorisationrule_loc_exact_and_more.py new file mode 100644 index 0000000..035fe70 --- /dev/null +++ b/src/agenda_culturel/migrations/0047_categorisationrule_loc_exact_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.7 on 2024-04-16 11:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('agenda_culturel', '0046_event_moderated_date'), + ] + + operations = [ + migrations.AddField( + model_name='categorisationrule', + name='loc_exact', + field=models.BooleanField(default=False, help_text='If checked, the extract will be searched for in the location using the exact form (capitals, accents).', verbose_name='Exact location extract'), + ), + migrations.AddField( + model_name='categorisationrule', + name='location_contains', + field=models.CharField(blank=True, help_text='Text contained in the event location', max_length=512, null=True, verbose_name='Contained in the location'), + ), + ] diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index c6ab41e..d566764 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -828,6 +828,9 @@ class CategorisationRule(models.Model): title_contains = models.CharField(verbose_name=_('Contained in the title'), help_text=_('Text contained in the event title'), max_length=512, blank=True, null=True) title_exact = models.BooleanField(verbose_name=_('Exact title extract'), help_text=_("If checked, the extract will be searched for in the title using the exact form (capitals, accents)."), default=False) + location_contains = models.CharField(verbose_name=_('Contained in the location'), help_text=_('Text contained in the event location'), max_length=512, blank=True, null=True) + loc_exact = models.BooleanField(verbose_name=_('Exact location extract'), help_text=_("If checked, the extract will be searched for in the location using the exact form (capitals, accents)."), default=False) + class Meta: verbose_name = _('Categorisation rule') verbose_name_plural = _('Categorisation rules') @@ -872,6 +875,14 @@ class CategorisationRule(models.Model): if remove_accents(self.title_contains).lower() in remove_accents(event.title).lower(): return True + if self.location_contains: + if self.loc_exact: + if self.location_contains in event.location: + return True + else: + if remove_accents(self.location_contains).lower() in remove_accents(event.location).lower(): + return True + return False diff --git a/src/agenda_culturel/templates/agenda_culturel/categorisation_rules.html b/src/agenda_culturel/templates/agenda_culturel/categorisation_rules.html index 1bbcf5d..30fb50a 100644 --- a/src/agenda_culturel/templates/agenda_culturel/categorisation_rules.html +++ b/src/agenda_culturel/templates/agenda_culturel/categorisation_rules.html @@ -45,6 +45,9 @@ {% if obj.description_contains %}
  • La description contient {% if obj.desc_exact %}exactement {% endif %} « {{ obj.description_contains }} »
  • {% endif %} + {% if obj.location_contains %} +
  • La localisation contient {% if obj.loc_exact %}exactement {% endif %} « {{ obj.location_contains }} »
  • + {% endif %} {{ obj.weight }}