a5834ee8c9 | ||
---|---|---|
foerderbarometer | ||
input | ||
.gitignore | ||
LICENSE | ||
README.md | ||
TODO | ||
manage.py | ||
requirements.txt |
README.md
foerderbarometer
purpose: gather data from intern(WMDE) and extern(volunteers) forms to create a database ('förderdatenbank') and send emails with links for a questionary.
installation and development setup
ln -sr foerderbarometer/settings_development.py foerderbarometer/settings.py
build the database with
python3 manage.py migrate
create superuser account with
python3 manage.py createsuperuser
run the development server with
python3 manage.py runserver
access via
http://localhost:8000/
http://localhost:8000/intern/ (login required)
http://localhost:8000/admin/ (login reqiured)
additional admin functionality
The admin page is the standard admin page delivered by django but with two additional functionalities:
-
There is a new action "export to csv" with which you can export all Selected entries to a csv file
-
There is a new button in the bottom of every Project to "save as new"
versions used in development
asgiref==3.2.10
Django==3.1.2
django-formtools==2.4
gunicorn==20.0.4
mysqlclient==2.1.1
sqlparse==0.4.3
whitenoise==6.2.0
asgiref==3.2.10
Authlib==1.2.1
certifi==2023.7.22
cffi==1.16.0
chardet==5.2.0
charset-normalizer==3.3.0
cryptography==41.0.4
idna==3.4
pycparser==2.21
pytz==2023.3.post1
requests==2.31.0
six==1.16.0
typing_extensions==4.8.0
urllib3==2.0.6
testing
run some tests with
python3 manage.py test
production setup
ln -sr foerderbarometer/settings_production.py foerderbarometer/settings.py
edit /secrets.json to contain something similar to
{
"DATABASE_PASSWORD": "THIS IS TOP SECRET!",
"SECRET_KEY": "THIS IS ANOTHER SECRET!"
}
edit foerderbarometer/settings_production.py according to your database setup (tested with MariaDB 10.0.36)
run the following commands:
python3 manage.py migrate
python3 manage.py collectstatic
server starts with
nohup gunicorn --forwarded-allow-ips="*" -b '0:8000' foerderbarometer.wsgi 2&> logfile &
Should be executed at least daily e.g. in crontab
python3 manage.py sendmails