Application permettant de gérer sa comptabilité d'indépendant complémentaire.
Go to file
Gregory Trullemans db20d9730b Update readme and gitignore 2024-06-20 07:38:31 +02:00
billing Update billing system 2024-06-16 11:07:59 +02:00
compta Update billing system 2024-06-16 11:07:59 +02:00
comptabilite Add Procfile and Docker file 2024-06-20 07:23:56 +02:00
requirements Update pip modules and app 2021-12-31 09:07:18 +01:00
static Update billing system 2024-06-16 11:07:59 +02:00
templates Update billing system 2024-06-16 11:07:59 +02:00
.gitignore Update readme and gitignore 2024-06-20 07:38:31 +02:00
Procfile Add Procfile and Docker file 2024-06-20 07:23:56 +02:00
README.md Update readme and gitignore 2024-06-20 07:38:31 +02:00
db.sqlite3 Update billing system 2024-06-16 11:07:59 +02:00
docker-compose.yaml Add Procfile and Docker file 2024-06-20 07:23:56 +02:00
manage.py Transition to Fred's depot. 2020-02-18 08:14:07 +01:00

README.md

Comptabilité d'indépendant complémentaire

Installation

Créez un environnement virtuel python3 -m venv /path/to/new/virtual/environment

Installez les requirements pip install -r requirements/dev.txt

Application de comptabilité

Elle permet de gérer sa comptabilité (mouvement d'argent) d'indépendant complémentaire.

Application de facturation

Elle permet de gerer ses clients, ses contrats et ses prestations. Elle permet également d'exporter un PDF généré automatiquement pour facturer un client.

La génération est assez simple : elle prend toutes les prestations d'un contrat (pour un seul client) et en fait un PDF avec le détail des prestations, l'acompte, … et indique sur quel compte payer ainsi que la communication à utiliser lors de ce versement.

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: "compta_inde_db_container"
        environment:
            POSTGRES_DB: "compta_inde_db"
            POSTGRES_USER: "Greg&Arnaud"
            POSTGRES_PASSWORD: "K&kP4t4t0r1!"
        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

  • Ajouter le Buildpacks : heroku/python

  • Créer les variables d'environnement :

    • ALLOWED_HOSTS :
    • DATABASE_NAME : compta_inde_db
    • DISABLE_COLLECTSTATIC : 1
    • SECRET_KEY : mvu)=%+ocv3n9dljxq0===v!01@rw2j++i&h6#65cu1#0ff@
    • DATABASE_URL : créé automatiquement lorsqu'on ajoute l' element PostgreSQL

    Exemple :

        heroku config:set DISABLE_COLLECTSTATIC="1"
        heroku config:set ALLOWED_HOSTS="<a-definir>"
        heroku config:set SECRET_KEY="mvu)=%+ocv3n9dljxq0===$v!01@rw2j$++i&h6#65cu1#0ff@"
        heroku config:set DATABASE_NAME="compta_inde_db"
    
  • Se connecter à Héroku (via l'invite de commande) : heroku login

  • Ajouter Heroku à Git : git remote add heroku https://git.heroku.com/comptainde.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