Difference between revisions of "Artenquiz documentation"

From Biowikifarm Metawiki
Jump to: navigation, search
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.3/intro/overview/ Django at a glance])
+
(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/
   ├ /apache {{comment gray | (redirect/URL settings) }}
+
   · {{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:
<source lang="bash">
+
<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!!!!
</source>
+
</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.3/topics/http/urls/ url.py] {{comment gray| (URL pattern definitions) }}
+
  [https://docs.djangoproject.com/en/1.6/topics/http/urls/ url.py] {{comment gray| (URL pattern definitions) }}
  [https://docs.djangoproject.com/en/1.3/topics/db/models/ models.py] {{comment gray| (data-model definitions) }}
+
  [https://docs.djangoproject.com/en/1.6/topics/db/models/ models.py] {{comment gray| (data-model definitions) }}
  [https://docs.djangoproject.com/en/1.3/topics/http/views/ views.py] {{comment gray| (view layer: form request definitions, form processing) }}
+
  [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.3/topics/templates/ mytemplate.html] {{comment gray| (a template to process, see also [http://artenquiz.biowikifarm.net/admin/doc/ admin/doc/]) }}
+
  [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
<source lang="bash">
+
<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
</source>
+
</syntaxhighlight>
  
 
== Change translations ==
 
== Change translations ==
 
(1)
 
(1)
<source lang="html4strict">
+
<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 -->
</source >
+
</syntaxhighlight>
  
 
(2)
 
(2)
<source lang="bash">
+
<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'
</source >
+
</syntaxhighlight>
  
 
(3)
 
(3)
Line 97: Line 97:
  
 
(4)
 
(4)
<source lang="bash">
+
<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
</source >
+
</syntaxhighlight>
  
 
(5) (eventually) restart the server
 
(5) (eventually) restart the server
<source lang="bash">
+
<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
</source>
+
</syntaxhighlight>
  
 
== Install other modules ==
 
== Install other modules ==
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
sudo apt-get install python-xlrd # Excel sheet import
 
sudo apt-get install python-xlrd # Excel sheet import
</source>
+
</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:

An admin interface for django users having a special admin account is available at:

Subversion directory is:

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 has msgfmt --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.