Difference between revisions of "Artenquiz documentation"
From Biowikifarm Metawiki
m (JSON of mobile bestimmung) |
m (1.3 → 1.6 (django doc)) |
||
Line 1: | Line 1: | ||
− | (See also [[Django-Installation]] and [https://docs.djangoproject.com/en/1. | + | (See also [[Django-Installation]] and [https://docs.djangoproject.com/en/1.6/intro/overview/ Django at a glance]) |
The test version for Artenquiz is running under: | The test version for Artenquiz is running under: | ||
Line 17: | Line 17: | ||
/var/www/v-artenquiz/django/ | /var/www/v-artenquiz/django/ | ||
− | + | · {{comment gray | manage.py (manage file for the django app)}} | |
├ /artenbestimmung {{comment gray | (projects artenquiz + artenbestimmung) }} | ├ /artenbestimmung {{comment gray | (projects artenquiz + artenbestimmung) }} | ||
· http://artenquiz.biowikifarm.net/ | · http://artenquiz.biowikifarm.net/ | ||
Line 49: | Line 49: | ||
You can start a django app by: | You can start a django app by: | ||
− | < | + | <syntaxhighlight lang="bash"> |
cd my-dj-project-folder | cd my-dj-project-folder | ||
django-admin.py help startapp | django-admin.py help startapp | ||
django-admin.py startapp my-app-folder | django-admin.py startapp my-app-folder | ||
# a it needs always __init__.py!!!! | # a it needs always __init__.py!!!! | ||
− | </ | + | </syntaxhighlight> |
To let a django application get to work, you need (in general) the following files: | To let a django application get to work, you need (in general) the following files: | ||
__init__.py {{comment gray| (a 0Byte file needed by python) }} | __init__.py {{comment gray| (a 0Byte file needed by python) }} | ||
− | [https://docs.djangoproject.com/en/1. | + | [https://docs.djangoproject.com/en/1.6/topics/http/urls/ url.py] {{comment gray| (URL pattern definitions) }} |
− | [https://docs.djangoproject.com/en/1. | + | [https://docs.djangoproject.com/en/1.6/topics/db/models/ models.py] {{comment gray| (data-model definitions) }} |
− | [https://docs.djangoproject.com/en/1. | + | [https://docs.djangoproject.com/en/1.6/topics/http/views/ views.py] {{comment gray| (view layer: form request definitions, form processing) }} |
− | [https://docs.djangoproject.com/en/1. | + | [https://docs.djangoproject.com/en/1.6/topics/templates/ mytemplate.html] {{comment gray| (a template to process, see also [http://artenquiz.biowikifarm.net/admin/doc/ admin/doc/]) }} |
== Create first model == | == Create first model == | ||
After setting the database a first autgenerated model can be obtained by | After setting the database a first autgenerated model can be obtained by | ||
− | < | + | <syntaxhighlight lang="bash"> |
cd /artenquiz/django/artenbestimmung | cd /artenquiz/django/artenbestimmung | ||
python manage.py inspectdb | python manage.py inspectdb | ||
python manage.py inspectdb > models_autogenerated.py | python manage.py inspectdb > models_autogenerated.py | ||
mv --interactive models_autogenerated.py models.py | mv --interactive models_autogenerated.py models.py | ||
− | </ | + | </syntaxhighlight> |
== Change translations == | == Change translations == | ||
(1) | (1) | ||
− | < | + | <syntaxhighlight lang="html4strict"> |
<!-- in /templates/mytemplate.html --> | <!-- in /templates/mytemplate.html --> | ||
{% trans "Short localised message" %} | {% trans "Short localised message" %} | ||
Line 81: | Line 81: | ||
spanning multiple lines{% endblocktrans %} | spanning multiple lines{% endblocktrans %} | ||
<!-- in /templates/mytemplate.html --> | <!-- in /templates/mytemplate.html --> | ||
− | </ | + | </syntaxhighlight> |
(2) | (2) | ||
− | < | + | <syntaxhighlight lang="bash"> |
# move to base directory of artenquiz app | # move to base directory of artenquiz app | ||
cd /artenquiz/django/artenbestimmung | cd /artenquiz/django/artenbestimmung | ||
django-admin.py help makemessages # show the help | django-admin.py help makemessages # show the help | ||
django-admin.py makemessages --no-wrap -l de --extension='.html,.txt' && django-admin.py makemessages --no-wrap -l en --extension='.html,.txt' | django-admin.py makemessages --no-wrap -l de --extension='.html,.txt' && django-admin.py makemessages --no-wrap -l en --extension='.html,.txt' | ||
− | </ | + | </syntaxhighlight> |
(3) | (3) | ||
Line 97: | Line 97: | ||
(4) | (4) | ||
− | < | + | <syntaxhighlight lang="bash"> |
# move to base directory of artenquiz app | # move to base directory of artenquiz app | ||
cd /artenquiz/django/artenbestimmung | cd /artenquiz/django/artenbestimmung | ||
django-admin.py compilemessages | django-admin.py compilemessages | ||
− | </ | + | </syntaxhighlight> |
(5) (eventually) restart the server | (5) (eventually) restart the server | ||
− | < | + | <syntaxhighlight lang="bash"> |
sudo /etc/init.d/apache2 help | sudo /etc/init.d/apache2 help | ||
# [ ok ] Usage: /etc/init.d/apache2 {start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean|status}. | # [ ok ] Usage: /etc/init.d/apache2 {start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean|status}. | ||
sudo /etc/init.d/apache2 restart | sudo /etc/init.d/apache2 restart | ||
− | </ | + | </syntaxhighlight> |
== Install other modules == | == Install other modules == | ||
− | < | + | <syntaxhighlight lang="bash"> |
sudo apt-get install python-xlrd # Excel sheet import | sudo apt-get install python-xlrd # Excel sheet import | ||
− | </ | + | </syntaxhighlight> |
== JSON of mobile bestimmung == | == JSON of mobile bestimmung == | ||
JSON data are retrieved by the projects label in saved in the data base, e.g. | JSON data are retrieved by the projects label in saved in the data base, e.g. | ||
* project.label “Häufige Schmetterlinge in Deutschland” → http://artenquiz.de/export_data/H%C3%A4ufige%20Schmetterlinge%20in%20Deutschland | * project.label “Häufige Schmetterlinge in Deutschland” → http://artenquiz.de/export_data/H%C3%A4ufige%20Schmetterlinge%20in%20Deutschland |
Revision as of 09:30, 8 August 2014
(See also Django-Installation and Django at a glance)
The test version for Artenquiz is running under:
- http://artenquiz.de/
- http://artenquiz.de/identification/ (Test with additional keys: http://artenquiz.de/identification_test/)
- http://artenquiz.de/identification_mobile/ (Test with additional keys: http://artenquiz.de/identification_mobile_test/)
An admin interface for django users having a special admin account is available at:
- http://artenquiz.biowikifarm.net/admin/
- http://artenquiz.biowikifarm.net/admin/doc/ (automatic documentation generated if Python's docutils is available)
Subversion directory is:
- https://biowikifarm.net/svn/artenquiz/ (you must be e registered user for svn to get access)
- Schema diagram at:
http://biowikifarm.net/v-artenquiz/django/doc/current_artenquiz_schema.png
http://biowikifarm.net/v-artenquiz/django/doc/current_artenquiz_schema.pdf
Contents
Folder structure
/var/www/v-artenquiz/django/ · manage.py (manage file for the django app) ├ /artenbestimmung (projects artenquiz + artenbestimmung) · http://artenquiz.biowikifarm.net/ · http://artenquiz.biowikifarm.net/identification/ · /accounts (backend for user_name or email login) · /artenquiz · /management · /commands (various import tools) · USAGE: · cd /path-to/artenbestimmung · python manage.py help importtaxa · python manage.py importtaxa /path-to/datafile.csv · /templatetags (custom tags used in templates) · /static (static CSS styles, JavaScript files, icons) · /tools (python script tools) · /local (generated localization files and defined English translations) · /register (definitions of registration) · /report (simple reports of descriptions for admins) · /templates (all django XHTML-templates and page texts) · /account_naturgucker login, registration for naturgucker.de · /edit in the future: templates for editing descriptions · /registration used for standard (Django) registration · /report reports for projects, e.g. score list · /vögel specific templates for project.code vögel. Name of folder should follow db entry of ‹project.code› · /‹project.code› specific templates for a project · template-file.html general template files for multiple projects or as fallback, if a project URL is called and the project-template folder doesn't exist yet ├ /data (data for import) └ /doc (python + django documentation as freemind-mind-map; current database schema)
Create a new project
You can start a django app by:
cd my-dj-project-folder
django-admin.py help startapp
django-admin.py startapp my-app-folder
# a it needs always __init__.py!!!!
To let a django application get to work, you need (in general) the following files:
__init__.py (a 0Byte file needed by python) url.py (URL pattern definitions) models.py (data-model definitions) views.py (view layer: form request definitions, form processing) mytemplate.html (a template to process, see also admin/doc/)
Create first model
After setting the database a first autgenerated model can be obtained by
cd /artenquiz/django/artenbestimmung
python manage.py inspectdb
python manage.py inspectdb > models_autogenerated.py
mv --interactive models_autogenerated.py models.py
Change translations
(1)
<!-- in /templates/mytemplate.html -->
{% trans "Short localised message" %}
{% blocktrans %}Localised message
spanning multiple lines{% endblocktrans %}
<!-- in /templates/mytemplate.html -->
(2)
# move to base directory of artenquiz app
cd /artenquiz/django/artenbestimmung
django-admin.py help makemessages # show the help
django-admin.py makemessages --no-wrap -l de --extension='.html,.txt' && django-admin.py makemessages --no-wrap -l en --extension='.html,.txt'
(3) Add translations at least in
-
/artenbestimmung/locale/de/LC_MESSAGES/django.po
- note that
#, fuzzy
becomes not translated, you may remove it and make sure you have an exact msgid or change it to#, use-fuzzy
(?undocumented hack? because msgfmt hasmsgfmt --use-fuzzy
)
(4)
# move to base directory of artenquiz app
cd /artenquiz/django/artenbestimmung
django-admin.py compilemessages
(5) (eventually) restart the server
sudo /etc/init.d/apache2 help
# [ ok ] Usage: /etc/init.d/apache2 {start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean|status}.
sudo /etc/init.d/apache2 restart
Install other modules
sudo apt-get install python-xlrd # Excel sheet import
JSON of mobile bestimmung
JSON data are retrieved by the projects label in saved in the data base, e.g.
- project.label “Häufige Schmetterlinge in Deutschland” → http://artenquiz.de/export_data/H%C3%A4ufige%20Schmetterlinge%20in%20Deutschland