Browse Source

Merge branch 'kind_of_pois' of olb/celutz into master

zorun 7 years ago
parent
commit
59d7b14045

+ 2 - 2
panorama/admin.py

@@ -37,5 +37,5 @@ class PanoramaAdmin(admin.ModelAdmin):
 @admin.register(ReferencePoint)
 class ReferencePointAdmin(admin.ModelAdmin):
     model = ReferencePoint
-    list_display = ('name', 'latitude', 'longitude', 'altitude')
-    fields = ('name', ('latitude', 'longitude'), 'altitude')
+    list_display = ('name', 'latitude', 'longitude', 'altitude', 'kind')
+    fields = ('name', ('latitude', 'longitude'), 'altitude', 'kind')

+ 1 - 1
panorama/forms.py

@@ -35,4 +35,4 @@ class ReferencePointForm(forms.ModelForm):
 
     class Meta:
         model = ReferencePoint
-        fields = ['name', 'latitude', 'longitude', 'altitude']
+        fields = ['name', 'latitude', 'longitude', 'altitude', 'kind']

+ 107 - 80
panorama/locale/es/LC_MESSAGES/django.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-09-27 21:48+0000\n"
+"POT-Creation-Date: 2017-10-09 16:25+0000\n"
 "PO-Revision-Date: 2016-08-31 17:28+0200\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,281 +18,308 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: panorama/admin.py:33
+#: admin.py:33
 msgid "Launched tiles regeneration, it may take some time to complete"
 msgstr ""
 
-#: panorama/admin.py:34
+#: admin.py:34
 msgid "Regenerate tiles for the selected panoramas"
 msgstr ""
 
-#: panorama/apps.py:10 panorama/templates/panorama/locate_point.html:145
-#: panorama/templates/panorama/main.html:233
+#: apps.py:10 templates/panorama/locate_point.html:135
+#: templates/panorama/main.html:279
 msgid "Panorama"
 msgstr "Panorama"
 
-#: panorama/forms.py:13
+#: forms.py:13
 msgid "Reference point"
 msgstr "Punto de referencia"
 
-#: panorama/models.py:25
+#: models.py:24
 msgid "latitude"
 msgstr "latitud"
 
-#: panorama/models.py:25 panorama/models.py:28
+#: models.py:24 models.py:27
 msgid "In degrees"
 msgstr "En grados"
 
-#: panorama/models.py:28
+#: models.py:27
 msgid "longitude"
 msgstr "longitud"
 
-#: panorama/models.py:31
+#: models.py:30
 msgid "altitude"
 msgstr "altitud"
 
-#: panorama/models.py:31
+#: models.py:30
 msgid "In meters"
 msgstr "En metros"
 
-#: panorama/models.py:107
+#: models.py:106
 msgid "name"
 msgstr "nombre"
 
-#: panorama/models.py:108
+#: models.py:107
 msgid "Name of the point"
 msgstr "Nombre del punto"
 
-#: panorama/models.py:114 panorama/models.py:296
+#: models.py:113
+msgid "waiting"
+msgstr ""
+
+#: models.py:114
+msgid "subscriber"
+msgstr ""
+
+#: models.py:115
+msgid "other"
+msgstr ""
+
+#: models.py:118
+msgid "kind"
+msgstr ""
+
+#: models.py:125 models.py:307
 msgid "reference point"
 msgstr "punto de referencia"
 
-#: panorama/models.py:115
+#: models.py:126
 msgid "reference points"
 msgstr "puntos de referencia"
 
-#: panorama/models.py:119
+#: models.py:130
 msgid "360° panorama"
 msgstr "Panorama de 360°"
 
-#: panorama/models.py:120
+#: models.py:131
 msgid "Whether the panorama loops around the edges"
 msgstr "Si el panorama vuelta en los bordes"
 
-#: panorama/models.py:121
+#: models.py:132
 msgid "image"
 msgstr "imagen"
 
-#: panorama/models.py:124
+#: models.py:135
 msgid "image width"
 msgstr ""
 
-#: panorama/models.py:125
+#: models.py:136
 msgid "image height"
 msgstr ""
 
-#: panorama/models.py:130 panorama/models.py:332
+#: models.py:141 models.py:319
 msgid "references"
 msgstr "referencias"
 
-#: panorama/models.py:143
+#: models.py:154
 msgid "Tiles available?"
 msgstr ""
 
-#: panorama/models.py:282 panorama/models.py:298
+#: models.py:293 models.py:309
 msgid "panorama"
 msgstr "panorama"
 
