CHANGELOG.md 9.73 KB
Newer Older
Thomas Frion's avatar
Thomas Frion committed
1 2 3 4
# CHANGELOG

## 2020-02-10

Thomas Frion's avatar
Thomas Frion committed
5 6 7 8 9 10 11 12
Instalation of the existing project with Django 

## 2020-03-16

* Initialization of Rest API, with Django (back-end)
    * Create Unit model for database
    * Add connection data fo database
* Initialization of the Angular project (front-end)
Thomas Frion's avatar
Thomas Frion committed
13 14 15 16 17 18
* Creation of a snippet to explain how to fix libgeos version trouble (available [here](https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/19-20/8/app-pghm/snippets/167))


## 2020-03-17

* Creation of contributing rules
Thomas Frion's avatar
Thomas Frion committed
19 20 21 22 23 24 25 26 27 28
* Start of model creation

##  2020-03-24

* Fixing problems created by a Django update:
    * MIDDLEWARE issue: Under definition of `MIDDLEWARE_CLASSES` array in `settings.py` add, if is not already done, `MIDDLEWARE = MIDDLEWARE_CLASSES`
    * WSGI issue: in `MIDDLEWARE_CLASSES` array in `settings.py` comment or remove the line `'django.contrib.auth.middleware.SessionAuthenticationMiddleware',`
