Vous avez reçu un message "Your GitLab account has been locked ..." ? Pas d'inquiétude : lisez cet article https://docs.gricad-pages.univ-grenoble-alpes.fr/help/unlock/

CHANGELOG.md 14.8 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
* ~~Add image inside the popup of webcams~~

Thomas Frion's avatar
Thomas Frion committed
121
122
123
124
---
> 2020-06-02: Start of the Thomas's internship
---

Thomas Frion's avatar
Thomas Frion committed
125
126
127
128
## 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
129
130
131
132
133
134
135
136
137
138
139
140
* 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
141
> :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
142

Thomas Frion's avatar
Thomas Frion committed
143
144
* 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
145
* TODO 
Thomas Frion's avatar
Thomas Frion committed
146
    * ~~Pretty CSS for search engine~~ 
Thomas Frion's avatar
Thomas Frion committed
147
    * ~~Link the map to the search engine~~
Thomas Frion's avatar
Thomas Frion committed
148
    * ~~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
149
        * ~~==> We keep it but we add an option 'All'~~
Thomas Frion's avatar
Thomas Frion committed
150
151
152
153
154

## 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
155
156
157
158
159
160
161
162
163
164
165
166
    * ~~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
167
    * ~~Add the right icon (Lake, Ski, Mountain, ....)~~
Thomas Frion's avatar
Thomas Frion committed
168
169
    * ~~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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
    * ~~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
184
## 2020-06-17
Thomas Frion's avatar
Thomas Frion committed
185

Thomas Frion's avatar
Thomas Frion committed
186
187
* Add information about the last update (of a webcam):
    * Who made the update
Thomas Frion's avatar
Thomas Frion committed
188
189
190
191
192
193
194
195
196
    * Date of the update

## 2020-06-22

* Add coordibates conversion:
    * Lambert 93
    * UTM
    * DMS
    * DD
Thomas Frion's avatar
Thomas Frion committed
197
198
199
200
201
202
203
204
    * 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
205
206
207
208
209

## 2020-06-25

* Makefile for intallation
* Icon managment back-end side
Thomas Frion's avatar
Thomas Frion committed
210
211
212
213
214
215
216
217
218
* 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
219
220
221
    * Icon according the current result type (automatically in backend)
* **Front-end**
    * Reduction of API calls number
Thomas Frion's avatar
Thomas Frion committed
222
223
224
225
226
227
228
    * 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
229
230
231
232
233
234
235
    * 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
236
237
    * Graphical bugs with the map marker for polygon, linestring object

Thomas Frion's avatar
Thomas Frion committed
238
## 2020-07-06
Thomas Frion's avatar
Thomas Frion committed
239
240
241
242

* 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
243
* Pretty CSS
Thomas Frion's avatar
Thomas Frion committed
244
245
246
247
* Search bar, sort the results according where are coming from

## 2020-07-07

Thomas Frion's avatar
Thomas Frion committed
248
249
250
251
252
253
* Adding tests

## 2020-07-10

* Updating coordinates display 
    *  Maybe a possible opensource contribution
Thomas Frion's avatar
Thomas Frion committed
254
* Add to the base layers a new property: max zoom
Thomas Frion's avatar
Thomas Frion committed
255
256
257
* 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
258
259
260
261
* Adding the feature aims to associtate overlays services to a category

## 2020-07-13

Thomas Frion's avatar
Thomas Frion committed
262
* 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
263
264
* Creation of our angular library to use Leaflet.Coordinates with angular:
    * The basic features work using the original code
Thomas Frion's avatar
Thomas Frion committed
265
266
267
268
269
270
271
272
273
274
275
    * TODO: Add more feature to this library

## 2020-07-15

* Beta release
    * Testing it 
    * Fixing found bugs

## 2020-07-16