-#: panorama/models.py:283
+#: models.py:294
 msgid "panoramas"
 msgstr "panoramas"
 
-#: panorama/models.py:312
+#: models.py:318
+msgid "reference"
+msgstr "referencia"
+
+#: models.py:325
 msgid "A panorama can't reference itself."
 msgstr ""
 
-#: panorama/models.py:317
+#: models.py:330
 #, python-brace-format
 msgid "Position {xy} is outside the bounds of the image ({width}, {height})."
 msgstr ""
 
-#: panorama/models.py:324
+#: models.py:337
 #, python-brace-format
 msgid "{refpoint} at {xy} in {pano}"
 msgstr ""
 
-#: panorama/models.py:331
-msgid "reference"
-msgstr "referencia"
-
-#: panorama/templates/panorama/base.html:51
+#: templates/panorama/base.html:51
 msgid "Admin"
 msgstr ""
 
-#: panorama/templates/panorama/base.html:56
+#: templates/panorama/base.html:56
 msgid "Language"
 msgstr "Idioma"
 
-#: panorama/templates/panorama/base.html:69
+#: templates/panorama/base.html:69
 msgid "About"
 msgstr "Acerca de"
 
-#: panorama/templates/panorama/base.html:72
+#: templates/panorama/base.html:72
 msgid "Celutz is a tool for managing and referencing panoramic photos"
 msgstr ""
 "Celutz es una heramienta para gestionar y referenciar fotos panoramicas"
 
-#: panorama/templates/panorama/base.html:73
+#: templates/panorama/base.html:73
 msgid "Project homepage"
 msgstr "Pagina del projecto"
 
-#: panorama/templates/panorama/locate_point.html:8
+#: templates/panorama/locate_point.html:8
 msgid "Result of research"
 msgstr "Resultado de la búsqueda"
 
-#: panorama/templates/panorama/locate_point.html:20
+#: templates/panorama/locate_point.html:20
 msgid "No panorama seeing this point !"
 msgstr "Ningún panorama ve este punto"
 
-#: panorama/templates/panorama/locate_point.html:23
+#: templates/panorama/locate_point.html:23
 msgid "Panoramas seeing the point"
 msgstr "Panoramas que ven el punto"
 
-#: panorama/templates/panorama/locate_point.html:25
+#: templates/panorama/locate_point.html:25
 msgid "Panoramas seeing the searched point"
 msgstr "Panoramas que ven el punto deseado"
 
-#: panorama/templates/panorama/locate_point.html:134
-#: panorama/templates/panorama/sidebar-locate-point.html:15
+#: templates/panorama/locate_point.html:124
+#: templates/panorama/sidebar-locate-point.html:15
 msgid "at"
 msgstr "de"
 
-#: panorama/templates/panorama/locate_point.html:144
-#: panorama/templates/panorama/main.html:232
+#: templates/panorama/locate_point.html:134 templates/panorama/main.html:278
 msgid "Legend"
 msgstr "Leyenda"
 
-#: panorama/templates/panorama/locate_point.html:146
+#: templates/panorama/locate_point.html:136
 msgid "Localized point"
 msgstr "Punto localizado"
 
-#: panorama/templates/panorama/main.html:8
+#: templates/panorama/main.html:9
 msgid "Celutz, a panorama viewer"
 msgstr "Celutz, un visualisador de panorama"
 
-#: panorama/templates/panorama/main.html:16
+#: templates/panorama/main.html:17
 msgid "Search"
 msgstr ""
 
-#: panorama/templates/panorama/main.html:20
+#: templates/panorama/main.html:21
 msgid "Enter an address"
 msgstr "Introducir una dirección"
 
-#: panorama/templates/panorama/main.html:234
+#: templates/panorama/main.html:280
 msgid "Control"
 msgstr "Control"
 
-#: panorama/templates/panorama/main.html:235
-msgid "Point of interest"
+#: templates/panorama/main.html:281
+#, fuzzy
+#| msgid "Point of interest"
+msgid "Point of interest (subscriber)"
+msgstr "Punto de interés"
+
+#: templates/panorama/main.html:282
+#, fuzzy
+#| msgid "Point of interest"
+msgid "Point of interest (waiting)"
+msgstr "Punto de interés"
+
+#: templates/panorama/main.html:283
+#, fuzzy
+#| msgid "Point of interest"
+msgid "Point of interest (other)"
 msgstr "Punto de interés"
 
-#: panorama/templates/panorama/sidebar-all.html:5
+#: templates/panorama/sidebar-all.html:5
 msgid "Map"
 msgstr "Mapa"
 
