celutz issueshttps://code.ffdn.org/ffdn/celutz/-/issues2019-08-27T11:30:09Zhttps://code.ffdn.org/ffdn/celutz/-/issues/86Information in panorama mode hide behind the map2019-08-27T11:30:09Zmarmat8951Information in panorama mode hide behind the mapThe information box saying what's the heading and elevation hide behind the map, and can move after the right side of the window. It should move to the left side when it get close to the map or the right side.
![celutz_bug](/uploads/5333...The information box saying what's the heading and elevation hide behind the map, and can move after the right side of the window. It should move to the left side when it get close to the map or the right side.
![celutz_bug](/uploads/533389ac7830fac4cff6bab3529bb532/celutz_bug.png)https://code.ffdn.org/ffdn/celutz/-/issues/85Unable to relocate an existing Reference (right-click on panorama)2019-04-22T15:34:40ZzopieuxUnable to relocate an existing Reference (right-click on panorama)When such a `Reference` already exists but is not at the right `(x, y)` location, using the contextual menu to re-add it results in an `IntegrityError` as DRF tries to create a new `Reference` with the same composite key `(refpoint, pano...When such a `Reference` already exists but is not at the right `(x, y)` location, using the contextual menu to re-add it results in an `IntegrityError` as DRF tries to create a new `Reference` with the same composite key `(refpoint, panorama)`.
The contextual menu should know of the ref that are already set on the panorama, and display an *Update* button instead of *Insert*, and use a `PUT` instead of a `POST`.https://code.ffdn.org/ffdn/celutz/-/issues/84Correctly handle non-360° pictures in the interface2019-04-22T15:33:08ZzorunCorrectly handle non-360° pictures in the interfaceThere are two main problems with non-360° pictures right now:
* the picture is repeated horizontally, even though the left-most and right-most edges do not match
* when specifying a given azimuth and elevation (for instance using the c...There are two main problems with non-360° pictures right now:
* the picture is repeated horizontally, even though the left-most and right-most edges do not match
* when specifying a given azimuth and elevation (for instance using the control box), if the azimuth is outside the image, then the resulting position is completely wrong. In this case, the position should be cropped to the nearest image boundary (exactly like it is already done vertically, for elevation).
The second issue is fixed by 26a271f108ca19eee5c82a0eb4fa660c98f0e9a7.
For the first issue, we can distinguish between two cases:
* the picture is "almost" 360°. In this case, we could add some space without tiles that represents the missing bit of photography. This way, the panorama would correctly loop in the interface.
* the picture is far from being 360°. In this case, it wouldn't be very user-friendly to add a large portion of untiled space to fill the gap to 360°. But we could still add a bit of untiled space on each side, so that reference points or other panoramas are shown on the interface even though they are just a bit outside of the picture.https://code.ffdn.org/ffdn/celutz/-/issues/83TIFF images with malformed EXIF data are refused by Django with Pillow 3.0.02019-04-22T15:31:41ZzorunTIFF images with malformed EXIF data are refused by Django with Pillow 3.0.0A few TIFF images are refused by Django in ImageField when using Pillow 3.0.0. When using Pillow 2.7.0, the images are accepted, but with a warning suggesting that some EXIF metadata is incorrect:
```
/home/zorun/tmp/venv2-celutz/lib/p...A few TIFF images are refused by Django in ImageField when using Pillow 3.0.0. When using Pillow 2.7.0, the images are accepted, but with a warning suggesting that some EXIF metadata is incorrect:
```
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 616 bytes but only got 76. Skipping tag 279
"Skipping tag %s" % (size, len(data), tag))
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 8 bytes but only got 0. Skipping tag 282
"Skipping tag %s" % (size, len(data), tag))
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 8 bytes but only got 0. Skipping tag 283
"Skipping tag %s" % (size, len(data), tag))
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 8 bytes but only got 0. Skipping tag 286
"Skipping tag %s" % (size, len(data), tag))
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 8 bytes but only got 0. Skipping tag 287
"Skipping tag %s" % (size, len(data), tag))
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 28 bytes but only got 0. Skipping tag 305
"Skipping tag %s" % (size, len(data), tag))
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 20 bytes but only got 0. Skipping tag 306
"Skipping tag %s" % (size, len(data), tag))
/home/zorun/tmp/venv2-celutz/lib/python2.7/site-packages/PIL/TiffImagePlugin.py:466: UserWarning: Possibly corrupt EXIF data. Expecting to read 8 bytes but only got 0. Skipping tag 339
"Skipping tag %s" % (size, len(data), tag))
```
With Pillow 3.0.0, tile generation also fails on those TIFF files:
```
[2015-10-23 18:27:11,478: ERROR/MainProcess] Task panorama.tasks.generate_tiles[487453ea-25cf-488a-9059-1eec75066889] raised unexpected: OSError("cannot identify image file '/home/zorun/illyse/git/celutz/media/pano/toit.tif'",)
Traceback (most recent call last):
File "/home/zorun/tmp/venv3-celutz/lib/python3.5/site-packages/celery/app/trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "/home/zorun/tmp/venv3-celutz/lib/python3.5/site-packages/celery/app/trace.py", line 438, in __protected_call__
return self.run(*args, **kwargs)
File "/home/zorun/illyse/git/celutz/panorama/tasks.py", line 11, in generate_tiles
return gen_tiles(*args, **kwargs)
File "/home/zorun/illyse/git/celutz/panorama/gen_tiles.py", line 23, in gen_tiles
orig_im = PIL.Image.open(image)
File "/home/zorun/tmp/venv3-celutz/lib/python3.5/site-packages/PIL/Image.py", line 2286, in open
% (filename if filename else fp))
OSError: cannot identify image file '/home/zorun/illyse/git/celutz/media/pano/toit.tif'
```https://code.ffdn.org/ffdn/celutz/-/issues/82Include minimap position and zoom level in the panorama permalinks2019-04-22T15:29:46ZzorunInclude minimap position and zoom level in the panorama permalinksWhen viewing a panorama, the URL is constantly updated so that it acts as a permalink. In particular, it stores the zoom level and the current orientation of the view.
However, since we added the minimap, we should include more informat...When viewing a panorama, the URL is constantly updated so that it acts as a permalink. In particular, it stores the zoom level and the current orientation of the view.
However, since we added the minimap, we should include more information in the permalink: the position and zoom level of the minimap.https://code.ffdn.org/ffdn/celutz/-/issues/39Mode fédération2019-04-22T15:16:40ZSachaMode fédérationC'est dans l'air de pas mal d'appli (Mastodon, Funkwhale, Peertube...): une instance et un mode fédéré permettant d'avoir accès aux autres instances.
Cela est-il possible avec ActivityPub ?
Merci en tout cas au passable pour ce superb...C'est dans l'air de pas mal d'appli (Mastodon, Funkwhale, Peertube...): une instance et un mode fédéré permettant d'avoir accès aux autres instances.
Cela est-il possible avec ActivityPub ?
Merci en tout cas au passable pour ce superbe soft !https://code.ffdn.org/ffdn/celutz/-/issues/36Interaction plus fonctionnelle avec un point de référence sur la carte2019-04-22T15:16:39ZjulpecInteraction plus fonctionnelle avec un point de référence sur la carteAfin d'accéder à l'édition (mode admin) des points de références à partir de la carte principale, ça pourrait être intéressant de pouvoir avoir un menu (popup) qui apparaît lorsque l'on clique sur un point de référence.
Ce menu pourrait...Afin d'accéder à l'édition (mode admin) des points de références à partir de la carte principale, ça pourrait être intéressant de pouvoir avoir un menu (popup) qui apparaît lorsque l'on clique sur un point de référence.
Ce menu pourrait contenir :
- Les infos du point (relatif à #5)
- L'option "éditer" qui renvoi directement à la page d'édition du point dans l'admin
- L'option "Localiser" qui permet de renvoyer vers la vue `locate_refpoint` (relatif à #35) afin de voir depuis quels panos ce point est visible.https://code.ffdn.org/ffdn/celutz/-/issues/35Localiser un point en cliquant sur la carte2019-04-22T15:20:01ZjulpecLocaliser un point en cliquant sur la carteÇa pourrait être bien pratique de faire la localisation d'un point de référence en cliquant sur le point sur la carte. Au final, faire l'équivalent de la fonction "localiser un point" et choisir dans le menu déroulant mais en cliquant si...Ça pourrait être bien pratique de faire la localisation d'un point de référence en cliquant sur le point sur la carte. Au final, faire l'équivalent de la fonction "localiser un point" et choisir dans le menu déroulant mais en cliquant simplement sur le point de référence sur la carte de la page principale.https://code.ffdn.org/ffdn/celutz/-/issues/31Les URL /altitudes/lat/lon/ ne prennent pas en compte FORCE_SCRIPT_NAME2019-04-22T15:16:37ZMathieuMDLes URL /altitudes/lat/lon/ ne prennent pas en compte FORCE_SCRIPT_NAMEQuand l'appli Django n'est pas déployée à la racine d'un vhost (ie. `example.com/celutz` au lieu de `example.com/`) alors on ajoute à `local_settings.py` la variable `FORCE_SCRIPT_NAME = "/celutz"` ([source](https://docs.djangoproject.co...Quand l'appli Django n'est pas déployée à la racine d'un vhost (ie. `example.com/celutz` au lieu de `example.com/`) alors on ajoute à `local_settings.py` la variable `FORCE_SCRIPT_NAME = "/celutz"` ([source](https://docs.djangoproject.com/en/1.11/ref/settings/#force-script-name)) (en plus de setter `STATIC_URL` et `MEDIA_URL`), mais les URLs `/altitude/lat/lon/` ne le prennent pas en compte.
Une solution simple consiste à rendre ces URLs relatives, dans `panorama/templates/panorama/main.html`, ligne 127 :
```diff
-$.get("/altitude/" + lat + "/" + lng + "/").done(
+$.get("altitude/" + lat + "/" + lng + "/").done(
```https://code.ffdn.org/ffdn/celutz/-/issues/26Barre de défilement horizontal pour panos2019-04-22T15:16:35ZjulpecBarre de défilement horizontal pour panosAvoir la barre de défilement horizontal reste assez pratique pour visualiser un pano.
Il faudrait donc la (re)mettre.Avoir la barre de défilement horizontal reste assez pratique pour visualiser un pano.
Il faudrait donc la (re)mettre.https://code.ffdn.org/ffdn/celutz/-/issues/22Modification d'un point2019-04-22T15:16:34ZjulpecModification d'un pointOn peut ajouter des points (panoramas, points d'intérêt). C'est très bien, mais ça serait top de gérer la modification de ces points directement depuis le main.html.
Cela pourrait passer par le déplacement du point sur la carte. Ce dép...On peut ajouter des points (panoramas, points d'intérêt). C'est très bien, mais ça serait top de gérer la modification de ces points directement depuis le main.html.
Cela pourrait passer par le déplacement du point sur la carte. Ce déplacement devrait être activable après avoir cliqué sur le point. Un clic droit serait préférable.
Le clic droit devrait activer un "context menu" contenant les infos du point (éditables) et la possibilité de déplacer le point pour modifier les coordonées GPS).
Le clic droit pourrait juste contenir "update" et un dropdown menu s'activerai sur la sidebar ou la topbar, permettant ainsi de modifier les champs et, par la même occasion, proposant de déplacer le point pour mettre à jour les coordonées GPS.https://code.ffdn.org/ffdn/celutz/-/issues/14Contextual help in celutz2019-04-22T15:16:30ZzorunContextual help in celutzIt would be nice to have some contextual help inside celutz itself: some popups, tooltips, whatever, to explain how to do things (create a new reference point, calibrate a panorama, etc).
Related to #13 (legend for markers)It would be nice to have some contextual help inside celutz itself: some popups, tooltips, whatever, to explain how to do things (create a new reference point, calibrate a panorama, etc).
Related to #13 (legend for markers)https://code.ffdn.org/ffdn/celutz/-/issues/10Permettre l'ajout d'un nouveau point de réference depuis le panorama2019-04-22T15:16:28ZjulpecPermettre l'ajout d'un nouveau point de réference depuis le panoramaPar le clic-droit sur le pano, on pourrait avoir un bouton "nouveau" qui permette de rentrer les coordonnées GPS/altitude du pointPar le clic-droit sur le pano, on pourrait avoir un bouton "nouveau" qui permette de rentrer les coordonnées GPS/altitude du pointhttps://code.ffdn.org/ffdn/celutz/-/issues/9Convert automatically the pictures in JPG format2019-04-22T15:16:27ZproustcConvert automatically the pictures in JPG formatThe pictures should be stored as JPG format to save spaceThe pictures should be stored as JPG format to save spacehttps://code.ffdn.org/ffdn/celutz/-/issues/6General cleanup of the frontend js code2019-04-22T15:16:26ZzorunGeneral cleanup of the frontend js codeThe current js code is a mess. Some specific issues:
* it should use the json API to get information about the panorama to display, instead of using javascript variable generated from a template.
* it is primarily designed for 360° pi...The current js code is a mess. Some specific issues:
* it should use the json API to get information about the panorama to display, instead of using javascript variable generated from a template.
* it is primarily designed for 360° pictures, and does not handle non-360° pictures very well (see issue #1).
* it implements its own tile display logic, while there probably are libraries to do that.
* there are multiple systems of coordinates, with conversions between them:
* the backend uses absolute pixel coordinates (x/y) to refer to points in an image.
* the frontend uses relative coordinates (x between 0 and 1, y between -0.5 and 0.5) to refer to points in an image.
* the frontend also uses screen-based coordinates, in pixels. The relation between screen coordinates and image coordinates depends on the zoom level and the current position in the image, and wraps around for 360° images.
* both frontend and backend also manipulate azimuth and elevation (but that's the point of celutz)https://code.ffdn.org/ffdn/celutz/-/issues/5Add meta-data to reference points2019-04-22T15:20:01ZzorunAdd meta-data to reference pointsIt could be useful to collect information about reference points: pictures of the building (to be able to recognise it on a panorama), webpage with description, source of information for the height of the building, etc...
The meta-data ...It could be useful to collect information about reference points: pictures of the building (to be able to recognise it on a panorama), webpage with description, source of information for the height of the building, etc...
The meta-data associated to a reference point could include:
* list of URL
* free-form comment
* list of photos
Displaying all this information in the UI might not be easy, though.https://code.ffdn.org/ffdn/celutz/-/issues/3Allow to zoom more in the panorama view2019-04-22T15:16:21ZzorunAllow to zoom more in the panorama viewThe current maximum zoom level is often not enough to clearly see some distant features of a picture.
Commit 7f1e17c9cd90c5bab1d9070cf6ee1b62d79cb9d2 implements a first solution to increase zoom: upscale the original image, and generate...The current maximum zoom level is often not enough to clearly see some distant features of a picture.
Commit 7f1e17c9cd90c5bab1d9070cf6ee1b62d79cb9d2 implements a first solution to increase zoom: upscale the original image, and generate an additional set of tiles from this upscaled version. However, it *really* doesn't scale: tile generation has to manipulate really large images (more than 4 GB RAM for large panorama), and it produces a hell of a lot of tiles. And this is for just one additional level of zoom.
We should instead find a solution where the browser itself upscales the tiles when we need more zoom than the base level.https://code.ffdn.org/ffdn/celutz/-/issues/2Add a grid to the panorama view2019-04-22T15:16:20ZzorunAdd a grid to the panorama viewIt could be nice to have a grid in the panorama view, for instance a vertical line every 5° of azimuth, and an horizontal line every 2° of elevation.
It would allow several things:
* visually check that the interpolation between refere...It could be nice to have a grid in the panorama view, for instance a vertical line every 5° of azimuth, and an horizontal line every 2° of elevation.
It would allow several things:
* visually check that the interpolation between reference points is not completely wrong
* easily visualise the angular coverage of antennas. For instance, if an antenna covers 40° horizontally, then it covers 8 visual « sectors » of 5° each.