* Test to put in production the back-end (Django)
Thomas Frion's avatar
Thomas Frion committed
276
277
278
* Testing of Django permissions system to manage overlays and base layer
* New version of user & group model
    * User => the models uses email address to identify a user. The model requires first and last name
Thomas Frion's avatar
Thomas Frion committed
279
    * Group => the model has a new property: the overlay available for the group members
Thomas Frion's avatar
Thomas Frion committed
280
281
282
283
284
285
286
287
288
289
* Back-end handles the overlay services according the user's permissions

## 2020-07-17

* Fix bug with django permission
    * The bug was that Django tryed to get the user's groups (when we did `has_perm(...)`) an execption was raised about an incorrect type.  
    * The solution has been to override the method `get_group_permissions`
* Fix the search result dispaly:
    * Remove the empty tables
    * Fix trouble with the map center and the method `flyTo` of Leaflet
Thomas Frion's avatar
Thomas Frion committed
290
291
292
293
294
295
    * Display the polygon when there is one

## 2020-07-22

* A client to use the Traccar API (Front-end)
* Add a new model to manage Traccar accounts and server (back-end)
Thomas Frion's avatar
Thomas Frion committed
296
297
298
299
* Create two new services (front-end):
    * One to manage Traccar websocket (ws)
    * The other to convert data from tracar ws to geojson for leaflet
* **TODO**
Thomas Frion's avatar
Thomas Frion committed
300
301
302
303
304
305
306
307
    * ~~Add on the map the geojson~~
    * ~~Handle the outdated data~~

## 2020-07-23

* Adding traccar on  the map
* Handle the oudated (more 8h) traccar data
* Back-end ask for traccar server's url, username, password and token
Thomas Frion's avatar
Thomas Frion committed
308
309
310
311
312
313
314
* Fix a bug with globalinfo (back-end) => To many results was returned when we called the gend/police unit in charge of the city

## 2020-07-24

* Adding GPX trace of the last hour
    * Add it on the map
    * Remove it from the map, to clean the map
Thomas Frion's avatar
Thomas Frion committed
315
316
317
318
* PGMH-API module redisgn

## 2020-07-27

Thomas Frion's avatar
Thomas Frion committed
319
* PGHM-API Redisgn is finished
Thomas Frion's avatar
Thomas Frion committed
320
321
322
323
324
325
* Creation of module (Django) for manage searching operations

## 2020-07-29

* Can create a new mission from the current map state
* Can access to the active missions
Thomas Frion's avatar
Thomas Frion committed
326
327
328
329
330
* Add a custom filter which can apply to mission status.

## 2020-07-30

* Refactoring of code of operation management view
Thomas Frion's avatar
Thomas Frion committed
331
332
333
334
335
* Refaoring overlay code (GeoJOSN managment on the map) 
* Adding features
    * Close an operation
    * Save the current map center and zoom level
    * Edit the ASM id
Thomas Frion's avatar
Thomas Frion committed
336
337
338
339
340
341
    * Edit the operation name

## 2020-07-31

* New features:
    * Draw on the map for an operation
Thomas Frion's avatar
Thomas Frion committed
342
343
    * Display of draw items on the map
* **TODO**
Thomas Frion's avatar
Thomas Frion committed
344
    * ~~Change name of draw~~
Thomas Frion's avatar
Thomas Frion committed
345
346
    * ~~Set if is a geolocation or an possible location~~
    * ~~Pretty display and css~~
Thomas Frion's avatar
Thomas Frion committed
347
    * ~~Remove draw => remove in database~~
Thomas Frion's avatar
Thomas Frion committed
348
349
350
    * Django admin for operation
    * Try websocket to update the current operation

Thomas Frion's avatar
Thomas Frion committed
351
352
353
354
> :warning: **IMPORTANT** :warning: The current Django admin for the operation module is not usable for now!

## 2020-08-03

Thomas Frion's avatar
Thomas Frion committed
355
356
* Can give a name to a geometry
* Can define a point as the victim's position
Thomas Frion's avatar
Thomas Frion committed
357
358
359
360
361
* Can remove a draw item or many