-#: panorama/templates/panorama/sidebar-all.html:9
+#: templates/panorama/sidebar-all.html:9
 msgid "Locate GPS point"
 msgstr "Localizar por GPS"
 
-#: panorama/templates/panorama/sidebar-all.html:16
-#: panorama/templates/panorama/sidebar-common.html:28
-#: panorama/templates/panorama/view.html:140
-#: panorama/templates/panorama/view.html:150
+#: templates/panorama/sidebar-all.html:16
+#: templates/panorama/sidebar-common.html:28 templates/panorama/view.html:154
+#: templates/panorama/view.html:164
 msgid "Locate"
 msgstr "Localizar"
 
-#: panorama/templates/panorama/sidebar-all.html:22
+#: templates/panorama/sidebar-all.html:22
 msgid "New reference point"
 msgstr "Añadir un punto"
 
-#: panorama/templates/panorama/sidebar-all.html:30
-#: panorama/templates/panorama/sidebar-all.html:46
+#: templates/panorama/sidebar-all.html:31
+#: templates/panorama/sidebar-all.html:47
 msgid "Add"
 msgstr "Añadir"
 
-#: panorama/templates/panorama/sidebar-all.html:36
+#: templates/panorama/sidebar-all.html:37
 msgid "New panorama"
 msgstr "Añadir un panorama"
 
-#: panorama/templates/panorama/sidebar-common.html:4
+#: templates/panorama/sidebar-common.html:4
 msgid "Panoramas"
 msgstr "Panoramas"
 
-#: panorama/templates/panorama/sidebar-common.html:23
+#: templates/panorama/sidebar-common.html:23
 msgid "Locate existing point"
 msgstr "Localizar un punto"
 
-#: panorama/templates/panorama/sidebar-locate-point.html:9
+#: templates/panorama/sidebar-locate-point.html:9
 msgid "Results for the point"
 msgstr "Resultados para el punto"
 
-#: panorama/templates/panorama/sidebar-locate-point.html:11
+#: templates/panorama/sidebar-locate-point.html:11
 msgid "Results for the searched point"
 msgstr "Resultados para el punto deseado"
 
-#: panorama/templates/panorama/view.html:118
+#: templates/panorama/view.html:132
 msgid "Parameters"
 msgstr "Parámetro"
 
-#: panorama/templates/panorama/view.html:122
+#: templates/panorama/view.html:136
 msgid "latitude:"
 msgstr "latitud:"
 
-#: panorama/templates/panorama/view.html:123
+#: templates/panorama/view.html:137
 msgid "longitude:"
 msgstr "longitud:"
 
-#: panorama/templates/panorama/view.html:124
+#: templates/panorama/view.html:138
 msgid "altitude:"
 msgstr "altitud:"
 
-#: panorama/templates/panorama/view.html:130
+#: templates/panorama/view.html:144
 msgid "Controls"
 msgstr "Control"
 
-#: panorama/templates/panorama/view.html:133
+#: templates/panorama/view.html:147
 msgid "Zoom:"
 msgstr "Zoom:"
 
-#: panorama/templates/panorama/view.html:134
+#: templates/panorama/view.html:148
 msgid "Bearing:"
 msgstr "Dirección:"
 
-#: panorama/templates/panorama/view.html:135
+#: templates/panorama/view.html:149
 msgid "Elevation:"
 msgstr "Elevación:"
 
-#: panorama/templates/panorama/view.html:143
+#: templates/panorama/view.html:157
 msgid "Latitude:"
 msgstr "Latitud:"
 
-#: panorama/templates/panorama/view.html:145
+#: templates/panorama/view.html:159
 msgid "Longitude:"
 msgstr "Longitud:"
 
-#: panorama/templates/panorama/view.html:147
+#: templates/panorama/view.html:161
 msgid "Altitude:"
 msgstr "Altitud:"
 
-#: panorama/templates/panorama/view.html:151
-#: panorama/templates/panorama/view.html:182
+#: templates/panorama/view.html:165 templates/panorama/view.html:196
 msgid "Delete"
 msgstr "Borrar"
 
-#: panorama/templates/panorama/view.html:181
+#: templates/panorama/view.html:195
 msgid "Insert"
 msgstr "Insertar"
 
-#: panorama/templates/panorama/view.html:183
+#: templates/panorama/view.html:197
 msgid "Cancel"
 msgstr "Cancelar"

BIN
panorama/locale/fr/LC_MESSAGES/django.mo


+ 109 - 89
panorama/locale/fr/LC_MESSAGES/django.po

