Comme Ultron mais en mieux (parce qu'il ne deviendra jamais méchant) ;-)
Go to file
Gregory Trullemans d1d1a5a695 Add informations and image to help page. 2024-04-14 13:01:08 +02:00
config Add (and fix) tests 2024-01-21 13:53:57 +01:00
jarvis Add informations and image to help page. 2024-04-14 13:01:08 +02:00
requirements Update requirements 2024-01-21 15:51:15 +01:00
static Add informations and image to help page. 2024-04-14 13:01:08 +02:00
.coveragerc Add (and fix) tests 2024-01-21 13:53:57 +01:00
.drone.yml First commit 2023-04-25 17:06:14 +02:00
.gitignore Add image for help 2024-04-05 13:07:46 +02:00
.pylintrc Pylint dix 2024-01-14 14:48:31 +01:00
Procfile First commit 2023-04-25 17:06:14 +02:00
README.md Minor update 2024-03-06 15:54:00 +01:00
docker-compose.yml First commit 2023-04-25 17:06:14 +02:00
manage.py First commit 2023-04-25 17:06:14 +02:00
pytest.ini Add (and fix) tests 2024-01-21 13:53:57 +01:00
requirements.txt First commit 2023-04-25 17:06:14 +02:00

README.md

Ultron

Build Status

Déploiement en local (Docker)

  • installer Docker (+ drivers PGSQL)
  • créer un fichier docker-compose.yml :
version: "3"
services:
    db:
        image: "postgres:14"
        restart: always
        container_name: "jarvis_container"
        environment:
            POSTGRES_DB: "jarvis_db"
            POSTGRES_USER: "Iamironman"
            POSTGRES_PASSWORD: "J4rV1s"
        ports:
            - "5432:5432"
        volumes:
            - ./data:/var/lib/postgresql/data
  • tapez la commande docker-compose up -d
  • pip install -r requirements.txt
  • python manage.py createsuperuser
  • python manage.py runserver

Aller dans l'administration de django -> Group. Là, il faut créer deux groupes : "trainer" et "gymnast". Ensuite, attribuer au super user créé le groupe "trainer".

Installation de weasyprint

En plus du pip install weasyprint et pip install django-weasyprint, il faut installer weasyprint (via homebrew, …) puis, pour les mac M1 exécuter les commandes :

    sudo ln -s /opt/homebrew/opt/glib/lib/libgobject-2.0.0.dylib /usr/local/lib/gobject-2.0
    sudo ln -s /opt/homebrew/opt/pango/lib/libpango-1.0.dylib /usr/local/lib/pango-1.0
    sudo ln -s /opt/homebrew/opt/harfbuzz/lib/libharfbuzz.dylib /usr/local/lib/harfbuzz
    sudo ln -s /opt/homebrew/opt/fontconfig/lib/libfontconfig.1.dylib /usr/local/lib/fontconfig-1
    sudo ln -s /opt/homebrew/opt/pango/lib/libpangoft2-1.0.dylib /usr/local/lib/pangoft2-1.0

Tests

Pylint

Dans le répertoire racine, tapez la commande suivante :

    pylint ./jarvis/followup

Djlint

(à venir)

Coverage

    pip install coverage

Configuration

    touch .coveragerc
    vim .coveragerc

Ajoutez les lignes suivantes :

    omit = *__init__.py,*/migrations/*,*test*,*settings*,*urls*,*wsgi*,manage.py,*apps*

Utilisation

    coverage run -m pytest

Déploiement sur Heroku

  • Créer l'application sur Heroku

  • Créer les variables d'environnement :

    • ALLOWED_HOSTS : avengers-jarvis.herokuapp.com
    • DATABASE_NAME : ultron
    • DISABLE_COLLECTSTATIC : 1
    • SECRET_KEY : django-insecure-g_eoy6z%xshku4o5#k%o%i_%nb%pz80config#+t%f
    • DATABASE_URL : créé automatiquement lorsqu'on ajoute l' element PostgreSQL

    Exemple :

        heroku config:set DISABLE_COLLECTSTATIC="1"
        heroku config:set ALLOWED_HOSTS="avengers-jarvis.herokuapp.com"
        heroku config:set SECRET_KEY="django-insecure-g_eoy6z%xshku4o5#k%o%i_%nb%_pz80config_#+t%f"
        heroku config:set DATABASE_NAME="ultron"
    
  • Se connecter à Héroku (via l'invite de commande) : heroku login

  • Ajouter Heroku à Git : git remote add heroku https://git.heroku.com/flying-ultron.git

  • Push de l'application : git push heroku master

  • Création du super user : heroku run python manage.py createsuperuser

Récupération des données :

Pour transferer des données d'un site à un autre, le plus simple est d'utiliser la commande ./manage.py dumpdata > db.json.

Pour ne pas récupérer les user, les authorisation et les content-type, utilisez la commande :

    python manage.py dumpdata --natural-foreign --exclude contenttypes --exclude auth.permission --exclude admin.logentry --exclude sessions.session --indent 4 > save.json

Pour charger les données, tapez ensuite :

    python manage.py loaddata save.json

Commandes

Pour refaire la learning line des skills :

    heroku run python manage.py rebuild_closure_table_tree_for_skill

Pour refaire la learning line des séries :

    heroku run python manage.py rebuild_closure_table_tree_for_routine

Pour remettre tous les rank des skills à 0 :

    heroku run python manage.py remove_rank_from_skill

Pour retirer les espaces dans le code numérique des skills :

    heroku run python manage.py remove_space_from_skill_notation

Applications

Right

Il y a 3 types pe de droits :

- Administrateur
- Entraineur (groupe `Trainer`)
- Gymnaste (groupe `Gymnast`)
Administrateur

Il peut tout faire.

Entraîneur

Peut tout faire sauf :

  • Gérer les skill
  • Gérer les Pays
  • Gérer les lieux
Gymnaste

Un gymnaste peut tout faire pour lui-même :

  • Ajouter un chrono
  • Ajouter un score
  • Ajouter un height/weight

Skill

Learned Skill

Il y a quatre niveau de connaissance d'un skill :

  • non connu
  • connu avec aide (tapis, élastiques, fosse, …)
  • connu sans aucune aide
  • connu et enchainé