## 2020-08-04

* Operation part
Thomas Frion's avatar
Thomas Frion committed
362
    * Add popup on geom
Thomas Frion's avatar
Thomas Frion committed
363
    * Add traccar layer
Thomas Frion's avatar
Thomas Frion committed
364
365
    * Add last update date for geom
* New version of historisartion system
Thomas Frion's avatar
Thomas Frion committed
366
367
    * Now the history save the updated fields 

Thomas Frion's avatar
Thomas Frion committed
368
369
370
---
> During the day between 2020-08-04 and 202-08-10 I (Thomas) worked on my trainee report 
---
Thomas Frion's avatar
Thomas Frion committed
371

Thomas Frion's avatar
Thomas Frion committed
372
373
374
## 2020-08-10

* Now we can change the color and opacity of a geom object if is not a marker
Thomas Frion's avatar
Thomas Frion committed
375
* Now we can change the color and opacity from the geom popup
Thomas Frion's avatar
Thomas Frion committed
376
377
378
* Refactoring
* Create a release => V1.2.0
* Start to create sms feature:
Thomas Frion's avatar
Thomas Frion committed
379
    * Adding in unit settings the callr api key 
Thomas Frion's avatar
Thomas Frion committed
380
    * Creation of a model and insert data for the international phone prefixes 
Thomas Frion's avatar
Thomas Frion committed
381
    * Creation of a model to define the sms templates
Thomas Frion's avatar
Thomas Frion committed
382
383
384
385
386
387
388
    * Creation of a model for the message sent. We can associate an operation with a message

## 2020-08-11

* Api view for
    * Phone prefixes 
    * Message sent
Thomas Frion's avatar
Thomas Frion committed
389
* Client for the new phone Django module
Thomas Frion's avatar
Thomas Frion committed
390
391
392
393
394
395
396
* Set country names in french
* New version of histpry
    * Refactoring of the code
    * A new global seraializer for the classical models and for the geographical models
        * Create a dict for the old values to check which field have changed
        * Forward the current user to the history
    * A new global model for the classical models and for the geographical models
Thomas Frion's avatar
Thomas Frion committed
397
        * Will create a new history record
Thomas Frion's avatar
Thomas Frion committed
398
399
400
401
    * Save in database (as JSON) the old an new value, when is it an object update

## 2020-08-12

Thomas Frion's avatar
Thomas Frion committed
402
403
404
405
406
* New component to send SMS from the front-end
* Include project owner notes aboud SMS sending feature

## 2020-08-13

Thomas Frion's avatar
Thomas Frion committed
407
* Generation of link for SMS
Thomas Frion's avatar
Thomas Frion committed
408
* When an operation is closed, we remove the phone number
Thomas Frion's avatar
Thomas Frion committed
409
410
411
412
413
414
415
* Victim views

## 2020-08-14

* Fix the problem of https and location
    * To run  the server with ssl exexute `$ ./runsslserver` insead of `$ python manage.py runserver`
    * When the server is running url is now `https://localhost:8443/...`
Thomas Frion's avatar
Thomas Frion committed
416
* Get the phone postion and the result accuracy
Thomas Frion's avatar
Thomas Frion committed
417
* Geolocation of the victim
Thomas Frion's avatar
Thomas Frion committed
418
419
420
421
422
423
* Try to implement WS from django

## 2020-08-17

* WS implemented
    * Real-time for operation status (list in main screen)
Thomas Frion's avatar
Thomas Frion committed
424
* WS Authentication => unit token & email address
Thomas Frion's avatar
Thomas Frion committed
425
426
427

## 2020-08-18

Thomas Frion's avatar
Thomas Frion committed
428
429
430
431
* Real-time WS:
    * Update operation screen
    * Phone geolocation
    * SMS sent