@@ -3,296 +3,316 @@
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-09-27 21:48+0000\n"
-"PO-Revision-Date: 2016-08-31 17:34+0200\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2017-10-09 16:25+0000\n"
+"PO-Revision-Date: 2017-10-09 18:27+0200\n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"X-Generator: Poedit 1.8.11\n"
 
-#: panorama/admin.py:33
+#: admin.py:33
 msgid "Launched tiles regeneration, it may take some time to complete"
 msgstr "Regénération des tuiles en cours, cela pourrait prendre du temps"
 
-#: panorama/admin.py:34
+#: admin.py:34
 msgid "Regenerate tiles for the selected panoramas"
 msgstr "Regénérer les tuiles pour les panoramas sélectionnés"
 
-#: panorama/apps.py:10 panorama/templates/panorama/locate_point.html:145
-#: panorama/templates/panorama/main.html:233
+#: apps.py:10 templates/panorama/locate_point.html:135
+#: templates/panorama/main.html:279
 msgid "Panorama"
 msgstr "Panorama"
 
-#: panorama/forms.py:13
+#: forms.py:13
 msgid "Reference point"
 msgstr "Point de référence"
 
-#: panorama/models.py:25
+#: models.py:24
 msgid "latitude"
 msgstr "latitude"
 
-#: panorama/models.py:25 panorama/models.py:28
+#: models.py:24 models.py:27
 msgid "In degrees"
 msgstr "En degrés"
 
-#: panorama/models.py:28
+#: models.py:27
 msgid "longitude"
 msgstr "longitude"
 
-#: panorama/models.py:31
+#: models.py:30
 msgid "altitude"
 msgstr "altitude"
 
-#: panorama/models.py:31
+#: models.py:30
 msgid "In meters"
 msgstr "En mètres"
 
-#: panorama/models.py:107
+#: models.py:106
 msgid "name"
 msgstr "nom"
 
-#: panorama/models.py:108
+#: models.py:107
 msgid "Name of the point"
 msgstr "Nom du point"
 
-#: panorama/models.py:114 panorama/models.py:296
+#: models.py:113
+msgid "waiting"
+msgstr "en attente"
+
+#: models.py:114
+msgid "subscriber"
+msgstr "abonné·e"
+
+#: models.py:115
+msgid "other"
+msgstr "autre"
+
+#: models.py:118
+msgid "kind"
+msgstr "type"
+
+#: models.py:125 models.py:307
 msgid "reference point"
 msgstr "point de référence"
 
-#: panorama/models.py:115
+#: models.py:126
 msgid "reference points"
 msgstr "points de référence"
 
-#: panorama/models.py:119
+#: models.py:130
 msgid "360° panorama"
 msgstr "Panorama de 360°"
 
-#: panorama/models.py:120
+#: models.py:131
 msgid "Whether the panorama loops around the edges"
 msgstr "Si le panorama boucle sur ses côtés"
 
-#: panorama/models.py:121
+#: models.py:132
 msgid "image"
 msgstr "image"
 
-#: panorama/models.py:124
+#: models.py:135
 msgid "image width"
 msgstr "largeur de l'image"
 
-#: panorama/models.py:125
+#: models.py:136
 msgid "image height"
 msgstr "hauteur de l'image"
 
-#: panorama/models.py:130 panorama/models.py:332
+#: models.py:141 models.py:319
 msgid "references"
 msgstr "références"
 
-#: panorama/models.py:143
+#: models.py:154
 msgid "Tiles available?"
 msgstr "Tuiles disponibles ?"
 
-#: panorama/models.py:282 panorama/models.py:298
+#: models.py:293 models.py:309
 msgid "panorama"
 msgstr "panorama"
 
-#: panorama/models.py:283
+#: models.py:294
 msgid "panoramas"
 msgstr "panoramas"
 
-#: panorama/models.py:312
+#: models.py:318
+msgid "reference"
+msgstr "référence"
+
+#: models.py:325
 msgid "A panorama can't reference itself."
 msgstr "Un panorama ne peut pas se référencer lui-même."
 
-#: panorama/models.py:317
+#: models.py:330
 #, python-brace-format
 msgid "Position {xy} is outside the bounds of the image ({width}, {height})."
-msgstr ""
-"La position {xy} est en dehors de l'image de taille ({width}, {height})."
+msgstr "La position {xy} est en dehors de l'image de taille ({width}, {height})."
 
-#: panorama/models.py:324
+#: models.py:337
 #, python-brace-format
 msgid "{refpoint} at {xy} in {pano}"
 msgstr "{refpoint} en {xy} sur {pano}"
 
