Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefanie Nobel <stefanie.nobel@googlemail.com>2011-08-25 16:51:35 (GMT)
committer Stefanie Nobel <stefanie.nobel@googlemail.com>2011-08-25 16:51:35 (GMT)
commitab40c11f28b414bfda349c0ada36fe1e8945c9e7 (patch)
tree993c5211b5b16f5de5ca9b5a9bc4cec4ecfb25d8
parentade7c7edac25ce8df70bf1d15a6c8ed093902c79 (diff)
my first commit of the first version of nutrinoweb includes the choice of ingredients and activities, consumption and the database-management
-rw-r--r--.DS_Storebin0 -> 6148 bytes
-rw-r--r--.com.apple.timemachine.supported (renamed from atoideweb/__init__.py)0
-rw-r--r--DATABASEbin0 -> 12288 bytes
-rw-r--r--DATABASE2bin0 -> 6144 bytes
-rw-r--r--DATABASE3bin0 -> 12288 bytes
-rw-r--r--MANIFEST34
-rw-r--r--activity/activity-nutrinoweb.svg (renamed from activity/activity-atoideweb.svg)0
-rwxr-xr-xactivity/activity.info8
-rw-r--r--atoideweb/controllers/__init__.py5
-rw-r--r--atoideweb/controllers/ajax.py31
-rw-r--r--atoideweb/controllers/gallery.py25
-rw-r--r--atoideweb/controllers/post.py25
-rw-r--r--config.ini11
-rw-r--r--docs/.DS_Storebin0 -> 6148 bytes
-rw-r--r--docs/source/.DS_Storebin0 -> 6148 bytes
-rw-r--r--lib/server/__init__.py2
-rw-r--r--lib/server/config.py2
-rw-r--r--lib/server/flask/__init__.py2
-rw-r--r--lib/server/flask/_app.py19
-rw-r--r--lib/server/tools/image.py110
-rw-r--r--lib/server/tools/registry.py48
-rw-r--r--lib/server/tools/sound.py111
-rw-r--r--lib/server/tools/storage.py135
-rw-r--r--nutrinoweb/.DS_Storebin0 -> 6148 bytes
-rw-r--r--nutrinoweb/__init__.py (renamed from lib/server/tools/__init__.py)0
-rw-r--r--nutrinoweb/activity.py (renamed from atoideweb/activity.py)8
-rw-r--r--nutrinoweb/controllers/.DS_Storebin0 -> 12292 bytes
-rw-r--r--nutrinoweb/controllers/Avatar.py100
-rw-r--r--nutrinoweb/controllers/__init__.py5
-rw-r--r--nutrinoweb/controllers/addentry.py49
-rw-r--r--nutrinoweb/controllers/aliments.txt1
-rw-r--r--nutrinoweb/controllers/database_manager.py162
-rwxr-xr-xnutrinoweb/controllers/dbinput.txt27
-rwxr-xr-xnutrinoweb/controllers/dbinputsparetime.txt4
-rw-r--r--nutrinoweb/controllers/eating.py213
-rw-r--r--nutrinoweb/controllers/index.py (renamed from atoideweb/controllers/index.py)2
-rw-r--r--nutrinoweb/controllers/main.py50
-rw-r--r--nutrinoweb/controllers/schema.sql29
-rw-r--r--nutrinoweb/controllers/schema2.sql30
-rw-r--r--nutrinoweb/controllers/sparetime.py146
-rw-r--r--nutrinoweb/controllers/status.txt1
-rw-r--r--nutrinoweb/controllers/statusanfang.txt1
-rw-r--r--nutrinoweb/ui/__init__.py (renamed from atoideweb/ui/__init__.py)0
-rw-r--r--nutrinoweb/ui/toolbar.py (renamed from atoideweb/ui/toolbar.py)0
-rw-r--r--po/.DS_Storebin0 -> 6148 bytes
-rw-r--r--run.py2
-rw-r--r--static/.DS_Storebin0 -> 6148 bytes
-rw-r--r--static/css/.DS_Storebin0 -> 6148 bytes
-rw-r--r--static/css/style.css48
-rw-r--r--static/images/.DS_Storebin0 -> 6148 bytes
-rw-r--r--static/images/journal/.DS_Storebin0 -> 6148 bytes
-rw-r--r--static/images/journal/activities/COOKING.pngbin0 -> 8500 bytes
-rw-r--r--static/images/journal/activities/READING.pngbin0 -> 6251 bytes
-rw-r--r--static/images/journal/activities/SOCCER.pngbin0 -> 7460 bytes
-rw-r--r--static/images/journal/activities/SWIMMING.pngbin0 -> 5365 bytes
-rw-r--r--static/images/journal/aliments/.DS_Storebin0 -> 15364 bytes
-rw-r--r--static/images/journal/aliments/ARTICHOKES.pngbin0 -> 7025 bytes
-rw-r--r--static/images/journal/aliments/BEEF.pngbin0 -> 4231 bytes
-rw-r--r--static/images/journal/aliments/BLUEBERRIES.pngbin0 -> 7741 bytes
-rw-r--r--static/images/journal/aliments/BREAD.pngbin0 -> 6298 bytes
-rw-r--r--static/images/journal/aliments/BUTTER WITH SALT.pngbin0 -> 3762 bytes
-rw-r--r--static/images/journal/aliments/CHEESE CHEDDAR.pngbin0 -> 3299 bytes
-rw-r--r--static/images/journal/aliments/CHERRIES.pngbin0 -> 6003 bytes
-rw-r--r--static/images/journal/aliments/CHICKEN.pngbin0 -> 5513 bytes
-rw-r--r--static/images/journal/aliments/COCONUT MEAT.pngbin0 -> 4634 bytes
-rw-r--r--static/images/journal/aliments/CREAM.pngbin0 -> 5634 bytes
-rw-r--r--static/images/journal/aliments/KELLOGG'S CORN FLAKES.pngbin0 -> 7260 bytes
-rw-r--r--static/images/journal/aliments/MELONS HONEY.pngbin0 -> 4031 bytes
-rw-r--r--static/images/journal/aliments/MILK.pngbin0 -> 5139 bytes
-rw-r--r--static/images/journal/aliments/OIL.pngbin0 -> 5810 bytes
-rw-r--r--static/images/journal/aliments/OMELET.pngbin0 -> 3408 bytes
-rw-r--r--static/images/journal/aliments/ORANGES.pngbin0 -> 7034 bytes
-rw-r--r--static/images/journal/aliments/PEACHES.pngbin0 -> 7690 bytes
-rw-r--r--static/images/journal/aliments/PINEAPPLE.pngbin0 -> 4895 bytes
-rw-r--r--static/images/journal/aliments/PORK.pngbin0 -> 4115 bytes
-rw-r--r--static/images/journal/aliments/POTATO PANCAKES.pngbin0 -> 5699 bytes
-rw-r--r--static/images/journal/aliments/SALAD DRSNG. FRENCH.pngbin0 -> 4327 bytes
-rw-r--r--static/images/journal/aliments/SAUSAGE PORK.pngbin0 -> 4361 bytes
-rw-r--r--static/images/journal/aliments/SOUP TURKEY NOODLES.pngbin0 -> 6090 bytes
-rw-r--r--static/images/journal/aliments/TURKEY.pngbin0 -> 4690 bytes
-rw-r--r--static/images/journal/aliments/WATER.pngbin0 -> 3343 bytes
-rw-r--r--static/images/journal/aliments/YOGURT.pngbin0 -> 5634 bytes
-rw-r--r--static/images/journal/aliments/apple.pngbin0 -> 4348 bytes
-rw-r--r--static/images/journal/aliments/panier.pngbin0 -> 1421 bytes
-rw-r--r--static/images/journal/backgroundeating.pngbin0 -> 23774 bytes
-rw-r--r--static/images/journal/backgroundfruits.pngbin0 -> 116368 bytes
-rw-r--r--static/images/journal/backgroundimg.pngbin0 -> 210986 bytes
-rw-r--r--static/images/journal/backgroundmeatcounter.pngbin0 -> 114454 bytes
-rw-r--r--static/images/journal/backgroundrack.pngbin0 -> 96243 bytes
-rw-r--r--static/images/journal/bubblefridge.pngbin0 -> 34179 bytes
-rw-r--r--static/images/journal/bubblefruits.pngbin0 -> 13850 bytes
-rw-r--r--static/images/journal/bubblemeatcounter.pngbin0 -> 13850 bytes
-rw-r--r--static/images/journal/bubblerack.pngbin0 -> 34179 bytes
-rw-r--r--static/images/journal/buttoncooking.pngbin0 -> 7559 bytes
-rw-r--r--static/images/journal/buttoncooking2.pngbin0 -> 6118 bytes
-rw-r--r--static/images/journal/buttonfridge.pngbin0 -> 7766 bytes
-rw-r--r--static/images/journal/buttonfruits.pngbin0 -> 7945 bytes
-rw-r--r--static/images/journal/buttonmeatcounter.pngbin0 -> 7588 bytes
-rw-r--r--static/images/journal/buttonrack.pngbin0 -> 6769 bytes
-rw-r--r--static/images/journal/image1.jpgbin19983 -> 0 bytes
-rw-r--r--static/images/journal/image2.jpgbin36394 -> 0 bytes
-rw-r--r--static/images/journal/image3.jpgbin32668 -> 0 bytes
-rw-r--r--static/images/journal/image4.jpgbin18746 -> 0 bytes
-rw-r--r--static/images/journal/image5.jpgbin27636 -> 0 bytes
-rw-r--r--static/images/journal/jauge-construction.pngbin0 -> 7762 bytes
-rw-r--r--static/images/journal/jauge-water.pngbin0 -> 7869 bytes
-rw-r--r--static/images/journal/shoppinglist.pngbin0 -> 48158 bytes
-rw-r--r--static/images/journal/sun.pngbin0 -> 7463 bytes
-rw-r--r--static/images/journal/wrap2.pngbin0 -> 4249 bytes
-rw-r--r--static/images/journal/wrap3.pngbin0 -> 7533 bytes
-rw-r--r--static/images/journal/wrap4.pngbin0 -> 4687 bytes
-rw-r--r--templates/.DS_Storebin0 -> 6148 bytes
-rw-r--r--templates/atoideweb/ajax.html41
-rw-r--r--templates/atoideweb/gallery.html28
-rw-r--r--templates/atoideweb/post.html24
-rw-r--r--templates/eating.html37
-rw-r--r--templates/layout.html22
-rw-r--r--templates/nutrinoweb/.DS_Storebin0 -> 6148 bytes
-rw-r--r--templates/nutrinoweb/addentry.html128
-rw-r--r--templates/nutrinoweb/eating.html63
-rw-r--r--templates/nutrinoweb/fruits.html10
-rw-r--r--templates/nutrinoweb/main.html51
-rw-r--r--templates/nutrinoweb/sparetime.html17
123 files changed, 1215 insertions, 652 deletions
diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..6068657
--- /dev/null
+++ b/.DS_Store
Binary files differ
diff --git a/atoideweb/__init__.py b/.com.apple.timemachine.supported
index e69de29..e69de29 100644
--- a/atoideweb/__init__.py
+++ b/.com.apple.timemachine.supported
diff --git a/DATABASE b/DATABASE
new file mode 100644
index 0000000..442c665
--- /dev/null
+++ b/DATABASE
Binary files differ
diff --git a/DATABASE2 b/DATABASE2
new file mode 100644
index 0000000..620ce22
--- /dev/null
+++ b/DATABASE2
Binary files differ
diff --git a/DATABASE3 b/DATABASE3
new file mode 100644
index 0000000..c6c2098
--- /dev/null
+++ b/DATABASE3
Binary files differ
diff --git a/MANIFEST b/MANIFEST
index 8542e31..4fc7725 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3,20 +3,20 @@ prune ./po
recursive-exclude *.swp
recursive-exclude *.pyc
activity
-activity/activity-atoideweb.svg
+activity/activity-nutrinoweb.svg
activity/activity.info
-atoideweb
-atoideweb/activity.py
-atoideweb/controllers
-atoideweb/controllers/ajax.py
-atoideweb/controllers/gallery.py
-atoideweb/controllers/index.py
-atoideweb/controllers/__init__.py
-atoideweb/controllers/post.py
-atoideweb/__init__.py
-atoideweb/ui
-atoideweb/ui/__init__.py
-atoideweb/ui/toolbar.py
+nutrinoweb
+nutrinoweb/activity.py
+nutrinoweb/controllers
+nutrinoweb/controllers/ajax.py
+nutrinoweb/controllers/gallery.py
+nutrinoweb/controllers/index.py
+nutrinoweb/controllers/__init__.py
+nutrinoweb/controllers/post.py
+nutrinoweb/__init__.py
+nutrino/ui
+nutrino/ui/__init__.py
+nutrino/ui/toolbar.py
config.ini
lib
lib/flask
@@ -168,10 +168,10 @@ static/js
static/js/jquery-1.6.2.min.js
static/js/jquery.lightbox-0.5.min.js
templates
-templates/atoideweb
-templates/atoideweb/ajax.html
-templates/atoideweb/gallery.html
-templates/atoideweb/post.html
+templates/nutrinoweb
+templates/nutrinoweb/ajax.html
+templates/nutrinoweb/gallery.html
+templates/nutrinoweb/post.html
templates/_helpers.html
templates/index.html
templates/layout.html
diff --git a/activity/activity-atoideweb.svg b/activity/activity-nutrinoweb.svg
index 7ae847b..7ae847b 100644
--- a/activity/activity-atoideweb.svg
+++ b/activity/activity-nutrinoweb.svg
diff --git a/activity/activity.info b/activity/activity.info
index 726ff01..f61c90a 100755
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -1,7 +1,7 @@
[Activity]
-name = AToiDeWeb
+name = NutrinoWeb
activity_version = 1
-service_name = org.laptop.AToiDeWebActivity
-icon = activity-atoideweb
-class = atoideweb.activity.AToiDeWebActivity
+service_name = org.laptop.NutrinoWebActivity
+icon = activity-nutrinoweb
+class = atoideweb.activity.NutrinoWebActivity
license = gplv3
diff --git a/atoideweb/controllers/__init__.py b/atoideweb/controllers/__init__.py
deleted file mode 100644
index 1f0ec68..0000000
--- a/atoideweb/controllers/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# atoideweb import
-from atoideweb.controllers.index import app, render
-
-# additional controllers
-from atoideweb.controllers import post, ajax, gallery
diff --git a/atoideweb/controllers/ajax.py b/atoideweb/controllers/ajax.py
deleted file mode 100644
index 2fb0120..0000000
--- a/atoideweb/controllers/ajax.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# gettext import
-from gettext import gettext as _
-
-# server import
-from server.flask import app, logger, render, request, jsonify
-
-
-@app.route('/ajax', methods=['GET', 'POST'])
-def ajax():
- # POST
- if request.method == 'POST':
- if 'ajax-sample' in request.form:
- # prepare ajax result
- _ajax_content = {
- 'result': request.form['ajax-sample']
- }
- # render ajax
- return jsonify(_ajax_content)
- # ?? should not happen
- else:
- _result = '??'
- # GET
- else:
- _result = ''
- # prepare result
- _content = {
- 'title': _('atdw - Ajax sample'),
- 'result': _result
- }
- # render result
- return render('atoideweb/ajax.html', **_content)
diff --git a/atoideweb/controllers/gallery.py b/atoideweb/controllers/gallery.py
deleted file mode 100644
index c3173d5..0000000
--- a/atoideweb/controllers/gallery.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# python import
-import os
-
-# gettext import
-from gettext import gettext as _
-
-# server import
-from server.flask import app, logger, render, request, jsonify
-
-# server tools import
-from server.tools import storage
-
-JNL_PATH = os.path.join('images', 'journal')
-
-@app.route('/gallery')
-def gallery():
- # list images
- _images = storage.list_dir(path=JNL_PATH)
- # prepare result
- _content = {
- 'title' : _('atdw - Gallery'),
- 'images': enumerate(_images)
- }
- # render result
- return render('atoideweb/gallery.html', **_content)
diff --git a/atoideweb/controllers/post.py b/atoideweb/controllers/post.py
deleted file mode 100644
index 15c189c..0000000
--- a/atoideweb/controllers/post.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# gettext import
-from gettext import gettext as _
-
-# server import
-from server.flask import app, logger, render, request, jsonify
-
-
-@app.route('/post', methods=['GET', 'POST'])
-def post():
- # POST
- if request.method == 'POST':
- if 'post-sample' in request.form:
- _result = request.form['post-sample']
- else:
- _result = '??'
- # GET
- else:
- _result = ''
- #
- _content = {
- 'title': _('atdw - POST sample'),
- 'result': _result
- }
- # render result
- return render('atoideweb/post.html', **_content)
diff --git a/config.ini b/config.ini
deleted file mode 100644
index 43ba408..0000000
--- a/config.ini
+++ /dev/null
@@ -1,11 +0,0 @@
-[activity]
-# ...
-name = atoideweb
-# ...
-debug = False
-# ...
-use-toolbar = True
-
-[server]
-# ...
-port = 8008
diff --git a/docs/.DS_Store b/docs/.DS_Store
new file mode 100644
index 0000000..226dc11
--- /dev/null
+++ b/docs/.DS_Store
Binary files differ
diff --git a/docs/source/.DS_Store b/docs/source/.DS_Store
new file mode 100644
index 0000000..e1a71de
--- /dev/null
+++ b/docs/source/.DS_Store
Binary files differ
diff --git a/lib/server/__init__.py b/lib/server/__init__.py
index 06b0b1d..a779594 100644
--- a/lib/server/__init__.py
+++ b/lib/server/__init__.py
@@ -1,4 +1,2 @@
# server import
from server._server import Server
-# ..
-from server.flask import BUNDLE, ROOT
diff --git a/lib/server/config.py b/lib/server/config.py
index 9180e54..659ec18 100644
--- a/lib/server/config.py
+++ b/lib/server/config.py
@@ -4,7 +4,7 @@ import logging
from ConfigParser import SafeConfigParser
# get application logger
-logger = logging.getLogger('atoideweb')
+logger = logging.getLogger('nutriweb')
class Config(object):
diff --git a/lib/server/flask/__init__.py b/lib/server/flask/__init__.py
index f079068..7d75791 100644
--- a/lib/server/flask/__init__.py
+++ b/lib/server/flask/__init__.py
@@ -2,4 +2,4 @@
from flask import request, jsonify
# server import
-from server.flask._app import logger, app, render, run_app, BUNDLE, ROOT
+from server.flask._app import logger, app, render, run_app
diff --git a/lib/server/flask/_app.py b/lib/server/flask/_app.py
index 025e745..cb2d4c3 100644
--- a/lib/server/flask/_app.py
+++ b/lib/server/flask/_app.py
@@ -14,31 +14,24 @@ APP_NAME = 'my_activity' if APP_NAME is None else APP_NAME
# get app config values
_debug = config.Config().get('server>debug')
_key = config.Config().get('server>secret_key')
-_port = config.Config().get('server>port', type_=int)
+
+# our activity root directory relative to the current one
+PROJET_ROOT = os.path.join(os.path.dirname(__file__), '..', '..', '..')
# flask import
import flask
-# sugar or debug root path factory
-try:
- from sugar.activity import activity
- BUNDLE = activity.get_bundle_path()
- ROOT = activity.get_bundle_path()
-except Exception, e:
- BUNDLE = '.'
- ROOT = '.'
-
# init app
app = flask.Flask(__name__)
app.debug = True if _debug is None else _debug
app.secret_key = 'NO_KEY_OOPS' if _key is None else _key
# override jinja template path
-app.jinja_loader.searchpath = [os.path.join(BUNDLE, 'templates')]
+app.jinja_loader.searchpath = [os.path.join(PROJET_ROOT, 'templates')]
# init static folder path
from werkzeug import SharedDataMiddleware
app.wsgi_app = SharedDataMiddleware(app.wsgi_app,
- {'/static': os.path.join(BUNDLE, 'static')})
+ {'/static': os.path.join(PROJET_ROOT, 'static')})
# set basic logging out of sugar
try:
@@ -54,7 +47,7 @@ except Exception:
def run_app():
"""run method to trigger at from python class.
"""
- app.run(port=_port)
+ app.run()
def render(template, **context):
diff --git a/lib/server/tools/image.py b/lib/server/tools/image.py
deleted file mode 100644
index cffc156..0000000
--- a/lib/server/tools/image.py
+++ /dev/null
@@ -1,110 +0,0 @@
-
-# python import
-import logging, os, struct, StringIO
-
-# atoideweb import
-from atoideweb.tools import registry
-
-
-def compute_width_height(width, height, max_width, max_height, use_max=False):
- # compute ratio
- _ratio_scr = max_width / float(max_height)
- _ratio_img = width / float(height)
- # ..
- if width > max_width\
- or height > max_height:
- if _ratio_img > _ratio_scr:
- width = max_width
- height = int(max_width / _ratio_img)
- elif _ratio_img < _ratio_scr:
- width = int(max_height * _ratio_img)
- height = max_height
- else:
- width = max_width
- height = max_height
- # ..
- return width, height
- # ..
- elif use_max is True:
- return max_width, max_height
- # ..
- else:
- return width, height
-
-
-def get_image_info(path):
- """Tricky method found on Internet that returns the image info from a given
- raw image data.
- """
- # little check
- _info = registry.InfoRegistry().get_info(path)
- # already exist
- if _info is not None:
- return _info
- elif os.path.exists(path):
- pass
- else:
- return None, 0, 0
- # read file
- _f = open(path)
- _data = _f.read()
- _f.close()
- #
- size = len(_data)
- height = 0
- width = 0
- content_type = None
-
- # handle GIFs
- if (size >= 10) and _data[:6] in ('GIF87a', 'GIF89a'):
- # Check to see if content_type is correct
- content_type = 'image/gif'
- w, h = struct.unpack("<HH", _data[6:10])
- width = int(w)
- height = int(h)
-
- # See PNG 2. Edition spec (http://www.w3.org/TR/PNG/)
- # Bytes 0-7 are below, 4-byte chunk length, then 'IHDR'
- # and finally the 4-byte width, height
- elif ((size >= 24) and _data.startswith('\211PNG\r\n\032\n')
- and (_data[12:16] == 'IHDR')):
- content_type = 'image/png'
- w, h = struct.unpack(">LL", _data[16:24])
- width = int(w)
- height = int(h)
-
- # Maybe this is for an older PNG version.
- elif (size >= 16) and _data.startswith('\211PNG\r\n\032\n'):
- # Check to see if we have the right content type
- content_type = 'image/png'
- w, h = struct.unpack(">LL", _data[8:16])
- width = int(w)
- height = int(h)
-
- # handle JPEGs
- elif (size >= 2) and _data.startswith('\377\330'):
- content_type = 'image/jpeg'
- jpeg = StringIO.StringIO(_data)
- jpeg.read(2)
- b = jpeg.read(1)
- try:
- while (b and ord(b) != 0xDA):
- while (ord(b) != 0xFF): b = jpeg.read(1)
- while (ord(b) == 0xFF): b = jpeg.read(1)
- if (ord(b) >= 0xC0 and ord(b) <= 0xC3):
- jpeg.read(3)
- h, w = struct.unpack(">HH", jpeg.read(4))
- break
- else:
- jpeg.read(int(struct.unpack(">H", jpeg.read(2))[0])-2)
- b = jpeg.read(1)
- width = int(w)
- height = int(h)
- except struct.error:
- pass
- except ValueError:
- pass
- # udpate registry
- registry.InfoRegistry().set_info(path, (content_type, width, height))
- # ..
- return content_type, width, height
diff --git a/lib/server/tools/registry.py b/lib/server/tools/registry.py
deleted file mode 100644
index 7e575c3..0000000
--- a/lib/server/tools/registry.py
+++ /dev/null
@@ -1,48 +0,0 @@
-
-# python import
-import logging
-
-
-class Registry(object):
-
- class __Singleton:
- """Our singleton object.
- """
-
- def __init__(self):
- """Create the new singleton for a simple use.
- """
- # ensure config
- self.__dict = dict()
-
- def get_info(self, path):
- # ..
- if path in self.__dict:
- return self.__dict[path]
- else:
- return None
-
- def set_info(self, path, info):
- # clear previous
- if path in self.__dict:
- del self.__dict[path]
- else:
- pass
- # ...
- self.__dict[path] = info
-
- # singleton instance
- instance = None
-
- def __new__(c, force=False):
- """Singleton new init.
- """
- # if doesn't already initialized
- if not Registry.instance \
- or force is True:
- # create a new instance
- Registry.instance = Registry.__Singleton()
- else:
- pass
- # return the manager object
- return Registry.instance
diff --git a/lib/server/tools/sound.py b/lib/server/tools/sound.py
deleted file mode 100644
index 7ac6a57..0000000
--- a/lib/server/tools/sound.py
+++ /dev/null
@@ -1,111 +0,0 @@
-
-# python import
-import gst
-# ..
-from datetime import timedelta
-
-
-class Player(object):
-
- def __init__(self, loop=False):
- # playing flag
- self.playing = False
- self.loop = loop
- # player object
- self.player = None
- self._init_player()
- # file to play
- self._soundfile = None
-
- def _reload_cb(self, bus, message):
- if self.loop is True:
- self.player.set_state(gst.STATE_READY)
- self.player.set_state(gst.STATE_PLAYING)
- else:
- pass
-
- def _error_cb(self, bus, message):
- self.player.set_state(gst.STATE_NULL)
-
- def _init_player(self):
- # make player
- self.player = gst.element_factory_make("playbin", "player")
- # video fake
- _fakesink = gst.element_factory_make('fakesink', "my-fakesink")
- self.player.set_property("video-sink", _fakesink)
- # bus ..
- bus = self.player.get_bus()
- bus.add_signal_watch()
- bus.connect('message::eos', self._reload_cb)
- bus.connect('message::error', self._error_cb)
-
- def serialize(self):
- # little check
- if self._soundfile is None:
- return None
- else:
- return file(self._soundfile, 'r').read()
-
- def load(self, soundfile):
- # file to play
- self._soundfile = soundfile
- # little check
- if self._soundfile is None:
- pass
- else:
- # load sound file
- self.player.set_state(gst.STATE_NULL)
- self.player.set_property('uri', 'file://' + self._soundfile)
-
- def get_position(self):
- # little check
- if self._soundfile is None:
- return None
- else:
- # ...
- _position = self.player.query_duration(gst.FORMAT_TIME)[0]
- # ...
- return timedelta(seconds=(_position / gst.SECOND))
-
- def get_duration(self):
- # little check
- if self._soundfile is None:
- return None
- else:
- # _duration = self.player.query_duration(gst.FORMAT_TIME)[0]
- # ..
- _parser = gst.parse_launch("filesrc name=source ! decodebin2 ! fakesink")
- # ..
- _source = _parser.get_by_name("source")
- _source.set_property("location", self._soundfile)
- # ..
- _parser.set_state(gst.STATE_PLAYING)
- _parser.get_state()
- # ..
- _format = gst.Format(gst.FORMAT_TIME)
- _duration = _parser.query_duration(_format)[0]
- _parser.set_state(gst.STATE_NULL)
- # ..
- return timedelta(seconds=(_duration / gst.SECOND))
-
- def seek(self, time):
- # little check
- if self._soundfile is None:
- return
- else:
- # format time
- _seek = time * 1000000000
- # do seek
- self.player.seek_simple(gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH, _seek)
-
- def play(self):
- self.playing = True
- self.player.set_state(gst.STATE_PLAYING)
-
- def pause(self):
- self.playing = False
- self.player.set_state(gst.STATE_PAUSED)
-
- def stop(self):
- self.playing = False
- self.player.set_state(gst.STATE_NULL)
diff --git a/lib/server/tools/storage.py b/lib/server/tools/storage.py
deleted file mode 100644
index 535eb66..0000000
--- a/lib/server/tools/storage.py
+++ /dev/null
@@ -1,135 +0,0 @@
-
-# python import
-import os
-
-# server import
-from server import BUNDLE, ROOT
-
-
-ACTIVITY_NAMES = {
- 'paint': 'org.laptop.Oficina',
- 'record': 'org.laptop.RecordActivity',
- }
-
-
-def get_path(path=None, bundle=True):
- # ..
- path = 'static' if path is None else os.path.join('static', path)
- # ..
- if bundle is True:
- return os.path.join(BUNDLE, path)
- else:
- return os.path.join(ROOT, 'data', path)
-
-
-def list_dir(path=None, bundle=True):
- # ..
- path = get_path(path=path, bundle=bundle)
- # ..
- return [os.path.join(path, _f) for _f in os.listdir(path)]
-
-
-def get_sound_path(filename, path=None, bundle=True, ext=None):
- # ..
- path = get_path(path=path, bundle=bundle)
- filename = filename if ext is None else '%s.%s' % (filename, ext)
- # ..
- return os.path.join(path, filename)
-
-
-def get_sound_path(filename, path=None, bundle=True, ext='ogg'):
- # ..
- return get_sound_path(filename, path=path, bundle=bundle, ext=ext)
-
-
-def get_image_path(filename, path=None, bundle=True, ext='png'):
- # ..
- return get_sound_path(filename, path=path, bundle=bundle, ext=ext)
-
-
-def __do_query(query):
- from sugar.datastore import datastore
- # find in ds
- _results, _count = datastore.find(query, sorting='timestamp')
- for _r in _results:
- # get meta
- _m = _r.get_metadata()
- if 'activity' in query:
- yield _r
- elif _m['activity'] == '':
- yield _r
- else:
- continue
-
-
-def get_journal_objects(activity_name=None, mime_type=None):
- # init
- _query = dict()
- # prepare query name
- if activity_name is None\
- and mime_type is None:
- return []
- elif mime_type is None:
- return __do_query({'activity': ACTIVITY_NAMES[activity_name]})
- else:
- return __do_query({'mime_type': mime_type})
-
-
-def list_info_from_journal(activity_name=None, mime_type=None):
- # get objects first
- _objs = get_journal_objects(activity_name=activity_name, mime_type=mime_type)
- # make unique titles
- _titles = {}
- # return infos
- for _o in _objs:
- # get meta
- _m = _o.get_metadata()
- # get title
- _t = _m['title']
- # ensure description
- _d = _m['description'] if 'description' in _m else ''
- _p = _m['preview'] if 'preview' in _m else None
- # little check
- if _t in _titles:
- # udpate reg
- _titles[_t] += 1
- # update value to show
- _t = '%s (%s)' % (_t, _titles[_t])
- # init title reg
- else:
- _titles[_t] = 1
- # ensure info
- yield {
- 'activity_id' : _m['activity_id'],
- 'description' : _d,
- 'timestamp' : _m['timestamp'],
- 'preview' : _p,
- 'title' : _t,
- }
-
-
-def list_files_from_journal(activity_name=None, mime_type=None):
- # get objects first
- _objs = get_journal_objects(activity_name=activity_name,
- mime_type=mime_type)
- # return paths
- for _o in _objs:
- # TODO open the files
- yield _o.get_file_path()
-
-
-def get_path_from_journal(timestamp, mime_type):
- from sugar.datastore import datastore
- # ..
- _query = {
- 'timestamp': int(timestamp),
- 'mime_type': mime_type
- }
- # find in ds
- _results, _count = datastore.find(_query)
- # ..
- if _count == 1:
- # get path
- return _results[0].get_file_path()
- else:
- return None
diff --git a/nutrinoweb/.DS_Store b/nutrinoweb/.DS_Store
new file mode 100644
index 0000000..8a60703
--- /dev/null
+++ b/nutrinoweb/.DS_Store
Binary files differ
diff --git a/lib/server/tools/__init__.py b/nutrinoweb/__init__.py
index e69de29..e69de29 100644
--- a/lib/server/tools/__init__.py
+++ b/nutrinoweb/__init__.py
diff --git a/atoideweb/activity.py b/nutrinoweb/activity.py
index 5331be8..7762250 100644
--- a/atoideweb/activity.py
+++ b/nutrinoweb/activity.py
@@ -32,7 +32,7 @@ def _toolbar_changed(toolbox, page, activity_):
return True
-class AToiDeWebActivity(run.Server, activity.Activity):
+class NutrinoWebActivity(run.Server, activity.Activity):
def __init__(self, handle):
# init parents
@@ -50,7 +50,7 @@ class AToiDeWebActivity(run.Server, activity.Activity):
self.set_canvas(self.web_view)
self.web_view.show()
# ...
- self.change_screen('atoideweb')
+ self.change_screen('nutrinoweb')
def get_toolbox(self):
return self._toolbox
@@ -61,8 +61,8 @@ class AToiDeWebActivity(run.Server, activity.Activity):
def __init_toolbar(self):
"""Keep an example of how to manage toolbar in our webapp ...
"""
- # atoideweb ui imort
- from atoideweb.ui import toolbar
+ # nutrinoweb ui import
+ from nutrinoweb.ui import toolbar
# get toolbox
self._toolbox = activity.ActivityToolbox(self)
# add tool bars
diff --git a/nutrinoweb/controllers/.DS_Store b/nutrinoweb/controllers/.DS_Store
new file mode 100644
index 0000000..f7dace6
--- /dev/null
+++ b/nutrinoweb/controllers/.DS_Store
Binary files differ
diff --git a/nutrinoweb/controllers/Avatar.py b/nutrinoweb/controllers/Avatar.py
new file mode 100644
index 0000000..6dbfebe
--- /dev/null
+++ b/nutrinoweb/controllers/Avatar.py
@@ -0,0 +1,100 @@
+class Character:
+
+ def __init__(self):
+
+ self.water = 0.0
+ self.energie = 0.0
+ self.calcium = 0.0
+ self.iron = 0.0
+ self.magnesium = 0.0
+ self.phosphorus = 0.0
+ self.potassium = 0.0
+ self.sodium = 0.0
+ self.zinc = 0.0
+ self.copper = 0.0
+ self.vit_c = 0.0
+ self.thiamin = 0.0
+ self.riboflavin = 0.0
+ self.niacin = 0.0
+ self.panto_acid = 0.0
+ self.vit_b6 = 0.0
+ self.folate_tot = 0.0
+ self.vit_b12 = 0.0
+ self.vit_a = 0.0
+ self.vit_e = 0.0
+ self.vit_d = 0.0
+ self.vit_total = 0.0
+ self.construction = 0.0
+
+
+ def reset(self, gender=None):
+ """
+ Restore some character properties to its default values.
+ """
+ pass
+
+ def load_status(self):
+ fobj = open('/Users/stefanienobel/Documents/workspace/nutrinoweb/nutrinoweb/controllers/status.txt')
+
+ for line in fobj:
+ zuordnung = line.split("|")
+ self.water = zuordnung[1]
+ self.energie = zuordnung[2]
+ self.calcium = zuordnung[3]
+ self.iron =zuordnung[4]
+ self.magnesium = zuordnung[5]
+ self.phosphorus = zuordnung[6]
+ self.potassium = zuordnung[7]
+ self.sodium = zuordnung[8]
+ self.zinc = zuordnung[9]
+ self.copper = zuordnung[10]
+ self.vit_c = zuordnung[11]
+ self.thiamin = zuordnung[12]
+ self.riboflavin = zuordnung[13]
+ self.niacin =zuordnung[14]
+ self.panto_acid = zuordnung[15]
+ self.vit_b6 = zuordnung[16]
+ self.folate_tot = zuordnung[17]
+ self.vit_b12 = zuordnung[18]
+ self.vit_a = zuordnung[19]
+ self.vit_e = zuordnung[20]
+ self.vit_d = zuordnung[21]
+ self.vit_total = zuordnung[22]
+ self.construction = zuordnung[23]
+
+ fobj.close()
+
+ status = {
+ "water": self.water,
+ "energie": self.energie,
+ "calcium": self.calcium,
+ "iron" : self.iron,
+ "magnesium": self.magnesium,
+ "phosphorus": self.phosphorus,
+ "potassium": self.potassium,
+ "sodium": self.sodium,
+ "zinc": self.zinc,
+ "copper": self.copper,
+ "vit_c": self.vit_c,
+ "thiamin": self.thiamin,
+ "riboflavin": self.riboflavin,
+ "niacin": self.niacin,
+ "panto_acid": self.panto_acid,
+ "vit_b6": self.vit_b6,
+ "folate_tot": self.folate_tot,
+ "vit_b12": self.vit_b12,
+ "vit_a": self.vit_a,
+ "vit_e": self.vit_e,
+ "vit_d": self.vit_d,
+ "vit_total": self.vit_total,
+ "construction": self.construction
+ }
+ return status
+
+
+ def save_status(self, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, vit_total, construction):
+ fobj = open('/Users/stefanienobel/Documents/workspace/nutrinoweb/nutrinoweb/controllers/status.txt', 'w')
+ fobj.truncate()
+ fobj.write('|' + water + '|' + energie + '|' + calcium + '|' + iron + '|' + magnesium + '|' + phosphorus + '|' + potassium + '|' + sodium + '|' + zinc + '|' + copper + '|' + vit_c + '|' + thiamin + '|' + riboflavin + '|' + niacin + '|' + panto_acid + '|' + vit_b6 + '|' + folate_tot + '|' + vit_b12 + '|' + vit_a + '|' + vit_e + '|' + vit_d + '|' + vit_total + '|' + construction)
+ fobj.close()
+
diff --git a/nutrinoweb/controllers/__init__.py b/nutrinoweb/controllers/__init__.py
new file mode 100644
index 0000000..764fcd3
--- /dev/null
+++ b/nutrinoweb/controllers/__init__.py
@@ -0,0 +1,5 @@
+# nutrinoweb import
+from nutrinoweb.controllers.index import app, render
+
+# additional controllers
+from nutrinoweb.controllers import eating, sparetime, addentry, main
diff --git a/nutrinoweb/controllers/addentry.py b/nutrinoweb/controllers/addentry.py
new file mode 100644
index 0000000..7060ba6
--- /dev/null
+++ b/nutrinoweb/controllers/addentry.py
@@ -0,0 +1,49 @@
+# python import
+import os
+
+# gettext import
+from gettext import gettext as _
+
+# server import
+from server.flask import app, logger, render, request, jsonify
+
+
+
+#database import
+import database_manager
+
+@app.route('/addentry', methods=['GET', 'POST'])
+def addentry():
+ # POST
+ _entry = None
+ error = None
+ database = 'nutrition'
+ if request.method == 'POST':
+ if 'insert' in request.form:
+ database_manager.add_entry(request.form['database'])
+ elif 'delete' in request.form:
+ database_manager.delete_entry(request.form['database'])
+ elif 'show' in request.form:
+ _entry = database_manager.show_entry(request.form['database'])
+ elif 'modify' in request.form:
+ database_manager.delete_entry(request.form['database'])
+ database_manager.add_entry(request.form['database'])
+ if request.form['database'] == 'nutrition':
+ _result = database_manager.entries()
+ elif request.form['database'] == 'activity':
+ _result = database_manager.entriessparetime()
+ database = request.form['database']
+ # GET
+ else:
+ _result = database_manager.entries()
+
+ # prepare result
+ _content = {
+ 'title' : _('Add a entry to the database'),
+ 'entries': _result,
+ 'entry': _entry,
+ 'error': error,
+ 'database': database
+ }
+ # render result
+ return render('nutrinoweb/addentry.html', **_content)
diff --git a/nutrinoweb/controllers/aliments.txt b/nutrinoweb/controllers/aliments.txt
new file mode 100644
index 0000000..b43ba12
--- /dev/null
+++ b/nutrinoweb/controllers/aliments.txt
@@ -0,0 +1 @@
+|50,water \ No newline at end of file
diff --git a/nutrinoweb/controllers/database_manager.py b/nutrinoweb/controllers/database_manager.py
new file mode 100644
index 0000000..f67ea23
--- /dev/null
+++ b/nutrinoweb/controllers/database_manager.py
@@ -0,0 +1,162 @@
+from __future__ import with_statement
+from sqlite3 import dbapi2 as sqlite3
+from contextlib import closing
+from flask import Flask, request, session, g, redirect, url_for, abort, \
+ render_template, flash
+import re
+
+# configuration
+DATABASE = '/tmp/nutrition.db'
+DATABASE2 = '/tmp/sparetime.db'
+DATABASE3 = '/tmp/aliments.db'
+DEBUG = True
+SECRET_KEY = '12345'
+
+app = Flask(__name__)
+app.config.from_envvar('NUTRINOWEB_SETTINGS', silent=True)
+
+def connect_db(database):
+ """Returns a new connection to the database."""
+ try:
+ if database == 'nutrition':
+ return sqlite3.connect('DATABASE')
+ elif database == 'activity':
+ return sqlite3.connect('DATABASE2')
+ except:
+ return redirect(url_for('addentry'))
+
+def connect_db3():
+ """Returns a new connection to the database."""
+ return sqlite3.connect('DATABASE3')
+
+def init_db3():
+ """Creates the database tables."""
+ with closing(connect_db3()) as db:
+ with app.open_resource('schema2.sql') as f:
+ db.cursor().executescript(f.read())
+ db.commit()
+
+def init_db():
+ """Creates the database tables."""
+ with closing(connect_db()) as db:
+ with app.open_resource('schema.sql') as f:
+ db.cursor().executescript(f.read())
+ db.commit()
+
+
+def load_inputfilenutrition():
+ g.db = connect_db('activity')
+
+ fobj = open('/Users/stefanienobel/Documents/workspace/nutrinoweb/nutrinoweb/controllers/dbinput.txt')
+
+ for line in fobj:
+ zuordnung = line.split("|")
+ g.db.execute('insert into entries (title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [zuordnung[0], zuordnung[1], zuordnung[2], zuordnung[3], zuordnung[4], zuordnung[5], zuordnung[6], zuordnung[7], zuordnung[8], zuordnung[9], zuordnung[10], zuordnung[11], zuordnung[12], zuordnung[13], zuordnung[14], zuordnung[15], zuordnung[16], zuordnung[17], zuordnung[18], zuordnung[19], zuordnung[20], zuordnung[21], zuordnung[22]])
+ g.db.commit()
+ fobj.close()
+
+def load_inputfile():
+ g.db = connect_db('nutrition')
+
+ fobj = open('/Users/stefanienobel/Documents/workspace/nutrinoweb/nutrinoweb/controllers/dbinputsparetime.txt')
+
+ for line in fobj:
+ zuordnung = line.split("|")
+ g.db.execute('insert into entries (title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein, path, sceanrio) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [zuordnung[0], zuordnung[1], zuordnung[2], zuordnung[3], zuordnung[4], zuordnung[5], zuordnung[6], zuordnung[7], zuordnung[8], zuordnung[9], zuordnung[10], zuordnung[11], zuordnung[12], zuordnung[13], zuordnung[14], zuordnung[15], zuordnung[16], zuordnung[17], zuordnung[18], zuordnung[19], zuordnung[20], zuordnung[21], zuordnung[22], 0, 0])
+ g.db.commit()
+ fobj.close()
+
+def entries():
+ """Make sure we are connected to the database."""
+ g.db = connect_db('nutrition')
+
+ cur = g.db.execute('select title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein, scenario from entries order by id desc')
+ entries = [dict(title=row[0], water=row[1], energie=row[2], calcium=row[3], iron=row[4], magnesium=row[5], phosphorus=row[6], potassium=row[7], sodium=row[8], zinc=row[9], copper=row[10], vit_c=row[11], thiamin=row[12], riboflavin=row[13], niacin=row[14], panto_acid=row[15], vit_b6=row[16], folate_tot=row[17], vit_b12=row[18], vit_a=row[19], vit_e=row[20], vit_d=row[21], protein=row[22], scenario=row[23] ) for row in cur.fetchall()]
+ return entries
+
+def entriessparetime():
+ """Make sure we are connected to the database."""
+ g.db = connect_db('activity')
+
+ cur = g.db.execute('select title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein from entries order by id desc')
+ entries = [dict(title=row[0], water=row[1], energie=row[2], calcium=row[3], iron=row[4], magnesium=row[5], phosphorus=row[6], potassium=row[7], sodium=row[8], zinc=row[9], copper=row[10], vit_c=row[11], thiamin=row[12], riboflavin=row[13], niacin=row[14], panto_acid=row[15], vit_b6=row[16], folate_tot=row[17], vit_b12=row[18], vit_a=row[19], vit_e=row[20], vit_d=row[21], protein=row[22]) for row in cur.fetchall()]
+ return entries
+
+
+def add_entry(database):
+ g.db = connect_db(database)
+
+ if database == 'nutrition':
+ g.db.execute('insert into entries (title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein, scenario) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+ [request.form['title'].upper(), request.form['water'], request.form['energie'], request.form['calcium'], request.form['iron'], request.form['magnesium'], request.form['phosphorus'], request.form['potassium'], request.form['sodium'], request.form['zinc'], request.form['copper'], request.form['vit_c'], request.form['thiamin'], request.form['riboflavin'], request.form['niacin'], request.form['panto_acid'], request.form['vit_b6'], request.form['folate_tot'], request.form['vit_b12'], request.form['vit_a'], request.form['vit_e'], request.form['vit_d'], request.form['protein'], request.form['scenario']])
+ g.db.commit()
+ elif database == 'activity':
+ g.db.execute('insert into entries (title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+ [request.form['title'].upper(), request.form['water'], request.form['energie'], request.form['calcium'], request.form['iron'], request.form['magnesium'], request.form['phosphorus'], request.form['potassium'], request.form['sodium'], request.form['zinc'], request.form['copper'], request.form['vit_c'], request.form['thiamin'], request.form['riboflavin'], request.form['niacin'], request.form['panto_acid'], request.form['vit_b6'], request.form['folate_tot'], request.form['vit_b12'], request.form['vit_a'], request.form['vit_e'], request.form['vit_d'], request.form['protein']])
+ g.db.commit()
+
+ flash('New entry was successfully posted')
+ return redirect(url_for('addentry'))
+
+def delete_entry(database):
+ g.db = connect_db(database)
+
+ g.db.execute('delete from entries where title=?', [request.form['title'].upper()])
+ g.db.commit()
+ flash('Entry is successfully deleted')
+ return redirect(url_for('addentry'))
+
+def show_entry(database):
+ g.db = connect_db(database)
+
+ if database == 'nutrition':
+ entry = g.db.execute('select title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein, scenario from entries where title=?', [request.form['title'].upper()]).fetchone()
+ elif database == 'activity':
+ entry = g.db.execute('select title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein from entries where title=?', [request.form['title'].upper()]).fetchone()
+
+ return entry
+
+def check_values():
+ error = False
+ for val in request.form:
+ if (val != 'title'):
+ if (re.match(request.form[val],r"[0-9].")):
+ error = True
+ return error
+
+def return_entry():
+ entry = [request.form['title'].upper(), request.form['water'], request.form['energie'], request.form['calcium'], request.form['iron'], request.form['magnesium'], request.form['phosphorus'], request.form['potassium'], request.form['sodium'], request.form['zinc'], request.form['copper'], request.form['vit_c'], request.form['thiamin'], request.form['riboflavin'], request.form['niacin'], request.form['panto_acid'], request.form['vit_b6'], request.form['folate_tot'], request.form['vit_b12'], request.form['vit_a'], request.form['vit_e'], request.form['vit_d'], request.form['protein'], request.form['scenario']]
+ flash('Correct entry')
+ return entry
+
+def reset_status():
+ fobj = open('/Users/stefanienobel/Documents/workspace/nutrinoweb/nutrinoweb/controllers/status.txt', 'w')
+ fobj.truncate()
+ fobj.write('|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0') + '|' + str('0'))
+ fobj.close()
+
+def add_entry_tolist(aliment, path, quantity, unit):
+ g.db = connect_db('nutrition')
+
+ entry = g.db.execute('select title, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein from entries where title=?', [aliment]).fetchone()
+
+ g.db = connect_db3()
+ g.db.execute('insert into aliments (title, path, quantity, unit, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [aliment.lower(), path, quantity, unit, entry[1], entry[2], entry[3], entry[4], entry[5], entry[6], entry[7], entry[8], entry[9], entry[10], entry[11], entry[12], entry[13], entry[14], entry[15], entry[16], entry[17], entry[18], entry[19], entry[20], entry[21], entry[22]])
+ g.db.commit()
+
+def aliments():
+ """Make sure we are connected to the database."""
+ g.db = connect_db3()
+
+ cur = g.db.execute('select title, path, quantity, unit, water, energie, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d, protein from aliments')
+ aliments = [dict(title=row[0], path=row[1], quantity=row[2], unit=row[3], water=row[4], energie=row[5], calcium=row[6], iron=row[7], magnesium=row[8], phosphorus=row[9], potassium=row[10], sodium=row[11], zinc=row[12], copper=row[13], vit_c=row[14], thiamin=row[15], riboflavin=row[16], niacin=row[17], panto_acid=row[18], vit_b6=row[19], folate_tot=row[20], vit_b12=row[21], vit_a=row[22], vit_e=row[23], vit_d=row[24], protein=row[25]) for row in cur.fetchall()]
+ return aliments
+
+def save_aliments(aliments):
+ fobj = open('/Users/stefanienobel/Documents/workspace/nutrinoweb/nutrinoweb/controllers/aliments.txt', 'w')
+ fobj.truncate()
+ for aliment in aliments:
+ fobj.write('|' + str(aliment['quantity']) + ',' + aliment['title'])
+ fobj.close()
+
+
diff --git a/nutrinoweb/controllers/dbinput.txt b/nutrinoweb/controllers/dbinput.txt
new file mode 100755
index 0000000..b9d4a11
--- /dev/null
+++ b/nutrinoweb/controllers/dbinput.txt
@@ -0,0 +1,27 @@
+BUTTER WITH SALT|15.87|0.06|24|0.02|2|24|24|714|0.09|0|0|0.005|0.034|0.042|0.11|0.003|3|0.17|684|2.32|1.5|0.85
+CHEESE CHEDDAR|36.75|0.52|721|0.68|28|512|98|621|3.11|0.031|0|0.027|0.375|0.08|0.413|0.074|18|0.83|265|0.29|0.6|24.9
+CREAM|80.57|0.16|105|0.07|10|95|130|41|0.51|0.01|0.9|0.035|0.149|0.078|0.289|0.039|3|0.33|97|0.33|0.2|2.96
+MILK|87.67|0|128|0.05|13|97|139|57|0.36|0.01|0.9|0.03|0.123|0.087|0.301|0.04|5|0.34|2|0|0|3.33
+YOGURT|87.9|4.66|121|0.05|12|95|155|46|0.59|0.009|0.5|0.029|0.142|0.075|0.389|0.032|7|0.37|27|0.06|0.1|3.47
+OMELET|76.13|0.31|48|1.48|11|167|117|155|1.09|0.063|0|0.034|0.386|0.064|1.289|0.143|39|0.76|172|1.29|1.7|10.57
+SALAD DRSNG. FRENCH|54.28|16.86|11|0.73|8|16|107|838|0.2|0.16|4.8|0.024|0.052|0.467|0|0.055|2|0|27|1|0|0.58
+OIL|0|0|1|0.56|0|0|1|2|0|0|0|0|0|0|0|0|0|0|0|14.35|0|0
+CHICKEN|52.41|0|17|1.38|25|191|234|84|2.04|0.075|0|0.087|0.193|8.992|1.079|0.41|9|0.31|27|0.63|0.1|28.56
+TURKEY|70.61|0|15|1.69|22|180|269|67|2.31|0.114|0.2|0.065|0.203|4.148|0.953|0.41|23|1.62|102|0|0|20.37
+SOUP TURKEY NOODLES|86.37|0.41|9|0.75|4|38|60|650|0.46|0.1|0.1|0.059|0.051|1.112|0.14|0.03|15|0.13|13|0.14|0|3.11
+SAUSAGE PORK|56.11|0.11|57|0.73|13|178|206|848|2.25|0.07|0|0.249|0.16|2.9|0.76|0.13|3|1.73|0|0|0.3|12.89
+KELLOGG'S CORN FLAKES|3.76|10.5|4|29|9|37|79|723|0.18|0.108|22|2.13|2.64|24.4|0.079|3.44|480|9.47|456|0.13|3.6|6.61
+MELONS HONEY|89.82|8.12|6|0.17|10|11|228|18|0.09|0.024|18|0.038|0.012|0.418|0.155|0.088|19|0|3|0.02|0|0.54
+ORANGES|86.75|9.35|40|0.1|10|14|181|0|0.07|0.045|53.2|0.087|0.04|0.282|0.25|0.06|30|0|11|0.18|0|0.94
+BLUEBERRIES|70.63|19.28|19|2.2|6|14|46|1|0.12|0|0.3|0.033|0.313|0.469|0.041|0.035|8|0|0|0|0|0.56
+PINEAPPLE|83.51|14.26|16|0.28|15|7|124|1|0.1|0.107|9.4|0.102|0.021|0.284|0|0.075|5|0|3|0.02|0|0.51
+APRICOTS|77.56|18.65|10|0.3|7|13|143|4|0.11|0.097|3.1|0.021|0.024|0.376|0|0.055|2|0|146|0.89|0|0.64
+CHERRIES|77.61|16.18|10|0.35|9|20|148|3|0.1|0.176|3.6|0.022|0.043|0.396|0.06|0.022|5|0|12|0.17|0|0.73
+PEACHES|80.62|14.66|3|0.27|5|12|94|6|0.09|0.063|0.7|0.02|0.02|0.625|0.024|0.013|9|0|31|1.19|0|0.52
+PORK|74.31|0|14|1.2|22|202|339|65|3.36|0.102|0|0.558|0.384|4.387|1.567|0.521|0|0.91|0|0.24|0.6|18.73
+POTATO PANCAKES|47.77|1.79|32|1.67|36|128|622|764|0.7|0.18|27.6|0.158|0.173|1.672|0.757|0.448|41|0.29|32|0.23|0.3|6.08
+ARTICHOKES|84.08|0.99|21|0.61|42|73|286|60|0.4|0.127|7.4|0.05|0.089|1.11|0.24|0.081|89|0|1|0.19|0|2.89
+COCONUT MEAT|46.99|6.23|14|2.43|32|113|356|20|1.1|0.435|3.3|0.066|0.02|0.54|0.3|0.054|26|0|0|0.24|0|3.33
+BEEF|58.1|0|11|2.7|19|168|429|1439|3.98|0.034|0|0.08|0.19|5.27|0.59|0.34|11|2.57|0|0|0.1|28.11
+BREAD|64.9|3.92|26|0.94|13|34|62|455|0.23|0.069|0.8|0.117|0.092|1.247|0.06|0.038|97|0.01|78|0.85|0|2.9
+WATER|640.9|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 \ No newline at end of file
diff --git a/nutrinoweb/controllers/dbinputsparetime.txt b/nutrinoweb/controllers/dbinputsparetime.txt
new file mode 100755
index 0000000..7b3e42e
--- /dev/null
+++ b/nutrinoweb/controllers/dbinputsparetime.txt
@@ -0,0 +1,4 @@
+Swimming|700|300|40|0.02|15|24|24|714|0.09|0|0|0.005|0.034|0.042|0.11|0.003|3|0.17|684|2.32|1.5|30
+Cooking|200|100|10|0.02|5|24|100|714|0.09|0|0|0.005|0.034|0.042|0.11|0.003|3|0.17|684|2.32|1.5|5
+Reading|0|0|10|0.02|5|24|100|714|0.09|0|0|0.005|0.034|0.042|0.11|0.003|3|0.17|684|2.32|1.5|0
+Soccer|600|260|30|0.02|5|24|450|714|0.09|0|0|0.005|0.034|0.042|0.11|0.003|3|0.17|684|2.32|1.5|30 \ No newline at end of file
diff --git a/nutrinoweb/controllers/eating.py b/nutrinoweb/controllers/eating.py
new file mode 100644
index 0000000..24d68e6
--- /dev/null
+++ b/nutrinoweb/controllers/eating.py
@@ -0,0 +1,213 @@
+# gettext import
+from gettext import gettext as _
+
+# server import
+from server.flask import app, logger, render, request, jsonify
+
+#database import
+import database_manager
+
+#Avatar import
+import Avatar
+
+from flask import redirect, url_for
+
+IM_PATH = ['../static/images/journal/jauge-energie.png']
+
+@app.route('/eating', methods=['GET', 'POST'])
+def eating():
+ #database_manager.init_db()
+ #database_manager.load_inputfilenutrition()
+ entries = database_manager.entries()
+ IM_PATH = None
+ path = '../../static/images/journal/backgroundeating.png'
+ _entry = None
+ _result = None
+ _text = 'Hi, how can I help you?'
+ _visibilitytextbox = 'hidden'
+ _visibilitybutton = 'hidden'
+ _visibilitytextbox2 = 'hidden'
+ _link = 'hidden'
+ _scenario = 'rack'
+ content = [ ]
+ # POST
+ if request.method == 'POST':
+ _aliments = database_manager.aliments()
+ if 'send' in request.form:
+ _scenario = request.form['send']
+ path = '../../static/images/journal/background' + _scenario + '.png'
+ _text = 'What are you searching for?'
+ _visibilitytextbox = 'visible'
+ elif 'cooking' in request.form:
+ for aliment in _aliments:
+ _result = calculateDimension(aliment, entries)
+ pathi = '../../static/images/journal/aliments/' + aliment['title'] + '.png'
+ cont = {
+ 'title': _(aliment['title']),
+ 'image': IM_PATH,
+ 'water': _result[0],
+ 'energie': _result[1],
+ 'vitamine': _result[2],
+ 'construction': _result[3],
+ 'waterstart': _result[4],
+ 'energiestart': _result[5],
+ 'vitaminestart': _result[6],
+ 'constructionstart': _result[7],
+ 'pathimg': pathi,
+ }
+ content.append(cont)
+ _content = { 'content': content, }
+ # render result
+ return render('nutrinoweb/main.html', **_content)
+ elif 'askforaliment' in request.form:
+ _scenario = request.form['info1']
+ path = '../../static/images/journal/background' + _scenario + '.png'
+ _entry = database_manager.show_entry('nutrition')
+ if (_entry != None):
+ if _entry[23] == _scenario or _entry[23] == None:
+ _text = 'How much do you want?'
+ _visibilitytextbox2 = 'visible'
+ else:
+ _text = 'Sorry, I do not have ' + request.form['title'] + '. Maybe you should ask somebody else!'
+ else:
+ _text = 'Sorry, I do not have ' + request.form['title'] + '. Do you want something else?'
+ _visibilitytextbox = 'visible'
+ _link = 'visible'
+ elif 'orderaliment' in request.form:
+ _scenario = request.form['info3']
+ path = '../../static/images/journal/background' + _scenario + '.png'
+ _text = 'What else do you want?'
+ _visibilitytextbox = 'visible'
+ pathtoimage = '../static/images/journal/aliments/' + request.form['info2'] + '.png'
+ database_manager.add_entry_tolist(request.form['info2'], pathtoimage, request.form['quantity'], request.form['unit'])
+ _aliments = database_manager.aliments()
+ else:
+ pass
+ # GET
+ else:
+ entries = entries
+ _result = ''
+ database_manager.init_db3()
+ _aliments = database_manager.aliments()
+
+ #
+ _content = {
+ 'title': _('What do you want to eat?'),
+ 'entries': entries,
+ 'result': _result,
+ 'path': path,
+ 'entry': _entry,
+ 'text': _text,
+ 'visibilitytextbox': _visibilitytextbox,
+ 'visibilitytextbox2': _visibilitytextbox2,
+ 'visibilitybutton': _visibilitybutton,
+ 'aliments': _aliments,
+ 'scenario': _scenario,
+ 'linkvisiblity': _link
+ }
+ # render result
+ return render('nutrinoweb/eating.html', **_content)
+
+
+def calculateDimension(result, entries):
+ water = None
+ energie = None
+ vitamine = None
+ construction = None
+ vitstart = None
+ instance = Avatar.Character()
+ eng = instance.load_status()
+ if result != None and entries != None:
+ eng = instance.load_status()
+ for entry in entries:
+ if result['title'].upper() in entry['title']:
+
+ factor = result['quantity'] / 100.0
+ #part water
+ _water = controllValue(((factor*calculateWater(float(entry['water']))) / 2) + float(eng['water']))
+ water = calculateHeight(_water)
+
+ #part energie
+ _energie = controllValue((factor*calculateEnergie(float(entry['energie']))) + float(eng['energie']))
+ energie = calculateHeight(_energie)
+
+ #part vitamine
+ _vitamine = calculateVitamine(factor, entry, eng)
+ vitamine = calculateHeight(_vitamine[0])
+
+ #part construction
+ _construction = controllValue((factor*calculateConstruction(float(entry['protein']))) + float(eng['construction']))
+ construction = calculateHeight(_construction)
+
+ status = instance.save_status(str(_water), str(_energie), str(_vitamine[1]), str(_vitamine[2]),str(_vitamine[3]),str(_vitamine[4]),str(_vitamine[5]),str(_vitamine[6]),str(_vitamine[7]),str(_vitamine[8]),str(_vitamine[9]),str(_vitamine[10]),str(_vitamine[11]),str(_vitamine[12]),str(_vitamine[13]),str(_vitamine[14]),str(_vitamine[15]),str(_vitamine[16]),str(_vitamine[17]),str(_vitamine[18]), str(_vitamine[19]), str(_vitamine[0]), str(_construction))
+
+ else:
+ pass
+ else:
+ #part water
+ water = 100.0 - float(eng['water'])
+
+ #part energie
+ energie = 100.0 - float(eng['energie'])
+
+ #part vitamine
+ vitamine = 100.0 - float(eng['vit_total'])
+
+ #part construction
+ construction = 100.0 - float(eng['construction'])
+
+ _result = [water, energie, vitamine, construction, calculateHeight(float(eng['water'])), calculateHeight(float(eng['energie'])), calculateHeight(float(eng['vit_total'])), calculateHeight(float(eng['construction']))]
+ return _result
+
+def calculateEnergie(energie):
+ height = energie/4.0
+ return height
+
+def calculateVitamine(f, entry, status):
+ calcium = controllValue(float(status['calcium']) + (f*(float(entry['calcium']) / 9.0)))
+ iron = controllValue(float(status['iron']) + (f*(float(entry['iron']) / 0.125)))
+ magnesium = controllValue(float(status['magnesium']) + (f*(float(entry['magnesium']) / 2.1)))
+ phosphorus = controllValue(float(status['phosphorus']) + (f*(float(entry['phosphorus']) / 10)))
+ potassium = controllValue(float(status['potassium']) + (f*(float(entry['potassium']) / 15.5)))
+ sodium = controllValue(float(status['sodium']) + (f*(float(entry['sodium']) / 4.85)))
+ zinc = controllValue(float(status['zinc']) + (f*(float(entry['zinc']) / 0.08)))
+ copper = controllValue(float(status['copper']) + (f*(float(entry['copper']) / 0.0115)))
+ vit_c = controllValue(float(status['vit_c']) + (f*(float(entry['vit_c']) / 0.85)))
+ thiamin = controllValue(float(status['thiamin']) + (f*(float(entry['thiamin']) / 0.012)))
+ riboflavin = controllValue(float(status['riboflavin']) + (f*(float(entry['riboflavin']) / 0.011)))
+ niacin = controllValue(float(status['niacin']) + (f*(float(entry['niacin']) / 0.13)))
+ panto_acid = controllValue(float(status['panto_acid']) + (f*(float(entry['panto_acid']) / 0.05)))
+ vit_b6 = controllValue(float(status['vit_b6']) + (f*(float(entry['vit_b6']) / 0.0085)))
+ folate_tot = controllValue(float(status['folate_tot']) + (f*(float(entry['folate_tot']) / 3.5)))
+ vit_b12 = controllValue(float(status['vit_b12']) + (f*(float(entry['vit_b12']) / 0.019)))
+ vit_a = controllValue(float(status['vit_a']) + (f*(float(entry['vit_a']) / 0.11)))
+ vit_e = controllValue(float(status['vit_e']) + (f*(float(entry['vit_e']) / 0.05)))
+ vit_d = controllValue(float(status['vit_d']) + (f*(float(entry['vit_d']) / 0.315)))
+
+ height = (calcium + iron + magnesium + phosphorus + potassium + sodium + zinc + copper + vit_c + thiamin + riboflavin + niacin + panto_acid + vit_b6 + folate_tot + vit_b12 + vit_a + vit_e + vit_d)/19.0
+ height = [height, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d]
+ return height
+
+def controllValue(value):
+ if value > 100.00:
+ return 100.00
+ return value
+
+
+def calculateWater(water):
+ height = water/17.5
+ return height
+
+def calculateConstruction(construction):
+ height = construction/0.215 #daily value 0.9g/kg weight, a child of 35kg needs 21.5g
+ return height
+
+def calculateHeight(height):
+ height = 100.0 - height
+ if height < 0.0:
+ return 5.0
+ elif height == 0.0:
+ return 5.0
+ elif height > 100.0:
+ return 99.00
+ return int(height)
diff --git a/atoideweb/controllers/index.py b/nutrinoweb/controllers/index.py
index a81c337..4f0adc7 100644
--- a/atoideweb/controllers/index.py
+++ b/nutrinoweb/controllers/index.py
@@ -8,7 +8,7 @@ from server.flask import app, logger, render, request, jsonify
@app.route('/')
def index():
# prepare result
- _content = {'content': _('atdw - Welcome!')}
+ _content = {'content': _('Welcome to Nutrino!')}
# render result
return render('index.html', **_content)
diff --git a/nutrinoweb/controllers/main.py b/nutrinoweb/controllers/main.py
new file mode 100644
index 0000000..62260a0
--- /dev/null
+++ b/nutrinoweb/controllers/main.py
@@ -0,0 +1,50 @@
+# python import
+import os
+
+# gettext import
+from gettext import gettext as _
+
+# server import
+from server.flask import app, logger, render, request, jsonify
+
+#eating import for the status
+import eating, database_manager
+
+IM_PATH = ['../static/images/journal/jauge-energie.png']
+
+@app.route('/main', methods=['GET', 'POST'])
+def main():
+ # list images
+ _images = IM_PATH
+ _result = eating.calculateDimension(None, None)
+
+ if request.method == 'POST':
+ if 'reset' in request.form:
+ database_manager.reset_status()
+ _result[0] = 100.0
+ _result[1] = 100.0
+ _result[2] = 100.0
+ _result[3] = 100.0
+ _result[4] = 100.0
+ _result[5] = 100.0
+ _result[6] = 100.0
+ _result[7] = 100.0
+
+ contents = [dict(
+ title= _('Hello'),
+ image= _images,
+ water= _result[0],
+ energie= _result[1],
+ vitamine= _result[2],
+ construction= _result[3],
+ waterstart= _result[4],
+ energiestart= _result[5],
+ vitaminestart= _result[6],
+ constructionstart= _result[7],
+ )]
+
+ #prepare result
+ _content = { 'content': contents, }
+ # render result
+ return render('nutrinoweb/main.html', **_content)
+
diff --git a/nutrinoweb/controllers/schema.sql b/nutrinoweb/controllers/schema.sql
new file mode 100644
index 0000000..fab8d9a
--- /dev/null
+++ b/nutrinoweb/controllers/schema.sql
@@ -0,0 +1,29 @@
+drop table if exists entries;
+create table entries(
+ id integer primary key autoincrement,
+ title string not null,
+ water string not null,
+ energie string not null,
+ calcium string not null,
+ iron string not null,
+ magnesium string not null,
+ phosphorus string not null,
+ potassium string not null,
+ sodium string not null,
+ zinc string not null,
+ copper string not null,
+ vit_c string not null,
+ thiamin string not null,
+ riboflavin string not null,
+ niacin string not null,
+ panto_acid string not null,
+ vit_b6 string not null,
+ folate_tot string not null,
+ vit_b12 string not null,
+ vit_a string not null,
+ vit_e string not null,
+ vit_d string not null,
+ protein string not null,
+ path string,
+ scenario string
+);
diff --git a/nutrinoweb/controllers/schema2.sql b/nutrinoweb/controllers/schema2.sql
new file mode 100644
index 0000000..17bb3c7
--- /dev/null
+++ b/nutrinoweb/controllers/schema2.sql
@@ -0,0 +1,30 @@
+drop table if exists aliments;
+create table aliments(
+ id integer primary key autoincrement,
+ title string not null,
+ path string not null,
+ quantity string not null,
+ unit string not null,
+ water string not null,
+ energie string not null,
+ calcium string not null,
+ iron string not null,
+ magnesium string not null,
+ phosphorus string not null,
+ potassium string not null,
+ sodium string not null,
+ zinc string not null,
+ copper string not null,
+ vit_c string not null,
+ thiamin string not null,
+ riboflavin string not null,
+ niacin string not null,
+ panto_acid string not null,
+ vit_b6 string not null,
+ folate_tot string not null,
+ vit_b12 string not null,
+ vit_a string not null,
+ vit_e string not null,
+ vit_d string not null,
+ protein string not null
+);
diff --git a/nutrinoweb/controllers/sparetime.py b/nutrinoweb/controllers/sparetime.py
new file mode 100644
index 0000000..cea9512
--- /dev/null
+++ b/nutrinoweb/controllers/sparetime.py
@@ -0,0 +1,146 @@
+# gettext import
+from gettext import gettext as _
+
+# server import
+from server.flask import app, logger, render, request, jsonify
+
+#database import
+import database_manager
+
+#Avatar import
+import Avatar
+
+IM_PATH = ['../static/images/journal/jauge-energie.png']
+
+@app.route('/sparetime', methods=['GET', 'POST'])
+def sparetime():
+ #database_manager.init_db()
+ #database_manager.load_inputfile()
+ entries = database_manager.entriessparetime()
+ content = [ ]
+ # POST
+ if request.method == 'POST':
+ if 'select-item' in request.form:
+ result = request.form['select-item']
+ _result = calculateDimension(result, entries)
+ cont = {
+ 'image': IM_PATH,
+ 'water': _result[0],
+ 'energie': _result[1],
+ 'vitamine': _result[2],
+ 'construction': _result[3],
+ 'waterstart': _result[4],
+ 'energiestart': _result[5],
+ 'vitaminestart': _result[6],
+ 'constructionstart': _result[7],
+ }
+ content.append(cont)
+ _content = { 'content': content, }
+ # render result
+ return render('nutrinoweb/main.html', **_content)
+
+ else:
+ _result = '??'
+ # GET
+ else:
+ entries = entries
+ _result = ''
+ #
+ _content = {
+ 'title': _('What do you want to play?'),
+ 'activities': entries,
+ 'result': _result
+ }
+ # render result
+ return render('nutrinoweb/sparetime.html', **_content)
+
+def calculateDimension(result, entries):
+ water = None
+ energie = None
+ vitamine = None
+ construction = None
+ vitstart = None
+ instance = Avatar.Character()
+ eng = instance.load_status()
+ if result != None and entries != None:
+ eng = instance.load_status()
+ for entry in entries:
+ if result in entry['title']:
+
+ factor = 1
+ #part water
+ _water = controllValue(((factor*calculateWater(float(entry['water']))) / 2) - float(eng['water']))
+ water = calculateHeight(_water)
+
+ #part energie
+ _energie = controllValue((factor*calculateEnergie(float(entry['energie']))) - float(eng['energie']))
+ energie = calculateHeight(_energie)
+
+ #part vitamine
+ _vitamine = calculateVitamine(1, entry, eng)
+ vitamine = calculateHeight(_vitamine[0])
+
+ #part construction
+ _construction = controllValue((factor*calculateConstruction(float(entry['protein']))) - float(eng['construction']))
+ construction = calculateHeight(_construction)
+
+ status = instance.save_status(str(_water), str(_energie), str(_vitamine[1]), str(_vitamine[2]),str(_vitamine[3]),str(_vitamine[4]),str(_vitamine[5]),str(_vitamine[6]),str(_vitamine[7]),str(_vitamine[8]),str(_vitamine[9]),str(_vitamine[10]),str(_vitamine[11]),str(_vitamine[12]),str(_vitamine[13]),str(_vitamine[14]),str(_vitamine[15]),str(_vitamine[16]),str(_vitamine[17]),str(_vitamine[18]), str(_vitamine[19]), str(_vitamine[0]), str(_construction))
+
+ else:
+ pass
+
+ _result = [water, energie, vitamine, construction, calculateHeight(float(eng['water'])), calculateHeight(float(eng['energie'])), calculateHeight(float(eng['vit_total'])), calculateHeight(float(eng['construction']))]
+ return _result
+
+def calculateEnergie(energie):
+ height = energie/4.0
+ return height
+
+def calculateVitamine(f, entry, status):
+ calcium = controllValue(float(status['calcium']) - (f*(float(entry['calcium']) / 9.0)))
+ iron = controllValue(float(status['iron']) - (f*(float(entry['iron']) / 0.125)))
+ magnesium = controllValue(float(status['magnesium']) - (f*(float(entry['magnesium']) / 2.1)))
+ phosphorus = controllValue(float(status['phosphorus']) - (f*(float(entry['phosphorus']) / 10)))
+ potassium = controllValue(float(status['potassium']) - (f*(float(entry['potassium']) / 15.5)))
+ sodium = controllValue(float(status['sodium']) - (f*(float(entry['sodium']) / 4.85)))
+ zinc = controllValue(float(status['zinc']) - (f*(float(entry['zinc']) / 0.08)))
+ copper = controllValue(float(status['copper']) - (f*(float(entry['copper']) / 0.0115)))
+ vit_c = controllValue(float(status['vit_c']) - (f*(float(entry['vit_c']) / 0.85)))
+ thiamin = controllValue(float(status['thiamin']) - (f*(float(entry['thiamin']) / 0.012)))
+ riboflavin = controllValue(float(status['riboflavin']) - (f*(float(entry['riboflavin']) / 0.011)))
+ niacin = controllValue(float(status['niacin']) - (f*(float(entry['niacin']) / 0.13)))
+ panto_acid = controllValue(float(status['panto_acid']) - (f*(float(entry['panto_acid']) / 0.05)))
+ vit_b6 = controllValue(float(status['vit_b6']) - (f*(float(entry['vit_b6']) / 0.0085)))
+ folate_tot = controllValue(float(status['folate_tot']) - (f*(float(entry['folate_tot']) / 3.5)))
+ vit_b12 = controllValue(float(status['vit_b12']) - (f*(float(entry['vit_b12']) / 0.019)))
+ vit_a = controllValue(float(status['vit_a']) - (f*(float(entry['vit_a']) / 0.11)))
+ vit_e = controllValue(float(status['vit_e']) - (f*(float(entry['vit_e']) / 0.05)))
+ vit_d = controllValue(float(status['vit_d']) - (f*(float(entry['vit_d']) / 0.315)))
+
+ height = (calcium + iron + magnesium + phosphorus + potassium + sodium + zinc + copper + vit_c + thiamin + riboflavin + niacin + panto_acid + vit_b6 + folate_tot + vit_b12 + vit_a + vit_e + vit_d)/19.0
+ height = [height, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d]
+ return height
+
+def controllValue(value):
+ if value < 0.00:
+ return 0.00
+ return value
+
+
+def calculateWater(water):
+ height = water/17.5
+ return height
+
+def calculateConstruction(construction):
+ height = construction/0.215 #daily value 0.9g/kg weight, a child of 35kg needs 21.5g
+ return height
+
+def calculateHeight(height):
+ height = 100.0 - height
+ if height < 0.0:
+ return 5.0
+ elif height == 0.0:
+ return 5.0
+ elif height > 100.0:
+ return 99.00
+ return int(height)
diff --git a/nutrinoweb/controllers/status.txt b/nutrinoweb/controllers/status.txt
new file mode 100644
index 0000000..bcea7b7
--- /dev/null
+++ b/nutrinoweb/controllers/status.txt
@@ -0,0 +1 @@
+|7.26242857143|16.095|6.38888888889|46.8|11.4285714286|5.5|16.9677419355|1.13402061856|5.0|15.3043478261|5.11764705883|8.70833333333|75.0454545455|12.0653846154|3.25|12.8823529412|7.14285714286|0.0|100.0|3.4|0.0|17.691347386|9.90697674419 \ No newline at end of file
diff --git a/nutrinoweb/controllers/statusanfang.txt b/nutrinoweb/controllers/statusanfang.txt
new file mode 100644
index 0000000..84ae936
--- /dev/null
+++ b/nutrinoweb/controllers/statusanfang.txt
@@ -0,0 +1 @@
+|0|0|0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0|0.0 \ No newline at end of file
diff --git a/atoideweb/ui/__init__.py b/nutrinoweb/ui/__init__.py
index 8b13789..8b13789 100644
--- a/atoideweb/ui/__init__.py
+++ b/nutrinoweb/ui/__init__.py
diff --git a/atoideweb/ui/toolbar.py b/nutrinoweb/ui/toolbar.py
index 9266606..9266606 100644
--- a/atoideweb/ui/toolbar.py
+++ b/nutrinoweb/ui/toolbar.py
diff --git a/po/.DS_Store b/po/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/po/.DS_Store
Binary files differ
diff --git a/run.py b/run.py
index 7a234f2..427d3d4 100644
--- a/run.py
+++ b/run.py
@@ -15,7 +15,7 @@ sys.path.append(os.path.join(BUNDLE, 'lib'))
from server import Server
# SPECIFIC FOR YOUR APP
-from atoideweb import controllers
+from nutrinoweb import controllers
# init the server
Server()
diff --git a/static/.DS_Store b/static/.DS_Store
new file mode 100644
index 0000000..33ea6bf
--- /dev/null
+++ b/static/.DS_Store
Binary files differ
diff --git a/static/css/.DS_Store b/static/css/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/static/css/.DS_Store
Binary files differ
diff --git a/static/css/style.css b/static/css/style.css
new file mode 100644
index 0000000..0bf37dc
--- /dev/null
+++ b/static/css/style.css
@@ -0,0 +1,48 @@
+body {font-family: sans-serif; background: #eee;}
+a, h1, h2 {color: #006400;}
+h1, h2 {font-family: 'Georgia', serif; margin:0;}
+h1 {border-bottom: 6px solid #eee;}
+h2 {font-size: 1.2em;}
+
+.page {margin: 2em auto; width: 630px; border: 5px solid #ccc; padding: 0.8em; background: white;}
+.main {background-image: url(../images/journal/backgroundimg.png); background-repeat: no-repeat; width: 628px; height:370px;}
+
+.energie-wrap {position: absolute; margin-left: 26.50em; margin-top: 100px;}
+.vitamine-wrap {position: absolute; margin-left: 30.21em; margin-top: 100px;}
+.energie-wrap, .vitamine-wrap {width: 42px; height: 129px; background: url(../images/journal/wrap3.png) top left no-repeat;}
+.water-wrap {position: absolute; margin-left: 22.5em; margin-top: 100px; width: 42px; height: 129px; background: url(../images/journal/jauge-water.png) top left no-repeat;}
+.construction-wrap {position: absolute; margin-left: 34.0em; margin-top: 100px; width: 42px; height: 129px; background: url(../images/journal/jauge-construction.png) top left no-repeat;}
+.water-value, .energie-value, .vitamine-value, .construction-value {width: 42px; height: 129px; background: #E4FFAA url(../images/journal/wrap4.png) top left no-repeat;}
+
+.entries {list-style: none; width: 630px; height: 120px; margin: 0; padding: 0; overflow: auto; border-top: 6px solid #eee; margin-top: 6px;}
+.entries li {margin: 0.8em 1.2em;}
+.metanav {text-align: auto; font-size: 0.8em; padding: 0.3em; margin-bottom: 1em; background: #fafafa;}
+.flash {background: #CEE5F5; padding: 0.5em; border: 1px solid #AACBE2; margin-top: 4px;}
+.error {background: #F0D6D6; padding: 0.5em;}
+.div0 {margin-top: 1em; margin-left: 0.7em; width: 600px; }
+.nameofaliment {width: 600px; height: 40px; margin-left: 0.7em; margin-top: 1em; font-size: 1em; border-bottom: 2px solid #eee;}
+.div1, .div2, .div3, .div4, .div5 {float: left; width: 120px; font-size: 0.7em;}
+
+.diveating {height: 350px;}
+.eatingleft {float: left; width: 110px; height: 350px;}
+.eatingleft ul {margin-top: 0px; list-style: None; padding-left: 10px; font-size: 10px; width: 100px; height: 350px; overflow: Scroll;}
+.eatingmiddle {float: left; width: 400px; height: 350px; background: no-repeat;}
+.eatingright {float: left; width: 100px; border-left: 4px solid #eee; height: 350px; margin-left: 0.5em;}
+.eatingright button {float: left; text-align: center; width: 100px; height: 59px; margin-top: 10px; margin-left: 7px; background-color: #FFFFFF;}
+.shoppinglist {float: left; list-style: None; padding-top: 20px; font-size: 12px; font-family: Comic Sans Ms; color: #808080; background: url(../images/journal/shoppinglist.png) top left no-repeat; width:180px; height: 190px; margin-top: 140px; margin-left: 10px; text-align: center;}
+.rack {float: left; margin-top: -360px; margin-left: 80px; text-align: center; width:300px; height:100px;}
+.fruits {float: left; margin-top: -360px; margin-left: 0px; text-align: center; width:250px; height:100px;}
+.meatcounter {float: left; margin-top: -360px; margin-left: 0px; text-align: center; width:250px; height:100px;}
+.fridge {float: left; margin-top: -360px; margin-left: 80px; text-align: center; width:300px; height:100px;}
+.rack img, .fridge img {float: left; width: 300px; height: 100px; z-index: 1;}
+.fruits img, .meatcounter img {float: left; width: 250px; height: 100px; z-index: 1;}
+.textrack {float: left; width: 180px; height: 50px; margin-left: 90px; margin-top: -85px; font-family: Verdana; font-size: 12px; color: #008000;}
+.textfruits {float: left; width: 180px; height: 50px; margin-left: 29px; margin-top: -80px; font-family: Verdana; font-size: 12px; color: #008000;}
+.textmeatcounter {float: left; width: 180px; height: 50px; margin-left: 32px; margin-top: -80px; font-family: Verdana; font-size: 12px; color: #008000;}
+.textfridge {float: left; width: 180px; height: 50px; margin-left: 90px; margin-top: -85px; font-family: Verdana; font-size: 12px; color: #008000;}
+.linkaddentry {font-size: 10px; color: #FFFFFF;}
+
+.alimentimages {float: left; margin-top: 100px; margin-left: 0px;}
+.reset {margin-left: 580px; width: 10px;}
+.sun {float: left; margin-top: 0px; margin-left: 0px; width: 628px; height: 150px; }
+.sun img {margin-top: 70px; width: 90px; height: 90px;}
diff --git a/static/images/.DS_Store b/static/images/.DS_Store
new file mode 100644
index 0000000..4f78abc
--- /dev/null
+++ b/static/images/.DS_Store
Binary files differ
diff --git a/static/images/journal/.DS_Store b/static/images/journal/.DS_Store
new file mode 100644
index 0000000..8e6e528
--- /dev/null
+++ b/static/images/journal/.DS_Store
Binary files differ
diff --git a/static/images/journal/activities/COOKING.png b/static/images/journal/activities/COOKING.png
new file mode 100644
index 0000000..45c0c48
--- /dev/null
+++ b/static/images/journal/activities/COOKING.png
Binary files differ
diff --git a/static/images/journal/activities/READING.png b/static/images/journal/activities/READING.png
new file mode 100644
index 0000000..753160e
--- /dev/null
+++ b/static/images/journal/activities/READING.png
Binary files differ
diff --git a/static/images/journal/activities/SOCCER.png b/static/images/journal/activities/SOCCER.png
new file mode 100644
index 0000000..828b4aa
--- /dev/null
+++ b/static/images/journal/activities/SOCCER.png
Binary files differ
diff --git a/static/images/journal/activities/SWIMMING.png b/static/images/journal/activities/SWIMMING.png
new file mode 100644
index 0000000..bc3a206
--- /dev/null
+++ b/static/images/journal/activities/SWIMMING.png
Binary files differ
diff --git a/static/images/journal/aliments/.DS_Store b/static/images/journal/aliments/.DS_Store
new file mode 100644
index 0000000..87c447d
--- /dev/null
+++ b/static/images/journal/aliments/.DS_Store
Binary files differ
diff --git a/static/images/journal/aliments/ARTICHOKES.png b/static/images/journal/aliments/ARTICHOKES.png
new file mode 100644
index 0000000..a837b40
--- /dev/null
+++ b/static/images/journal/aliments/ARTICHOKES.png
Binary files differ
diff --git a/static/images/journal/aliments/BEEF.png b/static/images/journal/aliments/BEEF.png
new file mode 100644
index 0000000..475b508
--- /dev/null
+++ b/static/images/journal/aliments/BEEF.png
Binary files differ
diff --git a/static/images/journal/aliments/BLUEBERRIES.png b/static/images/journal/aliments/BLUEBERRIES.png
new file mode 100644
index 0000000..081746d
--- /dev/null
+++ b/static/images/journal/aliments/BLUEBERRIES.png
Binary files differ
diff --git a/static/images/journal/aliments/BREAD.png b/static/images/journal/aliments/BREAD.png
new file mode 100644
index 0000000..b81891b
--- /dev/null
+++ b/static/images/journal/aliments/BREAD.png
Binary files differ
diff --git a/static/images/journal/aliments/BUTTER WITH SALT.png b/static/images/journal/aliments/BUTTER WITH SALT.png
new file mode 100644
index 0000000..748d97d
--- /dev/null
+++ b/static/images/journal/aliments/BUTTER WITH SALT.png
Binary files differ
diff --git a/static/images/journal/aliments/CHEESE CHEDDAR.png b/static/images/journal/aliments/CHEESE CHEDDAR.png
new file mode 100644
index 0000000..09b8389
--- /dev/null
+++ b/static/images/journal/aliments/CHEESE CHEDDAR.png
Binary files differ
diff --git a/static/images/journal/aliments/CHERRIES.png b/static/images/journal/aliments/CHERRIES.png
new file mode 100644
index 0000000..d49ed35
--- /dev/null
+++ b/static/images/journal/aliments/CHERRIES.png
Binary files differ
diff --git a/static/images/journal/aliments/CHICKEN.png b/static/images/journal/aliments/CHICKEN.png
new file mode 100644
index 0000000..dc5b409
--- /dev/null
+++ b/static/images/journal/aliments/CHICKEN.png
Binary files differ
diff --git a/static/images/journal/aliments/COCONUT MEAT.png b/static/images/journal/aliments/COCONUT MEAT.png
new file mode 100644
index 0000000..75aa367
--- /dev/null
+++ b/static/images/journal/aliments/COCONUT MEAT.png
Binary files differ
diff --git a/static/images/journal/aliments/CREAM.png b/static/images/journal/aliments/CREAM.png
new file mode 100644
index 0000000..dd50fe4
--- /dev/null
+++ b/static/images/journal/aliments/CREAM.png
Binary files differ
diff --git a/static/images/journal/aliments/KELLOGG'S CORN FLAKES.png b/static/images/journal/aliments/KELLOGG'S CORN FLAKES.png
new file mode 100644
index 0000000..cd19738
--- /dev/null
+++ b/static/images/journal/aliments/KELLOGG'S CORN FLAKES.png
Binary files differ
diff --git a/static/images/journal/aliments/MELONS HONEY.png b/static/images/journal/aliments/MELONS HONEY.png
new file mode 100644
index 0000000..2eb4410
--- /dev/null
+++ b/static/images/journal/aliments/MELONS HONEY.png
Binary files differ
diff --git a/static/images/journal/aliments/MILK.png b/static/images/journal/aliments/MILK.png
new file mode 100644
index 0000000..2c7fe18
--- /dev/null
+++ b/static/images/journal/aliments/MILK.png
Binary files differ
diff --git a/static/images/journal/aliments/OIL.png b/static/images/journal/aliments/OIL.png
new file mode 100644
index 0000000..3d16d05
--- /dev/null
+++ b/static/images/journal/aliments/OIL.png
Binary files differ
diff --git a/static/images/journal/aliments/OMELET.png b/static/images/journal/aliments/OMELET.png
new file mode 100644
index 0000000..ec05978
--- /dev/null
+++ b/static/images/journal/aliments/OMELET.png
Binary files differ
diff --git a/static/images/journal/aliments/ORANGES.png b/static/images/journal/aliments/ORANGES.png
new file mode 100644
index 0000000..311201b
--- /dev/null
+++ b/static/images/journal/aliments/ORANGES.png
Binary files differ
diff --git a/static/images/journal/aliments/PEACHES.png b/static/images/journal/aliments/PEACHES.png
new file mode 100644
index 0000000..06d8bb9
--- /dev/null
+++ b/static/images/journal/aliments/PEACHES.png
Binary files differ
diff --git a/static/images/journal/aliments/PINEAPPLE.png b/static/images/journal/aliments/PINEAPPLE.png
new file mode 100644
index 0000000..d4c9cbf
--- /dev/null
+++ b/static/images/journal/aliments/PINEAPPLE.png
Binary files differ
diff --git a/static/images/journal/aliments/PORK.png b/static/images/journal/aliments/PORK.png
new file mode 100644
index 0000000..21f93de
--- /dev/null
+++ b/static/images/journal/aliments/PORK.png
Binary files differ
diff --git a/static/images/journal/aliments/POTATO PANCAKES.png b/static/images/journal/aliments/POTATO PANCAKES.png
new file mode 100644
index 0000000..84c40b4
--- /dev/null
+++ b/static/images/journal/aliments/POTATO PANCAKES.png
Binary files differ
diff --git a/static/images/journal/aliments/SALAD DRSNG. FRENCH.png b/static/images/journal/aliments/SALAD DRSNG. FRENCH.png
new file mode 100644
index 0000000..b16570e
--- /dev/null
+++ b/static/images/journal/aliments/SALAD DRSNG. FRENCH.png
Binary files differ
diff --git a/static/images/journal/aliments/SAUSAGE PORK.png b/static/images/journal/aliments/SAUSAGE PORK.png
new file mode 100644
index 0000000..ddf413c
--- /dev/null
+++ b/static/images/journal/aliments/SAUSAGE PORK.png
Binary files differ
diff --git a/static/images/journal/aliments/SOUP TURKEY NOODLES.png b/static/images/journal/aliments/SOUP TURKEY NOODLES.png
new file mode 100644
index 0000000..e9c579f
--- /dev/null
+++ b/static/images/journal/aliments/SOUP TURKEY NOODLES.png
Binary files differ
diff --git a/static/images/journal/aliments/TURKEY.png b/static/images/journal/aliments/TURKEY.png
new file mode 100644
index 0000000..cdb5bc3
--- /dev/null
+++ b/static/images/journal/aliments/TURKEY.png
Binary files differ
diff --git a/static/images/journal/aliments/WATER.png b/static/images/journal/aliments/WATER.png
new file mode 100644
index 0000000..f73cf61
--- /dev/null
+++ b/static/images/journal/aliments/WATER.png
Binary files differ
diff --git a/static/images/journal/aliments/YOGURT.png b/static/images/journal/aliments/YOGURT.png
new file mode 100644
index 0000000..270816c
--- /dev/null
+++ b/static/images/journal/aliments/YOGURT.png
Binary files differ
diff --git a/static/images/journal/aliments/apple.png b/static/images/journal/aliments/apple.png
new file mode 100644
index 0000000..a5b73e4
--- /dev/null
+++ b/static/images/journal/aliments/apple.png
Binary files differ
diff --git a/static/images/journal/aliments/panier.png b/static/images/journal/aliments/panier.png
new file mode 100644
index 0000000..11f799f
--- /dev/null
+++ b/static/images/journal/aliments/panier.png
Binary files differ
diff --git a/static/images/journal/backgroundeating.png b/static/images/journal/backgroundeating.png
new file mode 100644
index 0000000..2a48928
--- /dev/null
+++ b/static/images/journal/backgroundeating.png
Binary files differ
diff --git a/static/images/journal/backgroundfruits.png b/static/images/journal/backgroundfruits.png
new file mode 100644
index 0000000..d4bc2bb
--- /dev/null
+++ b/static/images/journal/backgroundfruits.png
Binary files differ
diff --git a/static/images/journal/backgroundimg.png b/static/images/journal/backgroundimg.png
new file mode 100644
index 0000000..3ade6f4
--- /dev/null
+++ b/static/images/journal/backgroundimg.png
Binary files differ
diff --git a/static/images/journal/backgroundmeatcounter.png b/static/images/journal/backgroundmeatcounter.png
new file mode 100644
index 0000000..e1974d4
--- /dev/null
+++ b/static/images/journal/backgroundmeatcounter.png
Binary files differ
diff --git a/static/images/journal/backgroundrack.png b/static/images/journal/backgroundrack.png
new file mode 100644
index 0000000..54e5221
--- /dev/null
+++ b/static/images/journal/backgroundrack.png
Binary files differ
diff --git a/static/images/journal/bubblefridge.png b/static/images/journal/bubblefridge.png
new file mode 100644
index 0000000..fd09bcd
--- /dev/null
+++ b/static/images/journal/bubblefridge.png
Binary files differ
diff --git a/static/images/journal/bubblefruits.png b/static/images/journal/bubblefruits.png
new file mode 100644
index 0000000..fba0bfe
--- /dev/null
+++ b/static/images/journal/bubblefruits.png
Binary files differ
diff --git a/static/images/journal/bubblemeatcounter.png b/static/images/journal/bubblemeatcounter.png
new file mode 100644
index 0000000..fba0bfe
--- /dev/null
+++ b/static/images/journal/bubblemeatcounter.png
Binary files differ
diff --git a/static/images/journal/bubblerack.png b/static/images/journal/bubblerack.png
new file mode 100644
index 0000000..fd09bcd
--- /dev/null
+++ b/static/images/journal/bubblerack.png
Binary files differ
diff --git a/static/images/journal/buttoncooking.png b/static/images/journal/buttoncooking.png
new file mode 100644
index 0000000..d39a8e8
--- /dev/null
+++ b/static/images/journal/buttoncooking.png
Binary files differ
diff --git a/static/images/journal/buttoncooking2.png b/static/images/journal/buttoncooking2.png
new file mode 100644
index 0000000..279a9dc
--- /dev/null
+++ b/static/images/journal/buttoncooking2.png
Binary files differ
diff --git a/static/images/journal/buttonfridge.png b/static/images/journal/buttonfridge.png
new file mode 100644
index 0000000..34c284f
--- /dev/null
+++ b/static/images/journal/buttonfridge.png
Binary files differ
diff --git a/static/images/journal/buttonfruits.png b/static/images/journal/buttonfruits.png
new file mode 100644
index 0000000..91efdf1
--- /dev/null
+++ b/static/images/journal/buttonfruits.png
Binary files differ
diff --git a/static/images/journal/buttonmeatcounter.png b/static/images/journal/buttonmeatcounter.png
new file mode 100644
index 0000000..d59ba37
--- /dev/null
+++ b/static/images/journal/buttonmeatcounter.png
Binary files differ
diff --git a/static/images/journal/buttonrack.png b/static/images/journal/buttonrack.png
new file mode 100644
index 0000000..110d18d
--- /dev/null
+++ b/static/images/journal/buttonrack.png
Binary files differ
diff --git a/static/images/journal/image1.jpg b/static/images/journal/image1.jpg
deleted file mode 100644
index ec4d688..0000000
--- a/static/images/journal/image1.jpg
+++ /dev/null
Binary files differ
diff --git a/static/images/journal/image2.jpg b/static/images/journal/image2.jpg
deleted file mode 100644
index e9b9e55..0000000
--- a/static/images/journal/image2.jpg
+++ /dev/null
Binary files differ
diff --git a/static/images/journal/image3.jpg b/static/images/journal/image3.jpg
deleted file mode 100644
index 09f9d3d..0000000
--- a/static/images/journal/image3.jpg
+++ /dev/null
Binary files differ
diff --git a/static/images/journal/image4.jpg b/static/images/journal/image4.jpg
deleted file mode 100644
index 9c67a20..0000000
--- a/static/images/journal/image4.jpg
+++ /dev/null
Binary files differ
diff --git a/static/images/journal/image5.jpg b/static/images/journal/image5.jpg
deleted file mode 100644
index 9322112..0000000
--- a/static/images/journal/image5.jpg
+++ /dev/null
Binary files differ
diff --git a/static/images/journal/jauge-construction.png b/static/images/journal/jauge-construction.png
new file mode 100644
index 0000000..1dd17af
--- /dev/null
+++ b/static/images/journal/jauge-construction.png
Binary files differ
diff --git a/static/images/journal/jauge-water.png b/static/images/journal/jauge-water.png
new file mode 100644
index 0000000..df60d13
--- /dev/null
+++ b/static/images/journal/jauge-water.png
Binary files differ
diff --git a/static/images/journal/shoppinglist.png b/static/images/journal/shoppinglist.png
new file mode 100644
index 0000000..08761ea
--- /dev/null
+++ b/static/images/journal/shoppinglist.png
Binary files differ
diff --git a/static/images/journal/sun.png b/static/images/journal/sun.png
new file mode 100644
index 0000000..06fe006
--- /dev/null
+++ b/static/images/journal/sun.png
Binary files differ
diff --git a/static/images/journal/wrap2.png b/static/images/journal/wrap2.png
new file mode 100644
index 0000000..079c482
--- /dev/null
+++ b/static/images/journal/wrap2.png
Binary files differ
diff --git a/static/images/journal/wrap3.png b/static/images/journal/wrap3.png
new file mode 100644
index 0000000..b999b1e
--- /dev/null
+++ b/static/images/journal/wrap3.png
Binary files differ
diff --git a/static/images/journal/wrap4.png b/static/images/journal/wrap4.png
new file mode 100644
index 0000000..59187c7
--- /dev/null
+++ b/static/images/journal/wrap4.png
Binary files differ
diff --git a/templates/.DS_Store b/templates/.DS_Store
new file mode 100644
index 0000000..0e54788
--- /dev/null
+++ b/templates/.DS_Store
Binary files differ
diff --git a/templates/atoideweb/ajax.html b/templates/atoideweb/ajax.html
deleted file mode 100644
index 8eaaca6..0000000
--- a/templates/atoideweb/ajax.html
+++ /dev/null
@@ -1,41 +0,0 @@
-{% extends "layout.html" %}
-
-{% block content %}
-<h1>{{ title }}</h1>
-
-<div id='ajax-sample' class='form'>
- <h3>{{ _('ajax-sample') }}</h3>
- <form method="post" action="/ajax" name="ajax-sample">
- <input type="radio" value="option 1" name="ajax-sample">option 1<br>
- <input type="radio" value="option 2" name="ajax-sample">option 2<br>
- </form>
-<div>
-
-<script>
-<!--
-$(document).ready(function() {
- $("#ajax-sample input[type='radio']").change( function() {
- $.ajax({
- url: '{{ action }}',
- type: 'POST',
- data: ({ 'ajax-sample' : $(this).val()}),
- success: function(data) {
- var _el = $('#ajax-sample-result');
- _el.html(data.result);
- }
- });
- });
-});
--->
-</script>
-
-<!-- HELPER WAY
-{ options_ajax(_, 'ajax-sample', ['option 1', 'option 2'], '', '/ajax') }
--->
-
-<div id='ajax-result' class='result'>
- <h3>{{ _('ajax-result') }}</h3>
- => <span id="ajax-sample-result"></span>
-</div>
-
-{% endblock %}
diff --git a/templates/atoideweb/gallery.html b/templates/atoideweb/gallery.html
deleted file mode 100644
index cd8e726..0000000
--- a/templates/atoideweb/gallery.html
+++ /dev/null
@@ -1,28 +0,0 @@
-{% extends "layout.html" %}
-{% block head %}
- <!-- js import -->
- <script type="text/javascript" src="/static/js/jquery.lightbox-0.5.min.js"></script>
- <!-- stylesheet import -->
- <link rel="stylesheet" type="text/css" href="/static/css/jquery.lightbox-0.5.css" media="screen" />
-{% endblock %}
-{% block content %}
- <h1>{{ title }}</h1>
- <div id="gallery">
- <ul>
- {% for _i, _img in images %}
- <li>
- <a href="{{ _img }}" title="Image {{ _i }}">
- <img src="{{ _img }}" width="72" height="72" alt="" />
- </a>
- </li>
- {% endfor %}
- </ul>
- <script type="text/javascript">
- <!--
- $(function() {
- $('#gallery a').lightBox();
- });
- -->
- </script>
- </div>
-{% endblock %}
diff --git a/templates/atoideweb/post.html b/templates/atoideweb/post.html
deleted file mode 100644
index 79bb3e2..0000000
--- a/templates/atoideweb/post.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{% extends "layout.html" %}
-
-{% block content %}
-<h1>{{ title }}</h1>
-
-<div class='post-sample' class='form'>
- <h3>{{ _('post-sample') }}</h3>
- <form method="post" action="/post" name="post-sample">
- <input type="radio" value="option-1" name="post-sample">option 1<br>
- <input type="radio" value="option-2" name="post-sample">option 2<br>
- <input type="submit" value="submit" ></input>
- </form>
-<div>
-
-<!-- HELPER WAY
-{ options(_, 'post-sample', ['option 1', 'option 2'], result, '/post') }
--->
-
-<div id='post-result' class='result'>
- <h3>{{ _('post-result') }}</h3>
- => {{ result }}
-</div>
-
-{% endblock %}
diff --git a/templates/eating.html b/templates/eating.html
new file mode 100644
index 0000000..52e949e
--- /dev/null
+++ b/templates/eating.html
@@ -0,0 +1,37 @@
+{% extends "layout.html" %}
+
+{% block content %}
+<h1>{{ title }}</h1>
+<div class=diveating>
+ <div class=eatingleft>{{path}}</div>
+ <div class=eatingmiddle></div>
+ <div class=eatingright>
+ <form action="/eating" method=post>
+ <button name="send" type="submit" value="fruits">
+ <img src="../../static/images/journal/buttonfruits.png">
+ </button>
+ <button name="send" type="submit" value="meatcounter">
+ <img src="../../static/images/journal/buttonmeatcounter.png">
+ </button>
+ <button name="send" type="submit" value="rack">
+ <img src="../../static/images/journal/buttonrack.png">
+ </button>
+ <button name="send" type="submit" value="fridge">
+ <img src="../../static/images/journal/buttonfridge.png">
+ </button>
+ <button name="send" type="submit" value="cooking">
+ <img src="../../static/images/journal/buttoncooking.png">
+ </button>
+ </form>
+ </div>
+</div>
+<!--<form action="/eating" method="post">
+ <select name="select-item" size="3" multiple="multiple">
+ {% for entry in entries %}
+ <option name="select-item">{{entry.title}}</option>
+ {% endfor %}
+ </select>
+ <input type="submit" value="eat"></input>
+</form>-->
+
+{% endblock %}
diff --git a/templates/layout.html b/templates/layout.html
index a320fe4..0f9ec76 100644
--- a/templates/layout.html
+++ b/templates/layout.html
@@ -5,23 +5,17 @@
<head>
<title>{{ title }}</title>
<script src="/static/js/jquery-1.6.2.min.js" type="text/javascript"></script>
+ <link rel=stylesheet type=text/css href="/static/css/style.css">
{% block head %}{% endblock %}
</head>
<body>
- <ul>
- <li>
- <a href="/post">post-sample</a>
- </li>
- <li>
- <a href="/ajax">ajax-sample</a>
- </li>
- <li>
- <a href="/gallery">gallery</a>
- </li>
- <li>
- <a href="/quit">quit</a>
- </li>
- </ul>
+ <div class=page>
+ <div class=metanav>
+ <a href="/main">activity</a>
+ <a href="/eating">eating</a>
+ <a href="/sparetime">sparetime</a>
+ </div>
+
{% block content %}{% endblock %}
</body>
diff --git a/templates/nutrinoweb/.DS_Store b/templates/nutrinoweb/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/templates/nutrinoweb/.DS_Store
Binary files differ
diff --git a/templates/nutrinoweb/addentry.html b/templates/nutrinoweb/addentry.html
new file mode 100644
index 0000000..5e91527
--- /dev/null
+++ b/templates/nutrinoweb/addentry.html
@@ -0,0 +1,128 @@
+{% extends "layout.html" %}
+{% block head %}
+ <!-- js import -->
+ <script type="text/javascript" src="/static/js/jquery.lightbox-0.5.min.js"></script>
+ <!-- stylesheet import -->
+ <link rel="stylesheet" type="text/css" href="/static/css/jquery.lightbox-0.5.css" media="screen" />
+{% endblock %}
+{% block content %}
+ <h1>{{ title }}</h1>
+ <form action="/addentry" method=post class=add-entry>
+ <div class=nameofaliment>
+ Choose the database:
+ <select name="database">
+ <option value="nutrition">nutrition</option>
+ <option value="activity">activity</option>
+ </select>
+ Name:
+ <input type=text size=10 name=title maxlength=21 value='{{entry[0]}}'>
+ <input type=submit value='show values' name=show>
+ </div>
+ <div class=div0>
+ <div class=div1>
+ <dl>
+ </br>
+ <dt>water (g/100g):
+ <dd><input type=text size=5 name=water value={{entry[1]}}>
+ <dt>sugar (g/100g) :
+ <dd><input type=text size=5 name=energie value={{entry[2]}}>
+ <dt>protein (g/100g):
+ <dd><input type=text size=5 name=protein value={{entry[22]}}>
+ </dl>
+ </div>
+ <div class=div2>
+ <dl>
+ <dt>calcium (mg/100g):
+ <dd><input type=text size=5 name=calcium value={{entry[3]}}>
+ <dt>iron (mg/100g):
+ <dd><input type=text size=5 name=iron value={{entry[4]}}>
+ <dt>magnesium (mg/100g):
+ <dd><input type=text size=5 name=magnesium value={{entry[5]}}>
+ <dt>phosphorus (mg/100g):
+ <dd><input type=text size=5 name=phosphorus value={{entry[6]}}>
+ <dt>potassium (mg/100g):
+ <dd><input type=text size=5 name=potassium value={{entry[7]}}>
+ </dl>
+ </div>
+ <div class=div3>
+ <dl>
+ <dt>sodium (mg/100g):
+ <dd><input type=text size=5 name=sodium value={{entry[8]}}>
+ <dt>zinc (mg/100g):
+ <dd><input type=text size=5 name=zinc value={{entry[9]}}>
+ <dt>copper (mg/100g):
+ <dd><input type=text size=5 name=copper value={{entry[10]}}>
+ <dt>vitamine C (mg/100g):
+ <dd><input type=text size=5 name=vit_c value={{entry[11]}}>
+ <dt>thiamin (mg/100g):
+ <dd><input type=text size=5 name=thiamin value={{entry[12]}}>
+ </dl>
+ </div>
+ <div class=div4>
+ <dl>
+ <dt>riboflavin (mg/100g):
+ <dd><input type=text size=5 name=riboflavin value={{entry[13]}}>
+ <dt>niacin (mg/100):
+ <dd><input type=text size=5 name=niacin value={{entry[14]}}>
+ <dt>pantoacid (mg/100g):
+ <dd><input type=text size=5 name=panto_acid value={{entry[15]}}>
+ <dt>vitamine B6 (mg/100g):
+ <dd><input type=text size=5 name=vit_b6 value={{entry[16]}}>
+ <dt>folate (μg/100g):
+ <dd><input type=text size=5 name=folate_tot value={{entry[17]}}>
+ </dl>
+ </div>
+ <div class=div5>
+ <dl>
+ <dt>vitamine B12 (μg/100g):
+ <dd><input type=text size=5 name=vit_b12 value={{entry[18]}}>
+ <dt>vitamine A (μ/100g):
+ <dd><input type=text size=5 name=vit_a value={{entry[19]}}>
+ <dt>vitamine E (μg/100g):
+ <dd><input type=text size=5 name=vit_e value={{entry[20]}}>
+ <dt>vitamine D (μg/100g):
+ <dd><input type=text size=5 name=vit_d value={{entry[21]}}>
+ <dt>Choose a category:
+ <select name="scenario">
+ <option value="{{entry[23]}}" selected>{{entry[23]}}</option>
+ <option value="fruits">fruits/vegetables</option>
+ <option value="meatcounter">meatcounter</option>
+ <option value="fridge">fridge</option>
+ <option value="rack">rack</option>
+ </select>
+ </div>
+ <div id=toCheck>
+ <input type=submit value='insert entry to database' name=insert>
+ <input type=submit value='delete entry from database' name=delete>
+ <input type=submit value='modify entry in database' name=modify>
+ </div>
+</form>
+</div>
+
+ <script type="text/javascript">
+ $(".div0 input").blur(function() {
+ var value = $(this).val();
+ $(this).css("color","black");
+ if(!(value.length === 0)){
+ var numericExpression = /^[0-9.]+$/;
+ if(!value.match(numericExpression)){
+ $(this).css("color","red");
+ }}
+ });
+ </script>
+
+<p></p>
+
+ <!--{% for message in get_flashed_messages() %}
+ <div class=flash>{{ message }}</div>
+ {% endfor %}-->
+
+ <ul class=entries>
+ {% for e in entries %}
+ <li>{{ e.title }}
+ {% else %}
+ <li><em>No entries here so far</em>
+ {% endfor %}
+ </ul>
+
+{% endblock %}
diff --git a/templates/nutrinoweb/eating.html b/templates/nutrinoweb/eating.html
new file mode 100644
index 0000000..0e4fdd6
--- /dev/null
+++ b/templates/nutrinoweb/eating.html
@@ -0,0 +1,63 @@
+{% extends "layout.html" %}
+
+{% block content %}
+<div class=diveating>
+ <div class=eatingleft>
+ <ul>
+ {% for aliment in aliments %}
+ <li><img src="{{ aliment.path }}"></br>{{ aliment.title }}</li>
+ {% endfor %}
+ </ul>
+ </div>
+ <div class=eatingmiddle style="background-image:url({{path}})">
+ <div class=shoppinglist>
+ {% for aliment in aliments %}
+ <li>{{ aliment.quantity }}&nbsp{{ aliment.unit }}&nbsp&nbsp{{ aliment.title }}</li>
+ {% endfor %}
+ </div>
+ <div class={{ scenario }}>
+ <img src="../../static/images/journal/bubble{{ scenario }}.png">
+ <div class='text{{ scenario }}'>{{text}}
+ <form action="/eating" method=post style="visibility:{{visibilitytextbox}}">
+ <input name="title" type="text" size="15">
+ <input type="submit" value="ask" name="askforaliment">
+ <div class=linkaddentry style="visibility:{{linkvisiblity}}"><a href="/addentry">add this aliment</a></div>
+ <div style="visibility:hidden"><input name="info1" type="text" value='{{ scenario }}'></div>
+ </form>
+ </div>
+ <div class='text{{ scenario }}' style="visibility:{{visibilitytextbox2}}">{{text}}
+ <form action="/eating" method=post>
+ <input name="quantity" type="text">
+ <select name="unit">
+ <option value="ml">ml</option>
+ <option value="g">g</option>
+ </select>
+ <input type="submit" value="order" name="orderaliment">
+ <div style="visibility:hidden"><input name="info2" type="text" value='{{entry[0]}}'></div>
+ <div style="visibility:hidden"><input name="info3" type="text" value='{{ scenario }}'></div>
+ </form>
+ </div>
+ </div>
+ </div>
+ <div class=eatingright>
+ <form action="/eating" method=post>
+ <button name="send" type="submit" value="fruits">
+ <img src="../../static/images/journal/buttonfruits.png">
+ </button>
+ <button name="send" type="submit" value="meatcounter">
+ <img src="../../static/images/journal/buttonmeatcounter.png">
+ </button>
+ <button name="send" type="submit" value="rack">
+ <img src="../../static/images/journal/buttonrack.png">
+ </button>
+ <button name="send" type="submit" value="fridge">
+ <img src="../../static/images/journal/buttonfridge.png">
+ </button>
+ <button name="cooking" type="submit" value="cooking">
+ <img src="../../static/images/journal/buttoncooking2.png">
+ </button>
+ </form>
+ </div>
+</div>
+{% endblock %}
+
diff --git a/templates/nutrinoweb/fruits.html b/templates/nutrinoweb/fruits.html
new file mode 100644
index 0000000..7db0ee4
--- /dev/null
+++ b/templates/nutrinoweb/fruits.html
@@ -0,0 +1,10 @@
+{% extends "eating.html" %}
+{% block content2 %}
+
+ <h1>Fruits</h1>
+ <script type="text/javascript">
+
+ </script>
+
+
+{% endblock %}
diff --git a/templates/nutrinoweb/main.html b/templates/nutrinoweb/main.html
new file mode 100644
index 0000000..d822f2f
--- /dev/null
+++ b/templates/nutrinoweb/main.html
@@ -0,0 +1,51 @@
+{% extends "layout.html" %}
+{% block head %}
+{% endblock %}
+{% block content %}
+ <h1>{{ title }}</h1>
+ <div class=sun><img class=sun src='../../static/images/journal/sun.png'></img></div>
+ <div class="main">
+ <div class="water-wrap"><div class="water-value"></div></div>
+ <div class="energie-wrap"><div class="energie-value"></div></div>
+ <div class="vitamine-wrap"><div class="vitamine-value"></div></div>
+ <div class="construction-wrap"><div class="construction-value"</div></div>
+ </div>
+
+ {% for cont in content %}
+ <div class=alimentimages><img class=alimentimages src={{cont.pathimg}}></img></div>
+ <script type="text/javascript">
+ var images = $("img.alimentimages").hide();
+ images.each(function(i){$(this).delay(i*2500).fadeIn(1000);});
+ $(".water-value").css({ height:'{{cont.waterstart}}%'});
+ $(".water-value").animate({height: '{{cont.water}}%'}, {duration: 2500, easing: "linear"})
+ $(".energie-value").css({ height:'{{cont.energiestart}}%'});
+ $(".energie-value").animate({height: '{{cont.energie}}%'}, {duration: 2500, easing: "linear"})
+ $(".vitamine-value").css({ height:'{{cont.vitaminestart}}%'});
+ $(".vitamine-value").animate({height: '{{cont.vitamine}}%'}, {duration: 2500, easing: "linear"})
+ $(".construction-value").css({ height:'{{cont.constructionstart}}%'});
+ $(".construction-value").animate({height:'{{cont.construction}}%'}, {duration: 2500, easing: "linear"})
+ $("img.sun").animate({marginTop: '60px', marginLeft: '0px'}, {duration: 2500, easing: "swing"})
+ </script>
+ {% endfor %}
+ </div>
+
+ <div class=reset><form action="/main" method=post>
+ <input type=submit value='reset' name=reset>
+ </form></div>
+
+<!--{% for cont in content %}
+title: {{cont.title}}</br>
+waterstart: {{cont.waterstart}}</br>
+water: {{cont.water}}</br>
+energiestart: {{cont.energiestart}}</br>
+energie: {{cont.energie}}</br>
+vitaminestart: {{cont.vitaminestart}}</br>
+vitamine: {{cont.vitamine}}</br>
+constructionstart: {{cont.constructionstart}}</br>
+construction: {{cont.construction}}</br></br>
+{% endfor %}-->
+
+{% endblock %}
+
+
+<!--{ 'background-image': 'url({{cont.pathimg}})'}-->
diff --git a/templates/nutrinoweb/sparetime.html b/templates/nutrinoweb/sparetime.html
new file mode 100644
index 0000000..8fb44e3
--- /dev/null
+++ b/templates/nutrinoweb/sparetime.html
@@ -0,0 +1,17 @@
+{% extends "layout.html" %}
+
+{% block content %}
+<h1>{{ title }}</h1>
+
+<form action="/sparetime" method="post">
+ <div class=activities>
+ <ul>
+ {% for activity in activities %}
+ <li><img src="../../static/images/journal/activities/{{ activity.title }}.png">{{ activity.title.lower() }}</li>
+ {% endfor %}
+ </ul>
+ </div>
+</form>
+
+</div>
+{% endblock %}