Rex Dri issueshttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues2019-07-25T17:54:45Zhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/139[Beta] Small todos2019-07-25T17:54:45ZFlorent Chehab[Beta] Small todos* [x] Invalidate all feedbacks when editing your feedback
* [x] Put course title when editing cours feedback
* [x] Fix padding scholarships
* [x] Notifications: override render in order not to have a loading indicator and things moving
*...* [x] Invalidate all feedbacks when editing your feedback
* [x] Put course title when editing cours feedback
* [x] Fix padding scholarships
* [x] Notifications: override render in order not to have a loading indicator and things moving
* [x] RGPD: clearer REX-DRI PRIVATE and uniformize licenses format (also CGU)
* [x] Cleaner cover picture replacement
* [x] Map: constrain ratio
* [x] Drop dots in search paginationhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/135TODOs before beta2019-07-01T18:42:30ZFlorent ChehabTODOs before beta* [x] Check serializers.meta.fields value
* [x] Check model moderation levels
* [x] Update dark theme color
* [x] Reset migrations one last time
* [x] Check scholarship form constraints
* [x] Create load_prod all
* [x] Add schola...* [x] Check serializers.meta.fields value
* [x] Check model moderation levels
* [x] Update dark theme color
* [x] Reset migrations one last time
* [x] Check scholarship form constraints
* [x] Create load_prod all
* [x] Add scholarships not possible !
* [x] Add beta to logo on website
* [x] Add missing markdown page
* [x] Check spelling
* [x] Open framapad for feedback
* [x] Add RGPD notice to all forms
* [x] Put media files in a docker volume
* [x] Fix media files not accessible
* [x] Fix make init prod container name
* [x] Check currency conversion
* [x] A bit smaller font sizeFlorent ChehabFlorent Chehabhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/127Recommendation lists: JSON validation and rebuild universities2019-06-16T18:53:44ZFlorent ChehabRecommendation lists: JSON validation and rebuild universitiesFlorent ChehabFlorent Chehabhttps://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/119Check on_delete values in models2019-07-01T18:42:30ZFlorent ChehabCheck on_delete values in modelsBefore going in productionhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/96Review permissions on viewsets2019-07-01T18:42:30ZFlorent ChehabReview permissions on viewsetsDo this before going to prod.Do this before going to prod.Before going in productionhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/67RGPD compliance & data licence2019-06-22T12:03:38ZFlorent ChehabRGPD compliance & data licenceAvant de commencer, quelques informations/contraintes (à discuter) que nous fixons:
# Contraintes
## Propriété des données
* Toutes contributions d'un utilisateur à un élément de l'application que d'autres peuvent éditer est faite au ...Avant de commencer, quelques informations/contraintes (à discuter) que nous fixons:
# Contraintes
## Propriété des données
* Toutes contributions d'un utilisateur à un élément de l'application que d'autres peuvent éditer est faite au titre de la license `(CC BY 2.0 FR)` (https://creativecommons.org/licenses/by/2.0/fr/) au nom du site REX-DRI.
* Toute édition **public** à un module que seul l'utilisateur peut éditer est réaliser sous license [https://creativecommons.org/licenses/by-nc-nd/4.0/deed.fr](https://creativecommons.org/licenses/by-nc-nd/4.0/deed.fr)
* Toutes données émanant de l'UTC (à définir) restent de la propriété de l'UTC.
## Exception aux licences précédentes
* Les modérateurs peuvent éditer les éléments sans préavis.
* Toutes données **publique** (accessibles aux utilisateurs connectés) peut faire l'objet d'un traitement automatique qui veillera à l'anonymat des données et dont le cadre d'expérimentation et de diffusion ne pourra pas dépasser les membres (étudiants ou personnel) de l'UTC. Donc hors données strictement personnelles.
# Données personnelles potentiellement collectées:
* Données du CAS
* Adresse mail secondaire fournie
* Historique de connexion
* Log des requêtes aux serveurs
## Usage
* Pour le fonctionnement propre du site
* À des fin statistiques
## Expiration
Au plus tard, toutes les données personnelles seront supprimées 5 ans après la dernière connection de l'utilisateur.
# Cookies
* Seul cookie présent pour l'authentification de l'utilisateur et est détruit à la fermeture du navigateur.
-------------
-------------
-------------
# Concrètement
## Step 1
Rencontrer Rafia Berenguier pour:
- discuter de tout l'administratif à faire pour respecter le RGPD,
- prendre connaissance de ce qu'on doit implémenter de notre côté pour le respecter (droit de modification, suppression, etc.)
## Step 2
- Rédiger le règlement du site avec toutes les histoires des licences
- Tout ce que Mme. Berenguier demandera de faire :smile:
- lister les développements précis à faire
## Step 3
- Faire les développements.Before going in productionSolene AboudSolene Aboudhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/53Add support for one "rex-dri" univ to match multiple "UTC" partners2019-06-29T09:49:07ZFlorent ChehabAdd support for one "rex-dri" univ to match multiple "UTC" partners@chehabfl has heard that the UTC database might not be perfectly normalized with potential university duplicates, so we need to take this into account.
@chehabfl has heard that the UTC database might not be perfectly normalized with potential university duplicates, so we need to take this into account.
Segolene BrisemeurSegolene Brisemeurhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/34Recommendation list2019-06-22T12:03:38ZFlorent ChehabRecommendation listEnable the user to create list of universities.
:warning: The backend architecture might need an update. I would highly recommend starting by building the frontend for this. :warning:
- A user can create multiple lists of universities...Enable the user to create list of universities.
:warning: The backend architecture might need an update. I would highly recommend starting by building the frontend for this. :warning:
- A user can create multiple lists of universities,
- Each list can contain each university at most once,
- For each university, the user can add a markdown comment and "grades" (to determine),
- Users can reorder the list,
- Users can add "block" of markdown comment.
- The list can either be private or public (shareable -> useful for teachers). Therefore, some backend checks will be needed to verify that a user as read access to the list.
You can think of a list as something close to a Jupyter Notebook with "university blocks" and "comment blocks".PR nowSolene AboudSolene Aboudhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/29Handle feedback on courses.2019-06-27T20:03:58ZFlorent ChehabHandle feedback on courses.# Backend
:warning: Review/update the backend structure for this matter. :warning:
Currently we have the following architecture:
![Screenshot_from_2019-02-24_21-27-57](/uploads/e65271dc964ae850796765acad4cfa15/Screenshot_from_2019-02-...# Backend
:warning: Review/update the backend structure for this matter. :warning:
Currently we have the following architecture:
![Screenshot_from_2019-02-24_21-27-57](/uploads/e65271dc964ae850796765acad4cfa15/Screenshot_from_2019-02-24_21-27-57.png)
Several notes:
- One possible design to do (or not to do) is to create a model that contains the feedback for one course and that is link to an exchange.
- If you do so don't forget to modify your queryset to prefetch all the feedback (ask @chehabfl) for better performances.
- If you do so, you can put the general feedback of the user on the exchange model (aka PreviousDeparture)
- The other possibility, is to stick to JSON, but I think the one above is better to start with.
You have to keep in mind that:
- The courses followed by a student will automatically created (and updated) given the data from the UTC database.
Some questions have to be resolved for this issue:
- What do you grade on each course (for now: adequation and quality; I don't recall why I chose "integration")
- #59
Of course, don't forget about security:
- the info should be readable by everyone, but editable only by the user (and eventually a moderator (and above level)).
- For now, you can use a versioned model (that will automatically compress the successive version by the user, but will allow to keep track if an admin modify something).
# Frontend
Well, then you need to build the front for this.
First display information, then add the possibility to edit.
You might want to wait for #51 to be fixed first, but that's not necessary. PR nowSegolene BrisemeurSegolene Brisemeurhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/28Handling of automatic data update2019-06-30T16:23:30ZFlorent ChehabHandling of automatic data update# :warning: **Never ever commit any ID or data from the UTC DB** :warning:
## UTC Data
UTC data is hosted on an Oracle database.
### Step 1
* [x] ~~Create a new django app in the folder `interface_UTC` (at the root of the repo).~~ ...# :warning: **Never ever commit any ID or data from the UTC DB** :warning:
## UTC Data
UTC data is hosted on an Oracle database.
### Step 1
* [x] ~~Create a new django app in the folder `interface_UTC` (at the root of the repo).~~ (will be done in Java)
* [x] The app should connect to the UTC DB and convert the 4 views to JSON arrays,
* [x] This app must advertise one endpoint for each view,
* [x] The app must advertise other endpoints that accept a login as parameter:
* [x] to check what are the sharing permissions associated with a student
* [x] to get all the departures information for a student
* So that we don't have to fetch all the data when there is a permission change.
* [x] The app must be documented, consistent (error code) and resilient,
* [x] All endpoints will be readonly.
### Step 2
* [x] Create a mock of this new API so that we can easily use it in a dev environment.
* [x] Don't commit any personal data,
* [x] You can use a local database (of your choice) to hold the dev data,
* [x] All the mock data should be of the form of (commited) SQL scripts,
* [x] You should update the `docker-compose` file with the new service(s).
### Step 3
* [x] Create the python scripts to handle the transfer of the data from the API created above into Django models.
* [x] Those scripts should be runnable on demand.
* [x] Put them in a sub-application of the `backend` called `data_exchange`
## Currency exchange rate
* [x] Handle the connection to Fixer API to retrieve the exchange rates (directly from `data_exchange`)
* [x] Handle the update of the data in the model
* [x] Make it resilient.
## Both
* [x] Investigate the use of Cron (inside the backend docker container) to have an automated daily data update.
https://uwsgi-docs.readthedocs.io/en/latest/PythonDecorators.html
## Finally
- [x] Create a backend model / and frontend page, to show when where the latest update / the number of errors; so that anyone can see if the system is healthy at any point in time.
- [x] Also run clearsessions and delete user in the cron
:tada: PR nextAlexandre LanceartAlexandre Lanceart