summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/locale/fr/LC_MESSAGES/django.po386
-rw-r--r--chimere/migrations/0032_auto__add_field_subcategory_submission.py227
-rw-r--r--chimere/models.py8
-rw-r--r--chimere/views.py3
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&nbsp;: «&nbsp;Tracer&nbsp;»."
-#: 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 "
"«&nbsp;Arrêter le tracé&nbsp;»."
-#: 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 «&nbsp;d&nbsp;» ou «&nbsp;Suppr&nbsp;»."
-#: 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: