diff --git a/src/agenda_culturel/forms.py b/src/agenda_culturel/forms.py index f787150..acc858d 100644 --- a/src/agenda_culturel/forms.py +++ b/src/agenda_culturel/forms.py @@ -798,3 +798,13 @@ class MessageForm(ModelForm): if self.internal: self.fields.pop("name") self.fields.pop("email") + +class MessageEventForm(ModelForm): + + class Meta: + model = Message + fields = ["message"] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields["message"].label = _("Add a comment") \ No newline at end of file diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index 0394d28..c872a73 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-12-06 22:38+0100\n" +"POT-Creation-Date: 2024-12-12 00:19+0100\n" "PO-Revision-Date: 2023-10-29 14:16+0000\n" "Last-Translator: Jean-Marie Favreau \n" "Language-Team: Jean-Marie Favreau \n" @@ -17,76 +17,76 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: agenda_culturel/calendar.py:151 +#: agenda_culturel/calendar.py:168 msgid "All day today" msgstr "Aujourd'hui toute la journée" -#: agenda_culturel/calendar.py:152 +#: agenda_culturel/calendar.py:169 msgid "This morning" msgstr "Ce matin" -#: agenda_culturel/calendar.py:152 +#: agenda_culturel/calendar.py:169 msgid "This noon" msgstr "Ce midi" -#: agenda_culturel/calendar.py:152 +#: agenda_culturel/calendar.py:169 msgid "This afternoon" msgstr "Cet après-midi" -#: agenda_culturel/calendar.py:152 +#: agenda_culturel/calendar.py:169 msgid "This evening" msgstr "Ce soir" -#: agenda_culturel/calendar.py:154 +#: agenda_culturel/calendar.py:171 msgid "Tomorrow" msgstr "Demain" -#: agenda_culturel/calendar.py:155 +#: agenda_culturel/calendar.py:172 msgid "All day tomorrow" msgstr "Toute la journée de demain" -#: agenda_culturel/calendar.py:156 agenda_culturel/calendar.py:160 +#: agenda_culturel/calendar.py:173 agenda_culturel/calendar.py:177 #, python-format msgid "%s morning" msgstr "%s matin" -#: agenda_culturel/calendar.py:156 agenda_culturel/calendar.py:160 +#: agenda_culturel/calendar.py:173 agenda_culturel/calendar.py:177 #, python-format msgid "%s noon" msgstr "%s midi" -#: agenda_culturel/calendar.py:156 agenda_culturel/calendar.py:160 +#: agenda_culturel/calendar.py:173 agenda_culturel/calendar.py:177 #, python-format msgid "%s afternoon" msgstr "%s après-midi" -#: agenda_culturel/calendar.py:156 agenda_culturel/calendar.py:160 +#: agenda_culturel/calendar.py:173 agenda_culturel/calendar.py:177 #, python-format msgid "%s evening" msgstr "%s soir" -#: agenda_culturel/calendar.py:159 +#: agenda_culturel/calendar.py:176 #, python-format msgid "All day %s" msgstr "Toute la journée de %s" -#: agenda_culturel/calendar.py:161 +#: agenda_culturel/calendar.py:178 msgid "All day" msgstr "Toute la journée" -#: agenda_culturel/calendar.py:162 +#: agenda_culturel/calendar.py:179 msgid "Morning" msgstr "Matin" -#: agenda_culturel/calendar.py:162 +#: agenda_culturel/calendar.py:179 msgid "Noon" msgstr "Midi" -#: agenda_culturel/calendar.py:162 +#: agenda_culturel/calendar.py:179 msgid "Afternoon" msgstr "Après-midi" -#: agenda_culturel/calendar.py:162 +#: agenda_culturel/calendar.py:179 msgid "Evening" msgstr "Soir" @@ -94,115 +94,119 @@ msgstr "Soir" msgid "Select a location" msgstr "Choisir une localité" -#: agenda_culturel/filters.py:326 +#: agenda_culturel/filters.py:331 msgid "Representative version" msgstr "Version représentative" -#: agenda_culturel/filters.py:327 +#: agenda_culturel/filters.py:332 msgid "Yes" msgstr "Oui" -#: agenda_culturel/filters.py:327 +#: agenda_culturel/filters.py:332 msgid "Non" msgstr "Non" -#: agenda_culturel/filters.py:332 +#: agenda_culturel/filters.py:337 msgid "Imported from" msgstr "Importé depuis" -#: agenda_culturel/filters.py:362 agenda_culturel/models.py:1786 +#: agenda_culturel/filters.py:367 agenda_culturel/models.py:1832 msgid "Closed" msgstr "Fermé" -#: agenda_culturel/filters.py:362 +#: agenda_culturel/filters.py:367 msgid "Open" msgstr "Ouvert" -#: agenda_culturel/filters.py:367 agenda_culturel/models.py:1780 +#: agenda_culturel/filters.py:372 agenda_culturel/models.py:1826 msgid "Spam" msgstr "Spam" -#: agenda_culturel/filters.py:367 +#: agenda_culturel/filters.py:372 msgid "Non spam" msgstr "Non spam" -#: agenda_culturel/filters.py:378 +#: agenda_culturel/filters.py:383 msgid "Search" msgstr "Rechercher" -#: agenda_culturel/forms.py:108 +#: agenda_culturel/forms.py:77 +msgid "Other" +msgstr "Autres" + +#: agenda_culturel/forms.py:107 msgid "Name of new tag" msgstr "Nom de la nouvelle étiquette" -#: agenda_culturel/forms.py:113 +#: agenda_culturel/forms.py:112 msgid "" "Force renaming despite the existence of events already using the chosen tag." msgstr "" "Forcer le renommage malgré l'existence d'événements utilisant déjà " "l'étiquette choisie." -#: agenda_culturel/forms.py:134 agenda_culturel/models.py:176 -#: agenda_culturel/models.py:609 agenda_culturel/models.py:1905 -#: agenda_culturel/models.py:2010 +#: agenda_culturel/forms.py:133 agenda_culturel/models.py:177 +#: agenda_culturel/models.py:619 agenda_culturel/models.py:1951 +#: agenda_culturel/models.py:2061 msgid "Category" msgstr "Catégorie" -#: agenda_culturel/forms.py:140 agenda_culturel/forms.py:165 -#: agenda_culturel/forms.py:195 agenda_culturel/forms.py:350 -#: agenda_culturel/models.py:217 agenda_culturel/models.py:717 +#: agenda_culturel/forms.py:139 agenda_culturel/forms.py:164 +#: agenda_culturel/forms.py:194 agenda_culturel/forms.py:349 +#: agenda_culturel/models.py:218 agenda_culturel/models.py:727 msgid "Tags" msgstr "Étiquettes" -#: agenda_culturel/forms.py:251 +#: agenda_culturel/forms.py:250 msgid "Main fields" msgstr "Champs principaux" -#: agenda_culturel/forms.py:254 +#: agenda_culturel/forms.py:253 msgid "Start of event" msgstr "Début de l'événement" -#: agenda_culturel/forms.py:258 +#: agenda_culturel/forms.py:257 msgid "End of event" msgstr "Fin de l'événement" -#: agenda_culturel/forms.py:263 +#: agenda_culturel/forms.py:262 msgid "This is a recurring event" msgstr "Cet événement est récurrent" -#: agenda_culturel/forms.py:272 +#: agenda_culturel/forms.py:271 msgid "Details" msgstr "Détails" -#: agenda_culturel/forms.py:277 agenda_culturel/models.py:639 -#: agenda_culturel/models.py:1886 +#: agenda_culturel/forms.py:276 agenda_culturel/models.py:649 +#: agenda_culturel/models.py:1932 msgid "Location" msgstr "Localisation" -#: agenda_culturel/forms.py:281 agenda_culturel/models.py:672 +#: agenda_culturel/forms.py:280 agenda_culturel/models.py:682 msgid "Illustration" msgstr "Illustration" -#: agenda_culturel/forms.py:287 agenda_culturel/forms.py:292 +#: agenda_culturel/forms.py:286 agenda_culturel/forms.py:291 msgid "Meta information" msgstr "Méta-informations" -#: agenda_culturel/forms.py:307 +#: agenda_culturel/forms.py:306 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:323 +#: agenda_culturel/forms.py:322 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:351 +#: agenda_culturel/forms.py:350 msgid "Select tags from existing ones." msgstr "Sélectionner des étiquettes depuis celles existantes." -#: agenda_culturel/forms.py:356 +#: agenda_culturel/forms.py:355 msgid "New tags" msgstr "Nouvelles étiquettes" -#: agenda_culturel/forms.py:357 +#: agenda_culturel/forms.py:356 msgid "" "Create new labels (sparingly). Note: by starting your tag with the " "characters “TW:”, youll create a “trigger warning” tag, and the associated " @@ -213,156 +217,176 @@ msgstr "" "étiquette “trigger warning”, et les événements associés seront annoncés " "comme tels." -#: agenda_culturel/forms.py:403 +#: agenda_culturel/forms.py:402 msgid "JSON in the format expected for the import." msgstr "JSON dans le format attendu pour l'import" -#: agenda_culturel/forms.py:425 +#: agenda_culturel/forms.py:424 msgid " (locally modified version)" msgstr " (version modifiée localement)" -#: agenda_culturel/forms.py:429 +#: agenda_culturel/forms.py:428 msgid " (synchronized on import version)" msgstr " (version synchronisée sur l'import)" -#: agenda_culturel/forms.py:433 +#: agenda_culturel/forms.py:432 msgid "Select {} as representative version." msgstr "Sélectionner {} comme version représentative" -#: agenda_culturel/forms.py:442 +#: agenda_culturel/forms.py:441 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:449 +#: agenda_culturel/forms.py:448 msgid " Warning: a version is already locally modified." msgstr " Attention: une version a déjà été modifiée localement." -#: agenda_culturel/forms.py:454 +#: agenda_culturel/forms.py:453 msgid "Create a new version by merging (interactive mode)." msgstr "Créer une nouvelle version par fusion (mode interactif)." -#: agenda_culturel/forms.py:461 +#: agenda_culturel/forms.py:460 msgid "Make {} independent." msgstr "Rendre {} indépendant." -#: agenda_culturel/forms.py:463 +#: agenda_culturel/forms.py:462 msgid "Make all versions independent." msgstr "Rendre toutes les versions indépendantes." -#: agenda_culturel/forms.py:497 agenda_culturel/models.py:801 +#: agenda_culturel/forms.py:496 agenda_culturel/models.py:802 msgid "Event" msgstr "Événement" -#: agenda_culturel/forms.py:522 +#: agenda_culturel/forms.py:521 msgid "Value of the selected version" msgstr "Valeur de la version sélectionnée" -#: agenda_culturel/forms.py:524 agenda_culturel/forms.py:528 +#: agenda_culturel/forms.py:523 agenda_culturel/forms.py:527 msgid "Value of version {}" msgstr "Valeur de la version {}" -#: agenda_culturel/forms.py:677 +#: agenda_culturel/forms.py:676 msgid "Apply category {} to the event {}" msgstr "Appliquer la catégorie {} à l'événement {}" -#: agenda_culturel/forms.py:694 agenda_culturel/models.py:460 -#: agenda_culturel/models.py:2062 +#: agenda_culturel/forms.py:693 agenda_culturel/models.py:465 +#: agenda_culturel/models.py:2113 msgid "Place" msgstr "Lieu" -#: agenda_culturel/forms.py:696 +#: agenda_culturel/forms.py:695 msgid "Create a missing place" msgstr "Créer un lieu manquant" -#: agenda_culturel/forms.py:706 +#: agenda_culturel/forms.py:705 msgid "Add \"{}\" to the aliases of the place" msgstr "Ajouter « {} » aux alias du lieu" -#: agenda_culturel/forms.py:735 +#: agenda_culturel/forms.py:734 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/models.py:57 agenda_culturel/models.py:105 -#: agenda_culturel/models.py:186 agenda_culturel/models.py:403 -#: agenda_culturel/models.py:431 agenda_culturel/models.py:513 -#: agenda_culturel/models.py:1762 agenda_culturel/models.py:1840 +#: agenda_culturel/forms.py:747 +msgid "Header" +msgstr "Entête" + +#: agenda_culturel/forms.py:751 agenda_culturel/models.py:438 +msgid "Address" +msgstr "Adresse" + +#: agenda_culturel/forms.py:757 +msgid "Meta" +msgstr "Méta" + +#: agenda_culturel/forms.py:760 +msgid "Information" +msgstr "Informations" + +#: agenda_culturel/forms.py:810 +msgid "Add a comment" +msgstr "Ajouter un commentaire" + +#: agenda_culturel/models.py:58 agenda_culturel/models.py:106 +#: agenda_culturel/models.py:187 agenda_culturel/models.py:408 +#: agenda_culturel/models.py:436 agenda_culturel/models.py:523 +#: agenda_culturel/models.py:1808 agenda_culturel/models.py:1886 msgid "Name" msgstr "Nom" -#: agenda_culturel/models.py:58 agenda_culturel/models.py:105 +#: agenda_culturel/models.py:59 agenda_culturel/models.py:106 msgid "Category name" msgstr "Nom de la catégorie" -#: agenda_culturel/models.py:63 +#: agenda_culturel/models.py:64 msgid "Content" msgstr "Contenu" -#: agenda_culturel/models.py:63 +#: agenda_culturel/models.py:64 msgid "Text as shown to the visitors" msgstr "Texte tel que présenté aux visiteureuses" -#: agenda_culturel/models.py:67 +#: agenda_culturel/models.py:68 msgid "URL path" msgstr "Chemin URL" -#: agenda_culturel/models.py:68 +#: agenda_culturel/models.py:69 msgid "URL path where the content is included." msgstr "Chemin URL où le contenu est présent." -#: agenda_culturel/models.py:72 +#: agenda_culturel/models.py:73 msgid "Static content" msgstr "Contenu statique" -#: agenda_culturel/models.py:73 +#: agenda_culturel/models.py:74 msgid "Static contents" msgstr "Contenus statiques" -#: agenda_culturel/models.py:109 +#: agenda_culturel/models.py:110 msgid "Color" msgstr "Couleur" -#: agenda_culturel/models.py:110 +#: agenda_culturel/models.py:111 msgid "Color used as background for the category" msgstr "Couleur utilisée comme fond de la catégorie" -#: agenda_culturel/models.py:116 +#: agenda_culturel/models.py:117 msgid "Pictogram" msgstr "Pictogramme" -#: agenda_culturel/models.py:117 +#: agenda_culturel/models.py:118 msgid "Pictogram of the category (svg format)" msgstr "Pictogramme de la catégorie (format svg)" -#: agenda_culturel/models.py:124 +#: agenda_culturel/models.py:125 msgid "Position for ordering categories" msgstr "Position pour ordonner les catégories" -#: agenda_culturel/models.py:177 +#: agenda_culturel/models.py:178 msgid "Categories" msgstr "Catégories" -#: agenda_culturel/models.py:186 +#: agenda_culturel/models.py:187 msgid "Tag name" msgstr "Nom de l'étiquette" -#: agenda_culturel/models.py:191 agenda_culturel/models.py:443 -#: agenda_culturel/models.py:525 agenda_culturel/models.py:656 +#: agenda_culturel/models.py:192 agenda_culturel/models.py:448 +#: agenda_culturel/models.py:535 agenda_culturel/models.py:666 msgid "Description" msgstr "Description" -#: agenda_culturel/models.py:192 +#: agenda_culturel/models.py:193 msgid "Description of the tag" msgstr "Description de l'étiquette" -#: agenda_culturel/models.py:198 +#: agenda_culturel/models.py:199 msgid "Principal" msgstr "Principal" -#: agenda_culturel/models.py:199 +#: agenda_culturel/models.py:200 msgid "" "This tag is highlighted as a main tag for visitors, particularly in the " "filter." @@ -370,118 +394,115 @@ msgstr "" "Cette étiquette est mise en avant comme étiquette principale pour les " "visiteurs, en particulier dans le filtre." -#: agenda_culturel/models.py:204 +#: agenda_culturel/models.py:205 msgid "In excluded suggestions" msgstr "Dans les suggestions d'exclusion" -#: agenda_culturel/models.py:205 +#: agenda_culturel/models.py:206 msgid "This tag will be part of the excluded suggestions." msgstr "Cette étiquette fera partie des suggestions d'exclusion." -#: agenda_culturel/models.py:210 +#: agenda_culturel/models.py:211 msgid "In included suggestions" msgstr "Dans les suggestions d'inclusion." -#: agenda_culturel/models.py:211 +#: agenda_culturel/models.py:212 msgid "This tag will be part of the included suggestions." msgstr "Cette étiquette fera partie des suggestions d'inclusion." -#: agenda_culturel/models.py:216 +#: agenda_culturel/models.py:217 msgid "Tag" msgstr "Étiquette" -#: agenda_culturel/models.py:262 +#: agenda_culturel/models.py:263 msgid "Suggestions" msgstr "Suggestions" -#: agenda_culturel/models.py:263 +#: agenda_culturel/models.py:264 msgid "Others" msgstr "Autres" -#: agenda_culturel/models.py:278 +#: agenda_culturel/models.py:279 msgid "Representative event" msgstr "Événement représentatif" -#: agenda_culturel/models.py:279 +#: agenda_culturel/models.py:280 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:286 agenda_culturel/models.py:287 +#: agenda_culturel/models.py:287 agenda_culturel/models.py:288 msgid "Duplicated events" msgstr "Événements dupliqués" -#: agenda_culturel/models.py:403 +#: agenda_culturel/models.py:408 msgid "Name of the location" msgstr "Nom de la position" -#: agenda_culturel/models.py:406 +#: agenda_culturel/models.py:411 msgid "Main" msgstr "Principale" -#: agenda_culturel/models.py:407 +#: agenda_culturel/models.py:412 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:411 +#: agenda_culturel/models.py:416 msgid "Suggested distance (km)" msgstr "" -#: agenda_culturel/models.py:412 +#: agenda_culturel/models.py:417 msgid "" "If this distance is given, this location is part of the suggested filters." msgstr "" -#: agenda_culturel/models.py:418 +#: agenda_culturel/models.py:423 msgid "Reference location" msgstr "Position de référence" -#: agenda_culturel/models.py:419 +#: agenda_culturel/models.py:424 msgid "Reference locations" msgstr "Positions de référence" -#: agenda_culturel/models.py:431 +#: agenda_culturel/models.py:436 msgid "Name of the place" msgstr "Nom du lieu" -#: agenda_culturel/models.py:433 -msgid "Address" -msgstr "Adresse" - -#: agenda_culturel/models.py:434 +#: agenda_culturel/models.py:439 msgid "Address of this place (without city name)" msgstr "Adresse de ce lieu (sans le nom de la ville)" -#: agenda_culturel/models.py:438 +#: agenda_culturel/models.py:443 msgid "Postcode" msgstr "Code postal" -#: agenda_culturel/models.py:438 +#: agenda_culturel/models.py:443 msgid "" "The post code is not displayed, but makes it easier to find an address when " "you enter it." -msgstr "Le code postal ne sera pas affiché, mais facilite la recherche " -"d'adresse au moment de la saisie." +msgstr "" +"Le code postal ne sera pas affiché, mais facilite la recherche d'adresse au " +"moment de la saisie." -#: agenda_culturel/models.py:439 +#: agenda_culturel/models.py:444 msgid "City" msgstr "Ville" -#: agenda_culturel/models.py:439 +#: agenda_culturel/models.py:444 msgid "City name" msgstr "Nom de la ville" -#: agenda_culturel/models.py:444 +#: agenda_culturel/models.py:449 msgid "Description of the place, including accessibility." msgstr "Description du lieu, inclus l'accessibilité." -#: agenda_culturel/models.py:451 +#: agenda_culturel/models.py:456 msgid "Alternative names" msgstr "Noms alternatifs" -#: agenda_culturel/models.py:453 +#: agenda_culturel/models.py:458 msgid "" "Alternative names or addresses used to match a place with the free-form " "location of an event." @@ -489,31 +510,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:461 +#: agenda_culturel/models.py:466 msgid "Places" msgstr "Lieux" -#: agenda_culturel/models.py:513 +#: agenda_culturel/models.py:523 msgid "Organisation name" msgstr "Nom de l'organisme" -#: agenda_culturel/models.py:517 +#: agenda_culturel/models.py:527 msgid "Website" msgstr "Site internet" -#: agenda_culturel/models.py:518 +#: agenda_culturel/models.py:528 msgid "Website of the organisation" msgstr "Site internet de l'organisme" -#: agenda_culturel/models.py:526 +#: agenda_culturel/models.py:536 msgid "Description of the organisation." msgstr "Description de l'organisme" -#: agenda_culturel/models.py:533 +#: agenda_culturel/models.py:543 msgid "Principal place" msgstr "Lieu principal" -#: agenda_culturel/models.py:534 +#: agenda_culturel/models.py:544 msgid "" "Place mainly associated with this organizer. Mainly used if there is a " "similarity in the name, to avoid redundant displays." @@ -521,75 +542,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:541 +#: agenda_culturel/models.py:551 msgid "Organisation" msgstr "Organisme" -#: agenda_culturel/models.py:542 +#: agenda_culturel/models.py:552 msgid "Organisations" msgstr "Organismes" -#: agenda_culturel/models.py:554 agenda_culturel/models.py:1881 +#: agenda_culturel/models.py:564 agenda_culturel/models.py:1927 msgid "Published" msgstr "Publié" -#: agenda_culturel/models.py:555 +#: agenda_culturel/models.py:565 msgid "Draft" msgstr "Brouillon" -#: agenda_culturel/models.py:556 +#: agenda_culturel/models.py:566 msgid "Trash" msgstr "Corbeille" -#: agenda_culturel/models.py:565 +#: agenda_culturel/models.py:575 msgid "Author of the event creation" msgstr "Auteur de la création de l'événement" -#: agenda_culturel/models.py:573 +#: agenda_culturel/models.py:583 msgid "Author of the last importation" msgstr "Auteur de la dernière importation" -#: agenda_culturel/models.py:581 +#: agenda_culturel/models.py:591 msgid "Author of the last modification" msgstr "Auteur de la dernière modification" -#: agenda_culturel/models.py:589 +#: agenda_culturel/models.py:599 msgid "Author of the last moderation" msgstr "Auteur de la dernière modération" -#: agenda_culturel/models.py:600 +#: agenda_culturel/models.py:610 msgid "Title" msgstr "Titre" -#: agenda_culturel/models.py:604 agenda_culturel/models.py:1978 +#: agenda_culturel/models.py:614 agenda_culturel/models.py:2029 msgid "Status" msgstr "Status" -#: agenda_culturel/models.py:616 +#: agenda_culturel/models.py:626 msgid "Start day" msgstr "Date de début" -#: agenda_culturel/models.py:619 +#: agenda_culturel/models.py:629 msgid "Start time" msgstr "Heure de début" -#: agenda_culturel/models.py:625 +#: agenda_culturel/models.py:635 msgid "End day" msgstr "Date de fin" -#: agenda_culturel/models.py:630 +#: agenda_culturel/models.py:640 msgid "End time" msgstr "Heure de fin" -#: agenda_culturel/models.py:634 +#: agenda_culturel/models.py:644 msgid "Recurrence" msgstr "Récurrence" -#: agenda_culturel/models.py:645 +#: agenda_culturel/models.py:655 msgid "Location (free form)" msgstr "Localisation (forme libre)" -#: agenda_culturel/models.py:647 +#: agenda_culturel/models.py:657 msgid "" "Address of the event in case its not available in the already known places " "(free form)" @@ -597,11 +618,11 @@ msgstr "" "Addresse d'un événement si elle n'est pas déjà présente dans la liste des " "lieux disponible (forme libre)" -#: agenda_culturel/models.py:664 +#: agenda_culturel/models.py:674 msgid "Organisers" msgstr "Organisateurs" -#: agenda_culturel/models.py:666 +#: agenda_culturel/models.py:676 msgid "" "list of event organisers. Organizers will only be displayed if one of them " "does not normally use the venue." @@ -609,191 +630,191 @@ 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:679 +#: agenda_culturel/models.py:689 msgid "Illustration (URL)" msgstr "Illustration (URL)" -#: agenda_culturel/models.py:680 +#: agenda_culturel/models.py:690 msgid "External URL of the illustration image" msgstr "URL externe de l'image illustrative" -#: agenda_culturel/models.py:686 +#: agenda_culturel/models.py:696 msgid "Illustration description" msgstr "Description de l'illustration" -#: agenda_culturel/models.py:687 +#: agenda_culturel/models.py:697 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:695 +#: agenda_culturel/models.py:705 msgid "Importation source" msgstr "Source d'importation" -#: agenda_culturel/models.py:696 +#: agenda_culturel/models.py:706 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:702 +#: agenda_culturel/models.py:712 msgid "UUIDs" msgstr "UUIDs" -#: agenda_culturel/models.py:703 +#: agenda_culturel/models.py:713 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:709 +#: agenda_culturel/models.py:719 msgid "URLs" msgstr "URLs" -#: agenda_culturel/models.py:710 +#: agenda_culturel/models.py:720 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:724 +#: agenda_culturel/models.py:734 msgid "Other versions" msgstr "" -#: agenda_culturel/models.py:802 +#: agenda_culturel/models.py:803 msgid "Events" msgstr "Événements" -#: agenda_culturel/models.py:1743 -msgid "Contact message" -msgstr "Message de contact" - -#: agenda_culturel/models.py:1744 -msgid "Contact messages" -msgstr "Messages de contact" - -#: agenda_culturel/models.py:1747 -msgid "Subject" -msgstr "Sujet" - -#: agenda_culturel/models.py:1748 -msgid "The subject of your message" -msgstr "Sujet de votre message" - -#: agenda_culturel/models.py:1754 -msgid "Related event" -msgstr "Événement associé" - -#: agenda_culturel/models.py:1755 -msgid "The message is associated with this event." -msgstr "Le message est associé à cet événement." - -#: agenda_culturel/models.py:1763 -msgid "Your name" -msgstr "Votre nom" - -#: agenda_culturel/models.py:1769 -msgid "Email address" -msgstr "Adresse email" - -#: agenda_culturel/models.py:1770 -msgid "Your email address" -msgstr "Votre adresse email" - -#: agenda_culturel/models.py:1775 +#: agenda_culturel/models.py:1773 agenda_culturel/models.py:1821 msgid "Message" msgstr "Message" -#: agenda_culturel/models.py:1775 +#: agenda_culturel/models.py:1774 +msgid "Messages" +msgstr "Messages" + +#: agenda_culturel/models.py:1785 +msgid "Subject" +msgstr "Sujet" + +#: agenda_culturel/models.py:1786 +msgid "The subject of your message" +msgstr "Sujet de votre message" + +#: agenda_culturel/models.py:1792 +msgid "Related event" +msgstr "Événement associé" + +#: agenda_culturel/models.py:1793 +msgid "The message is associated with this event." +msgstr "Le message est associé à cet événement." + +#: agenda_culturel/models.py:1801 +msgid "Author of the message" +msgstr "Auteur du message" + +#: agenda_culturel/models.py:1809 +msgid "Your name" +msgstr "Votre nom" + +#: agenda_culturel/models.py:1815 +msgid "Email address" +msgstr "Adresse email" + +#: agenda_culturel/models.py:1816 +msgid "Your email address" +msgstr "Votre adresse email" + +#: agenda_culturel/models.py:1821 msgid "Your message" msgstr "Votre message" -#: agenda_culturel/models.py:1781 +#: agenda_culturel/models.py:1827 msgid "This message is a spam." msgstr "Ce message est un spam." -#: agenda_culturel/models.py:1788 +#: agenda_culturel/models.py:1834 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:1793 +#: agenda_culturel/models.py:1839 msgid "Comments" msgstr "Commentaires" -#: agenda_culturel/models.py:1794 +#: agenda_culturel/models.py:1840 msgid "Comments on the message from the moderation team" msgstr "Commentaires sur ce message par l'équipe de modération" -#: agenda_culturel/models.py:1809 agenda_culturel/models.py:1958 +#: agenda_culturel/models.py:1855 agenda_culturel/models.py:2009 msgid "Recurrent import" msgstr "Import récurrent" -#: agenda_culturel/models.py:1810 +#: agenda_culturel/models.py:1856 msgid "Recurrent imports" msgstr "Imports récurrents" -#: agenda_culturel/models.py:1814 +#: agenda_culturel/models.py:1860 msgid "ical" msgstr "ical" -#: agenda_culturel/models.py:1815 +#: agenda_culturel/models.py:1861 msgid "ical no busy" msgstr "ical sans busy" -#: agenda_culturel/models.py:1816 +#: agenda_culturel/models.py:1862 msgid "ical no VC" msgstr "ical sans VC" -#: agenda_culturel/models.py:1817 +#: agenda_culturel/models.py:1863 msgid "lacoope.org" msgstr "lacoope.org" -#: agenda_culturel/models.py:1818 +#: agenda_culturel/models.py:1864 msgid "la comédie" msgstr "la comédie" -#: agenda_culturel/models.py:1819 +#: agenda_culturel/models.py:1865 msgid "le fotomat" msgstr "le fotomat" -#: agenda_culturel/models.py:1820 +#: agenda_culturel/models.py:1866 msgid "la puce à l'oreille" msgstr "la puce à loreille" -#: agenda_culturel/models.py:1821 +#: agenda_culturel/models.py:1867 msgid "Plugin wordpress MEC" msgstr "Plugin wordpress MEC" -#: agenda_culturel/models.py:1822 +#: agenda_culturel/models.py:1868 msgid "Événements d'une page FB" msgstr "Événements d'une page FB" -#: agenda_culturel/models.py:1823 +#: agenda_culturel/models.py:1869 msgid "la cour des 3 coquins" msgstr "la cour des 3 coquins" -#: agenda_culturel/models.py:1824 +#: agenda_culturel/models.py:1870 msgid "Arachnée concert" msgstr "Arachnée concert" -#: agenda_culturel/models.py:1825 +#: agenda_culturel/models.py:1871 msgid "Le Rio" msgstr "Le Rio" -#: agenda_culturel/models.py:1828 +#: agenda_culturel/models.py:1874 msgid "simple" msgstr "simple" -#: agenda_culturel/models.py:1829 +#: agenda_culturel/models.py:1875 msgid "Headless Chromium" msgstr "chromium sans interface" -#: agenda_culturel/models.py:1830 +#: agenda_culturel/models.py:1876 msgid "Headless Chromium (pause)" msgstr "chromium sans interface (pause)" -#: agenda_culturel/models.py:1835 +#: agenda_culturel/models.py:1881 msgid "daily" msgstr "chaque jour" -#: agenda_culturel/models.py:1837 +#: agenda_culturel/models.py:1883 msgid "weekly" msgstr "chaque semaine" -#: agenda_culturel/models.py:1842 +#: agenda_culturel/models.py:1888 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." @@ -801,143 +822,143 @@ 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:1849 +#: agenda_culturel/models.py:1895 msgid "Processor" msgstr "Processeur" -#: agenda_culturel/models.py:1852 +#: agenda_culturel/models.py:1898 msgid "Downloader" msgstr "Téléchargeur" -#: agenda_culturel/models.py:1859 +#: agenda_culturel/models.py:1905 msgid "Import recurrence" msgstr "Récurrence d'import" -#: agenda_culturel/models.py:1866 +#: agenda_culturel/models.py:1912 msgid "Source" msgstr "Source" -#: agenda_culturel/models.py:1867 +#: agenda_culturel/models.py:1913 msgid "URL of the source document" msgstr "URL du document source" -#: agenda_culturel/models.py:1871 +#: agenda_culturel/models.py:1917 msgid "Browsable url" msgstr "URL navigable" -#: agenda_culturel/models.py:1873 +#: agenda_culturel/models.py:1919 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:1882 +#: agenda_culturel/models.py:1928 msgid "Status of each imported event (published or draft)" msgstr "Status de chaque événement importé (publié ou brouillon)" -#: agenda_culturel/models.py:1887 +#: agenda_culturel/models.py:1933 msgid "Address for each imported event" msgstr "Adresse de chaque événement importé" -#: agenda_culturel/models.py:1895 +#: agenda_culturel/models.py:1941 msgid "Organiser" msgstr "Organisateur" -#: agenda_culturel/models.py:1896 +#: agenda_culturel/models.py:1942 msgid "Organiser of each imported event" msgstr "Organisateur de chaque événement importé" -#: agenda_culturel/models.py:1906 +#: agenda_culturel/models.py:1952 msgid "Category of each imported event" msgstr "Catégorie de chaque événement importé" -#: agenda_culturel/models.py:1914 +#: agenda_culturel/models.py:1960 msgid "Tags for each imported event" msgstr "Étiquettes de chaque événement importé" -#: agenda_culturel/models.py:1915 +#: agenda_culturel/models.py:1961 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:1944 +#: agenda_culturel/models.py:1990 msgid "Running" msgstr "En cours" -#: agenda_culturel/models.py:1945 +#: agenda_culturel/models.py:1991 msgid "Canceled" msgstr "Annulé" -#: agenda_culturel/models.py:1946 +#: agenda_culturel/models.py:1992 msgid "Success" msgstr "Succès" -#: agenda_culturel/models.py:1947 +#: agenda_culturel/models.py:1993 msgid "Failed" msgstr "Erreur" -#: agenda_culturel/models.py:1950 +#: agenda_culturel/models.py:1996 msgid "Batch importation" msgstr "Importation par lot" -#: agenda_culturel/models.py:1951 +#: agenda_culturel/models.py:1997 msgid "Batch importations" msgstr "Importations par lot" -#: agenda_culturel/models.py:1959 +#: agenda_culturel/models.py:2010 msgid "Reference to the recurrent import processing" msgstr "Référence du processus d'import récurrent" -#: agenda_culturel/models.py:1967 +#: agenda_culturel/models.py:2018 msgid "URL (if not recurrent import)" msgstr "URL (si pas d'import récurrent)" -#: agenda_culturel/models.py:1969 +#: agenda_culturel/models.py:2020 msgid "Source URL if no RecurrentImport is associated." msgstr "URL source si aucun import récurrent n'est associé" -#: agenda_culturel/models.py:1982 +#: agenda_culturel/models.py:2033 msgid "Error message" msgstr "Votre message" -#: agenda_culturel/models.py:1986 +#: agenda_culturel/models.py:2037 msgid "Number of collected events" msgstr "Nombre d'événements collectés" -#: agenda_culturel/models.py:1989 +#: agenda_culturel/models.py:2040 msgid "Number of imported events" msgstr "Nombre d'événements importés" -#: agenda_culturel/models.py:1992 +#: agenda_culturel/models.py:2043 msgid "Number of updated events" msgstr "Nombre d'événements mis à jour" -#: agenda_culturel/models.py:1995 +#: agenda_culturel/models.py:2046 msgid "Number of removed events" msgstr "Nombre d'événements supprimés" -#: agenda_culturel/models.py:2003 +#: agenda_culturel/models.py:2054 msgid "Weight" msgstr "Poids" -#: agenda_culturel/models.py:2004 +#: agenda_culturel/models.py:2055 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:2011 +#: agenda_culturel/models.py:2062 msgid "Category applied to the event" msgstr "Catégorie appliquée à l'événement" -#: agenda_culturel/models.py:2016 +#: agenda_culturel/models.py:2067 msgid "Contained in the title" msgstr "Contenu dans le titre" -#: agenda_culturel/models.py:2017 +#: agenda_culturel/models.py:2068 msgid "Text contained in the event title" msgstr "Texte contenu dans le titre de l'événement" -#: agenda_culturel/models.py:2023 +#: agenda_culturel/models.py:2074 msgid "Exact title extract" msgstr "Extrait exact du titre" -#: agenda_culturel/models.py:2025 +#: agenda_culturel/models.py:2076 msgid "" "If checked, the extract will be searched for in the title using the exact " "form (capitals, accents)." @@ -945,19 +966,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans le titre en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:2031 +#: agenda_culturel/models.py:2082 msgid "Contained in the description" msgstr "Contenu dans la description" -#: agenda_culturel/models.py:2032 +#: agenda_culturel/models.py:2083 msgid "Text contained in the description" msgstr "Texte contenu dans la description" -#: agenda_culturel/models.py:2038 +#: agenda_culturel/models.py:2089 msgid "Exact description extract" msgstr "Extrait exact de description" -#: agenda_culturel/models.py:2040 +#: agenda_culturel/models.py:2091 msgid "" "If checked, the extract will be searched for in the description using the " "exact form (capitals, accents)." @@ -965,19 +986,19 @@ msgstr "" "Si coché, l'extrait sera recherché dans la description en utilisant la forme " "exacte (majuscules, accents)" -#: agenda_culturel/models.py:2046 +#: agenda_culturel/models.py:2097 msgid "Contained in the location" msgstr "Contenu dans la localisation" -#: agenda_culturel/models.py:2047 +#: agenda_culturel/models.py:2098 msgid "Text contained in the event location" msgstr "Texte contenu dans la localisation de l'événement" -#: agenda_culturel/models.py:2053 +#: agenda_culturel/models.py:2104 msgid "Exact location extract" msgstr "Extrait exact de localisation" -#: agenda_culturel/models.py:2055 +#: agenda_culturel/models.py:2106 msgid "" "If checked, the extract will be searched for in the location using the exact " "form (capitals, accents)." @@ -985,43 +1006,43 @@ msgstr "" "Si coché, l'extrait sera recherché dans la localisation en utilisant la " "forme exacte (majuscules, accents)" -#: agenda_culturel/models.py:2063 +#: agenda_culturel/models.py:2114 msgid "Location from place" msgstr "Localisation depuis le lieu" -#: agenda_culturel/models.py:2072 +#: agenda_culturel/models.py:2123 msgid "Categorisation rule" msgstr "Règle de catégorisation" -#: agenda_culturel/models.py:2073 +#: agenda_culturel/models.py:2124 msgid "Categorisation rules" msgstr "Règles de catégorisation" -#: agenda_culturel/settings/base.py:154 +#: agenda_culturel/settings/base.py:152 msgid "French" msgstr "français" -#: agenda_culturel/views.py:151 +#: agenda_culturel/views.py:154 msgid "Recurrent import name" msgstr "Nome de l'import récurrent" -#: agenda_culturel/views.py:152 +#: agenda_culturel/views.py:155 msgid "Add another" msgstr "Ajouter un autre" -#: agenda_culturel/views.py:153 +#: agenda_culturel/views.py:156 msgid "Browse..." msgstr "Naviguer..." -#: agenda_culturel/views.py:154 +#: agenda_culturel/views.py:157 msgid "No file selected." msgstr "Pas de fichier sélectionné." -#: agenda_culturel/views.py:290 +#: agenda_culturel/views.py:293 msgid "The static content has been successfully updated." msgstr "Le contenu statique a été modifié avec succès." -#: agenda_culturel/views.py:298 +#: agenda_culturel/views.py:301 msgid "" "The event cannot be updated because the import process is not available for " "the referenced sources." @@ -1029,33 +1050,37 @@ msgstr "" "La mise à jour de l'événement n'est pas possible car le processus d'import " "n'est pas disponible pour les sources référencées." -#: agenda_culturel/views.py:301 +#: agenda_culturel/views.py:304 msgid "The event update has been queued and will be completed shortly." msgstr "" "La mise à jour de l'événement a été mise en attente et sera effectuée sous " "peu." -#: agenda_culturel/views.py:311 +#: agenda_culturel/views.py:314 msgid "The event has been successfully modified." msgstr "L'événement a été modifié avec succès." -#: agenda_culturel/views.py:362 +#: agenda_culturel/views.py:365 msgid "The event {} has been moderated with success." msgstr "L'événement {} a été modéré avec succès." -#: agenda_culturel/views.py:467 +#: agenda_culturel/views.py:470 msgid "The event has been successfully deleted." msgstr "L'événement a été supprimé avec succès." -#: agenda_culturel/views.py:499 +#: agenda_culturel/views.py:512 +msgid "Comment" +msgstr "Commentaire" + +#: agenda_culturel/views.py:531 msgid "The status has been successfully modified." msgstr "Le status a été modifié avec succès." -#: agenda_culturel/views.py:533 +#: agenda_culturel/views.py:565 msgid "The event was created: {}." msgstr "L'événement a été créé: {}." -#: agenda_culturel/views.py:535 +#: agenda_culturel/views.py:567 msgid "" "The event has been submitted and will be published as soon as it has been " "validated by the moderation team." @@ -1063,82 +1088,82 @@ 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:629 agenda_culturel/views.py:681 +#: agenda_culturel/views.py:661 agenda_culturel/views.py:713 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:634 agenda_culturel/views.py:687 +#: agenda_culturel/views.py:666 agenda_culturel/views.py:719 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:644 +#: agenda_culturel/views.py:676 msgid "Integrating {} url(s) into our import process." msgstr "Intégration de {} url(s) dans notre processus d'import." -#: agenda_culturel/views.py:694 +#: agenda_culturel/views.py:726 msgid "Integrating {} into our import process." msgstr "Intégration de {} dans notre processus d'import." -#: agenda_culturel/views.py:749 +#: agenda_culturel/views.py:784 msgid "Your message has been sent successfully." msgstr "Votre message a été envoyé avec succès." -#: agenda_culturel/views.py:770 +#: agenda_culturel/views.py:812 msgid "Reporting the event {} on {}" msgstr "Signaler l'événement {} du {}" -#: agenda_culturel/views.py:780 +#: agenda_culturel/views.py:822 msgid "The contact message has been successfully deleted." msgstr "Le message de contact a été supprimé avec succès." -#: agenda_culturel/views.py:794 +#: agenda_culturel/views.py:836 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:931 +#: agenda_culturel/views.py:973 msgid "Spam has been successfully deleted." msgstr "Le spam a été supprimé avec succès" -#: agenda_culturel/views.py:1054 +#: agenda_culturel/views.py:1096 msgid "The import has been run successfully." msgstr "L'import a été lancé avec succès" -#: agenda_culturel/views.py:1073 +#: agenda_culturel/views.py:1115 msgid "The import has been canceled." msgstr "L'import a été annulé" -#: agenda_culturel/views.py:1151 +#: agenda_culturel/views.py:1193 msgid "The recurrent import has been successfully modified." msgstr "L'import récurrent a été modifié avec succès." -#: agenda_culturel/views.py:1160 +#: agenda_culturel/views.py:1202 msgid "The recurrent import has been successfully deleted." msgstr "L'import récurrent a été supprimé avec succès" -#: agenda_culturel/views.py:1200 +#: agenda_culturel/views.py:1242 msgid "The import has been launched." msgstr "L'import a été lancé" -#: agenda_culturel/views.py:1222 +#: agenda_culturel/views.py:1264 msgid "Imports has been launched." msgstr "Les imports ont été lancés" -#: agenda_culturel/views.py:1284 +#: agenda_culturel/views.py:1326 msgid "Update successfully completed." msgstr "Mise à jour réalisée avec succès." -#: agenda_culturel/views.py:1345 +#: agenda_culturel/views.py:1387 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:1381 +#: agenda_culturel/views.py:1423 msgid "Events have been marked as unduplicated." msgstr "Les événements ont été marqués comme non dupliqués." -#: agenda_culturel/views.py:1395 agenda_culturel/views.py:1404 -#: agenda_culturel/views.py:1422 +#: agenda_culturel/views.py:1437 agenda_culturel/views.py:1446 +#: agenda_culturel/views.py:1464 msgid "" "The selected item is no longer included in the list of duplicates. Someone " "else has probably modified the list in the meantime." @@ -1146,23 +1171,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:1398 +#: agenda_culturel/views.py:1440 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:1413 +#: agenda_culturel/views.py:1455 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:1457 +#: agenda_culturel/views.py:1499 msgid "Cleaning up duplicates: {} item(s) fixed." msgstr "Nettoyage des dupliqués: {} élément(s) corrigé(s)." -#: agenda_culturel/views.py:1506 +#: agenda_culturel/views.py:1548 msgid "The event was successfully duplicated." msgstr "L'événement a été marqué dupliqué avec succès." -#: agenda_culturel/views.py:1514 +#: agenda_culturel/views.py:1556 msgid "" "The event has been successfully flagged as a duplicate. The moderation team " "will deal with your suggestion shortly." @@ -1170,32 +1195,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:1567 +#: agenda_culturel/views.py:1609 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:1576 +#: agenda_culturel/views.py:1618 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:1598 +#: agenda_culturel/views.py:1640 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:1605 +#: agenda_culturel/views.py:1647 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:1612 agenda_culturel/views.py:1665 +#: agenda_culturel/views.py:1654 agenda_culturel/views.py:1707 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:1651 +#: agenda_culturel/views.py:1693 msgid "" "The rules were successfully applied and 1 event with default category was " "categorised." @@ -1203,7 +1228,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:1658 +#: agenda_culturel/views.py:1700 msgid "" "The rules were successfully applied and {} events with default category were " "categorised." @@ -1211,58 +1236,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:1750 agenda_culturel/views.py:1812 -#: agenda_culturel/views.py:1850 +#: agenda_culturel/views.py:1792 agenda_culturel/views.py:1854 +#: agenda_culturel/views.py:1892 msgid "{} events have been updated." msgstr "{} événements ont été mis à jour." -#: agenda_culturel/views.py:1753 agenda_culturel/views.py:1814 -#: agenda_culturel/views.py:1853 +#: agenda_culturel/views.py:1795 agenda_culturel/views.py:1856 +#: agenda_culturel/views.py:1895 msgid "1 event has been updated." msgstr "1 événement a été mis à jour" -#: agenda_culturel/views.py:1755 agenda_culturel/views.py:1816 -#: agenda_culturel/views.py:1855 +#: agenda_culturel/views.py:1797 agenda_culturel/views.py:1858 +#: agenda_culturel/views.py:1897 msgid "No events have been modified." msgstr "Aucun événement n'a été modifié." -#: agenda_culturel/views.py:1764 +#: agenda_culturel/views.py:1806 msgid "The place has been successfully updated." msgstr "Le lieu a été modifié avec succès." -#: agenda_culturel/views.py:1773 +#: agenda_culturel/views.py:1815 msgid "The place has been successfully created." msgstr "Le lieu a été créé avec succès." -#: agenda_culturel/views.py:1838 +#: agenda_culturel/views.py:1880 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:1842 +#: agenda_culturel/views.py:1884 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:1944 +#: agenda_culturel/views.py:1986 msgid "The organisation has been successfully updated." msgstr "L'organisme a été modifié avec succès." -#: agenda_culturel/views.py:1953 +#: agenda_culturel/views.py:1995 msgid "The organisation has been successfully created." msgstr "L'organisme a été créé avec succès." -#: agenda_culturel/views.py:1970 +#: agenda_culturel/views.py:2012 msgid "The tag has been successfully updated." msgstr "L'étiquette a été modifiée avec succès." -#: agenda_culturel/views.py:1977 +#: agenda_culturel/views.py:2019 msgid "The tag has been successfully created." msgstr "L'étiquette a été créée avec succès." -#: agenda_culturel/views.py:2041 +#: agenda_culturel/views.py:2083 msgid "You have not modified the tag name." msgstr "Vous n'avez pas modifié le nom de l'étiquette." -#: agenda_culturel/views.py:2051 +#: agenda_culturel/views.py:2093 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 " @@ -1275,7 +1300,7 @@ msgstr "" "sera supprimée, et tous les événements associés à l'étiquette {} seront " "associés à l'étiquette {}." -#: agenda_culturel/views.py:2058 +#: agenda_culturel/views.py:2100 msgid "" "This tag {} is already in use. You can force renaming by checking the " "corresponding option." @@ -1283,10 +1308,10 @@ msgstr "" "Cette étiquette {} est déjà utilisée. Vous pouvez forcer le renommage en " "cochant l'option correspondante." -#: agenda_culturel/views.py:2092 +#: agenda_culturel/views.py:2134 msgid "The tag {} has been successfully renamed to {}." msgstr "L'étiquette {} a été renommée avec succès en {}." -#: agenda_culturel/views.py:2130 +#: agenda_culturel/views.py:2172 msgid "The tag {} has been successfully deleted." msgstr "L'événement {} a été supprimé avec succès." diff --git a/src/agenda_culturel/static/style.scss b/src/agenda_culturel/static/style.scss index f2e95af..6469970 100644 --- a/src/agenda_culturel/static/style.scss +++ b/src/agenda_culturel/static/style.scss @@ -1574,7 +1574,7 @@ label.required::after { } -.chronology { +#chronology { .entree { display: grid; grid-template-columns: fit-content(2em) auto; diff --git a/src/agenda_culturel/templates/agenda_culturel/page-event.html b/src/agenda_culturel/templates/agenda_culturel/page-event.html index 9dcb5da..907af32 100644 --- a/src/agenda_culturel/templates/agenda_culturel/page-event.html +++ b/src/agenda_culturel/templates/agenda_culturel/page-event.html @@ -28,7 +28,7 @@ {% endwith %} {% if user.is_authenticated %} -
+