* Continuation of the design
* Installation of the `django-rest-swagger` module. This module allows to generate the API documentation automatically (with the swagger style).
* Test of the `rest_framework` module with the creation of a feature that allows to get all users (GET htt://127.0.0.1/users)
Thomas Frion's avatar
Thomas Frion committed
29 30 31 32 33 34 35 36 37 38


## 2020-03-30

* Creation of the 'link' between a user (officer) and his unit.
* Improvement of the link (previously described). Create a PghmUser class that inherits of User (default class). Then add a foreign key field that points to the unit.
    * New class and field created
    * attempt to change the column by default of foreign key (use the unit's code instead of unit's id)
    * it remains to modify the forms of the admin part for take the change into account.
* TODO:
Thomas Frion's avatar
Thomas Frion committed
39 40 41
    * ~~CRUD on User and unit~~
    * ~~Finish API function~~
    * ~~Generate the documentation of what will have been done~~
Thomas Frion's avatar
Thomas Frion committed
42 43 44 45 46

## 2020-04-06

* Adding the unit field in user administration forms
* Creation of unit administration interfaces
Thomas Frion's avatar
Thomas Frion committed
47 48 49 50 51 52 53 54 55

## 2020-04-10
* API For users:
    *  GET | POST | UPDATE | DELETE
* API For units:
    * GET | POST | UPDATE | DELETE
    * A unit can be selected by its code
* Refactoring of views' code
* Implementation of automatic document generation
Thomas Frion's avatar
Thomas Frion committed
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

## 2020-05-12

* Back-end:
    * Webcam management
        * Model
        * API => CRUD
        * Admin form

## 2020-05-13

* Back-end:
    * External services management (feature to manage different external services such as IGN's API or OSM's API)
        * Model
        * Admin form
Thomas Frion's avatar
Thomas Frion committed
71
        * API => CRUD
Thomas Frion's avatar
Thomas Frion committed
72
        
Thomas Frion's avatar
Thomas Frion committed
73 74 75 76 77 78 79 80
    * Code refactored: now we are using the submodule system provided by Django and Python. So each resource is now a submodule

## 2020-05-18

* The connection between front-end and back-end is established (only for login)
* Redirection when you are not logged in works
* Redirection when you are logged in works too
* There was a bug with forms inside the side-left bar: the form controllers were missing. We added them now.
Thomas Frion's avatar
Thomas Frion committed
81
* Client for using the API is done. To know more about that module check the [wiki](https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/19-20/8/app-pghm/-/wikis/%5BFRONT%5D-API---Client).
Thomas Frion's avatar
Thomas Frion committed
82

Thomas Frion's avatar
Thomas Frion committed
83 84 85 86 87 88
## 2020-05-19

* Update API Client => Add Authorization in HTTP header
* Update Login process => Now we load the associated unit's information
* Load of OpenStreetMap with settings of the current unit

Thomas Frion's avatar
Thomas Frion committed
89 90
## 2020-05-22

Thomas Frion's avatar
Thomas Frion committed
91
* Adding map tiles => OpenStreet Map and OpenTopo Map
Thomas Frion's avatar
Thomas Frion committed
92 93 94 95 96
* Marker of the unit, with a popup which contains information about unit (coordinates,email, name)
* Display of coordinates in DD format and DMS formats
* Add controller to change map tiles
* Fix some bugs with the API client
* Preparation of the code to get the available services. The code is commented for the moment, because the only available service is the IGN one and the key at our disposal for the moment is not valid.
Thomas Frion's avatar
Thomas Frion committed
97
* Adding a new "sub-resource" to search a service by name
Thomas Frion's avatar
Thomas Frion committed
98 99 100 101 102 103 104

## 2020-05-26

* Add custom icon for makers
* Display all Gendarmerie units and the unit information (name, phone, address)
* The units are displayed according the current map bounds and zoom
* The Gendarmerie units are save in database (API side)
Thomas Frion's avatar
Thomas Frion committed
105 106 107 108 109 110 111 112

## 2020-05-29

* Refactoring the unit parts in Django side (API)
* Adding Police units
* Adding station resource
* Linking the station resource to webcam resource
* Use geojson for station
Thomas Frion's avatar
Thomas Frion committed
113
* Add the station layer on the map with their webcams acording the maps bounds
Thomas Frion's avatar
Thomas Frion committed
114 115 116
* Optimization of the addition/deletion of Gendarmerie units

**TODO**
Thomas Frion's avatar
Thomas Frion committed
117
* ~~Like Gendarmerie units, define when we call the api for stations~~
Thomas Frion's avatar
Thomas Frion committed
118
* ~~Optimization of API calls~~
Thomas Frion's avatar
Thomas Frion committed
119 120 121 122 123 124
* ~~Add image inside the popup of webcams~~

## 2020-06-04
* The API return GeoJSON for all models with (at least) a spacial field
* New version of the API Client. Now we can handle the GeoJSON format
* Update the map component to use GeoJSON data
Thomas Frion's avatar
Thomas Frion committed
125 126 127 128 129 130 131 132 133 134 135 136
* Webcam model has a new property: `is_active`. We have added this new property because some webcams are not active during the summer, but are active in winter and vice versa.

## 2020-06-05

* IGN map tiles added.
* The search engine added
    * The available services are:
        * BAN (data.gouv.fr)
        * Nomination (OSM)
        * IGN Toponyme (Look 4)
        * IGN Autocomplétion

Thomas Frion's avatar
Thomas Frion committed
137
> :warning: ~~**IMPORANT:** To test IGN services, we use an API key provided for developing. That key doesn't work for the IGN Autocomplétion service. She is rejected.~~
Thomas Frion's avatar
Thomas Frion committed
138

Thomas Frion's avatar
Thomas Frion committed
139 140
* The map is connected with the search engine. So now we can get map's center/bounds to filter the results by geometry. But for the moment We have difficulties with the geometry filter of Look4 service (IGN).

Thomas Frion's avatar
Thomas Frion committed
141
* TODO 
Thomas Frion's avatar
Thomas Frion committed
142
    * ~~Pretty CSS for search engine~~ 
Thomas Frion's avatar
Thomas Frion committed
143
    * ~~Link the map to the search engine~~
Thomas Frion's avatar
Thomas Frion committed
144
    * ~~Think about the select box: The user select the search service or the app do the search with all services?~~
Thomas Frion's avatar
Thomas Frion committed
145
        * ~~==> We keep it but we add an option 'All'~~
Thomas Frion's avatar
Thomas Frion committed
146 147 148 149 150

## 2020-06-08

* The search engine and the map are connected so that when you hover over one of the results (or click on it) the map displays the position of the result.
* TODO:
Thomas Frion's avatar
Thomas Frion committed
151 152 153 154 155 156 157 158 159 160 161 162
    * ~~Refactor the code of map and of the search egine before to merge on `master`~~

## 2020-06-11

* FRONT-END
    * Code of the search bar and search engine is refactored
    * The search engine now call the search engine of backend and send always the same parameters
    * There is an autocompletion for the search
* BACK-END
    * Adding the search engine
    * Adding of metadata (or category) for the search services
* TODO
Thomas Frion's avatar
Thomas Frion committed
163
    * ~~Add the right icon (Lake, Ski, Mountain, ....)~~
Thomas Frion's avatar
Thomas Frion committed
164 165
    * ~~Filter the search's results~~
    * ~~Use the right search service(s) according the selected activity(ies) and/or the object type(s)~~
Thomas Frion's avatar
Thomas Frion committed
166 167 168 169 170 171 172 173 174 175 176 177 178 179
    * ~~Remove the selectbox to select a service~~

## 2020-06-16

* Search egine : 
    * Filtering the result (back-end side)
    * Handling the error return from the search services 
    * New pretty CSS
* Remove the selectbox (of services)
* Add a page to manage webcams
* Generalization of the map component
* Generalization of the left side bar component
* Update the wecam

Thomas Frion's avatar
Thomas Frion committed
180
## 2020-06-17
Thomas Frion's avatar
Thomas Frion committed
181

Thomas Frion's avatar
Thomas Frion committed
182 183
* Add information about the last update (of a webcam):
    * Who made the update
Thomas Frion's avatar
Thomas Frion committed
184 185 186 187 188 189 190 191 192
    * Date of the update

## 2020-06-22

* Add coordibates conversion:
    * Lambert 93
    * UTM
    * DMS
    * DD
Thomas Frion's avatar
Thomas Frion committed
193 194 195 196 197 198 199 200
    * DMM

## 2020-06-24

* Added feature:
     * Double click on the map => popup with the city name, Gendarmerie/Police unit in charge of the current city, altitude of the city
        * To get the city name we use a reverse geocoding service from IGN, when that service is down, we use a datatbase made as a common repository for all user types  
        * You can select the information that you want via a flag system
Thomas Frion's avatar
Thomas Frion committed
201 202 203 204 205

## 2020-06-25

* Makefile for intallation
* Icon managment back-end side
Thomas Frion's avatar
Thomas Frion committed
206 207 208 209 210 211 212 213 214
* Display icon in django admin

## 2020-06-30

* **Back-end**
    * New model to translate search API result for the front-end
    * New model to filter the search result
    * Seperate the search services and the services to get more information about an object
    * Factoring code
Thomas Frion's avatar
Thomas Frion committed
215 216 217
    * Icon according the current result type (automatically in backend)
* **Front-end**
    * Reduction of API calls number
Thomas Frion's avatar
Thomas Frion committed
218 219 220 221 222 223 224
    * Bug with zoom and ovelays fixed

## 2020-07-01

* Improve performances of API
* Fix bugs:
    * Graphical bug, the gend units (or webcam). The bug was that when the user changes the view, there still are the objects from the previous view on the map. The sollution is to unsubscribe to the event which trigger the api to get gend units for example.
Thomas Frion's avatar
Thomas Frion committed
225 226 227 228 229 230 231
    * The autocomplete is fixed now. :warning: The autocomplete feature doesn't work with FireFox. The hypothesis is that the datalist (HTML element) doesn't work very well on FireFox.

## 2020-07-02
 
* A pretty CSS
* Fix some bugs:
    * The map did not move when the user hovered over a search result.
Thomas Frion's avatar
Thomas Frion committed
232 233
    * Graphical bugs with the map marker for polygon, linestring object

Thomas Frion's avatar
Thomas Frion committed
234
## 2020-07-06
Thomas Frion's avatar
Thomas Frion committed
235 236 237 238

* Removing some useless API call
* The API keys management is now handle by the back-end not by the front-end
* Change of sidebar version, from homemade to Leaflet version
Thomas Frion's avatar
Thomas Frion committed
239
* Pretty CSS
Thomas Frion's avatar
Thomas Frion committed
240 241 242 243
* Search bar, sort the results according where are coming from

## 2020-07-07

Thomas Frion's avatar
Thomas Frion committed
244 245 246 247 248 249
* Adding tests

## 2020-07-10

* Updating coordinates display 
    *  Maybe a possible opensource contribution
Thomas Frion's avatar
Thomas Frion committed
250
* Add to the base layers a new property: max zoom
Thomas Frion's avatar
Thomas Frion committed
251 252 253
* Fixing a bug about webcams: The bug was that when user add the webcam overlay, the webcams weren't displayed on the map
* Adding default baselayer for PGHM unit
* Set auto focus  on the search bar when the user opens the search tab
Thomas Frion's avatar
Thomas Frion committed
254 255 256 257
* Adding the feature aims to associtate overlays services to a category

## 2020-07-13

Thomas Frion's avatar
Thomas Frion committed
258
* Management of overlays services. :warning: **IMPORTANT:** :warning: The code works only for the overlays which work like a tile service.
Thomas Frion's avatar
Thomas Frion committed
259 260 261
* Creation of our angular library to use Leaflet.Coordinates with angular:
    * The basic features work using the original code
    * TODO: Add more feature to this library