Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/EsupPortail/Esup-Pod int…
Browse files Browse the repository at this point in the history
…o develop
  • Loading branch information
pampletousse committed Jun 6, 2024
2 parents 3f0262c + db093dd commit 7f4714c
Show file tree
Hide file tree
Showing 218 changed files with 11,477 additions and 2,464 deletions.
11 changes: 9 additions & 2 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@

[report]
# Add a column to the report with a summary of which lines (and branches) the tests missed.
# This makes it easy to go from a failure to fixing it, rather than using the HTML report.
show_missing = True

# nb: you can also add a "# pragma: no cover"
# on each function you don't want to be covered
[run]
relative_files = True
source = .

# This ensures that your code runs through both the True and False paths of each conditional statement.
# branch = True

# Here you can exclude a file from coverage testing
# nb: you can also add a "# pragma: no cover"
# on each function you don't want to be covered
omit = pod/*settings*.py
pod/custom/settings*.py
pod/*apps.py
Expand Down
11 changes: 10 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ module.exports = {
},
/* functions and Objects that will not trigger a "not defined" error. */
"globals": {
"require": true,
"process": true,
"Cookies": "readonly",
"gettext": "readonly",
"ngettext": "readonly",
Expand All @@ -41,5 +43,12 @@ module.exports = {
"showalert": "writable",
"showLoader": "writable",
"manageDisableBtn": "writable"
}
},
overrides: [
{
// Allow use of import & export functions
files: [ "pod/main/static/js/utils.js", "pod/video/static/js/regroup_videos_by_theme.js" ],
parserOptions: { sourceType: "module" },
}
]
};
1 change: 0 additions & 1 deletion .github/workflows/code_formatting.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
name: Code Formatting
run-name: ${{ github.actor }} is running Pod code formatting 🎨

on:
push:
Expand Down
17 changes: 11 additions & 6 deletions .github/workflows/pod_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,18 +56,17 @@ jobs:
- name: Install Dependencies
run: |
sudo apt-get clean
sudo apt-get update
sudo apt-get install ffmpeg
sudo apt-get install -y ffmpegthumbnailer
sudo apt-get install -y --no-install-recommends ffmpeg ffmpegthumbnailer
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
sudo npm install -g yarn
# FLAKE 8
# FLAKE 8 (see setup.cfg for configurations)
- name: Flake8 compliance
run: |
flake8 --max-complexity=7 --ignore=E501,W503,E203 --exclude .git,pod/*/migrations/*.py,test_settings.py,node_modules/*/*.py,pod/static/*.py,pod/custom/tenants/*/*.py
run: flake8

## Start remote encoding and transcoding test ##
- name: Create settings local file
Expand Down Expand Up @@ -147,6 +146,12 @@ jobs:
coverage run --append manage.py test -v 3 --settings=pod.main.test_settings
coverage xml -o cobertura.xml
- name: Codacy coverage reporter
run: bash <(curl -Ls https://coverage.codacy.com/get.sh)
continue-on-error: true
env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}

- name: Send coverage to coveralls.io
# coveralls command has been installed by requirements-dev.txt
env:
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/pod_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,10 @@ jobs:
- name: Install Dependencies
run: |
sudo apt-get clean
sudo apt-get update
sudo apt-get install ffmpeg
sudo apt-get install -y ffmpegthumbnailer
sudo apt-get install -y npm
sudo apt-get install -y --no-install-recommends ffmpeg ffmpegthumbnailer npm
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
sudo npm install -g yarn
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Compiled source #
# Compiled source #
###################
*.com
*.class
Expand Down Expand Up @@ -60,6 +60,7 @@ chromedriver
pod/static/
*.bak
.coverage
.cache_ggshield
htmlcov
compile-model