-#: panorama/models.py:331
-msgid "reference"
-msgstr "référence"
-
-#: panorama/templates/panorama/base.html:51
+#: templates/panorama/base.html:51
 msgid "Admin"
 msgstr "Admin"
 
-#: panorama/templates/panorama/base.html:56
+#: templates/panorama/base.html:56
 msgid "Language"
 msgstr "Langue"
 
-#: panorama/templates/panorama/base.html:69
+#: templates/panorama/base.html:69
 msgid "About"
 msgstr "À propos"
 
-#: panorama/templates/panorama/base.html:72
+#: templates/panorama/base.html:72
 msgid "Celutz is a tool for managing and referencing panoramic photos"
 msgstr "Celutz est un outil pour gérer et référencer des photos panoramiques"
 
-#: panorama/templates/panorama/base.html:73
+#: templates/panorama/base.html:73
 msgid "Project homepage"
 msgstr "Page du projet"
 
-#: panorama/templates/panorama/locate_point.html:8
+#: templates/panorama/locate_point.html:8
 msgid "Result of research"
 msgstr "Résultat de la recherche"
 
-#: panorama/templates/panorama/locate_point.html:20
+#: templates/panorama/locate_point.html:20
 msgid "No panorama seeing this point !"
 msgstr "Aucun panorama ne voit ce point !"
 
-#: panorama/templates/panorama/locate_point.html:23
+#: templates/panorama/locate_point.html:23
 msgid "Panoramas seeing the point"
 msgstr "Panoramas voyant le point"
 
-#: panorama/templates/panorama/locate_point.html:25
+#: templates/panorama/locate_point.html:25
 msgid "Panoramas seeing the searched point"
 msgstr "Panoromas voyant le point recherché"
 
-#: panorama/templates/panorama/locate_point.html:134
-#: panorama/templates/panorama/sidebar-locate-point.html:15
+#: templates/panorama/locate_point.html:124
+#: templates/panorama/sidebar-locate-point.html:15
 msgid "at"
 msgstr "à"
 
-#: panorama/templates/panorama/locate_point.html:144
-#: panorama/templates/panorama/main.html:232
+#: templates/panorama/locate_point.html:134 templates/panorama/main.html:278
 msgid "Legend"
 msgstr "Légende"
 
-#: panorama/templates/panorama/locate_point.html:146
+#: templates/panorama/locate_point.html:136
 msgid "Localized point"
 msgstr "Point localisé"
 
-#: panorama/templates/panorama/main.html:8
+#: templates/panorama/main.html:9
 msgid "Celutz, a panorama viewer"
 msgstr "Celutz, un visualisateur de panoramas"
 
-#: panorama/templates/panorama/main.html:16
+#: templates/panorama/main.html:17
 msgid "Search"
 msgstr ""
 
-#: panorama/templates/panorama/main.html:20
+#: templates/panorama/main.html:21
 msgid "Enter an address"
 msgstr "Entrer une adresse"
 
-#: panorama/templates/panorama/main.html:234
+#: templates/panorama/main.html:280
 msgid "Control"
 msgstr "Contrôles"
 
-#: panorama/templates/panorama/main.html:235
-msgid "Point of interest"
-msgstr "Point d&#x27;intérêt"
+#: templates/panorama/main.html:281
+msgid "Point of interest (subscriber)"
+msgstr "Point d&#x27;intérêt (abonné·e)"
+
+#: templates/panorama/main.html:282
+msgid "Point of interest (waiting)"
+msgstr "Point d&#x27;intérêt (en attente)"
+
+#: templates/panorama/main.html:283
+msgid "Point of interest (other)"
+msgstr "Point d&#x27;intérêt (autre)"
 
-#: panorama/templates/panorama/sidebar-all.html:5
+#: templates/panorama/sidebar-all.html:5
 msgid "Map"
 msgstr "Carte"
 
-#: panorama/templates/panorama/sidebar-all.html:9
+#: templates/panorama/sidebar-all.html:9
 msgid "Locate GPS point"
 msgstr "Localiser par GPS"
 
-#: panorama/templates/panorama/sidebar-all.html:16
-#: panorama/templates/panorama/sidebar-common.html:28
-#: panorama/templates/panorama/view.html:140
-#: panorama/templates/panorama/view.html:150
+#: templates/panorama/sidebar-all.html:16
+#: templates/panorama/sidebar-common.html:28 templates/panorama/view.html:154
+#: templates/panorama/view.html:164
 msgid "Locate"
 msgstr "Localiser"
 
