db20d9730b | ||
---|---|---|
billing | ||
compta | ||
comptabilite | ||
requirements | ||
static | ||
templates | ||
.gitignore | ||
Procfile | ||
README.md | ||
db.sqlite3 | ||
docker-compose.yaml | ||
manage.py |
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