diff options
-rw-r--r-- | chimere/locale/fr/LC_MESSAGES/django.po | 386 | ||||
-rw-r--r-- | chimere/migrations/0032_auto__add_field_subcategory_submission.py | 227 | ||||
-rw-r--r-- | chimere/models.py | 8 | ||||
-rw-r--r-- | chimere/views.py | 3 |
4 files changed, 457 insertions, 167 deletions
diff --git a/chimere/locale/fr/LC_MESSAGES/django.po b/chimere/locale/fr/LC_MESSAGES/django.po index 4462ff1..76ae22a 100644 --- a/chimere/locale/fr/LC_MESSAGES/django.po +++ b/chimere/locale/fr/LC_MESSAGES/django.po @@ -7,18 +7,18 @@ msgid "" msgstr "" "Project-Id-Version: 0.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-08-20 21:17+0200\n" +"POT-Creation-Date: 2012-09-28 11:00+0200\n" "PO-Revision-Date: 2010-03-20 20:00+0100\n" "Last-Translator: Étienne Loks <etienne.loks@peacefrogs.net>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: __init__.py:8 models.py:502 +#: __init__.py:8 models.py:553 msgid "Multimedia files" msgstr "Fichiers multimedias" -#: __init__.py:9 models.py:551 +#: __init__.py:9 models.py:610 msgid "Picture files" msgstr "Fichiers d'image" @@ -46,31 +46,35 @@ msgstr "Flux RSS" msgid "Contact us" msgstr "Nous contacter" -#: admin.py:62 templates/chimere/feeds/rss.html:69 +#: admin.py:63 templates/chimere/feeds/rss.html:69 msgid "Validate" msgstr "Valider" -#: admin.py:73 +#: admin.py:74 msgid "Export to KML" msgstr "Exporter en KML" -#: admin.py:87 +#: admin.py:88 msgid "Export to Shapefile" msgstr "Exporter en Shapefile" -#: admin.py:173 +#: admin.py:98 +msgid "Export to CSV" +msgstr "Exporter en CSV" + +#: admin.py:177 msgid "Import" msgstr "Import" -#: admin.py:179 +#: admin.py:183 msgid "Cancel import" msgstr "Annuler l'import" -#: admin.py:185 +#: admin.py:189 msgid "Cancel export" msgstr "Annuler l'export" -#: admin.py:193 +#: admin.py:197 msgid "Export to osm" msgstr "Exporter vers osm" @@ -107,39 +111,39 @@ msgstr "Courriel (optionnel) " msgid "Object" msgstr "Objet" -#: forms.py:158 +#: forms.py:163 msgid "End date has been set with no start date" msgstr "Une date de fin a été donnée sans date de début" -#: forms.py:171 +#: forms.py:174 msgid "This field is mandatory for the selected categories" msgstr "Ce champ est obligatoire pour les catégories sélectionnées" -#: forms.py:385 +#: forms.py:379 msgid "File" msgstr "Fichier" -#: forms.py:391 +#: forms.py:385 msgid "Bad file format: this must be a GPX or KML file" msgstr "Mauvais format de fichier : KML et GPX sont supportés" -#: forms.py:396 models.py:49 models.py:102 models.py:123 models.py:136 -#: models.py:150 models.py:233 models.py:449 models.py:492 models.py:536 -#: models.py:567 models.py:804 models.py:816 models.py:901 +#: forms.py:390 models.py:49 models.py:102 models.py:123 models.py:136 +#: models.py:150 models.py:246 models.py:500 models.py:543 models.py:587 +#: models.py:704 models.py:995 models.py:1007 models.py:1092 utils.py:441 #: templates/chimere/edit.html:39 templates/chimere/edit_route.html:36 msgid "Name" msgstr "Nom" -#: forms.py:405 models.py:853 +#: forms.py:399 models.py:1044 msgid "Area" msgstr "Zone" -#: models.py:50 models.py:124 models.py:151 models.py:244 models.py:453 -#: models.py:822 models.py:903 +#: models.py:50 models.py:124 models.py:151 models.py:257 models.py:504 +#: models.py:1013 models.py:1094 msgid "Available" msgstr "Disponible" -#: models.py:51 models.py:912 +#: models.py:51 models.py:1103 msgid "Date" msgstr "Date" @@ -155,7 +159,7 @@ msgstr "Paramètres" msgid "TinyUrl" msgstr "Mini-url" -#: models.py:106 models.py:113 models.py:153 +#: models.py:106 models.py:113 models.py:155 msgid "Color theme" msgstr "Thème de couleur" @@ -163,8 +167,8 @@ msgstr "Thème de couleur" msgid "Code" msgstr "Code" -#: models.py:112 models.py:125 models.py:155 models.py:494 models.py:543 -#: models.py:821 models.py:890 models.py:902 +#: models.py:112 models.py:125 models.py:157 models.py:545 models.py:602 +#: models.py:1012 models.py:1081 models.py:1093 msgid "Order" msgstr "Ordre" @@ -176,292 +180,320 @@ msgstr "Couleur" msgid "Category" msgstr "Catégorie" -#: models.py:137 models.py:445 models.py:537 models.py:632 +#: models.py:137 models.py:496 models.py:588 models.py:769 msgid "Image" msgstr "Image" -#: models.py:139 models.py:539 models.py:634 +#: models.py:139 models.py:590 models.py:771 msgid "Height" msgstr "Hauteur" -#: models.py:140 models.py:540 models.py:635 +#: models.py:140 models.py:591 models.py:772 msgid "Width" msgstr "Largeur" -#: models.py:144 models.py:152 +#: models.py:144 models.py:154 msgid "Icon" msgstr "Icône" -#: models.py:156 +#: models.py:152 +msgid "Available for submission" +msgstr "Disponible pour soumission" + +#: models.py:158 msgid "Marker" msgstr "Point d'intérêt" -#: models.py:157 models.py:628 models.py:643 +#: models.py:159 models.py:765 models.py:780 #: templates/chimere/edit_route.html:27 msgid "Route" msgstr "Trajet" -#: models.py:158 +#: models.py:160 msgid "Both" msgstr "Mixte" -#: models.py:159 +#: models.py:161 msgid "Item type" msgstr "Type d'élément" -#: models.py:164 +#: models.py:166 msgid "Sub-category" msgstr "Sous-catégorie" -#: models.py:165 +#: models.py:167 msgid "Sub-categories" msgstr "Sous-catégories" -#: models.py:211 +#: models.py:219 msgid "Importer type" msgstr "Type d'import" -#: models.py:214 models.py:255 +#: models.py:222 models.py:268 msgid "Source" msgstr "Source" -#: models.py:216 +#: models.py:224 msgid "Filter" msgstr "Filtre" -#: models.py:219 +#: models.py:226 +msgid "Name by default" +msgstr "Nom par défaut" + +#: models.py:229 msgid "Associated subcategories" msgstr "Sous-catégories associées" -#: models.py:220 +#: models.py:230 utils.py:444 msgid "State" msgstr "État" -#: models.py:222 +#: models.py:232 msgid "SRID" msgstr "SRID" -#: models.py:223 +#: models.py:233 msgid "Zipped file" msgstr "Fichier zippé" -#: models.py:226 +#: models.py:236 msgid "Importer" msgstr "Import" -#: models.py:235 +#: models.py:248 msgid "Submitter session key" msgstr "Clé de session du demandeur" -#: models.py:237 +#: models.py:250 msgid "Submitter name or nickname" msgstr "Nom ou pseudo du demandeur" -#: models.py:239 +#: models.py:252 msgid "Submitter email" msgstr "Courriel du demandeur" -#: models.py:241 +#: models.py:254 msgid "Submitter comment" msgstr "Commentaire du demandeur" -#: models.py:243 +#: models.py:256 msgid "Submited" msgstr "Soumis" -#: models.py:245 +#: models.py:258 msgid "Modified" msgstr "Modifié" -#: models.py:246 +#: models.py:259 msgid "Disabled" msgstr "Désactivé" -#: models.py:247 +#: models.py:260 msgid "Imported" msgstr "Importé" -#: models.py:248 +#: models.py:261 msgid "Excluded" msgstr "Exclu" -#: models.py:250 +#: models.py:263 msgid "Status" msgstr "État" -#: models.py:251 +#: models.py:264 msgid "Import key" msgstr "Clé d'import" -#: models.py:253 +#: models.py:266 msgid "Import version" msgstr "Version de l'import" -#: models.py:258 templates/chimere/edit.html:56 +#: models.py:270 +msgid "Modified since last import" +msgstr "Modifié depuis le dernier import" + +#: models.py:272 +msgid "Not to be imported inside OSM" +msgstr "À ne pas importer dans OSM" + +#: models.py:275 templates/chimere/edit.html:56 #: templates/chimere/edit_route.html:52 msgid "Start date" msgstr "Date de début" -#: models.py:259 +#: models.py:276 msgid "Not mandatory. Set it for dated item such as event. Format YYYY-MM-DD" msgstr "" "Optionnel. Précisez ce champ pour les éléments datés comme un événement. " "Format du champ : AAAA-MM-JJ" -#: models.py:261 templates/chimere/edit.html:62 +#: models.py:278 templates/chimere/edit.html:62 #: templates/chimere/edit_route.html:58 msgid "End date" msgstr "Date de fin" -#: models.py:262 +#: models.py:279 msgid "" "Not mandatory. Set it only if you have a multi-day event. Format YYYY-MM-DD" msgstr "" "Optionnel. Précisez ce champ seulement pour des événements durant plusieurs " "jours. Format du champ : AAAA-MM-JJ" -#: models.py:294 +#: models.py:315 msgid "Reference marker" msgstr "Point d'intérêt de référence" -#: models.py:295 +#: models.py:316 utils.py:446 utils.py:447 msgid "Localisation" msgstr "Localisation" -#: models.py:297 +#: models.py:318 msgid "Available Date" msgstr "Date de mise en disponibilité" -#: models.py:301 templates/chimere/edit.html:49 +#: models.py:322 utils.py:445 templates/chimere/edit.html:49 #: templates/chimere/edit_route.html:46 msgid "Description" msgstr "Description" -#: models.py:349 models.py:932 +#: models.py:373 models.py:1128 msgid "Point of interest" msgstr "Point d'intérêt" -#: models.py:443 +#: models.py:494 msgid "Audio" msgstr "Audio" -#: models.py:444 +#: models.py:495 msgid "Video" msgstr "Vidéo" -#: models.py:446 +#: models.py:497 msgid "Other" msgstr "Autre" -#: models.py:447 +#: models.py:498 msgid "Media type" msgstr "Type de media" -#: models.py:450 +#: models.py:501 msgid "Mime type" msgstr "Type mime" -#: models.py:452 +#: models.py:503 msgid "Inside an iframe" msgstr "À l'intérieur d'un iframe" -#: models.py:456 +#: models.py:507 msgid "Multimedia type" msgstr "Type de multimedia" -#: models.py:457 +#: models.py:508 msgid "Multimedia types" msgstr "Types de multimedia" -#: models.py:493 +#: models.py:544 msgid "Url" msgstr "Url" -#: models.py:496 models.py:541 +#: models.py:547 models.py:592 msgid "Display inside the description?" msgstr "Apparaît dans la description ?" -#: models.py:501 +#: models.py:552 msgid "Multimedia file" msgstr "Fichier multimedia" -#: models.py:550 +#: models.py:594 +msgid "Thumbnail" +msgstr "Miniature" + +#: models.py:598 +msgid "Thumbnail height" +msgstr "Hauteur de la miniature" + +#: models.py:600 +msgid "Thumbnail width" +msgstr "Largeur de la miniature" + +#: models.py:609 msgid "Picture file" msgstr "Fichier d'image" -#: models.py:568 +#: models.py:705 msgid "Raw file (gpx or kml)" msgstr "Fichier brut (gpx ou kml)" -#: models.py:569 +#: models.py:706 msgid "Simplified file" msgstr "Fichier simplifié" -#: models.py:571 +#: models.py:708 msgid "KML" msgstr "KML" -#: models.py:571 +#: models.py:708 msgid "GPX" msgstr "GPX" -#: models.py:576 +#: models.py:713 msgid "Route file" msgstr "Fichier de trajet" -#: models.py:577 +#: models.py:714 msgid "Route files" msgstr "Fichiers de trajet" -#: models.py:627 +#: models.py:764 msgid "Reference route" msgstr "Trajet de référence" -#: models.py:631 +#: models.py:768 msgid "Associated file" msgstr "Fichier associé" -#: models.py:805 +#: models.py:996 msgid "Layer code" msgstr "Code pour la couche" -#: models.py:811 +#: models.py:1002 msgid "Layer" msgstr "Couche" -#: models.py:817 +#: models.py:1008 msgid "Area urn" msgstr "Urn de la zone" -#: models.py:819 templates/chimere/blocks/welcome.html:3 +#: models.py:1010 templates/chimere/blocks/welcome.html:3 msgid "Welcome message" msgstr "Message d'accueil" -#: models.py:823 +#: models.py:1014 msgid "Upper left corner" msgstr "Coin en haut à gauche" -#: models.py:825 +#: models.py:1016 msgid "Lower right corner" msgstr "Coin en bas à droite" -#: models.py:827 +#: models.py:1018 msgid "Default area" msgstr "Zone par défaut" -#: models.py:828 +#: models.py:1019 msgid "Only one area is set by default" msgstr "Seule une zone est définie par défaut" -#: models.py:832 +#: models.py:1023 msgid "Sub-categories checked by default" msgstr "Sous-catégories cochées par défaut" -#: models.py:834 +#: models.py:1025 msgid "Sub-categories dynamicaly displayed" msgstr "Sous-categories affichées dynamiquement" -#: models.py:835 +#: models.py:1026 msgid "" "If checked, categories are only displayed in the menu if they are available " "on the current extent." @@ -469,156 +501,161 @@ msgstr "" "Si coché, les catégories sont disponibles sur le menu seulement si elles " "apparaissent sur la zone affichée." -#: models.py:839 models.py:906 +#: models.py:1030 models.py:1097 msgid "Restricted to theses sub-categories" msgstr "Restreindre à ces sous-categories" -#: models.py:840 +#: models.py:1031 msgid "If no sub-category is set all sub-categories are available" msgstr "" "Si aucune sous-catégorie n'est définie toutes les sous-catégories sont " "disponibles" -#: models.py:842 +#: models.py:1033 msgid "Link to an external CSS" msgstr "Lien vers une feuille de style externe" -#: models.py:844 +#: models.py:1035 msgid "Restrict to the area extent" msgstr "Restreindre à l'étendue de la zone" -#: models.py:891 +#: models.py:1082 msgid "Default layer" msgstr "Couche par défaut" -#: models.py:895 models.py:896 +#: models.py:1086 models.py:1087 msgid "Layers" msgstr "Couches" -#: models.py:904 +#: models.py:1095 msgid "Mandatory" msgstr "Obligatoire" -#: models.py:907 +#: models.py:1098 msgid "" "If no sub-category is set all the property applies to all sub-categories" msgstr "" "Si aucune sous-catégorie n'est précisée, cette propriété est disponible pour " "toutes les sous-catégories" -#: models.py:909 +#: models.py:1100 msgid "Text" msgstr "Texte" -#: models.py:910 +#: models.py:1101 msgid "Long text" msgstr "Texte long" -#: models.py:911 +#: models.py:1102 msgid "Password" msgstr "Mot de passe" -#: models.py:917 +#: models.py:1108 msgid "Type" msgstr "Type" -#: models.py:922 models.py:934 +#: models.py:1113 models.py:1130 msgid "Property model" msgstr "Modèle de propriété" -#: models.py:935 +#: models.py:1131 msgid "Value" msgstr "Valeur" -#: models.py:939 +#: models.py:1135 msgid "Property" msgstr "Propriété" -#: tasks.py:61 +#: tasks.py:62 msgid "Import pending" msgstr "Import en attente" -#: tasks.py:62 +#: tasks.py:63 msgid "Import processing" msgstr "Import en cours" -#: tasks.py:63 +#: tasks.py:64 msgid "Import successfuly done" msgstr "Import fait avec succès" -#: tasks.py:64 +#: tasks.py:65 #, python-format msgid " %(new)d new item(s), %(updated)d updated item(s)" msgstr " %(new)d nouveau(x) élément(s), %(updated)d élément(s) mis à jour" -#: tasks.py:65 +#: tasks.py:66 msgid "Import failed" msgstr "Import échoué" -#: tasks.py:66 +#: tasks.py:67 msgid "Import canceled" msgstr "Import annulé" -#: tasks.py:67 +#: tasks.py:68 msgid "Export pending" msgstr "Export en attente" -#: tasks.py:68 +#: tasks.py:69 msgid "Export processing" msgstr "Export en cours" -#: tasks.py:69 +#: tasks.py:70 msgid "Export successfuly done" msgstr "Export réalisé avec succès" -#: tasks.py:70 +#: tasks.py:71 #, python-format msgid " %(updated)d updated item(s)" msgstr " %(updated)d éléments mis à jour" -#: tasks.py:71 +#: tasks.py:72 msgid "Export failed" msgstr "Export échoué" -#: tasks.py:72 +#: tasks.py:73 msgid "Export canceled" msgstr "Export annulé" -#: utils.py:113 utils.py:161 +#: utils.py:118 utils.py:166 msgid "Bad zip file" msgstr "Mauvais fichier zip" -#: utils.py:164 +#: utils.py:169 msgid "Missing file(s) inside the zip file" msgstr "Fichier(s) manquant(s) dans l'archive zip" -#: utils.py:293 +#: utils.py:298 msgid "Error while reading the data source." msgstr "Erreur lors de la lecture de la source." -#: utils.py:328 +#: utils.py:333 msgid "Type of geographic item of this shapefile is not managed by Chimère." msgstr "" "Les types des éléments géographiques de ce fichier Shapefile ne sont pas " "gérés par Chimère." -#: utils.py:385 +#: utils.py:390 msgid "Could not create file!" msgstr "Ne peut pas créer le fichier !" -#: utils.py:396 +#: utils.py:401 msgid "Failed to create field" msgstr "Ne peut pas créer un champ" -#: utils.py:467 +#: utils.py:442 templates/chimere/edit.html:44 +#: templates/chimere/edit_route.html:41 +msgid "Categories" +msgstr "Catégories" + +#: utils.py:506 msgid "Nothing to import" msgstr "Rien à importer" -#: utils.py:547 +#: utils.py:586 msgid "New items imported - validate them before exporting" msgstr "Nouveaux éléments importés - valider ceux-ci avant d'exporter" -#: utils.py:549 +#: utils.py:588 msgid "" "There are items from a former import not yet validated - validate them " "before exporting" @@ -626,23 +663,36 @@ msgstr "" "Il y a des éléments d'un import précédent pas encore validé - Validez les " "avant d'exporter" -#: utils.py:559 +#: utils.py:598 msgid "Bad param" msgstr "Mauvais paramètre" -#: views.py:229 +#: utils.py:613 +msgid "No non ambigious tag is defined in the XAPI request" +msgstr "Pas de tag non ambigü définis dans la requête XAPI" + +#: utils.py:615 +msgid "" +"No bounding box is defined in the XAPI request.If you are sure to manage the " +"entire planet set the bounding box to -180,-90,180,90" +msgstr "" +"Aucune « bounding box » définie dans la requête XAPI. Si vous êtes sûr " +"de vouloir lancer la requête sur la planète entière fixez la « bounding " +" box » à -180,-90,180,90" + +#: views.py:234 msgid "There are missing field(s) and/or errors in the submited form." msgstr "Il y a des champs manquants ou des erreurs dans ce formulaire." -#: views.py:312 +#: views.py:316 msgid "Bad file. Please check it with an external software." msgstr "Fichier incohérent. Merci de le vérifier avec un logiciel externe." -#: views.py:434 +#: views.py:438 msgid "Comments/request on the map" msgstr "Commentaires/requètes sur la carte" -#: views.py:437 +#: views.py:441 msgid "" "Thank you for your contribution. It will be taken into account. If you have " "left your email you may be contacted soon for more details." @@ -651,48 +701,48 @@ msgstr "" "laissé votre courriel vous serez peut-être contacté bientôt pour plus de " "détails." -#: views.py:441 +#: views.py:445 msgid "Temporary error. Renew your message later." msgstr "Erreur temporaire. Réenvoyez votre message plus tard." -#: views.py:572 +#: views.py:577 msgid "No category available in this area." msgstr "Pas de catégorie disponible sur cette zone." -#: views.py:679 +#: views.py:684 msgid "Incorrect choice in the list" msgstr "Choix incorrect dans la liste" -#: widgets.py:187 +#: widgets.py:197 msgid "Latitude" msgstr "Latitude" -#: widgets.py:187 +#: widgets.py:197 msgid "Longitude" msgstr "Longitude" -#: widgets.py:212 +#: widgets.py:222 msgid "Invalid point" msgstr "Point invalide" -#: widgets.py:262 +#: widgets.py:272 msgid "Creation mode" msgstr "Mode création" -#: widgets.py:263 +#: widgets.py:273 msgid "To start drawing the route click on the toggle button: \"Draw\"." msgstr "" "Pour commencer le dessin cliquez sur le bouton : « Tracer »." -#: widgets.py:265 +#: widgets.py:275 msgid "Then click on the map to begin the drawing." msgstr "Puis cliquez sur la carte pour commencer le dessin." -#: widgets.py:266 +#: widgets.py:276 msgid "You can add points by clicking again." msgstr "Vous pouvez ajouter des points en cliquant de nouveau." -#: widgets.py:267 +#: widgets.py:277 msgid "" "To finish the drawing double click. When the drawing is finished you can " "edit it." @@ -700,7 +750,7 @@ msgstr "" "Pour finir le tracé double-cliquez. Quand le tracé est fini vous pouvez " "toujours l'éditer." -#: widgets.py:269 +#: widgets.py:279 msgid "" "While creating to undo a drawing click again on the toggle button \"Stop " "drawing\"." @@ -708,17 +758,17 @@ msgstr "" "En mode création vous pouvez annuler un tracé en appuyant sur le bouton " "« Arrêter le tracé »." -#: widgets.py:274 +#: widgets.py:284 msgid "Modification mode" msgstr "Mode modification" -#: widgets.py:275 +#: widgets.py:285 msgid "To move a point click on it and drag it to the desired position." msgstr "" "Pour bouger un point, cliquez dessus, maintenez le click pour le déposer à " "la position désirée." -#: widgets.py:276 +#: widgets.py:286 msgid "" "To delete a point move the mouse cursor over it and press the \"d\" or \"Del" "\" key." @@ -726,7 +776,7 @@ msgstr "" "Pour supprimer un point, mettez le curseur de la souris sur celui-ci et " "appuyez sur le touche « d » ou « Suppr »." -#: widgets.py:278 +#: widgets.py:288 msgid "" "To add a point click in the middle of a segment and drag the new point to " "the desired position" @@ -735,33 +785,33 @@ msgstr "" "maintenez le bouton appuyé et déplacez le nouveau point à la position " "désirée." -#: widgets.py:285 +#: widgets.py:295 msgid "Give a name and set category before uploading a file." msgstr "" "Renseignez le nom et choisissez au moins une catégorie avant de déposer un " "fichier." -#: widgets.py:288 +#: widgets.py:298 msgid "Upload a route file (GPX or KML)" msgstr "Déposer un trajet (fichier GPX ou KML)" -#: widgets.py:289 +#: widgets.py:299 msgid "or" msgstr "ou" -#: widgets.py:294 +#: widgets.py:304 msgid "Start \"hand\" drawing" msgstr "Commencer le tracé manuellement" -#: widgets.py:317 +#: widgets.py:327 msgid "Move on the map" msgstr "Se déplacer" -#: widgets.py:317 +#: widgets.py:327 msgid "Draw" msgstr "Tracer" -#: widgets.py:442 +#: widgets.py:452 msgid "Select..." msgstr "Sélectionner..." @@ -829,10 +879,6 @@ msgstr "Choisissez une localisation pour ce nouveau site" msgid "indicates a mandatory field" msgstr "indique un champ obligatoire" -#: templates/chimere/edit.html:44 templates/chimere/edit_route.html:41 -msgid "Categories" -msgstr "Catégories" - #: templates/chimere/edit.html:113 msgid "Personal information" msgstr "Informations personnelles" @@ -858,7 +904,11 @@ msgstr "Votre courriel" msgid "Comments about your submission" msgstr "Commentaires au sujet de votre proposition" -#: templates/chimere/edit.html:133 templates/chimere/edit_route.html:77 +#: templates/chimere/edit.html:134 +msgid "Upload in progress. Please wait..." +msgstr "Dépôt en cours. Veuillez patienter..." + +#: templates/chimere/edit.html:151 templates/chimere/edit_route.html:77 msgid "Propose" msgstr "Proposez" @@ -913,7 +963,7 @@ msgstr "Ce site utilise Chimère" msgid "Map" msgstr "Carte" -#: templates/chimere/blocks/map_params.html:6 +#: templates/chimere/blocks/map.html:17 msgid "Permalink" msgstr "Lien permanent" @@ -987,6 +1037,14 @@ msgstr "Choisir une zone pré-définie" msgid "Or select the area by zooming and panning this map" msgstr "Ou sélectionner une zone en zoomant et en se déplaçant sur cette carte" +#: templates/chimere/feeds/rss_descr.html:6 +msgid "Description:" +msgstr "Description :" + +#: templates/chimere/feeds/rss_descr.html:8 +msgid ":" +msgstr " :" + #~ msgid "Submit a modification" #~ msgstr "Proposer une modification" diff --git a/chimere/migrations/0032_auto__add_field_subcategory_submission.py b/chimere/migrations/0032_auto__add_field_subcategory_submission.py new file mode 100644 index 0000000..d96e5bb --- /dev/null +++ b/chimere/migrations/0032_auto__add_field_subcategory_submission.py @@ -0,0 +1,227 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'SubCategory.submission' + db.add_column('chimere_subcategory', 'submission', + self.gf('django.db.models.fields.BooleanField')(default=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'SubCategory.submission' + db.delete_column('chimere_subcategory', 'submission') + + + models = { + 'chimere.area': { + 'Meta': {'ordering': "('order', 'name')", 'object_name': 'Area'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'default': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'default_subcategories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False', 'blank': 'True'}), + 'dynamic_categories': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'external_css': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'layers': ('chimere.widgets.SelectMultipleField', [], {'symmetrical': 'False', 'related_name': "'areas'", 'blank': 'True', 'through': "orm['chimere.AreaLayers']", 'to': "orm['chimere.Layer']"}), + 'lower_right_corner': ('django.contrib.gis.db.models.fields.PointField', [], {'default': "'POINT(0 0)'"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'restrict_to_extent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'subcategories': ('chimere.widgets.SelectMultipleField', [], {'symmetrical': 'False', 'related_name': "'areas'", 'blank': 'True', 'db_table': "'chimere_subcategory_areas'", 'to': "orm['chimere.SubCategory']"}), + 'upper_left_corner': ('django.contrib.gis.db.models.fields.PointField', [], {'default': "'POINT(0 0)'"}), + 'urn': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'blank': 'True'}), + 'welcome_message': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'chimere.arealayers': { + 'Meta': {'ordering': "('order',)", 'object_name': 'AreaLayers'}, + 'area': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Area']"}), + 'default': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Layer']"}), + 'order': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.category': { + 'Meta': {'ordering': "['order']", 'object_name': 'Category'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.color': { + 'Meta': {'ordering': "['order']", 'object_name': 'Color'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '6'}), + 'color_theme': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.ColorTheme']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.colortheme': { + 'Meta': {'object_name': 'ColorTheme'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.icon': { + 'Meta': {'object_name': 'Icon'}, + 'height': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'width': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.importer': { + 'Meta': {'object_name': 'Importer'}, + 'categories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False'}), + 'default_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'filtr': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'source': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'srid': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'zipped': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'chimere.layer': { + 'Meta': {'object_name': 'Layer'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'layer_code': ('django.db.models.fields.TextField', [], {'max_length': '300'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.marker': { + 'Meta': {'ordering': "('status', 'name')", 'object_name': 'Marker'}, + 'available_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'categories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'import_key': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_source': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_version': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'modified_since_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'not_for_osm': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'point': ('chimere.widgets.PointField', [], {}), + 'ref_item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'submited_marker'", 'null': 'True', 'to': "orm['chimere.Marker']"}), + 'route': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'associated_marker'", 'null': 'True', 'to': "orm['chimere.Route']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'submiter_comment': ('django.db.models.fields.TextField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'submiter_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'submiter_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), + 'submiter_session_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}) + }, + 'chimere.multimediafile': { + 'Meta': {'object_name': 'MultimediaFile'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'marker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'multimedia_files'", 'to': "orm['chimere.Marker']"}), + 'miniature': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'multimedia_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.MultimediaType']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) + }, + 'chimere.multimediatype': { + 'Meta': {'object_name': 'MultimediaType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iframe': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'media_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.news': { + 'Meta': {'object_name': 'News'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'content': ('django.db.models.fields.TextField', [], {}), + 'date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.picturefile': { + 'Meta': {'object_name': 'PictureFile'}, + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'marker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pictures'", 'to': "orm['chimere.Marker']"}), + 'miniature': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'picture': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), + 'thumbnailfile': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'thumbnailfile_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnailfile_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'chimere.property': { + 'Meta': {'object_name': 'Property'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'marker': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Marker']"}), + 'propertymodel': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.PropertyModel']"}), + 'value': ('django.db.models.fields.TextField', [], {}) + }, + 'chimere.propertymodel': { + 'Meta': {'ordering': "('order',)", 'object_name': 'PropertyModel'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mandatory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'subcategories': ('chimere.widgets.SelectMultipleField', [], {'symmetrical': 'False', 'related_name': "'properties'", 'blank': 'True', 'to': "orm['chimere.SubCategory']"}), + 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}) + }, + 'chimere.route': { + 'Meta': {'ordering': "('status', 'name')", 'object_name': 'Route'}, + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.RouteFile']", 'null': 'True', 'blank': 'True'}), + 'categories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'import_key': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_source': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_version': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'modified_since_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'not_for_osm': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'picture': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'ref_item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'submited_route'", 'null': 'True', 'to': "orm['chimere.Route']"}), + 'route': ('chimere.widgets.RouteField', [], {}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'submiter_comment': ('django.db.models.fields.TextField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'submiter_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'submiter_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), + 'submiter_session_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'chimere.routefile': { + 'Meta': {'ordering': "('name',)", 'object_name': 'RouteFile'}, + 'file_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'raw_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'simplified_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}) + }, + 'chimere.subcategory': { + 'Meta': {'ordering': "['category', 'order']", 'object_name': 'SubCategory'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Category']"}), + 'color_theme': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.ColorTheme']", 'null': 'True', 'blank': 'True'}), + 'icon': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Icon']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1000'}), + 'submission': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'chimere.tinyurl': { + 'Meta': {'object_name': 'TinyUrl'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'parameters': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + } + } + + complete_apps = ['chimere']
\ No newline at end of file diff --git a/chimere/models.py b/chimere/models.py index 99fa073..1ca5db9 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -148,7 +148,9 @@ class SubCategory(models.Model): ''' category = models.ForeignKey(Category, verbose_name=_(u"Category")) name = models.CharField(_(u"Name"), max_length=150) - available = models.BooleanField(_(u"Available")) + available = models.BooleanField(_(u"Available"), default=True) + submission = models.BooleanField(_(u"Available for submission"), + default=True) icon = models.ForeignKey(Icon, verbose_name=_(u"Icon")) color_theme = models.ForeignKey(ColorTheme, verbose_name=_(u"Color theme"), blank=True, null=True) @@ -165,7 +167,7 @@ class SubCategory(models.Model): verbose_name_plural = _(u"Sub-categories") @classmethod - def getAvailable(cls, item_types=None, area_name=None): + def getAvailable(cls, item_types=None, area_name=None, public=False): '''Get list of tuples with first the category and second the associated subcategories ''' @@ -175,6 +177,8 @@ class SubCategory(models.Model): subcategories = subcategories.filter(available=True) else: subcategories = subcategories.filter(item_type__in=item_types) + if public: + subcategories = subcategories.filter(submission=True) selected_cats = [] if area_name: area = Area.objects.get(urn=area_name) diff --git a/chimere/views.py b/chimere/views.py index eeacd81..0492ce5 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -148,7 +148,8 @@ def get_edit_page(redirect_url, item_cls, item_form, return redir, None, None if 'area_name' in response_dct: area_name = response_dct['area_name'] - subcategories = SubCategory.getAvailable(cat_type, area_name) + subcategories = SubCategory.getAvailable(cat_type, area_name, + public=True) listed_subcats = [] if subcategories: for cat, subcats in subcategories: |