-#: panorama/templates/panorama/sidebar-all.html:22
+#: templates/panorama/sidebar-all.html:22
 msgid "New reference point"
 msgstr "Ajouter un point"
 
-#: panorama/templates/panorama/sidebar-all.html:30
-#: panorama/templates/panorama/sidebar-all.html:46
+#: templates/panorama/sidebar-all.html:31
+#: templates/panorama/sidebar-all.html:47
 msgid "Add"
 msgstr "Ajouter"
 
-#: panorama/templates/panorama/sidebar-all.html:36
+#: templates/panorama/sidebar-all.html:37
 msgid "New panorama"
 msgstr "Ajouter un panorama"
 
-#: panorama/templates/panorama/sidebar-common.html:4
+#: templates/panorama/sidebar-common.html:4
 msgid "Panoramas"
 msgstr "Panoramas"
 
-#: panorama/templates/panorama/sidebar-common.html:23
+#: templates/panorama/sidebar-common.html:23
 msgid "Locate existing point"
 msgstr "Localiser un point"
 
-#: panorama/templates/panorama/sidebar-locate-point.html:9
+#: templates/panorama/sidebar-locate-point.html:9
 msgid "Results for the point"
 msgstr "Résultats pour le point"
 
-#: panorama/templates/panorama/sidebar-locate-point.html:11
+#: templates/panorama/sidebar-locate-point.html:11
 msgid "Results for the searched point"
 msgstr "Résultats pour le point recherché"
 
-#: panorama/templates/panorama/view.html:118
+#: templates/panorama/view.html:132
 msgid "Parameters"
 msgstr "Paramètres"
 
-#: panorama/templates/panorama/view.html:122
+#: templates/panorama/view.html:136
 msgid "latitude:"
 msgstr "latitude :"
 
-#: panorama/templates/panorama/view.html:123
+#: templates/panorama/view.html:137
 msgid "longitude:"
 msgstr "longitude :"
 
-#: panorama/templates/panorama/view.html:124
+#: templates/panorama/view.html:138
 msgid "altitude:"
 msgstr "altitude :"
 
-#: panorama/templates/panorama/view.html:130
+#: templates/panorama/view.html:144
 msgid "Controls"
 msgstr "Contrôles"
 
-#: panorama/templates/panorama/view.html:133
+#: templates/panorama/view.html:147
 msgid "Zoom:"
 msgstr "Zoom :"
 
-#: panorama/templates/panorama/view.html:134
+#: templates/panorama/view.html:148
 msgid "Bearing:"
 msgstr "Cap :"
 
-#: panorama/templates/panorama/view.html:135
+#: templates/panorama/view.html:149
 msgid "Elevation:"
 msgstr "Élévation :"
 
-#: panorama/templates/panorama/view.html:143
+#: templates/panorama/view.html:157
 msgid "Latitude:"
 msgstr "Latitude :"
 
-#: panorama/templates/panorama/view.html:145
+#: templates/panorama/view.html:159
 msgid "Longitude:"
 msgstr "Longitude :"
 
-#: panorama/templates/panorama/view.html:147
+#: templates/panorama/view.html:161
 msgid "Altitude:"
 msgstr "Altitude :"
 
-#: panorama/templates/panorama/view.html:151
-#: panorama/templates/panorama/view.html:182
+#: templates/panorama/view.html:165 templates/panorama/view.html:196
 msgid "Delete"
 msgstr "Supprimer"
 
-#: panorama/templates/panorama/view.html:181
+#: templates/panorama/view.html:195
 msgid "Insert"
 msgstr "Insérer"
 
-#: panorama/templates/panorama/view.html:183
+#: templates/panorama/view.html:197
 msgid "Cancel"
 msgstr "Annuler"

+ 62 - 0
panorama/migrations/0005_auto_20170912_2147.py