Expand Down
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
repos:
- repo: https://github.com/gitguardian/ggshield
rev: v1.27.0
hooks:
- id: ggshield
language_version: python3
stages: [commit]
53 changes: 47 additions & 6 deletions CONFIGURATION_FR.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ Il faudra pour cela créer un fichier de langue et traduire chaque entrée.<br>
>> d’encodage ou de flux RSS si la variable `CONTACT_US_EMAIL` n’est pas renseignée.<br><br>
>> _ref : [docs.djangoproject.com](https://docs.djangoproject.com/fr/3.2/ref/settings/#admins)_<br>
* `ALLOWED_HOSTS`
> valeur par défaut : `['localhost']`
> valeur par défaut : `['pod.localhost']`
>> Une liste de chaînes représentant des noms de domaine/d’hôte que ce site Django peut servir.<br><br>
>> C’est une mesure de sécurité pour empêcher les attaques d’en-tête Host HTTP,<br>
>> qui sont possibles même avec bien des configurations de serveur Web apparemment sécurisées.<br><br>
Expand All @@ -359,15 +359,15 @@ Il faudra pour cela créer un fichier de langue et traduire chaque entrée.<br>
>> # },
>> "default": {
>> "BACKEND": "django_redis.cache.RedisCache",
>> "LOCATION": "redis://127.0.0.1:6379/1",
>> "LOCATION": "redis://redis.localhost:6379/1",
>> "OPTIONS": {
>> "CLIENT_CLASS": "django_redis.client.DefaultClient",
>> },
>> },
>> # Persistent cache setup for select2 (NOT DummyCache or LocMemCache).
>> "select2": {
>> "BACKEND": "django_redis.cache.RedisCache",
>> "LOCATION": "redis://127.0.0.1:6379/2",
>> "LOCATION": "redis://redis.localhost:6379/2",
>> "OPTIONS": {
>> "CLIENT_CLASS": "django_redis.client.DefaultClient",
>> },
Expand Down Expand Up @@ -711,6 +711,38 @@ Il faudra pour cela créer un fichier de langue et traduire chaque entrée.<br>
## Configuration des applications Esup_Pod
### Configuration application AI Enhancement
Application AI Enhancement pour pouvoir utiliser les améliorations des vidéos par l'intelligence artifficielle.<br>
Mettre `USE_AI_ENHANCEMENT` à True pour activer cette application.<br>
* `AI_ENHANCEMENT_API_URL`
> valeur par défaut : ``
>> L’URL de l’API pour l’IA d’amélioration des vidéos.<br>
>> Exemple : 'https://aristote.univ.fr/api'<br>
>> Lien du projet : https://www.demainestingenieurs.centralesupelec.fr/aristote/<br>
* `AI_ENHANCEMENT_API_VERSION`
> valeur par défaut : ``
>> La version de l’API pour l’IA d’amélioration des vidéos.<br>
* `AI_ENHANCEMENT_CGU_URL`
> valeur par défaut : ``
>> L’URL des conditions générales d’utilisation de l’API pour l’IA d’amélioration des vidéos.<br>
>> Exemple : 'https://aristote.univ.fr/cgu'<br>
>> Lien du projet : https://www.demainestingenieurs.centralesupelec.fr/aristote/<br>
* `AI_ENHANCEMENT_CLIENT_ID`
> valeur par défaut : `mocked_id`
>> L’ID du client de l’IA d’amélioration des vidéos.<br>
>> Exemple : 'v1'<br>
* `AI_ENHANCEMENT_CLIENT_SECRET`
> valeur par défaut : `mocked_secret`
>> Le mot de passe secret du client de l’IA d’amélioration des vidéos.<br>
* `AI_ENHANCEMENT_FIELDS_HELP_TEXT`
> valeur par défaut : ``
>> Ensemble des textes d’aide affichés avec le formulaire d'amélioration d'une vidéo avec l'IA d'Aristote.<br>
* `USE_AI_ENHANCEMENT`
> valeur par défaut : `False`
>> Activation des améliorations de l'intelligence artificielle. Permet aux utilisateurs de l'utiliser.<br>
### Configuration de l’application authentification
* `AFFILIATION`
Expand Down Expand Up @@ -1379,6 +1411,15 @@ Mettre `USE_PLAYLIST` à True pour activer cette application.<br>
>> Les clés VAPID sont nécessaires à la lib [django-webpush](https://github.com/safwanrahman/django-webpush).<br>
>> Elles peuvent être générées avec [web-push-codelab.glitch.me](https://web-push-codelab.glitch.me/).<br>
### Configuration de l'application quiz
Application Quiz pour ajouter des questions sur les vidéos.<br>
Mettre `USE_QUIZ` à True pour activer cette application.<br>
* `USE_QUIZ`
> valeur par défaut : `True`
>> Activation des quiz. Permet aux utilisateurs de créer, répondre et utiliser des quiz dans les vidéos.<br>
### Configuration de l’application recorder
* `ALLOW_MANUAL_RECORDING_CLAIMING`
Expand Down Expand Up @@ -1934,7 +1975,7 @@ Il est possible d’encoder en local ou en distant.<br>
Attention, il faut configurer Celery pour l’envoi des instructions pour l’encodage distant.<br>
* `CELERY_BROKER_URL`
> valeur par défaut : `redis://127.0.0.1:6379/5`
> valeur par défaut : `redis://redis.localhost:6379/5`
>> URL du courtier de messages où Celery stocke les ordres d’encodage et de transcription.<br>
* `CELERY_TO_ENCODE`
> valeur par défaut : `False`
Expand Down Expand Up @@ -1976,7 +2017,7 @@ Attention, il faut configurer Celery pour l’envoi des instructions pour l’en
>>
>> Il faut renseigner l’url du redis sur lequel Celery<br>
>> va chercher les ordres d’encodage et de transcription<br>
>> par exemple : "redis://redis:6379/7"<br>
>> par exemple : "redis://redis.localhost:6379/7"<br>
* `FORMAT_CHOICES`
> valeur par défaut : `()`
>> Format d’encodage réalisé sur la plateforme.<br>
Expand Down Expand Up @@ -2057,7 +2098,7 @@ Attention, il faut configurer Celery pour l’envoi des instructions pour l’en
> valeur par défaut : `30`
>> Valeur de timeout pour ElasticSearch.<br>
* `ES_URL`
> valeur par défaut : `["http://127.0.0.1:9200/"]`
> valeur par défaut : `["http://elasticsearch.localhost:9200/"]`
>> Adresse du ou des instances d’Elasticsearch utilisées pour<br>
>> l’indexation et la recherche de vidéo.<br>
* `ES_VERSION`
Expand Down
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@ help:

# Démarre le serveur de test
start:
(sleep 15 ; open http://localhost:9090) &
python3 manage.py runserver localhost:9090 --insecure
(sleep 15 ; open http://pod.localhost:8000) &
python3 manage.py runserver pod.localhost:8000 --insecure
# --insecure let serve static files even when DEBUG=False

# Démarre le serveur de test en https auto-signé
starts:
# nécessite les django-extensions
# cf https://timonweb.com/django/https-django-development-server-ssl-certificate/
(sleep 15 ; open https://localhost:9090) &
python3 manage.py runserver_plus localhost:9090 --cert-file cert.pem --key-file key.pem
(sleep 15 ; open https://pod.localhost:8000) &
python3 manage.py runserver_plus pod.localhost:8000 --cert-file cert.pem --key-file key.pem

# Première installation de pod (BDD SQLite intégrée)
install:
Expand Down Expand Up @@ -67,7 +67,7 @@ migrate:

# Launch all unit tests.
tests:
coverage run --source='.' manage.py test --settings=pod.main.test_settings
coverage run manage.py test --settings=pod.main.test_settings
coverage html

# Ensure coherence of all code style
Expand Down
7 changes: 5 additions & 2 deletions docker-compose-dev-with-volumes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ version: '3.7'
services:
pod:
container_name: pod-dev-with-volumes
hostname: pod.localhost
build:
context: .
dockerfile: dockerfile-dev-with-volumes/pod/Dockerfile
Expand All @@ -18,11 +19,12 @@ services:
env_file:
- ./.env.dev
ports:
- 9090:8080
- 8000:8000
volumes: *pod-volumes

elasticsearch:
container_name: elasticsearch-with-volumes
hostname: elasticsearch.localhost
build:
context: .
dockerfile: dockerfile-dev-with-volumes/elasticsearch/dockerfile-elasticsearch-dev
Expand All @@ -36,6 +38,7 @@ services:

redis:
container_name: redis-with-volumes
hostname: redis.localhost
image: ${REDIS_TAG}
env_file:
- ./.env.dev
Expand All @@ -44,7 +47,7 @@ services:

# redis-commander:
# container_name: redis-commander
# hostname: redis-commander
# hostname: redis-commander.localhost
# image: rediscommander/redis-commander:latest
# restart: always
# environment:
Expand Down
10 changes: 8 additions & 2 deletions docker-compose-full-dev-with-volumes-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ version: '3.7'
services:
pod-back:
container_name: pod-back-with-volumes
hostname: pod.localhost
build:
context: .
dockerfile: dockerfile-dev-with-volumes/pod-back/Dockerfile
Expand All @@ -18,11 +19,12 @@ services:
env_file:
- ./.env.dev
ports:
- 9090:8080
- 8000:8000
volumes: *pod-volumes

pod-encode:
container_name: pod-encode-with-volumes
hostname: pod-encode.localhost
build:
context: .
dockerfile: dockerfile-dev-with-volumes/pod-encode/Dockerfile
Expand All @@ -34,6 +36,7 @@ services:

pod-transcript:
container_name: pod-transcript-with-volumes
hostname: pod-transcript.localhost
build:
context: .
dockerfile: dockerfile-dev-with-volumes/pod-transcript/Dockerfile
Expand All @@ -45,6 +48,7 @@ services:

pod-xapi:
container_name: pod-xapi-with-volumes
hostname: pod-xapi.localhost
build:
context: .
dockerfile: dockerfile-dev-with-volumes/pod-xapi/Dockerfile
Expand All @@ -56,6 +60,7 @@ services:

elasticsearch:
container_name: elasticsearch-with-volumes
hostname: elasticsearch.localhost
build:
context: .
dockerfile: dockerfile-dev-with-volumes/elasticsearch/dockerfile-elasticsearch-dev
Expand All @@ -69,6 +74,7 @@ services:

redis:
container_name: redis-with-volumes
hostname: redis.localhost
image: ${REDIS_TAG}
env_file:
- ./.env.dev
Expand All @@ -86,7 +92,7 @@ services:

# redis-commander:
# container_name: redis-commander
# hostname: redis-commander
# hostname: redis-commander.localhost
# image: rediscommander/redis-commander:latest
# restart: always
# environment:
Expand Down
Loading

0 comments on commit 7f4714c

Please sign in to comment.