Rex Dri issueshttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues2019-08-23T19:03:35Zhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/155Null error in frontend2019-08-23T19:03:35ZFlorent ChehabNull error in frontendBug in: https://gitlab.utc.fr/rex-dri/rex-dri/blob/master/frontend/src/components/university/modules/UniversityOffers.js#L154
Majors can be null...Bug in: https://gitlab.utc.fr/rex-dri/rex-dri/blob/master/frontend/src/components/university/modules/UniversityOffers.js#L154
Majors can be null...https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/151Improve search2019-07-30T19:47:45ZFlorent ChehabImprove searchSearching for `UVM` doesn't return the university with acronyme `UVM`...
Also, remove all fancy accentuated characters before performing search ?Searching for `UVM` doesn't return the university with acronyme `UVM`...
Also, remove all fancy accentuated characters before performing search ?https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/150Logout not working on mobiles2019-08-25T13:57:06ZFlorent ChehabLogout not working on mobilesRedirect is done internally so page not found.Redirect is done internally so page not found.https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/149Last visited universities2020-06-07T12:16:19ZFlorent ChehabLast visited universitieshttps://gitlab.utc.fr/rex-dri/rex-dri/issues/149
Backend:
1. Create an intermediate model (LastVisitedUniversity) between the user and university models
* This model contains 3 fields : one for user (foreign key) , one for universi...https://gitlab.utc.fr/rex-dri/rex-dri/issues/149
Backend:
1. Create an intermediate model (LastVisitedUniversity) between the user and university models
* This model contains 3 fields : one for user (foreign key) , one for university (foreign key) and one for lastClickOnUniversity (DateTimeField: auto_now = True)
2. Create a viewset to update the previous model when a user looks at a university (get inspired by https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/backend_app/viewsets.py#L316).
Endpoint: /lastVisitedUniversities
req POST endpoint/<pk_univ> => Create LastVisitedUniversity(user=req.user, university=University.get(pk=<pk_univ>), ~~ts=now()~~)
req GET endpoint => return List[LastVisitedUniversity.where(user=req.user).orderby(ts DESC).first(5)] (list[int] === List[<pk_univ>])
SQL:
```sql
SELECT university, max(ts) as ts
FROM LastVisitedUniversity
WHERE
USER = <req.user.pk>
GROUP BY university
ORDER BY ts DESC
LIMIT 5;
```
other => Return 404
Frontend:
1. When visiting university: make POST request (https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/frontend/src/components/recommendation/view/View.jsx#L676 use the useApiCreate() hook)
2. Create component to show last visited univ (and mention REX-DRI private)
PR-P20Imane MisrarImane Misrarhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/148Filter only on currently available destinations2020-05-17T15:54:44ZFlorent ChehabFilter only on currently available destinations## Objective
* Being able to filter only on open destinations, [on the map and search pages (it's the same component)](https://rex.dri.utc.fr/app/map/)
## Context
### Back
* Every night, the UTC DRI data are copied from the DSI to RE...## Objective
* Being able to filter only on open destinations, [on the map and search pages (it's the same component)](https://rex.dri.utc.fr/app/map/)
## Context
### Back
* Every night, the UTC DRI data are copied from the DSI to REX-DRI [source](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/cron_tasks.py#L38)
* You should be able to plug yourself in the [`__import_opened_destinations` method](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/external_data/management/commands/utils.py#L199) and the [`update` method](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/external_data/management/commands/utils.py#L76), to track which partners are "open" on the UTC ENT.
* You should also know (and maybe use -- it's up to you) that some denormalized data is updated every night on the [`University` model](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/backend_app/models/university.py#L72). This is the data that is used for filtering.
### Front
* The filter Component is [here][https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/frontend/src/components/filter/Filter.jsx)
* The filtering itself is handled within the [`FilteringService` class](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/frontend/src/services/FilterService.js)
Have fun :tada:
Bonus point if you throw some [transaction](https://docs.djangoproject.com/fr/2.2/topics/db/transactions/#controlling-transactions-explicitly) somewhere :rolling_eyes: PR-P20Imane MisrarImane Misrarhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/146Filter: last known active semester of a univ2020-05-03T18:55:22ZFlorent ChehabFilter: last known active semester of a univActivate it by defaultActivate it by defaulthttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/143centralize texts2019-09-18T07:18:08ZFlorent Chehabcentralize textshttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/142Clarify use of invalidateData && moduleInGroupInfos2019-09-19T09:30:11ZFlorent ChehabClarify use of invalidateData && moduleInGroupInfosIt might be useless sometimes. Might be due to previous changes.It might be useless sometimes. Might be due to previous changes.https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/137Drop the city and campus model to simplify things a bit2020-06-19T14:20:56ZFlorent ChehabDrop the city and campus model to simplify things a bitAs you can see here https://rex-dri.gitlab.utc.fr/rex-dri/documentation/generated/architecture.svg the backend models architecture is a bit complicated.
To simplify things a bit, we want to:
* [ ] Drop the city model
* [ ] Drop the c...As you can see here https://rex-dri.gitlab.utc.fr/rex-dri/documentation/generated/architecture.svg the backend models architecture is a bit complicated.
To simplify things a bit, we want to:
* [ ] Drop the city model
* [ ] Drop the campus model
* [ ] All these information should be moved back to the `University`.
* [ ] There are also big changes to perform to the frontend.
This will be a big help for #187
How to do it?
1. Create a migration to add the missing columns to the University model,
2. Create a script to transfer the data from the city / campus models in the new columns,
-----
3. Update the backend serializers and viewsets,
5. Update the frontend.
-----
4. Delete the old models.PR-P20Gautier DauresGautier Daureshttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/133Update dependencies2019-09-02T17:21:53ZFlorent ChehabUpdate dependenciesAlso:
remove react-swipeable-views, not used anymore in searchAlso:
remove react-swipeable-views, not used anymore in searchhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/131Drop custom component for API2020-01-12T13:55:01ZFlorent ChehabDrop custom component for APIMove to hooks and renderprops wherever possibleMove to hooks and renderprops wherever possibleFlorent ChehabFlorent Chehabhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/130Switch to render props for renderCore in module wrapper2019-09-08T12:10:40ZFlorent ChehabSwitch to render props for renderCore in module wrapperCleaner and use hooks to prevent passing classes arround...Cleaner and use hooks to prevent passing classes arround...https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/125Add search in multiselect2019-06-22T12:03:38ZFlorent ChehabAdd search in multiselect=> limit rendering time for ultra large list=> limit rendering time for ultra large listhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/123Support pagination in DRF and frontend2019-06-30T16:23:30ZFlorent ChehabSupport pagination in DRF and frontendEspecially this endpoint has to be paginated: http://localhost:8000/api/exchangeFeedbacks/Especially this endpoint has to be paginated: http://localhost:8000/api/exchangeFeedbacks/https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/120Add maintenance info2019-06-27T20:03:58ZFlorent ChehabAdd maintenance infohttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/117Self host map tiles2019-05-25T13:22:57ZFlorent ChehabSelf host map tilesLet's stop using open streep map servers and build an image with tiles (not with all zoom level of course...) fo rus.
https://github.com/openmaptiles/openmaptiles
Also switch to vector tiles and https://github.com/alex3165/react-mapbox...Let's stop using open streep map servers and build an image with tiles (not with all zoom level of course...) fo rus.
https://github.com/openmaptiles/openmaptiles
Also switch to vector tiles and https://github.com/alex3165/react-mapbox-gl
* [x] Move from leaflet to mapbox in the front
* [x] Update Nginx to serve the tiles directly
* [x] Make sure the tiles are only accessible to users from the website
* [x] Build an image for the whole world and post it to docker-hubFlorent ChehabFlorent Chehabhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/111Add error boundaries in react2019-04-21T17:52:19ZFlorent ChehabAdd error boundaries in reacthttps://reactjs.org/blog/2017/07/26/error-handling-in-react-16.htmlhttps://reactjs.org/blog/2017/07/26/error-handling-in-react-16.htmlFlorent ChehabFlorent Chehabhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/104Add default null value for secondary_email in frontend user editor2019-04-18T10:34:03ZFlorent ChehabAdd default null value for secondary_email in frontend user editorhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/102Update `react/jsx-indent-props` in eslint to error2019-04-23T18:54:25ZFlorent ChehabUpdate `react/jsx-indent-props` in eslint to errorreact/jsx-indent-props with first improves code readbility, but would need a lot of code reindenting, so will keep the big change for letter.
For now, we will set them as warnings.react/jsx-indent-props with first improves code readbility, but would need a lot of code reindenting, so will keep the big change for letter.
For now, we will set them as warnings.Florent ChehabFlorent Chehabhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/101Have each tab on the university page correspond to a url2019-04-21T17:52:19ZFlorent ChehabHave each tab on the university page correspond to a urlUpdate how react router is usedUpdate how react router is usedFlorent ChehabFlorent Chehab