@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.13 on 2017-09-12 21:47
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('panorama', '0004_auto_20150310_1906'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='panorama',
+            options={'verbose_name': 'panorama', 'verbose_name_plural': 'panoramas'},
+        ),
+        migrations.AlterModelOptions(
+            name='reference',
+            options={'verbose_name': 'reference', 'verbose_name_plural': 'references'},
+        ),
+        migrations.AlterModelOptions(
+            name='referencepoint',
+            options={'verbose_name': 'reference point', 'verbose_name_plural': 'reference points'},
+        ),
+        migrations.AddField(
+            model_name='referencepoint',
+            name='kind',
+            field=models.CharField(choices=[('waiting', 'waiting'), ('subscriber', 'subscriber'), ('other', 'other')], default='waiting', max_length=255, verbose_name='kind'),
+        ),
+        migrations.AlterField(
+            model_name='panorama',
+            name='image_height',
+            field=models.PositiveIntegerField(default=0, verbose_name='image height'),
+        ),
+        migrations.AlterField(
+            model_name='panorama',
+            name='image_width',
+            field=models.PositiveIntegerField(default=0, verbose_name='image width'),
+        ),
+        migrations.AlterField(
+            model_name='panorama',
+            name='references',
+            field=models.ManyToManyField(related_name='referenced_panorama', through='panorama.Reference', to='panorama.ReferencePoint', verbose_name='references'),
+        ),
+        migrations.AlterField(
+            model_name='reference',
+            name='panorama',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='panorama_references', to='panorama.Panorama', verbose_name='panorama'),
+        ),
+        migrations.AlterField(
+            model_name='reference',
+            name='reference_point',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='refpoint_references', to='panorama.ReferencePoint', verbose_name='reference point'),
+        ),
+        migrations.AlterUniqueTogether(
+            name='reference',
+            unique_together=set([]),
+        ),
+    ]

+ 14 - 5
panorama/models.py

@@ -1,7 +1,6 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals, division, print_function
 
-import subprocess
 import os
 from math import radians, degrees, sin, cos, asin, atan2, sqrt, ceil
 
@@ -107,6 +106,18 @@ class ReferencePoint(Point):
     name = models.CharField(verbose_name=_("name"), max_length=255,
                             help_text=_("Name of the point"))
 
+    KIND_OTHER = 'other'
+    KIND_SUBSCRIBER = 'subscriber'
+    KIND_WAITING = 'waiting'
+    KIND_CHOICES = (
+        (KIND_WAITING, _('waiting')),
+        (KIND_SUBSCRIBER, _('subscriber')),
+        (KIND_OTHER, _('other')),
+    )
+
+    kind = models.CharField(verbose_name=_('kind'), max_length=255,
+                            choices=KIND_CHOICES, default=KIND_WAITING)
+
     def __str__(self):
         return self.name
 
@@ -304,6 +315,8 @@ class Reference(models.Model):
         # It makes no sense to have multiple references of the same
         # reference point on a given panorama.
         unique_together = (("reference_point", "panorama"),)
+        verbose_name = _("reference")
+        verbose_name_plural = _("references")
 
     def clean(self):
         # Check that the reference point and the panorama are different
@@ -326,7 +339,3 @@ class Reference(models.Model):
                 xy=(self.x, self.y),
                 refpoint=self.reference_point.name,
                 )
-
-    class Meta:
-        verbose_name = _("reference")
-        verbose_name_plural = _("references")

BIN
panorama/static/panorama/img/marker-circle-orange.png


BIN
panorama/static/panorama/img/marker-circle-purple.png


+ 3 - 0
panorama/static/panorama/js/pano.js

@@ -31,6 +31,9 @@ var point_colors = {
     'pano_point' : '255,128,128', // red
     'ref_point'  : '128,128,255', // blue
     'loc_point'  : '128,255,128', // green
+    'loc_point_other'  : '128,255,128', // green
+    'loc_point_subscriber'  : '255,128,255', // purple
+    'loc_point_waiting'  : '255,196,128', // orange
     'temporary'  : '255,255,128', // yellow
     'unlocated'  : '255,255,255'  // white
 };

+ 25 - 9
panorama/templates/panorama/main.html

@@ -94,12 +94,27 @@
             iconAnchor: [11, 35],
             popupAnchor: [0,-50]
         });
