diff --git a/README.md b/README.md index 1be1f1f..5e36b7d 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ On peut aussi peupler les positions de référence qui serviront aux recherches * ```make create-reference-locations``` -Une fois l'installation réussie, la configuration du site est possible en allant modifier l'objet "Configuration du site" dans l'administration de django. +Une fois l'installation réussie, la configuration du site est possible en allant modifier l'objet "Configuration du site" (```siteconfiguration```) dans l'administration de django. Il est également nécessaire (pas encore d'unification des deux facettes) de configurer un site (```Site```) en choisissant un nom et une url (nécessaire notamment pour le sitemap). ## Utilisation d'un proxy socket diff --git a/src/agenda_culturel/celery.py b/src/agenda_culturel/celery.py index 520c697..258352d 100644 --- a/src/agenda_culturel/celery.py +++ b/src/agenda_culturel/celery.py @@ -338,8 +338,10 @@ SCREENSHOT_FILE = settings.MEDIA_ROOT + "/screenshot.png" @app.task(bind=True) def screenshot(self): + from agenda_culturel.models import SiteConfiguration + downloader = ChromiumHeadlessDownloader(noimage=False) - downloader.screenshot("https://pommesdelune.fr", SCREENSHOT_FILE) + downloader.screenshot(SiteConfiguration.get_solo().site_url, SCREENSHOT_FILE) @worker_ready.connect diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index fc354c8..881428b 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-04-02 19:41+0200\n" +"POT-Creation-Date: 2025-04-02 21:35+0200\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:839 -#: agenda_culturel/models.py:2947 +#: agenda_culturel/filters.py:470 agenda_culturel/models.py:867 +#: agenda_culturel/models.py:2982 msgid "Status" msgstr "Status" -#: agenda_culturel/filters.py:471 agenda_culturel/models.py:2712 +#: agenda_culturel/filters.py:471 agenda_culturel/models.py:2747 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:2706 +#: agenda_culturel/models.py:2741 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:2727 +#: agenda_culturel/filters.py:481 agenda_culturel/models.py:2762 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:2694 +#: agenda_culturel/forms.py:166 agenda_culturel/models.py:2729 msgid "Your email address" msgstr "Votre adresse email" -#: agenda_culturel/forms.py:172 agenda_culturel/models.py:2719 +#: agenda_culturel/forms.py:172 agenda_culturel/models.py:2754 msgid "Comments" msgstr "Commentaires" @@ -214,20 +214,20 @@ msgstr "" 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:280 -#: agenda_culturel/models.py:847 agenda_culturel/models.py:2871 -#: agenda_culturel/models.py:2982 +#: agenda_culturel/forms.py:206 agenda_culturel/models.py:308 +#: agenda_culturel/models.py:875 agenda_culturel/models.py:2906 +#: agenda_culturel/models.py:3017 msgid "Category" msgstr "Catégorie" #: agenda_culturel/forms.py:212 agenda_culturel/forms.py:245 #: agenda_culturel/forms.py:288 agenda_culturel/forms.py:472 -#: agenda_culturel/models.py:333 agenda_culturel/models.py:964 +#: agenda_culturel/models.py:361 agenda_culturel/models.py:992 msgid "Tags" msgstr "Étiquettes" #: agenda_culturel/forms.py:220 agenda_culturel/forms.py:637 -#: agenda_culturel/models.py:1094 +#: agenda_culturel/models.py:1122 msgid "Event" msgstr "Événement" @@ -266,13 +266,13 @@ msgstr "Cet événement est récurrent" msgid "Details" msgstr "Détails" -#: agenda_culturel/forms.py:378 agenda_culturel/models.py:876 -#: agenda_culturel/models.py:2846 +#: agenda_culturel/forms.py:378 agenda_culturel/models.py:904 +#: agenda_culturel/models.py:2881 msgid "Location" msgstr "Localisation" -#: agenda_culturel/forms.py:383 agenda_culturel/models.py:86 -#: agenda_culturel/models.py:920 +#: agenda_culturel/forms.py:383 agenda_culturel/models.py:106 +#: agenda_culturel/models.py:948 msgid "Illustration" msgstr "Illustration" @@ -346,8 +346,8 @@ msgstr "Valeur de la version sélectionnée" msgid "Apply category {} to the event {}" msgstr "Appliquer la catégorie {} à l'événement {}" -#: agenda_culturel/forms.py:863 agenda_culturel/models.py:664 -#: agenda_culturel/models.py:3034 +#: agenda_culturel/forms.py:863 agenda_culturel/models.py:692 +#: agenda_culturel/models.py:3069 msgid "Place" msgstr "Lieu" @@ -369,7 +369,7 @@ msgstr "" msgid "Header" msgstr "Entête" -#: agenda_culturel/forms.py:920 agenda_culturel/models.py:626 +#: agenda_culturel/forms.py:920 agenda_culturel/models.py:654 msgid "Address" msgstr "Adresse" @@ -414,63 +414,67 @@ 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:62 +#: agenda_culturel/models.py:64 msgid "mean" msgstr "moyenne" -#: agenda_culturel/models.py:62 +#: agenda_culturel/models.py:64 msgid "median" msgstr "médiane" -#: agenda_culturel/models.py:62 +#: agenda_culturel/models.py:64 msgid "maximum" msgstr "maximum" -#: agenda_culturel/models.py:62 +#: agenda_culturel/models.py:64 msgid "minimum" msgstr "minimum" -#: agenda_culturel/models.py:62 +#: agenda_culturel/models.py:64 msgid "stdev" msgstr "écart-type" -#: agenda_culturel/models.py:66 +#: agenda_culturel/models.py:69 msgid "Site name" msgstr "Nom du site" -#: agenda_culturel/models.py:69 +#: agenda_culturel/models.py:72 +msgid "Site url" +msgstr "URL du site" + +#: agenda_culturel/models.py:75 msgid "Site description" msgstr "Description du site" -#: agenda_culturel/models.py:73 +#: agenda_culturel/models.py:81 msgid "Keywords in html header" msgstr "Mots-clés dans l'entête html" -#: agenda_culturel/models.py:76 +#: agenda_culturel/models.py:86 msgid "Description in html header" msgstr "Description dans l'entête html" -#: agenda_culturel/models.py:79 +#: agenda_culturel/models.py:91 msgid "Google site verification value" msgstr "Valeur de vérification de site Google" -#: agenda_culturel/models.py:82 +#: agenda_culturel/models.py:98 msgid "Microsoft (bing) site verification value" msgstr "Valeur de vérification de site Microsoft (bing)" -#: agenda_culturel/models.py:92 +#: agenda_culturel/models.py:112 msgid "Illustration (development version)" msgstr "Illustration (version de développement)" -#: agenda_culturel/models.py:117 agenda_culturel/models.py:120 +#: agenda_culturel/models.py:145 agenda_culturel/models.py:148 msgid "Site Configuration" msgstr "Configuration du site" -#: agenda_culturel/models.py:131 +#: agenda_culturel/models.py:159 msgid "Expert moderation user" msgstr "Utilisateur expert en modération" -#: agenda_culturel/models.py:133 +#: agenda_culturel/models.py:161 msgid "" "This user is an expert in moderation, and the interface features additional " "functionalities." @@ -478,102 +482,102 @@ msgstr "" "Cet utilisateur est un expert en modération, et l'interface comporte des " "fonctionnalités additionnelles." -#: agenda_culturel/models.py:139 agenda_culturel/models.py:143 +#: agenda_culturel/models.py:167 agenda_culturel/models.py:171 msgid "User profile" msgstr "" -#: agenda_culturel/models.py:140 +#: agenda_culturel/models.py:168 msgid "User profiles" msgstr "" -#: agenda_culturel/models.py:163 agenda_culturel/models.py:210 -#: agenda_culturel/models.py:289 agenda_culturel/models.py:583 -#: agenda_culturel/models.py:624 agenda_culturel/models.py:730 -#: agenda_culturel/models.py:2686 agenda_culturel/models.py:2796 +#: agenda_culturel/models.py:191 agenda_culturel/models.py:238 +#: agenda_culturel/models.py:317 agenda_culturel/models.py:611 +#: agenda_culturel/models.py:652 agenda_culturel/models.py:758 +#: agenda_culturel/models.py:2721 agenda_culturel/models.py:2831 msgid "Name" msgstr "Nom" -#: agenda_culturel/models.py:164 agenda_culturel/models.py:210 +#: agenda_culturel/models.py:192 agenda_culturel/models.py:238 msgid "Category name" msgstr "Nom de la catégorie" -#: agenda_culturel/models.py:169 +#: agenda_culturel/models.py:197 msgid "Content" msgstr "Contenu" -#: agenda_culturel/models.py:170 +#: agenda_culturel/models.py:198 msgid "Text as shown to the visitors" msgstr "Texte tel que présenté aux visiteureuses" -#: agenda_culturel/models.py:174 +#: agenda_culturel/models.py:202 msgid "URL path" msgstr "Chemin URL" -#: agenda_culturel/models.py:175 +#: agenda_culturel/models.py:203 msgid "URL path where the content is included." msgstr "Chemin URL où le contenu est présent." -#: agenda_culturel/models.py:179 +#: agenda_culturel/models.py:207 msgid "Static content" msgstr "Contenu statique" -#: agenda_culturel/models.py:180 +#: agenda_culturel/models.py:208 msgid "Static contents" msgstr "Contenus statiques" -#: agenda_culturel/models.py:216 +#: agenda_culturel/models.py:244 msgid "Color" msgstr "Couleur" -#: agenda_culturel/models.py:217 +#: agenda_culturel/models.py:245 msgid "Color used as background for the category" msgstr "Couleur utilisée comme fond de la catégorie" -#: agenda_culturel/models.py:223 +#: agenda_culturel/models.py:251 msgid "Pictogram" msgstr "Pictogramme" -#: agenda_culturel/models.py:224 +#: agenda_culturel/models.py:252 msgid "Pictogram of the category (svg format)" msgstr "Pictogramme de la catégorie (format svg)" -#: agenda_culturel/models.py:231 +#: agenda_culturel/models.py:259 msgid "Position for ordering categories" msgstr "Position pour ordonner les catégories" -#: agenda_culturel/models.py:281 +#: agenda_culturel/models.py:309 msgid "Categories" msgstr "Catégories" -#: agenda_culturel/models.py:290 +#: agenda_culturel/models.py:318 msgid "Tag name" msgstr "Nom de l'étiquette" -#: agenda_culturel/models.py:296 agenda_culturel/models.py:647 -#: agenda_culturel/models.py:746 agenda_culturel/models.py:903 +#: agenda_culturel/models.py:324 agenda_culturel/models.py:675 +#: agenda_culturel/models.py:774 agenda_culturel/models.py:931 msgid "Description" msgstr "Description" -#: agenda_culturel/models.py:297 +#: agenda_culturel/models.py:325 msgid "Description of the tag" msgstr "Description de l'étiquette" -#: agenda_culturel/models.py:303 agenda_culturel/models.py:2653 -#: agenda_culturel/models.py:2700 +#: agenda_culturel/models.py:331 agenda_culturel/models.py:2688 +#: agenda_culturel/models.py:2735 msgid "Message" msgstr "Message" -#: agenda_culturel/models.py:305 +#: agenda_culturel/models.py:333 msgid "Message displayed to the user on each event associated with this tag." msgstr "" "Message affiché à l'utilisateur sur chaque événement associé à cette " "étiquette." -#: agenda_culturel/models.py:312 +#: agenda_culturel/models.py:340 msgid "Principal" msgstr "Principal" -#: agenda_culturel/models.py:314 +#: agenda_culturel/models.py:342 msgid "" "This tag is highlighted as a main tag for visitors, particularly in the " "filter." @@ -581,91 +585,91 @@ msgstr "" "Cette étiquette est mise en avant comme étiquette principale pour les " "visiteurs, en particulier dans le filtre." -#: agenda_culturel/models.py:320 +#: agenda_culturel/models.py:348 msgid "In excluded suggestions" msgstr "Dans les suggestions d'exclusion" -#: agenda_culturel/models.py:321 +#: agenda_culturel/models.py:349 msgid "This tag will be part of the excluded suggestions." msgstr "Cette étiquette fera partie des suggestions d'exclusion." -#: agenda_culturel/models.py:326 +#: agenda_culturel/models.py:354 msgid "In included suggestions" msgstr "Dans les suggestions d'inclusion." -#: agenda_culturel/models.py:327 +#: agenda_culturel/models.py:355 msgid "This tag will be part of the included suggestions." msgstr "Cette étiquette fera partie des suggestions d'inclusion." -#: agenda_culturel/models.py:332 +#: agenda_culturel/models.py:360 msgid "Tag" msgstr "Étiquette" -#: agenda_culturel/models.py:421 +#: agenda_culturel/models.py:449 msgid "Suggestions" msgstr "Suggestions" -#: agenda_culturel/models.py:422 +#: agenda_culturel/models.py:450 msgid "Others" msgstr "Autres" -#: agenda_culturel/models.py:435 +#: agenda_culturel/models.py:463 msgid "Representative event" msgstr "Événement représentatif" -#: agenda_culturel/models.py:437 +#: agenda_culturel/models.py:465 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:445 agenda_culturel/models.py:446 +#: agenda_culturel/models.py:473 agenda_culturel/models.py:474 msgid "Duplicated events" msgstr "Événements dupliqués" -#: agenda_culturel/models.py:584 +#: agenda_culturel/models.py:612 msgid "Name of the location" msgstr "Nom de la position" -#: agenda_culturel/models.py:595 +#: agenda_culturel/models.py:623 msgid "Main" msgstr "Principale" -#: agenda_culturel/models.py:597 +#: agenda_culturel/models.py:625 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:602 +#: agenda_culturel/models.py:630 msgid "Suggested distance (km)" msgstr "" -#: agenda_culturel/models.py:604 +#: agenda_culturel/models.py:632 msgid "" "If this distance is given, this location is part of the suggested filters." msgstr "" -#: agenda_culturel/models.py:613 +#: agenda_culturel/models.py:641 msgid "Reference location" msgstr "Position de référence" -#: agenda_culturel/models.py:614 +#: agenda_culturel/models.py:642 msgid "Reference locations" msgstr "Positions de référence" -#: agenda_culturel/models.py:624 +#: agenda_culturel/models.py:652 msgid "Name of the place" msgstr "Nom du lieu" -#: agenda_culturel/models.py:627 +#: agenda_culturel/models.py:655 msgid "Address of this place (without city name)" msgstr "Adresse de ce lieu (sans le nom de la ville)" -#: agenda_culturel/models.py:632 +#: agenda_culturel/models.py:660 msgid "Postcode" msgstr "Code postal" -#: agenda_culturel/models.py:634 +#: agenda_culturel/models.py:662 msgid "" "The post code is not displayed, but makes it easier to find an address when " "you enter it." @@ -673,23 +677,23 @@ msgstr "" "Le code postal ne sera pas affiché, mais facilite la recherche d'adresse au " "moment de la saisie." -#: agenda_culturel/models.py:639 +#: agenda_culturel/models.py:667 msgid "City" msgstr "Ville" -#: agenda_culturel/models.py:639 +#: agenda_culturel/models.py:667 msgid "City name" msgstr "Nom de la ville" -#: agenda_culturel/models.py:648 +#: agenda_culturel/models.py:676 msgid "Description of the place, including accessibility." msgstr "Description du lieu, inclus l'accessibilité." -#: agenda_culturel/models.py:655 +#: agenda_culturel/models.py:683 msgid "Alternative names" msgstr "Noms alternatifs" -#: agenda_culturel/models.py:657 +#: agenda_culturel/models.py:685 msgid "" "Alternative names or addresses used to match a place with the free-form " "location of an event." @@ -697,31 +701,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:665 +#: agenda_culturel/models.py:693 msgid "Places" msgstr "Lieux" -#: agenda_culturel/models.py:731 +#: agenda_culturel/models.py:759 msgid "Organisation name" msgstr "Nom de l'organisme" -#: agenda_culturel/models.py:738 +#: agenda_culturel/models.py:766 msgid "Website" msgstr "Site internet" -#: agenda_culturel/models.py:739 +#: agenda_culturel/models.py:767 msgid "Website of the organisation" msgstr "Site internet de l'organisme" -#: agenda_culturel/models.py:747 +#: agenda_culturel/models.py:775 msgid "Description of the organisation." msgstr "Description de l'organisme" -#: agenda_culturel/models.py:754 +#: agenda_culturel/models.py:782 msgid "Principal place" msgstr "Lieu principal" -#: agenda_culturel/models.py:756 +#: agenda_culturel/models.py:784 msgid "" "Place mainly associated with this organizer. Mainly used if there is a " "similarity in the name, to avoid redundant displays." @@ -729,75 +733,75 @@ 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:764 +#: agenda_culturel/models.py:792 msgid "Organisation" msgstr "Organisme" -#: agenda_culturel/models.py:765 +#: agenda_culturel/models.py:793 msgid "Organisations" msgstr "Organismes" -#: agenda_culturel/models.py:776 agenda_culturel/models.py:2841 +#: agenda_culturel/models.py:804 agenda_culturel/models.py:2876 msgid "Published" msgstr "Publié" -#: agenda_culturel/models.py:777 +#: agenda_culturel/models.py:805 msgid "Draft" msgstr "Brouillon" -#: agenda_culturel/models.py:778 +#: agenda_culturel/models.py:806 msgid "Trash" msgstr "Corbeille" -#: agenda_culturel/models.py:788 +#: agenda_culturel/models.py:816 msgid "Author currently editing/moderating the event" msgstr "" -#: agenda_culturel/models.py:798 +#: agenda_culturel/models.py:826 msgid "Author of the event creation" msgstr "Auteur de la création de l'événement" -#: agenda_culturel/models.py:807 +#: agenda_culturel/models.py:835 msgid "Author of the last importation" msgstr "Auteur de la dernière importation" -#: agenda_culturel/models.py:816 +#: agenda_culturel/models.py:844 msgid "Author of the last modification" msgstr "Auteur de la dernière modification" -#: agenda_culturel/models.py:825 +#: agenda_culturel/models.py:853 msgid "Author of the last moderation" msgstr "Auteur de la dernière modération" -#: agenda_culturel/models.py:836 +#: agenda_culturel/models.py:864 msgid "Title" msgstr "Titre" -#: agenda_culturel/models.py:853 +#: agenda_culturel/models.py:881 msgid "Start day" msgstr "Date de début" -#: agenda_culturel/models.py:855 +#: agenda_culturel/models.py:883 msgid "Start time" msgstr "Heure de début" -#: agenda_culturel/models.py:861 +#: agenda_culturel/models.py:889 msgid "End day" msgstr "Date de fin" -#: agenda_culturel/models.py:865 +#: agenda_culturel/models.py:893 msgid "End time" msgstr "Heure de fin" -#: agenda_culturel/models.py:868 +#: agenda_culturel/models.py:896 msgid "Recurrence" msgstr "Récurrence" -#: agenda_culturel/models.py:882 +#: agenda_culturel/models.py:910 msgid "Location (free form)" msgstr "Localisation (forme libre)" -#: agenda_culturel/models.py:884 +#: agenda_culturel/models.py:912 msgid "" "Address of the event in case its not available in the already known places " "(free form)" @@ -805,11 +809,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:893 +#: agenda_culturel/models.py:921 msgid "Local event" msgstr "Événement de portée locale" -#: agenda_culturel/models.py:895 +#: agenda_culturel/models.py:923 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 " @@ -819,11 +823,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:911 +#: agenda_culturel/models.py:939 msgid "Organisers" msgstr "Organisateurs" -#: agenda_culturel/models.py:913 +#: agenda_culturel/models.py:941 msgid "" "list of event organisers. Organizers will only be displayed if one of them " "does not normally use the venue." @@ -831,112 +835,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:927 +#: agenda_culturel/models.py:955 msgid "Illustration (URL)" msgstr "Illustration (URL)" -#: agenda_culturel/models.py:928 +#: agenda_culturel/models.py:956 msgid "External URL of the illustration image" msgstr "URL externe de l'image illustrative" -#: agenda_culturel/models.py:934 +#: agenda_culturel/models.py:962 msgid "Illustration description" msgstr "Description de l'illustration" -#: agenda_culturel/models.py:935 +#: agenda_culturel/models.py:963 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:943 +#: agenda_culturel/models.py:971 msgid "Importation source" msgstr "Source d'importation" -#: agenda_culturel/models.py:944 +#: agenda_culturel/models.py:972 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:950 +#: agenda_culturel/models.py:978 msgid "UUIDs" msgstr "UUIDs" -#: agenda_culturel/models.py:951 +#: agenda_culturel/models.py:979 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:957 +#: agenda_culturel/models.py:985 msgid "Online sources or ticketing" msgstr "Sources en ligne ou billetterie" -#: agenda_culturel/models.py:971 +#: agenda_culturel/models.py:999 msgid "Other versions" msgstr "" -#: agenda_culturel/models.py:1095 +#: agenda_culturel/models.py:1123 msgid "Events" msgstr "Événements" -#: agenda_culturel/models.py:1256 +#: agenda_culturel/models.py:1284 msgid "recurrent import" msgstr "import récurrent" -#: agenda_culturel/models.py:1258 +#: agenda_culturel/models.py:1286 msgid "a non authenticated user" msgstr "un utilisateur non connecté" -#: agenda_culturel/models.py:1741 +#: agenda_culturel/models.py:1769 msgid "Your event has been published" msgstr "Ton événement a été publié" -#: agenda_culturel/models.py:1746 +#: agenda_culturel/models.py:1774 msgid "Your message has not been retained" msgstr "Ton événement n'a pas été retenu" -#: agenda_culturel/models.py:1834 agenda_culturel/models.py:2650 +#: agenda_culturel/models.py:1862 agenda_culturel/models.py:2685 msgid "Warning" msgstr "Warning" -#: agenda_culturel/models.py:1836 agenda_culturel/models.py:1942 +#: agenda_culturel/models.py:1864 agenda_culturel/models.py:1970 msgid "the date has not been imported correctly." msgstr "la date n'a pas été importée correctement." -#: agenda_culturel/models.py:1924 +#: agenda_culturel/models.py:1952 msgid "during import process" msgstr "pendant le processus d'import" -#: agenda_culturel/models.py:1940 agenda_culturel/models.py:1950 -#: agenda_culturel/models.py:1961 +#: agenda_culturel/models.py:1968 agenda_culturel/models.py:1978 +#: agenda_culturel/models.py:1989 msgid "warning" msgstr "attention" -#: agenda_culturel/models.py:1952 +#: agenda_culturel/models.py:1980 msgid "the title has not been imported correctly." msgstr "le titre n'a pas été importé correctement." -#: agenda_culturel/models.py:1964 +#: agenda_culturel/models.py:1992 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:2312 +#: agenda_culturel/models.py:2340 msgid "Updated field(s): " msgstr "Champ(s) mis à jour: " -#: agenda_culturel/models.py:2316 +#: agenda_culturel/models.py:2344 msgid "Update" msgstr "Mise à jour" -#: agenda_culturel/models.py:2317 +#: agenda_culturel/models.py:2345 msgid "update process" msgstr "processus de mise à jour" -#: agenda_culturel/models.py:2386 +#: agenda_culturel/models.py:2414 msgid "Import" msgstr "Import" -#: agenda_culturel/models.py:2387 +#: agenda_culturel/models.py:2415 msgid "import process" msgstr "processus d'import" -#: agenda_culturel/models.py:2389 +#: agenda_culturel/models.py:2417 msgid "" "The duration of the event is a little too long for direct publication. " "Moderators can choose to publish it or not." @@ -944,191 +948,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:2641 +#: agenda_culturel/models.py:2676 msgid "From contributor" msgstr "D'un·e contributeurice" -#: agenda_culturel/models.py:2642 +#: agenda_culturel/models.py:2677 msgid "Import process" msgstr "Processus d'import" -#: agenda_culturel/models.py:2643 +#: agenda_culturel/models.py:2678 msgid "Update process" msgstr "Processus de mise à jour" -#: agenda_culturel/models.py:2644 +#: agenda_culturel/models.py:2679 msgid "Contact form" msgstr "Formulaire de contact" -#: agenda_culturel/models.py:2645 +#: agenda_culturel/models.py:2680 msgid "Event report" msgstr "Signalemet d'événement" -#: agenda_culturel/models.py:2648 +#: agenda_culturel/models.py:2683 msgid "From contributor (without message)" msgstr "D'un·e contributeurice (sans message)" -#: agenda_culturel/models.py:2654 +#: agenda_culturel/models.py:2689 msgid "Messages" msgstr "Messages" -#: agenda_culturel/models.py:2663 +#: agenda_culturel/models.py:2698 msgid "Subject" msgstr "Sujet" -#: agenda_culturel/models.py:2664 +#: agenda_culturel/models.py:2699 msgid "The subject of your message" msgstr "Sujet de votre message" -#: agenda_culturel/models.py:2670 +#: agenda_culturel/models.py:2705 msgid "Related event" msgstr "Événement associé" -#: agenda_culturel/models.py:2671 +#: agenda_culturel/models.py:2706 msgid "The message is associated with this event." msgstr "Le message est associé à cet événement." -#: agenda_culturel/models.py:2679 +#: agenda_culturel/models.py:2714 msgid "Author of the message" msgstr "Auteur du message" -#: agenda_culturel/models.py:2687 +#: agenda_culturel/models.py:2722 msgid "Your name" msgstr "Votre nom" -#: agenda_culturel/models.py:2693 +#: agenda_culturel/models.py:2728 msgid "Email address" msgstr "Adresse email" -#: agenda_culturel/models.py:2700 +#: agenda_culturel/models.py:2735 msgid "Your message" msgstr "Votre message" -#: agenda_culturel/models.py:2707 +#: agenda_culturel/models.py:2742 msgid "This message is a spam." msgstr "Ce message est un spam." -#: agenda_culturel/models.py:2714 +#: agenda_culturel/models.py:2749 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:2720 +#: agenda_culturel/models.py:2755 msgid "Comments on the message from the moderation team" msgstr "Commentaires sur ce message par l'équipe de modération" -#: agenda_culturel/models.py:2753 agenda_culturel/models.py:2929 +#: agenda_culturel/models.py:2788 agenda_culturel/models.py:2964 msgid "Recurrent import" msgstr "Import récurrent" -#: agenda_culturel/models.py:2754 +#: agenda_culturel/models.py:2789 msgid "Recurrent imports" msgstr "Imports récurrents" -#: agenda_culturel/models.py:2758 +#: agenda_culturel/models.py:2793 msgid "ical" msgstr "ical" -#: agenda_culturel/models.py:2759 +#: agenda_culturel/models.py:2794 msgid "ical no busy" msgstr "ical sans busy" -#: agenda_culturel/models.py:2760 +#: agenda_culturel/models.py:2795 msgid "ical no VC" msgstr "ical sans VC" -#: agenda_culturel/models.py:2761 +#: agenda_culturel/models.py:2796 msgid "ical naive timezone" msgstr "ical timezone naïve" -#: agenda_culturel/models.py:2762 +#: agenda_culturel/models.py:2797 msgid "lacoope.org" msgstr "lacoope.org" -#: agenda_culturel/models.py:2763 +#: agenda_culturel/models.py:2798 msgid "la comédie" msgstr "la comédie" -#: agenda_culturel/models.py:2764 +#: agenda_culturel/models.py:2799 msgid "le fotomat" msgstr "le fotomat" -#: agenda_culturel/models.py:2765 +#: agenda_culturel/models.py:2800 msgid "la puce à l'oreille" msgstr "la puce à loreille" -#: agenda_culturel/models.py:2766 +#: agenda_culturel/models.py:2801 msgid "Plugin wordpress MEC" msgstr "Plugin wordpress MEC" -#: agenda_culturel/models.py:2767 +#: agenda_culturel/models.py:2802 msgid "Événements d'une page FB" msgstr "Événements d'une page FB" -#: agenda_culturel/models.py:2768 +#: agenda_culturel/models.py:2803 msgid "Billetterie Clermont-Ferrand" msgstr "" -#: agenda_culturel/models.py:2769 +#: agenda_culturel/models.py:2804 msgid "Arachnée concert" msgstr "Arachnée concert" -#: agenda_culturel/models.py:2770 +#: agenda_culturel/models.py:2805 msgid "Le Rio" msgstr "Le Rio" -#: agenda_culturel/models.py:2771 +#: agenda_culturel/models.py:2806 msgid "La Raymonde" msgstr "La Raymone" -#: agenda_culturel/models.py:2772 +#: agenda_culturel/models.py:2807 msgid "Agenda apidae tourisme" msgstr "Agenda apidae tourisme" -#: agenda_culturel/models.py:2773 +#: agenda_culturel/models.py:2808 msgid "Agenda iguana (médiathèques)" msgstr "Agenda iguana (médiathèques)" -#: agenda_culturel/models.py:2774 +#: agenda_culturel/models.py:2809 msgid "Mille formes" msgstr "Mille Formes" -#: agenda_culturel/models.py:2775 +#: agenda_culturel/models.py:2810 msgid "Les Amis du Temps des Cerises" msgstr "Les Amis du Temps des Cerises" -#: agenda_culturel/models.py:2776 +#: agenda_culturel/models.py:2811 msgid "Mobilizon" msgstr "Mobilizon" -#: agenda_culturel/models.py:2777 +#: agenda_culturel/models.py:2812 msgid "Le caméléon" msgstr "" -#: agenda_culturel/models.py:2780 +#: agenda_culturel/models.py:2815 msgid "simple" msgstr "simple" -#: agenda_culturel/models.py:2781 +#: agenda_culturel/models.py:2816 msgid "Headless Chromium" msgstr "chromium sans interface" -#: agenda_culturel/models.py:2784 +#: agenda_culturel/models.py:2819 msgid "Headless Chromium (pause)" msgstr "chromium sans interface (pause)" -#: agenda_culturel/models.py:2790 +#: agenda_culturel/models.py:2825 msgid "daily" msgstr "chaque jour" -#: agenda_culturel/models.py:2792 +#: agenda_culturel/models.py:2827 msgid "weekly" msgstr "chaque semaine" -#: agenda_culturel/models.py:2793 +#: agenda_culturel/models.py:2828 msgid "never" msgstr "jamais" -#: agenda_culturel/models.py:2798 +#: agenda_culturel/models.py:2833 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." @@ -1136,151 +1140,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:2805 +#: agenda_culturel/models.py:2840 msgid "Processor" msgstr "Processeur" -#: agenda_culturel/models.py:2811 +#: agenda_culturel/models.py:2846 msgid "Downloader" msgstr "Téléchargeur" -#: agenda_culturel/models.py:2818 +#: agenda_culturel/models.py:2853 msgid "Import recurrence" msgstr "Récurrence d'import" -#: agenda_culturel/models.py:2825 +#: agenda_culturel/models.py:2860 msgid "Source" msgstr "Source" -#: agenda_culturel/models.py:2826 +#: agenda_culturel/models.py:2861 msgid "URL of the source document" msgstr "URL du document source" -#: agenda_culturel/models.py:2831 +#: agenda_culturel/models.py:2866 msgid "Browsable url" msgstr "URL navigable" -#: agenda_culturel/models.py:2833 +#: agenda_culturel/models.py:2868 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:2842 +#: agenda_culturel/models.py:2877 msgid "Status of each imported event (published or draft)" msgstr "Status de chaque événement importé (publié ou brouillon)" -#: agenda_culturel/models.py:2847 +#: agenda_culturel/models.py:2882 msgid "Address for each imported event" msgstr "Adresse de chaque événement importé" -#: agenda_culturel/models.py:2854 +#: agenda_culturel/models.py:2889 msgid "Force location" msgstr "Focer la localisation" -#: agenda_culturel/models.py:2855 +#: agenda_culturel/models.py:2890 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:2861 +#: agenda_culturel/models.py:2896 msgid "Organiser" msgstr "Organisateur" -#: agenda_culturel/models.py:2862 +#: agenda_culturel/models.py:2897 msgid "Organiser of each imported event" msgstr "Organisateur de chaque événement importé" -#: agenda_culturel/models.py:2872 +#: agenda_culturel/models.py:2907 msgid "Category of each imported event" msgstr "Catégorie de chaque événement importé" -#: agenda_culturel/models.py:2880 +#: agenda_culturel/models.py:2915 msgid "Tags for each imported event" msgstr "Étiquettes de chaque événement importé" -#: agenda_culturel/models.py:2881 +#: agenda_culturel/models.py:2916 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:2910 +#: agenda_culturel/models.py:2945 msgid "Running" msgstr "En cours" -#: agenda_culturel/models.py:2911 +#: agenda_culturel/models.py:2946 msgid "Canceled" msgstr "Annulé" -#: agenda_culturel/models.py:2912 +#: agenda_culturel/models.py:2947 msgid "Success" msgstr "Succès" -#: agenda_culturel/models.py:2913 +#: agenda_culturel/models.py:2948 msgid "Failed" msgstr "Erreur" -#: agenda_culturel/models.py:2916 +#: agenda_culturel/models.py:2951 msgid "Batch importation" msgstr "Importation par lot" -#: agenda_culturel/models.py:2917 +#: agenda_culturel/models.py:2952 msgid "Batch importations" msgstr "Importations par lot" -#: agenda_culturel/models.py:2930 +#: agenda_culturel/models.py:2965 msgid "Reference to the recurrent import processing" msgstr "Référence du processus d'import récurrent" -#: agenda_culturel/models.py:2938 +#: agenda_culturel/models.py:2973 msgid "URL (if not recurrent import)" msgstr "URL (si pas d'import récurrent)" -#: agenda_culturel/models.py:2939 +#: agenda_culturel/models.py:2974 msgid "Source URL if no RecurrentImport is associated." msgstr "URL source si aucun import récurrent n'est associé" -#: agenda_culturel/models.py:2954 +#: agenda_culturel/models.py:2989 msgid "Error message" msgstr "Votre message" -#: agenda_culturel/models.py:2958 +#: agenda_culturel/models.py:2993 msgid "Number of collected events" msgstr "Nombre d'événements collectés" -#: agenda_culturel/models.py:2961 +#: agenda_culturel/models.py:2996 msgid "Number of imported events" msgstr "Nombre d'événements importés" -#: agenda_culturel/models.py:2964 +#: agenda_culturel/models.py:2999 msgid "Number of updated events" msgstr "Nombre d'événements mis à jour" -#: agenda_culturel/models.py:2967 +#: agenda_culturel/models.py:3002 msgid "Number of removed events" msgstr "Nombre d'événements supprimés" -#: agenda_culturel/models.py:2975 +#: agenda_culturel/models.py:3010 msgid "Weight" msgstr "Poids" -#: agenda_culturel/models.py:2976 +#: agenda_culturel/models.py:3011 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:2983 +#: agenda_culturel/models.py:3018 msgid "Category applied to the event" msgstr "Catégorie appliquée à l'événement" -#: agenda_culturel/models.py:2988 +#: agenda_culturel/models.py:3023 msgid "Contained in the title" msgstr "Contenu dans le titre" -#: agenda_culturel/models.py:2989 +#: agenda_culturel/models.py:3024 msgid "Text contained in the event title" msgstr "Texte contenu dans le titre de l'événement" -#: agenda_culturel/models.py:2995 +#: agenda_culturel/models.py:3030 msgid "Exact title extract" msgstr "Extrait exact du titre" -#: agenda_culturel/models.py:2997 +#: agenda_culturel/models.py:3032 msgid "" "If checked, the extract will be searched for in the title using the exact " "form (capitals, accents)." @@ -1288,19 +1292,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans le titre en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:3003 +#: agenda_culturel/models.py:3038 msgid "Contained in the description" msgstr "Contenu dans la description" -#: agenda_culturel/models.py:3004 +#: agenda_culturel/models.py:3039 msgid "Text contained in the description" msgstr "Texte contenu dans la description" -#: agenda_culturel/models.py:3010 +#: agenda_culturel/models.py:3045 msgid "Exact description extract" msgstr "Extrait exact de description" -#: agenda_culturel/models.py:3012 +#: agenda_culturel/models.py:3047 msgid "" "If checked, the extract will be searched for in the description using the " "exact form (capitals, accents)." @@ -1308,19 +1312,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans la description en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:3018 +#: agenda_culturel/models.py:3053 msgid "Contained in the location" msgstr "Contenu dans la localisation" -#: agenda_culturel/models.py:3019 +#: agenda_culturel/models.py:3054 msgid "Text contained in the event location" msgstr "Texte contenu dans la localisation de l'événement" -#: agenda_culturel/models.py:3025 +#: agenda_culturel/models.py:3060 msgid "Exact location extract" msgstr "Extrait exact de localisation" -#: agenda_culturel/models.py:3027 +#: agenda_culturel/models.py:3062 msgid "" "If checked, the extract will be searched for in the location using the exact " "form (capitals, accents)." @@ -1328,15 +1332,15 @@ msgstr "" "Si coché, l'extrait sera recherché dans la localisation en utilisant la " "forme exacte (majuscules, accents)" -#: agenda_culturel/models.py:3035 +#: agenda_culturel/models.py:3070 msgid "Location from place" msgstr "Localisation depuis le lieu" -#: agenda_culturel/models.py:3044 +#: agenda_culturel/models.py:3079 msgid "Categorisation rule" msgstr "Règle de catégorisation" -#: agenda_culturel/models.py:3045 +#: agenda_culturel/models.py:3080 msgid "Categorisation rules" msgstr "Règles de catégorisation" diff --git a/src/agenda_culturel/migrations/0162_siteconfiguration_site_url.py b/src/agenda_culturel/migrations/0162_siteconfiguration_site_url.py new file mode 100644 index 0000000..ec85df6 --- /dev/null +++ b/src/agenda_culturel/migrations/0162_siteconfiguration_site_url.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.19 on 2025-04-02 21:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("agenda_culturel", "0161_siteconfiguration"), + ] + + operations = [ + migrations.AddField( + model_name="siteconfiguration", + name="site_url", + field=models.CharField( + default="https://pommesdelune.fr", + max_length=255, + verbose_name="Site url", + ), + ), + ] diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index 7d5c4c6..f1598cb 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -68,6 +68,9 @@ class SiteConfiguration(SingletonModel): site_name = models.CharField( verbose_name=_("Site name"), max_length=255, default="Pommes de lune" ) + site_url = models.CharField( + verbose_name=_("Site url"), max_length=255, default="https://pommesdelune.fr" + ) site_description = models.CharField( verbose_name=_("Site description"), max_length=255, @@ -2538,7 +2541,11 @@ class Event(models.Model): # Some properties are required to be compliant cal.add( "prodid", - "-//" + SiteConfiguration.get_solo().site_name + "//pommesdelune.fr//", + "-//" + + SiteConfiguration.get_solo().site_name + + "//" + + SiteConfiguration.get_solo().site_url + + "//", ) cal.add("version", "2.0")