Chronologie

@@ -37,10 +37,10 @@ {% else %} @@ -56,6 +56,11 @@ {% endif %} {% endfor %} +
{% csrf_token %} + {{ form.media }} + {{ form.as_p }} + +
{% include "agenda_culturel/event-info-inc.html" with allbutdates=1 %}
diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py index 4ec214f..823c7b2 100644 --- a/src/agenda_culturel/views.py +++ b/src/agenda_culturel/views.py @@ -1,6 +1,6 @@ from django.shortcuts import render, get_object_or_404 from django.views.generic import ListView, DetailView -from django.views.generic.edit import CreateView, UpdateView, DeleteView +from django.views.generic.edit import CreateView, UpdateView, DeleteView, ModelFormMixin from django.contrib.auth.mixins import ( LoginRequiredMixin, UserPassesTestMixin, @@ -44,6 +44,7 @@ from .forms import ( TagForm, TagRenameForm, MessageForm, + MessageEventForm, ) from .filters import ( @@ -469,8 +470,9 @@ class EventDeleteView( success_message = _("The event has been successfully deleted.") -class EventDetailView(UserPassesTestMixin, DetailView): +class EventDetailView(UserPassesTestMixin, DetailView, ModelFormMixin): model = Event + form_class = MessageEventForm template_name = "agenda_culturel/page-event.html" queryset = Event.objects.select_related("exact_location").select_related("category").select_related("other_versions").select_related("other_versions__representative").prefetch_related("message_set") @@ -490,6 +492,32 @@ class EventDetailView(UserPassesTestMixin, DetailView): obj.set_current_date(date(y, m, d)) return obj + def get_success_url(self): + return self.get_object().get_absolute_url() + "#chronology" + + def post(self, request, *args, **kwargs): + if not request.user.is_authenticated: + return HttpResponseForbidden() + form = self.get_form() + if form.is_valid(): + return self.form_valid(form) + else: + return self.form_invalid(form) + + def form_valid(self, form): + logger.warning("on form valide") + message = form.save(commit=False) + message.user = self.request.user + message.related_event = self.get_object() + message.subject = _("Comment") + message.spam = False + message.closed = True + message.save() + logger.warning("on save " + str(message)) + + + return super().form_valid(form) + @login_required(login_url="/accounts/login/")