Development setup#
Documentation - Installation#
Introduction#
This guide allows you to install, configure and operate Borgia locally for development.
All of the following is independent of the operating system used. It works on Windows, MacOS and Linux.
Be careful, if Python 2 and 3 coexist, python 3 will be called with python3. In all cases, check that Python 3 is used for the following commands, by doing: python --version or python3 --version. Same for pip and pip3 if necessary.
Installing dependencies#
Python packages:
pip install -r requirements/dev.txtLess:
yarn global add lessornpm install -g less
Configuring settings.py#
Copy/paste the
settings.pyfile located in/contrib/developmentinto/borgia/borgiaOptional : Modify all the variables that must be done by browsing the file.
Optional : In the case of configuring a Gmail email, with email
GMAIL_EMAILand passwordGMAIL_PASSWORD, use:
DEFAULT_FROM_EMAIL = 'GMAIL_EMAIL'
SERVER_EMAIL = 'GMAIL_EMAIL'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'GMAIL_EMAIL'
EMAIL_HOST_PASSWORD = 'GMAIL_PASSWORD'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
Optional: Don’t forget to configure Gmail to accept “less secure applications”.
Migrations and initial data#
The following commands must be executed in the /borgia application folder.
python manage.py makemigrations configurations users shops finances events modules sales stockspython manage.py migratepython manage.py loaddata initialpython manage.py collectstatic --clearindicating “yes” on validation.
Initial data for simulation and development.
python manage.py loaddata tests_data
Changing the password of the first user AE_ENSAM:
python manage.py shellfrom users.models import Useru = User.objects.get(pk=1)u.set_password("NEW_PASSWORD")u.save()exit()
Run local server#
You can then launch a local development server:
python manage.py runserver
To launch it on a specific port address use:
python manage.py runserver localhost:8081
Tests#
Unit tests are run by python manage.py test or python manage.py test APPLICATION_NAME to test a particular application.
They must be executed, without errors before each push.