-        var poiIcon = L.icon({
-            iconUrl: '{% static "panorama/img/marker-circle-green.png" %}',
-            iconSize: [20, 20],
-            iconAnchor: [10, 10],
-            popupAnchor: [0,-20]
-        });
+        var poiIcons = {
+          subscriber: L.icon({
+              iconUrl: '{% static "panorama/img/marker-circle-green.png" %}',
+              iconSize: [20, 20],
+              iconAnchor: [10, 10],
+              popupAnchor: [0,-20]
+          }),
+          waiting: L.icon({
+              iconUrl: '{% static "panorama/img/marker-circle-orange.png" %}',
+              iconSize: [20, 20],
+              iconAnchor: [10, 10],
+              popupAnchor: [0,-20]
+          }),
+          other: L.icon({
+              iconUrl: '{% static "panorama/img/marker-circle-purple.png" %}',
+              iconSize: [20, 20],
+              iconAnchor: [10, 10],
+              popupAnchor: [0,-20]
+          }),
+        };
+
         var legend = L.control({position: 'bottomright'});
     
         function accordionMenus() {
@@ -250,9 +265,8 @@
             map.addLayer( markerClusters );
             // Add POI
             var pointsOfInterest = L.layerGroup();
-            var options = {icon: poiIcon, riseOnHover: true};
             {% for poi in poi_list %}
-                var poiMarker = L.marker([{{ poi.latitude }}, {{ poi.longitude }}], options);
+                var poiMarker = L.marker([{{ poi.latitude }}, {{ poi.longitude }}], {icon: poiIcons['{{ poi.kind }}'], riseOnHover: true});
                 var poiPopup = poiMarker.bindPopup('{{ poi.name }}', {className : 'markerpopup', closeButton: false});
                 poiPopup.on('mouseover', poiMarker.openPopup);
                 poiPopup.on('mouseout', poiMarker.closePopup);
@@ -264,7 +278,9 @@
                 div.innerHTML += '<div class="legendtitle"><p><i class="fa fa-fw fa-caret-down"></i>{% trans "Legend" %}</p></div>';
                 div.innerHTML += '<img src={% static "panorama/img/marker-red.png" %} ><p>{% trans "Panorama" %}</p></br>';
                 div.innerHTML += '<img src={% static "panorama/img/marker-blue.png" %} ><p>{% trans "Control" %}</p></br>';
-                div.innerHTML += '<img src={% static "panorama/img/marker-circle-green.png" %} ><p>{% trans "Point of interest" %}</p></br>';
+                div.innerHTML += '<img src={% static "panorama/img/marker-circle-green.png" %} ><p>{% trans "Point of interest (subscriber)" %}</p></br>';
+                div.innerHTML += '<img src={% static "panorama/img/marker-circle-orange.png" %} ><p>{% trans "Point of interest (waiting)" %}</p></br>';
+                div.innerHTML += '<img src={% static "panorama/img/marker-circle-purple.png" %} ><p>{% trans "Point of interest (other)" %}</p></br>';
                 return div;
             };
             map.addLayer(pointsOfInterest);

+ 1 - 0
panorama/templates/panorama/sidebar-all.html

@@ -27,6 +27,7 @@
                         {{ newrefpoint_form.latitude.label_tag }}{{ newrefpoint_form.latitude }}
                         {{ newrefpoint_form.longitude.label_tag }}{{ newrefpoint_form.longitude }}
                         {{ newrefpoint_form.altitude.label_tag }}{{ newrefpoint_form.altitude }}
+                        {{ newrefpoint_form.kind.label_tag }}{{ newrefpoint_form.kind }}
                         <input type="submit" class="btn btn-primary btn-sm" value={% trans "Add" %} />
                     </form>
                 </li>

+ 17 - 5
panorama/templates/panorama/view.html

@@ -73,14 +73,27 @@
           iconAnchor: [11, 35],
           popupAnchor: [0,-50]
       });
-      var poiIcon = L.icon({
+      var poiIcons = {
+        subscriber: L.icon({
             iconUrl: '{% static "panorama/img/marker-circle-green.png" %}',
             iconSize: [20, 20],
             iconAnchor: [10, 10],
             popupAnchor: [0,-20]
-      });
+        }),
+        waiting: L.icon({
+            iconUrl: '{% static "panorama/img/marker-circle-orange.png" %}',
+            iconSize: [20, 20],
+            iconAnchor: [10, 10],
+            popupAnchor: [0,-20]
+        }),
+        other: L.icon({
+            iconUrl: '{% static "panorama/img/marker-circle-purple.png" %}',
+            iconSize: [20, 20],
+            iconAnchor: [10, 10],
+            popupAnchor: [0,-20]
+        }),
+      };
 
-      
       {% for pano in panoramas %}
           {% if panorama.name != pano.name  %}
               var marker = L.marker([{{ pano.latitude }}, {{ pano.longitude }}], {icon: panoIcon, riseOnHover: true});
@@ -93,9 +106,8 @@
       {% endfor %}
 
       var pointsOfInterest = L.layerGroup();
-      var poiOptions = {icon: poiIcon, riseOnHover: true};
       {% for poi in poi_list %}
-          var marker = L.marker([{{ poi.latitude }}, {{ poi.longitude }}], poiOptions);
+          var marker = L.marker([{{ poi.latitude }}, {{ poi.longitude }}], {icon: poiIcons['{{ poi.kind }}'], riseOnHover: true});
           var poiPopup = marker.bindPopup('{{ poi.name }}', {className : 'markerpopup', closeButton: false});
           poiPopup.on('mouseover', marker.openPopup);
           poiPopup.on('mouseout', marker.closePopup);