diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index 8085322..5b596ca 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-14 18:36+0100\n" +"POT-Creation-Date: 2025-03-14 23:45+0100\n" "PO-Revision-Date: 2023-10-29 14:16+0000\n" "Last-Translator: Jean-Marie Favreau \n" "Language-Team: Jean-Marie Favreau \n" @@ -142,12 +142,12 @@ msgstr "dernier créé d'abord" msgid "Imported from" msgstr "Importé depuis" -#: agenda_culturel/filters.py:470 agenda_culturel/models.py:760 -#: agenda_culturel/models.py:2726 +#: agenda_culturel/filters.py:470 agenda_culturel/models.py:771 +#: agenda_culturel/models.py:2784 msgid "Status" msgstr "Status" -#: agenda_culturel/filters.py:471 agenda_culturel/models.py:2492 +#: agenda_culturel/filters.py:471 agenda_culturel/models.py:2537 msgid "Closed" msgstr "Fermé" @@ -156,7 +156,7 @@ msgid "Open" msgstr "Ouvert" #: agenda_culturel/filters.py:475 agenda_culturel/filters.py:476 -#: agenda_culturel/models.py:2486 +#: agenda_culturel/models.py:2531 msgid "Spam" msgstr "Spam" @@ -164,7 +164,7 @@ msgstr "Spam" msgid "Non spam" msgstr "Non spam" -#: agenda_culturel/filters.py:481 agenda_culturel/models.py:2507 +#: agenda_culturel/filters.py:481 agenda_culturel/models.py:2552 msgid "Type" msgstr "Type" @@ -195,11 +195,11 @@ msgstr "" msgid "Your email" msgstr "Votre adresse email" -#: agenda_culturel/forms.py:166 agenda_culturel/models.py:2474 +#: agenda_culturel/forms.py:166 agenda_culturel/models.py:2519 msgid "Your email address" msgstr "Votre adresse email" -#: agenda_culturel/forms.py:172 agenda_culturel/models.py:2499 +#: agenda_culturel/forms.py:172 agenda_culturel/models.py:2544 msgid "Comments" msgstr "Commentaires" @@ -215,27 +215,27 @@ 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:206 agenda_culturel/models.py:212 -#: agenda_culturel/models.py:768 agenda_culturel/models.py:2650 -#: agenda_culturel/models.py:2761 +#: agenda_culturel/models.py:779 agenda_culturel/models.py:2695 +#: agenda_culturel/models.py:2819 msgid "Category" msgstr "Catégorie" #: agenda_culturel/forms.py:212 agenda_culturel/forms.py:245 -#: agenda_culturel/forms.py:288 agenda_culturel/forms.py:467 -#: agenda_culturel/models.py:265 agenda_culturel/models.py:885 +#: agenda_culturel/forms.py:288 agenda_culturel/forms.py:468 +#: agenda_culturel/models.py:265 agenda_culturel/models.py:896 msgid "Tags" msgstr "Étiquettes" -#: agenda_culturel/forms.py:220 agenda_culturel/forms.py:630 -#: agenda_culturel/models.py:986 +#: agenda_culturel/forms.py:220 agenda_culturel/forms.py:631 +#: agenda_culturel/models.py:1025 msgid "Event" msgstr "Événement" -#: agenda_culturel/forms.py:274 agenda_culturel/forms.py:473 +#: agenda_culturel/forms.py:274 agenda_culturel/forms.py:474 msgid "New tags" msgstr "Nouvelles étiquettes" -#: agenda_culturel/forms.py:276 agenda_culturel/forms.py:475 +#: agenda_culturel/forms.py:276 agenda_culturel/forms.py:476 msgid "" "Create new labels (sparingly). Note: by starting your tag with the " "characters “TW:”, youll create a “trigger warning” tag, and the associated " @@ -246,141 +246,141 @@ msgstr "" "étiquette “trigger warning”, et les événements associés seront annoncés " "comme tels." -#: agenda_culturel/forms.py:345 +#: agenda_culturel/forms.py:346 msgid "Main fields" msgstr "Champs principaux" -#: agenda_culturel/forms.py:348 +#: agenda_culturel/forms.py:349 msgid "Start of event" msgstr "Début de l'événement" -#: agenda_culturel/forms.py:352 +#: agenda_culturel/forms.py:353 msgid "End of event" msgstr "Fin de l'événement" -#: agenda_culturel/forms.py:358 +#: agenda_culturel/forms.py:359 msgid "This is a recurring event" msgstr "Cet événement est récurrent" -#: agenda_culturel/forms.py:370 +#: agenda_culturel/forms.py:371 msgid "Details" msgstr "Détails" -#: agenda_culturel/forms.py:375 agenda_culturel/models.py:797 -#: agenda_culturel/models.py:2625 +#: agenda_culturel/forms.py:376 agenda_culturel/models.py:808 +#: agenda_culturel/models.py:2670 msgid "Location" msgstr "Localisation" -#: agenda_culturel/forms.py:380 agenda_culturel/models.py:841 +#: agenda_culturel/forms.py:381 agenda_culturel/models.py:852 msgid "Illustration" msgstr "Illustration" -#: agenda_culturel/forms.py:384 +#: agenda_culturel/forms.py:385 msgid "URLs" msgstr "URLs" -#: agenda_culturel/forms.py:388 agenda_culturel/forms.py:395 +#: agenda_culturel/forms.py:389 agenda_culturel/forms.py:396 msgid "Meta information" msgstr "Méta-informations" -#: agenda_culturel/forms.py:412 +#: agenda_culturel/forms.py:413 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:428 +#: agenda_culturel/forms.py:429 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:468 +#: agenda_culturel/forms.py:469 msgid "Select tags from existing ones." msgstr "Sélectionner des étiquettes depuis celles existantes." -#: agenda_culturel/forms.py:527 +#: agenda_culturel/forms.py:528 msgid "JSON in the format expected for the import." msgstr "JSON dans le format attendu pour l'import" -#: agenda_culturel/forms.py:549 +#: agenda_culturel/forms.py:550 msgid " (locally modified version)" msgstr " (version modifiée localement)" -#: agenda_culturel/forms.py:553 +#: agenda_culturel/forms.py:554 msgid " (synchronized on import version)" msgstr " (version synchronisée sur l'import)" -#: agenda_culturel/forms.py:557 +#: agenda_culturel/forms.py:558 msgid "Select {} as representative version." msgstr "Sélectionner {} comme version représentative" -#: agenda_culturel/forms.py:567 +#: agenda_culturel/forms.py:568 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:574 +#: agenda_culturel/forms.py:575 msgid " Warning: a version is already locally modified." msgstr " Attention: une version a déjà été modifiée localement." -#: agenda_culturel/forms.py:581 +#: agenda_culturel/forms.py:582 msgid "Create a new version by merging (interactive mode)." msgstr "Créer une nouvelle version par fusion (mode interactif)." -#: agenda_culturel/forms.py:589 +#: agenda_culturel/forms.py:590 msgid "Make {} independent." msgstr "Rendre {} indépendant." -#: agenda_culturel/forms.py:592 +#: agenda_culturel/forms.py:593 msgid "Make all versions independent." msgstr "Rendre toutes les versions indépendantes." -#: agenda_culturel/forms.py:664 agenda_culturel/forms.py:677 +#: agenda_culturel/forms.py:665 agenda_culturel/forms.py:678 msgid "Value of version {}" msgstr "Valeur de la version {}" -#: agenda_culturel/forms.py:669 +#: agenda_culturel/forms.py:670 msgid "Value of the selected version" msgstr "Valeur de la version sélectionnée" -#: agenda_culturel/forms.py:839 +#: agenda_culturel/forms.py:840 msgid "Apply category {} to the event {}" msgstr "Appliquer la catégorie {} à l'événement {}" -#: agenda_culturel/forms.py:856 agenda_culturel/models.py:596 -#: agenda_culturel/models.py:2813 +#: agenda_culturel/forms.py:857 agenda_culturel/models.py:596 +#: agenda_culturel/models.py:2871 msgid "Place" msgstr "Lieu" -#: agenda_culturel/forms.py:858 +#: agenda_culturel/forms.py:859 msgid "Create a missing place" msgstr "Créer un lieu manquant" -#: agenda_culturel/forms.py:868 +#: agenda_culturel/forms.py:869 msgid "Add \"{}\" to the aliases of the place" msgstr "Ajouter « {} » aux alias du lieu" -#: agenda_culturel/forms.py:897 +#: agenda_culturel/forms.py:898 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:910 +#: agenda_culturel/forms.py:911 msgid "Header" msgstr "Entête" -#: agenda_culturel/forms.py:913 agenda_culturel/models.py:558 +#: agenda_culturel/forms.py:914 agenda_culturel/models.py:558 msgid "Address" msgstr "Adresse" -#: agenda_culturel/forms.py:919 +#: agenda_culturel/forms.py:920 msgid "Meta" msgstr "Méta" -#: agenda_culturel/forms.py:922 +#: agenda_culturel/forms.py:923 msgid "Information" msgstr "Informations" -#: agenda_culturel/forms.py:974 +#: agenda_culturel/forms.py:975 msgid "Add a comment" msgstr "Ajouter un commentaire" @@ -436,7 +436,7 @@ msgstr "" #: agenda_culturel/models.py:95 agenda_culturel/models.py:142 #: agenda_culturel/models.py:221 agenda_culturel/models.py:515 #: agenda_culturel/models.py:556 agenda_culturel/models.py:662 -#: agenda_culturel/models.py:2466 agenda_culturel/models.py:2575 +#: agenda_culturel/models.py:2511 agenda_culturel/models.py:2620 msgid "Name" msgstr "Nom" @@ -497,7 +497,7 @@ msgid "Tag name" msgstr "Nom de l'étiquette" #: agenda_culturel/models.py:228 agenda_culturel/models.py:579 -#: agenda_culturel/models.py:678 agenda_culturel/models.py:824 +#: agenda_culturel/models.py:678 agenda_culturel/models.py:835 msgid "Description" msgstr "Description" @@ -505,8 +505,8 @@ msgstr "Description" msgid "Description of the tag" msgstr "Description de l'étiquette" -#: agenda_culturel/models.py:235 agenda_culturel/models.py:2433 -#: agenda_culturel/models.py:2480 +#: agenda_culturel/models.py:235 agenda_culturel/models.py:2478 +#: agenda_culturel/models.py:2525 msgid "Message" msgstr "Message" @@ -684,7 +684,7 @@ msgstr "Organisme" msgid "Organisations" msgstr "Organismes" -#: agenda_culturel/models.py:708 agenda_culturel/models.py:2620 +#: agenda_culturel/models.py:708 agenda_culturel/models.py:2665 msgid "Published" msgstr "Publié" @@ -696,51 +696,55 @@ msgstr "Brouillon" msgid "Trash" msgstr "Corbeille" -#: agenda_culturel/models.py:719 +#: agenda_culturel/models.py:720 +msgid "Author currently editing/moderating the event" +msgstr "" + +#: agenda_culturel/models.py:730 msgid "Author of the event creation" msgstr "Auteur de la création de l'événement" -#: agenda_culturel/models.py:728 +#: agenda_culturel/models.py:739 msgid "Author of the last importation" msgstr "Auteur de la dernière importation" -#: agenda_culturel/models.py:737 +#: agenda_culturel/models.py:748 msgid "Author of the last modification" msgstr "Auteur de la dernière modification" -#: agenda_culturel/models.py:746 +#: agenda_culturel/models.py:757 msgid "Author of the last moderation" msgstr "Auteur de la dernière modération" -#: agenda_culturel/models.py:757 +#: agenda_culturel/models.py:768 msgid "Title" msgstr "Titre" -#: agenda_culturel/models.py:774 +#: agenda_culturel/models.py:785 msgid "Start day" msgstr "Date de début" -#: agenda_culturel/models.py:776 +#: agenda_culturel/models.py:787 msgid "Start time" msgstr "Heure de début" -#: agenda_culturel/models.py:782 +#: agenda_culturel/models.py:793 msgid "End day" msgstr "Date de fin" -#: agenda_culturel/models.py:786 +#: agenda_culturel/models.py:797 msgid "End time" msgstr "Heure de fin" -#: agenda_culturel/models.py:789 +#: agenda_culturel/models.py:800 msgid "Recurrence" msgstr "Récurrence" -#: agenda_culturel/models.py:803 +#: agenda_culturel/models.py:814 msgid "Location (free form)" msgstr "Localisation (forme libre)" -#: agenda_culturel/models.py:805 +#: agenda_culturel/models.py:816 msgid "" "Address of the event in case its not available in the already known places " "(free form)" @@ -748,11 +752,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:814 +#: agenda_culturel/models.py:825 msgid "Local event" msgstr "Événement de portée locale" -#: agenda_culturel/models.py:816 +#: agenda_culturel/models.py:827 msgid "" "If the event is a local event, it will not be proposed by default in daily, " "weekly or monthly views, unless the user has explicitly indicated that he " @@ -762,11 +766,11 @@ msgstr "" "les vues quotidiennes, hebdomadaires ou mensuelles, sauf si l'utilisateur a " "explicitement indiqué qu'il souhaite voir ces événements." -#: agenda_culturel/models.py:832 +#: agenda_culturel/models.py:843 msgid "Organisers" msgstr "Organisateurs" -#: agenda_culturel/models.py:834 +#: agenda_culturel/models.py:845 msgid "" "list of event organisers. Organizers will only be displayed if one of them " "does not normally use the venue." @@ -774,112 +778,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:848 +#: agenda_culturel/models.py:859 msgid "Illustration (URL)" msgstr "Illustration (URL)" -#: agenda_culturel/models.py:849 +#: agenda_culturel/models.py:860 msgid "External URL of the illustration image" msgstr "URL externe de l'image illustrative" -#: agenda_culturel/models.py:855 +#: agenda_culturel/models.py:866 msgid "Illustration description" msgstr "Description de l'illustration" -#: agenda_culturel/models.py:856 +#: agenda_culturel/models.py:867 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:864 +#: agenda_culturel/models.py:875 msgid "Importation source" msgstr "Source d'importation" -#: agenda_culturel/models.py:865 +#: agenda_culturel/models.py:876 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:871 +#: agenda_culturel/models.py:882 msgid "UUIDs" msgstr "UUIDs" -#: agenda_culturel/models.py:872 +#: agenda_culturel/models.py:883 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:878 +#: agenda_culturel/models.py:889 msgid "Online sources or ticketing" msgstr "Sources en ligne ou billetterie" -#: agenda_culturel/models.py:892 +#: agenda_culturel/models.py:903 msgid "Other versions" msgstr "" -#: agenda_culturel/models.py:987 +#: agenda_culturel/models.py:1026 msgid "Events" msgstr "Événements" -#: agenda_culturel/models.py:1043 +#: agenda_culturel/models.py:1082 msgid "recurrent import" msgstr "import récurrent" -#: agenda_culturel/models.py:1045 +#: agenda_culturel/models.py:1084 msgid "a non authenticated user" msgstr "un utilisateur non connecté" -#: agenda_culturel/models.py:1521 +#: agenda_culturel/models.py:1566 msgid "Your event has been published" msgstr "Ton événement a été publié" -#: agenda_culturel/models.py:1526 +#: agenda_culturel/models.py:1571 msgid "Your message has not been retained" msgstr "Ton événement n'a pas été retenu" -#: agenda_culturel/models.py:1614 agenda_culturel/models.py:2430 +#: agenda_culturel/models.py:1659 agenda_culturel/models.py:2475 msgid "Warning" msgstr "Warning" -#: agenda_culturel/models.py:1616 agenda_culturel/models.py:1722 +#: agenda_culturel/models.py:1661 agenda_culturel/models.py:1767 msgid "the date has not been imported correctly." msgstr "la date n'a pas été importée correctement." -#: agenda_culturel/models.py:1704 +#: agenda_culturel/models.py:1749 msgid "during import process" msgstr "pendant le processus d'import" -#: agenda_culturel/models.py:1720 agenda_culturel/models.py:1730 -#: agenda_culturel/models.py:1741 +#: agenda_culturel/models.py:1765 agenda_culturel/models.py:1775 +#: agenda_culturel/models.py:1786 msgid "warning" msgstr "attention" -#: agenda_culturel/models.py:1732 +#: agenda_culturel/models.py:1777 msgid "the title has not been imported correctly." msgstr "le titre n'a pas été importé correctement." -#: agenda_culturel/models.py:1744 +#: agenda_culturel/models.py:1789 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:2092 +#: agenda_culturel/models.py:2137 msgid "Updated field(s): " msgstr "Champ(s) mis à jour: " -#: agenda_culturel/models.py:2096 +#: agenda_culturel/models.py:2141 msgid "Update" msgstr "Mise à jour" -#: agenda_culturel/models.py:2097 +#: agenda_culturel/models.py:2142 msgid "update process" msgstr "processus de mise à jour" -#: agenda_culturel/models.py:2166 +#: agenda_culturel/models.py:2211 msgid "Import" msgstr "Import" -#: agenda_culturel/models.py:2167 +#: agenda_culturel/models.py:2212 msgid "import process" msgstr "processus d'import" -#: agenda_culturel/models.py:2169 +#: agenda_culturel/models.py:2214 msgid "" "The duration of the event is a little too long for direct publication. " "Moderators can choose to publish it or not." @@ -887,187 +891,187 @@ 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:2421 +#: agenda_culturel/models.py:2466 msgid "From contributor" msgstr "D'un·e contributeurice" -#: agenda_culturel/models.py:2422 +#: agenda_culturel/models.py:2467 msgid "Import process" msgstr "Processus d'import" -#: agenda_culturel/models.py:2423 +#: agenda_culturel/models.py:2468 msgid "Update process" msgstr "Processus de mise à jour" -#: agenda_culturel/models.py:2424 +#: agenda_culturel/models.py:2469 msgid "Contact form" msgstr "Formulaire de contact" -#: agenda_culturel/models.py:2425 +#: agenda_culturel/models.py:2470 msgid "Event report" msgstr "Signalemet d'événement" -#: agenda_culturel/models.py:2428 +#: agenda_culturel/models.py:2473 msgid "From contributor (without message)" msgstr "D'un·e contributeurice (sans message)" -#: agenda_culturel/models.py:2434 +#: agenda_culturel/models.py:2479 msgid "Messages" msgstr "Messages" -#: agenda_culturel/models.py:2443 +#: agenda_culturel/models.py:2488 msgid "Subject" msgstr "Sujet" -#: agenda_culturel/models.py:2444 +#: agenda_culturel/models.py:2489 msgid "The subject of your message" msgstr "Sujet de votre message" -#: agenda_culturel/models.py:2450 +#: agenda_culturel/models.py:2495 msgid "Related event" msgstr "Événement associé" -#: agenda_culturel/models.py:2451 +#: agenda_culturel/models.py:2496 msgid "The message is associated with this event." msgstr "Le message est associé à cet événement." -#: agenda_culturel/models.py:2459 +#: agenda_culturel/models.py:2504 msgid "Author of the message" msgstr "Auteur du message" -#: agenda_culturel/models.py:2467 +#: agenda_culturel/models.py:2512 msgid "Your name" msgstr "Votre nom" -#: agenda_culturel/models.py:2473 +#: agenda_culturel/models.py:2518 msgid "Email address" msgstr "Adresse email" -#: agenda_culturel/models.py:2480 +#: agenda_culturel/models.py:2525 msgid "Your message" msgstr "Votre message" -#: agenda_culturel/models.py:2487 +#: agenda_culturel/models.py:2532 msgid "This message is a spam." msgstr "Ce message est un spam." -#: agenda_culturel/models.py:2494 +#: agenda_culturel/models.py:2539 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:2500 +#: agenda_culturel/models.py:2545 msgid "Comments on the message from the moderation team" msgstr "Commentaires sur ce message par l'équipe de modération" -#: agenda_culturel/models.py:2533 agenda_culturel/models.py:2708 +#: agenda_culturel/models.py:2578 agenda_culturel/models.py:2766 msgid "Recurrent import" msgstr "Import récurrent" -#: agenda_culturel/models.py:2534 +#: agenda_culturel/models.py:2579 msgid "Recurrent imports" msgstr "Imports récurrents" -#: agenda_culturel/models.py:2538 +#: agenda_culturel/models.py:2583 msgid "ical" msgstr "ical" -#: agenda_culturel/models.py:2539 +#: agenda_culturel/models.py:2584 msgid "ical no busy" msgstr "ical sans busy" -#: agenda_culturel/models.py:2540 +#: agenda_culturel/models.py:2585 msgid "ical no VC" msgstr "ical sans VC" -#: agenda_culturel/models.py:2541 +#: agenda_culturel/models.py:2586 msgid "ical naive timezone" msgstr "ical timezone naïve" -#: agenda_culturel/models.py:2542 +#: agenda_culturel/models.py:2587 msgid "lacoope.org" msgstr "lacoope.org" -#: agenda_culturel/models.py:2543 +#: agenda_culturel/models.py:2588 msgid "la comédie" msgstr "la comédie" -#: agenda_culturel/models.py:2544 +#: agenda_culturel/models.py:2589 msgid "le fotomat" msgstr "le fotomat" -#: agenda_culturel/models.py:2545 +#: agenda_culturel/models.py:2590 msgid "la puce à l'oreille" msgstr "la puce à loreille" -#: agenda_culturel/models.py:2546 +#: agenda_culturel/models.py:2591 msgid "Plugin wordpress MEC" msgstr "Plugin wordpress MEC" -#: agenda_culturel/models.py:2547 +#: agenda_culturel/models.py:2592 msgid "Événements d'une page FB" msgstr "Événements d'une page FB" -#: agenda_culturel/models.py:2548 +#: agenda_culturel/models.py:2593 msgid "Billetterie Clermont-Ferrand" msgstr "" -#: agenda_culturel/models.py:2549 +#: agenda_culturel/models.py:2594 msgid "Arachnée concert" msgstr "Arachnée concert" -#: agenda_culturel/models.py:2550 +#: agenda_culturel/models.py:2595 msgid "Le Rio" msgstr "Le Rio" -#: agenda_culturel/models.py:2551 +#: agenda_culturel/models.py:2596 msgid "La Raymonde" msgstr "La Raymone" -#: agenda_culturel/models.py:2552 +#: agenda_culturel/models.py:2597 msgid "Agenda apidae tourisme" msgstr "Agenda apidae tourisme" -#: agenda_culturel/models.py:2553 +#: agenda_culturel/models.py:2598 msgid "Agenda iguana (médiathèques)" msgstr "Agenda iguana (médiathèques)" -#: agenda_culturel/models.py:2554 +#: agenda_culturel/models.py:2599 msgid "Mille formes" msgstr "Mille Formes" -#: agenda_culturel/models.py:2555 +#: agenda_culturel/models.py:2600 msgid "Les Amis du Temps des Cerises" msgstr "Les Amis du Temps des Cerises" -#: agenda_culturel/models.py:2556 +#: agenda_culturel/models.py:2601 msgid "Mobilizon" msgstr "Mobilizon" -#: agenda_culturel/models.py:2559 +#: agenda_culturel/models.py:2604 msgid "simple" msgstr "simple" -#: agenda_culturel/models.py:2560 +#: agenda_culturel/models.py:2605 msgid "Headless Chromium" msgstr "chromium sans interface" -#: agenda_culturel/models.py:2563 +#: agenda_culturel/models.py:2608 msgid "Headless Chromium (pause)" msgstr "chromium sans interface (pause)" -#: agenda_culturel/models.py:2569 +#: agenda_culturel/models.py:2614 msgid "daily" msgstr "chaque jour" -#: agenda_culturel/models.py:2571 +#: agenda_culturel/models.py:2616 msgid "weekly" msgstr "chaque semaine" -#: agenda_culturel/models.py:2572 +#: agenda_culturel/models.py:2617 msgid "never" msgstr "jamais" -#: agenda_culturel/models.py:2577 +#: agenda_culturel/models.py:2622 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." @@ -1075,151 +1079,171 @@ 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:2584 +#: agenda_culturel/models.py:2629 msgid "Processor" msgstr "Processeur" -#: agenda_culturel/models.py:2590 +#: agenda_culturel/models.py:2635 msgid "Downloader" msgstr "Téléchargeur" -#: agenda_culturel/models.py:2597 +#: agenda_culturel/models.py:2642 msgid "Import recurrence" msgstr "Récurrence d'import" -#: agenda_culturel/models.py:2604 +#: agenda_culturel/models.py:2649 msgid "Source" msgstr "Source" -#: agenda_culturel/models.py:2605 +#: agenda_culturel/models.py:2650 msgid "URL of the source document" msgstr "URL du document source" -#: agenda_culturel/models.py:2610 +#: agenda_culturel/models.py:2655 msgid "Browsable url" msgstr "URL navigable" -#: agenda_culturel/models.py:2612 +#: agenda_culturel/models.py:2657 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:2621 +#: agenda_culturel/models.py:2666 msgid "Status of each imported event (published or draft)" msgstr "Status de chaque événement importé (publié ou brouillon)" -#: agenda_culturel/models.py:2626 +#: agenda_culturel/models.py:2671 msgid "Address for each imported event" msgstr "Adresse de chaque événement importé" -#: agenda_culturel/models.py:2633 +#: agenda_culturel/models.py:2678 msgid "Force location" msgstr "Focer la localisation" -#: agenda_culturel/models.py:2634 +#: agenda_culturel/models.py:2679 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:2640 +#: agenda_culturel/models.py:2685 msgid "Organiser" msgstr "Organisateur" -#: agenda_culturel/models.py:2641 +#: agenda_culturel/models.py:2686 msgid "Organiser of each imported event" msgstr "Organisateur de chaque événement importé" -#: agenda_culturel/models.py:2651 +#: agenda_culturel/models.py:2696 msgid "Category of each imported event" msgstr "Catégorie de chaque événement importé" -#: agenda_culturel/models.py:2659 +#: agenda_culturel/models.py:2704 msgid "Tags for each imported event" msgstr "Étiquettes de chaque événement importé" -#: agenda_culturel/models.py:2660 +#: agenda_culturel/models.py:2705 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:2689 +#: agenda_culturel/models.py:2737 +msgid "minimum" +msgstr "minimum" + +#: agenda_culturel/models.py:2738 +msgid "maximum" +msgstr "maximum" + +#: agenda_culturel/models.py:2739 +msgid "mean" +msgstr "moyenne" + +#: agenda_culturel/models.py:2740 +msgid "standard deviation" +msgstr "écart-type" + +#: agenda_culturel/models.py:2741 +msgid "median" +msgstr "médiane" + +#: agenda_culturel/models.py:2747 msgid "Running" msgstr "En cours" -#: agenda_culturel/models.py:2690 +#: agenda_culturel/models.py:2748 msgid "Canceled" msgstr "Annulé" -#: agenda_culturel/models.py:2691 +#: agenda_culturel/models.py:2749 msgid "Success" msgstr "Succès" -#: agenda_culturel/models.py:2692 +#: agenda_culturel/models.py:2750 msgid "Failed" msgstr "Erreur" -#: agenda_culturel/models.py:2695 +#: agenda_culturel/models.py:2753 msgid "Batch importation" msgstr "Importation par lot" -#: agenda_culturel/models.py:2696 +#: agenda_culturel/models.py:2754 msgid "Batch importations" msgstr "Importations par lot" -#: agenda_culturel/models.py:2709 +#: agenda_culturel/models.py:2767 msgid "Reference to the recurrent import processing" msgstr "Référence du processus d'import récurrent" -#: agenda_culturel/models.py:2717 +#: agenda_culturel/models.py:2775 msgid "URL (if not recurrent import)" msgstr "URL (si pas d'import récurrent)" -#: agenda_culturel/models.py:2718 +#: agenda_culturel/models.py:2776 msgid "Source URL if no RecurrentImport is associated." msgstr "URL source si aucun import récurrent n'est associé" -#: agenda_culturel/models.py:2733 +#: agenda_culturel/models.py:2791 msgid "Error message" msgstr "Votre message" -#: agenda_culturel/models.py:2737 +#: agenda_culturel/models.py:2795 msgid "Number of collected events" msgstr "Nombre d'événements collectés" -#: agenda_culturel/models.py:2740 +#: agenda_culturel/models.py:2798 msgid "Number of imported events" msgstr "Nombre d'événements importés" -#: agenda_culturel/models.py:2743 +#: agenda_culturel/models.py:2801 msgid "Number of updated events" msgstr "Nombre d'événements mis à jour" -#: agenda_culturel/models.py:2746 +#: agenda_culturel/models.py:2804 msgid "Number of removed events" msgstr "Nombre d'événements supprimés" -#: agenda_culturel/models.py:2754 +#: agenda_culturel/models.py:2812 msgid "Weight" msgstr "Poids" -#: agenda_culturel/models.py:2755 +#: agenda_culturel/models.py:2813 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:2762 +#: agenda_culturel/models.py:2820 msgid "Category applied to the event" msgstr "Catégorie appliquée à l'événement" -#: agenda_culturel/models.py:2767 +#: agenda_culturel/models.py:2825 msgid "Contained in the title" msgstr "Contenu dans le titre" -#: agenda_culturel/models.py:2768 +#: agenda_culturel/models.py:2826 msgid "Text contained in the event title" msgstr "Texte contenu dans le titre de l'événement" -#: agenda_culturel/models.py:2774 +#: agenda_culturel/models.py:2832 msgid "Exact title extract" msgstr "Extrait exact du titre" -#: agenda_culturel/models.py:2776 +#: agenda_culturel/models.py:2834 msgid "" "If checked, the extract will be searched for in the title using the exact " "form (capitals, accents)." @@ -1227,19 +1251,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans le titre en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:2782 +#: agenda_culturel/models.py:2840 msgid "Contained in the description" msgstr "Contenu dans la description" -#: agenda_culturel/models.py:2783 +#: agenda_culturel/models.py:2841 msgid "Text contained in the description" msgstr "Texte contenu dans la description" -#: agenda_culturel/models.py:2789 +#: agenda_culturel/models.py:2847 msgid "Exact description extract" msgstr "Extrait exact de description" -#: agenda_culturel/models.py:2791 +#: agenda_culturel/models.py:2849 msgid "" "If checked, the extract will be searched for in the description using the " "exact form (capitals, accents)." @@ -1247,19 +1271,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans la description en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:2797 +#: agenda_culturel/models.py:2855 msgid "Contained in the location" msgstr "Contenu dans la localisation" -#: agenda_culturel/models.py:2798 +#: agenda_culturel/models.py:2856 msgid "Text contained in the event location" msgstr "Texte contenu dans la localisation de l'événement" -#: agenda_culturel/models.py:2804 +#: agenda_culturel/models.py:2862 msgid "Exact location extract" msgstr "Extrait exact de localisation" -#: agenda_culturel/models.py:2806 +#: agenda_culturel/models.py:2864 msgid "" "If checked, the extract will be searched for in the location using the exact " "form (capitals, accents)." @@ -1267,15 +1291,15 @@ msgstr "" "Si coché, l'extrait sera recherché dans la localisation en utilisant la " "forme exacte (majuscules, accents)" -#: agenda_culturel/models.py:2814 +#: agenda_culturel/models.py:2872 msgid "Location from place" msgstr "Localisation depuis le lieu" -#: agenda_culturel/models.py:2823 +#: agenda_culturel/models.py:2881 msgid "Categorisation rule" msgstr "Règle de catégorisation" -#: agenda_culturel/models.py:2824 +#: agenda_culturel/models.py:2882 msgid "Categorisation rules" msgstr "Règles de catégorisation" @@ -1333,15 +1357,15 @@ msgstr "" "La mise à jour de l'événement a été mise en attente et sera effectuée sous " "peu." -#: agenda_culturel/views.py:486 agenda_culturel/views.py:565 +#: agenda_culturel/views.py:487 agenda_culturel/views.py:571 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:490 +#: agenda_culturel/views.py:491 msgid "The event has been successfully modified." msgstr "L'événement a été modifié avec succès." -#: agenda_culturel/views.py:509 +#: agenda_culturel/views.py:515 msgid "" "Changes will be visible on a local copy of the event. The version identical " "to the imported source will be hidden." @@ -1349,19 +1373,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:570 +#: agenda_culturel/views.py:576 msgid "The event {} has been moderated with success." msgstr "L'événement {} a été modéré avec succès." -#: agenda_culturel/views.py:706 +#: agenda_culturel/views.py:725 msgid "The event has been successfully deleted." msgstr "L'événement a été supprimé avec succès." -#: agenda_culturel/views.py:756 +#: agenda_culturel/views.py:775 msgid "Comment" msgstr "Commentaire" -#: agenda_culturel/views.py:782 +#: agenda_culturel/views.py:801 msgid "" "The status has been successfully modified and a message has been sent to the " "person who proposed the event." @@ -1369,15 +1393,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:786 +#: agenda_culturel/views.py:805 msgid "The status has been successfully modified." msgstr "Le status a été modifié avec succès." -#: agenda_culturel/views.py:826 +#: agenda_culturel/views.py:845 msgid "The event was created: {}." msgstr "L'événement a été créé: {}." -#: agenda_culturel/views.py:832 +#: agenda_culturel/views.py:851 msgid "" "The event has been submitted and will be published as soon as it has been " "validated by the moderation team." @@ -1385,99 +1409,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:846 +#: agenda_culturel/views.py:865 msgid "during the creation process" msgstr "pendant le processus d'import" -#: agenda_culturel/views.py:869 +#: agenda_culturel/views.py:888 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:962 agenda_culturel/views.py:1040 +#: agenda_culturel/views.py:981 agenda_culturel/views.py:1059 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:971 agenda_culturel/views.py:1049 +#: agenda_culturel/views.py:990 agenda_culturel/views.py:1068 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:983 +#: agenda_culturel/views.py:1002 msgid "Integrating {} url(s) into our import process." msgstr "Intégration de {} url(s) dans notre processus d'import." -#: agenda_culturel/views.py:1058 +#: agenda_culturel/views.py:1077 msgid "Integrating {} into our import process." msgstr "Intégration de {} dans notre processus d'import." -#: agenda_culturel/views.py:1174 +#: agenda_culturel/views.py:1193 msgid "Your message has been sent successfully." msgstr "Votre message a été envoyé avec succès." -#: agenda_culturel/views.py:1207 +#: agenda_culturel/views.py:1226 msgid "Reporting the event {} on {}" msgstr "Signaler l'événement {} du {}" -#: agenda_culturel/views.py:1217 +#: agenda_culturel/views.py:1236 msgid "The contact message has been successfully deleted." msgstr "Le message de contact a été supprimé avec succès." -#: agenda_culturel/views.py:1233 +#: agenda_culturel/views.py:1252 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:1411 +#: agenda_culturel/views.py:1430 msgid "Spam has been successfully deleted." msgstr "Le spam a été supprimé avec succès" -#: agenda_culturel/views.py:1588 +#: agenda_culturel/views.py:1607 msgid "The import has been run successfully." msgstr "L'import a été lancé avec succès" -#: agenda_culturel/views.py:1610 +#: agenda_culturel/views.py:1629 msgid "The import has been canceled." msgstr "L'import a été annulé" -#: agenda_culturel/views.py:1633 +#: agenda_culturel/views.py:1652 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:1729 +#: agenda_culturel/views.py:1748 msgid "The recurrent import has been successfully modified." msgstr "L'import récurrent a été modifié avec succès." -#: agenda_culturel/views.py:1741 +#: agenda_culturel/views.py:1760 msgid "The recurrent import has been successfully deleted." msgstr "L'import récurrent a été supprimé avec succès" -#: agenda_culturel/views.py:1787 +#: agenda_culturel/views.py:1806 msgid "The import has been launched." msgstr "L'import a été lancé" -#: agenda_culturel/views.py:1814 +#: agenda_culturel/views.py:1833 msgid "Imports has been launched." msgstr "Les imports ont été lancés" -#: agenda_culturel/views.py:1836 +#: agenda_culturel/views.py:1855 msgid "Facebook imports has been launched." msgstr "Les imports Facebook ont été lancés" -#: agenda_culturel/views.py:1899 +#: agenda_culturel/views.py:1918 msgid "Update successfully completed." msgstr "Mise à jour réalisée avec succès." -#: agenda_culturel/views.py:1967 +#: agenda_culturel/views.py:1986 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:2004 +#: agenda_culturel/views.py:2023 msgid "Events have been marked as unduplicated." msgstr "Les événements ont été marqués comme non dupliqués." -#: agenda_culturel/views.py:2021 agenda_culturel/views.py:2038 -#: agenda_culturel/views.py:2066 +#: agenda_culturel/views.py:2040 agenda_culturel/views.py:2057 +#: agenda_culturel/views.py:2085 msgid "" "The selected item is no longer included in the list of duplicates. Someone " "else has probably modified the list in the meantime." @@ -1485,23 +1509,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:2028 +#: agenda_culturel/views.py:2047 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:2052 +#: agenda_culturel/views.py:2071 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:2102 +#: agenda_culturel/views.py:2121 msgid "Cleaning up duplicates: {} item(s) fixed." msgstr "Nettoyage des dupliqués: {} élément(s) corrigé(s)." -#: agenda_culturel/views.py:2151 +#: agenda_culturel/views.py:2170 msgid "The event was successfully duplicated." msgstr "L'événement a été marqué dupliqué avec succès." -#: agenda_culturel/views.py:2159 +#: agenda_culturel/views.py:2178 msgid "" "The event has been successfully flagged as a duplicate. The moderation team " "will deal with your suggestion shortly." @@ -1509,32 +1533,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:2221 +#: agenda_culturel/views.py:2240 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:2233 +#: agenda_culturel/views.py:2252 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:2255 +#: agenda_culturel/views.py:2274 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:2262 +#: agenda_culturel/views.py:2281 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:2269 agenda_culturel/views.py:2333 +#: agenda_culturel/views.py:2288 agenda_culturel/views.py:2352 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:2319 +#: agenda_culturel/views.py:2338 msgid "" "The rules were successfully applied and 1 event with default category was " "categorised." @@ -1542,7 +1566,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:2326 +#: agenda_culturel/views.py:2345 msgid "" "The rules were successfully applied and {} events with default category were " "categorised." @@ -1550,58 +1574,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:2432 agenda_culturel/views.py:2494 -#: agenda_culturel/views.py:2534 +#: agenda_culturel/views.py:2451 agenda_culturel/views.py:2513 +#: agenda_culturel/views.py:2553 msgid "{} events have been updated." msgstr "{} événements ont été mis à jour." -#: agenda_culturel/views.py:2435 agenda_culturel/views.py:2496 -#: agenda_culturel/views.py:2537 +#: agenda_culturel/views.py:2454 agenda_culturel/views.py:2515 +#: agenda_culturel/views.py:2556 msgid "1 event has been updated." msgstr "1 événement a été mis à jour" -#: agenda_culturel/views.py:2437 agenda_culturel/views.py:2498 -#: agenda_culturel/views.py:2539 +#: agenda_culturel/views.py:2456 agenda_culturel/views.py:2517 +#: agenda_culturel/views.py:2558 msgid "No events have been modified." msgstr "Aucun événement n'a été modifié." -#: agenda_culturel/views.py:2446 +#: agenda_culturel/views.py:2465 msgid "The place has been successfully updated." msgstr "Le lieu a été modifié avec succès." -#: agenda_culturel/views.py:2455 +#: agenda_culturel/views.py:2474 msgid "The place has been successfully created." msgstr "Le lieu a été créé avec succès." -#: agenda_culturel/views.py:2521 +#: agenda_culturel/views.py:2540 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:2526 +#: agenda_culturel/views.py:2545 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:2653 +#: agenda_culturel/views.py:2672 msgid "The organisation has been successfully updated." msgstr "L'organisme a été modifié avec succès." -#: agenda_culturel/views.py:2660 +#: agenda_culturel/views.py:2679 msgid "The organisation has been successfully created." msgstr "L'organisme a été créé avec succès." -#: agenda_culturel/views.py:2679 +#: agenda_culturel/views.py:2698 msgid "The tag has been successfully updated." msgstr "L'étiquette a été modifiée avec succès." -#: agenda_culturel/views.py:2686 +#: agenda_culturel/views.py:2705 msgid "The tag has been successfully created." msgstr "L'étiquette a été créée avec succès." -#: agenda_culturel/views.py:2852 +#: agenda_culturel/views.py:2871 msgid "You have not modified the tag name." msgstr "Vous n'avez pas modifié le nom de l'étiquette." -#: agenda_culturel/views.py:2867 +#: agenda_culturel/views.py:2886 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 " @@ -1614,7 +1638,7 @@ msgstr "" "sera supprimée, et tous les événements associés à l'étiquette {} seront " "associés à l'étiquette {}." -#: agenda_culturel/views.py:2881 +#: agenda_culturel/views.py:2900 msgid "" "This tag {} is already in use. You can force renaming by checking the " "corresponding option." @@ -1622,19 +1646,19 @@ msgstr "" "Cette étiquette {} est déjà utilisée. Vous pouvez forcer le renommage en " "cochant l'option correspondante." -#: agenda_culturel/views.py:2914 +#: agenda_culturel/views.py:2933 msgid "The tag {} has been successfully renamed to {}." msgstr "L'étiquette {} a été renommée avec succès en {}." -#: agenda_culturel/views.py:2956 +#: agenda_culturel/views.py:2975 msgid "The tag {} has been successfully deleted." msgstr "L'événement {} a été supprimé avec succès." -#: agenda_culturel/views.py:2982 +#: agenda_culturel/views.py:3001 msgid "Cache successfully cleared." msgstr "Le cache a été vidé avec succès." -#: agenda_culturel/views.py:2996 +#: agenda_culturel/views.py:3016 msgid "Your user profile has been successfully modified." msgstr "Votre profil utilisateur a été modifié avec succès." diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index 64bbb86..24aa296 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -25,7 +25,7 @@ from django.core.files.storage import default_storage from django.core.mail import send_mail from django.db import connection, models from django.db.models import Count, F, Func, OuterRef, Q, Subquery -from django.db.models.functions import Lower +from django.db.models.functions import Lower, ExtractDay from django.template.defaultfilters import date as _date from django.template.defaultfilters import slugify from django.template.loader import render_to_string @@ -2728,6 +2728,27 @@ class RecurrentImport(models.Model): else: return None + def get_foresight_quality(self): + from statistics import median, mean, stdev + + values = [ + x["foresight"] + for x in Event.objects.filter(import_sources__contains=[self.source]) + .annotate(foresight=ExtractDay(F("start_day") - F("created_date"))) + .values("foresight") + ] + if len(values) == 0: + return [] + result = [ + [_("minimum"), min(values)], + [_("maximum"), max(values)], + [_("mean"), round(mean(values), 2)], + [_("median"), median(values)], + ] + if len(values) > 2: + result.append([_("standard deviation"), round(stdev(values), 2)]) + return result + class BatchImportation(models.Model): class STATUS(models.TextChoices): diff --git a/src/agenda_culturel/templates/agenda_culturel/page-rimport.html b/src/agenda_culturel/templates/agenda_culturel/page-rimport.html index 0b01b68..2c5b021 100644 --- a/src/agenda_culturel/templates/agenda_culturel/page-rimport.html +++ b/src/agenda_culturel/templates/agenda_culturel/page-rimport.html @@ -5,9 +5,11 @@ {% load cat_extra %} {% load i18n %} {% load utils_extra %} +{% load static %} {% load tag_extra %} {% block entete_header %} {% css_categories %} + {% endblock %} {% block sidemenu-bouton %}
  • @@ -83,6 +85,28 @@
  • + {% with object.get_foresight_quality as stat %} + {% if stat|length > 0 %} +

    Qualité de l'anticipation

    +

    + On s'intéresse à la différence entre la date de publication d'un événement et la date effective de l'événement. Plus le nombre de jours qui les sépare est élevé, plus + la source anticipe ses événements, et peut être considérée comme une source fiable. +

    + + + + {% for v in stat %}{% endfor %} + + + + + {% for v in stat %}{% endfor %} + + +
    {{ v.0 }}
    Nb jours{{ v.1 }}
    + {% endif %} + {% endwith %} +

    Liste des imports

    {% include "agenda_culturel/batch-imports-inc.html" with objects=paginator_filter %}