diff options
author | Stefanie 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) |
commit | ab40c11f28b414bfda349c0ada36fe1e8945c9e7 (patch) | |
tree | 993c5211b5b16f5de5ca9b5a9bc4cec4ecfb25d8 | |
parent | ade7c7edac25ce8df70bf1d15a6c8ed093902c79 (diff) |
my first commit of the first version of nutrinoweb includes the choice of ingredients and activities, consumption and the database-management
123 files changed, 1215 insertions, 652 deletions
diff --git a/.DS_Store b/.DS_Store Binary files differnew file mode 100644 index 0000000..6068657 --- /dev/null +++ b/.DS_Store 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 Binary files differnew file mode 100644 index 0000000..442c665 --- /dev/null +++ b/DATABASE diff --git a/DATABASE2 b/DATABASE2 Binary files differnew file mode 100644 index 0000000..620ce22 --- /dev/null +++ b/DATABASE2 diff --git a/DATABASE3 b/DATABASE3 Binary files differnew file mode 100644 index 0000000..c6c2098 --- /dev/null +++ b/DATABASE3 @@ -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 Binary files differnew file mode 100644 index 0000000..226dc11 --- /dev/null +++ b/docs/.DS_Store diff --git a/docs/source/.DS_Store b/docs/source/.DS_Store Binary files differnew file mode 100644 index 0000000..e1a71de --- /dev/null +++ b/docs/source/.DS_Store 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 Binary files differnew file mode 100644 index 0000000..8a60703 --- /dev/null +++ b/nutrinoweb/.DS_Store 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 Binary files differnew file mode 100644 index 0000000..f7dace6 --- /dev/null +++ b/nutrinoweb/controllers/.DS_Store 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 Binary files differnew file mode 100644 index 0000000..5008ddf --- /dev/null +++ b/po/.DS_Store @@ -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 Binary files differnew file mode 100644 index 0000000..33ea6bf --- /dev/null +++ b/static/.DS_Store diff --git a/static/css/.DS_Store b/static/css/.DS_Store Binary files differnew file mode 100644 index 0000000..5008ddf --- /dev/null +++ b/static/css/.DS_Store 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 Binary files differnew file mode 100644 index 0000000..4f78abc --- /dev/null +++ b/static/images/.DS_Store diff --git a/static/images/journal/.DS_Store b/static/images/journal/.DS_Store Binary files differnew file mode 100644 index 0000000..8e6e528 --- /dev/null +++ b/static/images/journal/.DS_Store diff --git a/static/images/journal/activities/COOKING.png b/static/images/journal/activities/COOKING.png Binary files differnew file mode 100644 index 0000000..45c0c48 --- /dev/null +++ b/static/images/journal/activities/COOKING.png diff --git a/static/images/journal/activities/READING.png b/static/images/journal/activities/READING.png Binary files differnew file mode 100644 index 0000000..753160e --- /dev/null +++ b/static/images/journal/activities/READING.png diff --git a/static/images/journal/activities/SOCCER.png b/static/images/journal/activities/SOCCER.png Binary files differnew file mode 100644 index 0000000..828b4aa --- /dev/null +++ b/static/images/journal/activities/SOCCER.png diff --git a/static/images/journal/activities/SWIMMING.png b/static/images/journal/activities/SWIMMING.png Binary files differnew file mode 100644 index 0000000..bc3a206 --- /dev/null +++ b/static/images/journal/activities/SWIMMING.png diff --git a/static/images/journal/aliments/.DS_Store b/static/images/journal/aliments/.DS_Store Binary files differnew file mode 100644 index 0000000..87c447d --- /dev/null +++ b/static/images/journal/aliments/.DS_Store diff --git a/static/images/journal/aliments/ARTICHOKES.png b/static/images/journal/aliments/ARTICHOKES.png Binary files differnew file mode 100644 index 0000000..a837b40 --- /dev/null +++ b/static/images/journal/aliments/ARTICHOKES.png diff --git a/static/images/journal/aliments/BEEF.png b/static/images/journal/aliments/BEEF.png Binary files differnew file mode 100644 index 0000000..475b508 --- /dev/null +++ b/static/images/journal/aliments/BEEF.png diff --git a/static/images/journal/aliments/BLUEBERRIES.png b/static/images/journal/aliments/BLUEBERRIES.png Binary files differnew file mode 100644 index 0000000..081746d --- /dev/null +++ b/static/images/journal/aliments/BLUEBERRIES.png diff --git a/static/images/journal/aliments/BREAD.png b/static/images/journal/aliments/BREAD.png Binary files differnew file mode 100644 index 0000000..b81891b --- /dev/null +++ b/static/images/journal/aliments/BREAD.png diff --git a/static/images/journal/aliments/BUTTER WITH SALT.png b/static/images/journal/aliments/BUTTER WITH SALT.png Binary files differnew file mode 100644 index 0000000..748d97d --- /dev/null +++ b/static/images/journal/aliments/BUTTER WITH SALT.png diff --git a/static/images/journal/aliments/CHEESE CHEDDAR.png b/static/images/journal/aliments/CHEESE CHEDDAR.png Binary files differnew file mode 100644 index 0000000..09b8389 --- /dev/null +++ b/static/images/journal/aliments/CHEESE CHEDDAR.png diff --git a/static/images/journal/aliments/CHERRIES.png b/static/images/journal/aliments/CHERRIES.png Binary files differnew file mode 100644 index 0000000..d49ed35 --- /dev/null +++ b/static/images/journal/aliments/CHERRIES.png diff --git a/static/images/journal/aliments/CHICKEN.png b/static/images/journal/aliments/CHICKEN.png Binary files differnew file mode 100644 index 0000000..dc5b409 --- /dev/null +++ b/static/images/journal/aliments/CHICKEN.png diff --git a/static/images/journal/aliments/COCONUT MEAT.png b/static/images/journal/aliments/COCONUT MEAT.png Binary files differnew file mode 100644 index 0000000..75aa367 --- /dev/null +++ b/static/images/journal/aliments/COCONUT MEAT.png diff --git a/static/images/journal/aliments/CREAM.png b/static/images/journal/aliments/CREAM.png Binary files differnew file mode 100644 index 0000000..dd50fe4 --- /dev/null +++ b/static/images/journal/aliments/CREAM.png diff --git a/static/images/journal/aliments/KELLOGG'S CORN FLAKES.png b/static/images/journal/aliments/KELLOGG'S CORN FLAKES.png Binary files differnew file mode 100644 index 0000000..cd19738 --- /dev/null +++ b/static/images/journal/aliments/KELLOGG'S CORN FLAKES.png diff --git a/static/images/journal/aliments/MELONS HONEY.png b/static/images/journal/aliments/MELONS HONEY.png Binary files differnew file mode 100644 index 0000000..2eb4410 --- /dev/null +++ b/static/images/journal/aliments/MELONS HONEY.png diff --git a/static/images/journal/aliments/MILK.png b/static/images/journal/aliments/MILK.png Binary files differnew file mode 100644 index 0000000..2c7fe18 --- /dev/null +++ b/static/images/journal/aliments/MILK.png diff --git a/static/images/journal/aliments/OIL.png b/static/images/journal/aliments/OIL.png Binary files differnew file mode 100644 index 0000000..3d16d05 --- /dev/null +++ b/static/images/journal/aliments/OIL.png diff --git a/static/images/journal/aliments/OMELET.png b/static/images/journal/aliments/OMELET.png Binary files differnew file mode 100644 index 0000000..ec05978 --- /dev/null +++ b/static/images/journal/aliments/OMELET.png diff --git a/static/images/journal/aliments/ORANGES.png b/static/images/journal/aliments/ORANGES.png Binary files differnew file mode 100644 index 0000000..311201b --- /dev/null +++ b/static/images/journal/aliments/ORANGES.png diff --git a/static/images/journal/aliments/PEACHES.png b/static/images/journal/aliments/PEACHES.png Binary files differnew file mode 100644 index 0000000..06d8bb9 --- /dev/null +++ b/static/images/journal/aliments/PEACHES.png diff --git a/static/images/journal/aliments/PINEAPPLE.png b/static/images/journal/aliments/PINEAPPLE.png Binary files differnew file mode 100644 index 0000000..d4c9cbf --- /dev/null +++ b/static/images/journal/aliments/PINEAPPLE.png diff --git a/static/images/journal/aliments/PORK.png b/static/images/journal/aliments/PORK.png Binary files differnew file mode 100644 index 0000000..21f93de --- /dev/null +++ b/static/images/journal/aliments/PORK.png diff --git a/static/images/journal/aliments/POTATO PANCAKES.png b/static/images/journal/aliments/POTATO PANCAKES.png Binary files differnew file mode 100644 index 0000000..84c40b4 --- /dev/null +++ b/static/images/journal/aliments/POTATO PANCAKES.png diff --git a/static/images/journal/aliments/SALAD DRSNG. FRENCH.png b/static/images/journal/aliments/SALAD DRSNG. FRENCH.png Binary files differnew file mode 100644 index 0000000..b16570e --- /dev/null +++ b/static/images/journal/aliments/SALAD DRSNG. FRENCH.png diff --git a/static/images/journal/aliments/SAUSAGE PORK.png b/static/images/journal/aliments/SAUSAGE PORK.png Binary files differnew file mode 100644 index 0000000..ddf413c --- /dev/null +++ b/static/images/journal/aliments/SAUSAGE PORK.png diff --git a/static/images/journal/aliments/SOUP TURKEY NOODLES.png b/static/images/journal/aliments/SOUP TURKEY NOODLES.png Binary files differnew file mode 100644 index 0000000..e9c579f --- /dev/null +++ b/static/images/journal/aliments/SOUP TURKEY NOODLES.png diff --git a/static/images/journal/aliments/TURKEY.png b/static/images/journal/aliments/TURKEY.png Binary files differnew file mode 100644 index 0000000..cdb5bc3 --- /dev/null +++ b/static/images/journal/aliments/TURKEY.png diff --git a/static/images/journal/aliments/WATER.png b/static/images/journal/aliments/WATER.png Binary files differnew file mode 100644 index 0000000..f73cf61 --- /dev/null +++ b/static/images/journal/aliments/WATER.png diff --git a/static/images/journal/aliments/YOGURT.png b/static/images/journal/aliments/YOGURT.png Binary files differnew file mode 100644 index 0000000..270816c --- /dev/null +++ b/static/images/journal/aliments/YOGURT.png diff --git a/static/images/journal/aliments/apple.png b/static/images/journal/aliments/apple.png Binary files differnew file mode 100644 index 0000000..a5b73e4 --- /dev/null +++ b/static/images/journal/aliments/apple.png diff --git a/static/images/journal/aliments/panier.png b/static/images/journal/aliments/panier.png Binary files differnew file mode 100644 index 0000000..11f799f --- /dev/null +++ b/static/images/journal/aliments/panier.png diff --git a/static/images/journal/backgroundeating.png b/static/images/journal/backgroundeating.png Binary files differnew file mode 100644 index 0000000..2a48928 --- /dev/null +++ b/static/images/journal/backgroundeating.png diff --git a/static/images/journal/backgroundfruits.png b/static/images/journal/backgroundfruits.png Binary files differnew file mode 100644 index 0000000..d4bc2bb --- /dev/null +++ b/static/images/journal/backgroundfruits.png diff --git a/static/images/journal/backgroundimg.png b/static/images/journal/backgroundimg.png Binary files differnew file mode 100644 index 0000000..3ade6f4 --- /dev/null +++ b/static/images/journal/backgroundimg.png diff --git a/static/images/journal/backgroundmeatcounter.png b/static/images/journal/backgroundmeatcounter.png Binary files differnew file mode 100644 index 0000000..e1974d4 --- /dev/null +++ b/static/images/journal/backgroundmeatcounter.png diff --git a/static/images/journal/backgroundrack.png b/static/images/journal/backgroundrack.png Binary files differnew file mode 100644 index 0000000..54e5221 --- /dev/null +++ b/static/images/journal/backgroundrack.png diff --git a/static/images/journal/bubblefridge.png b/static/images/journal/bubblefridge.png Binary files differnew file mode 100644 index 0000000..fd09bcd --- /dev/null +++ b/static/images/journal/bubblefridge.png diff --git a/static/images/journal/bubblefruits.png b/static/images/journal/bubblefruits.png Binary files differnew file mode 100644 index 0000000..fba0bfe --- /dev/null +++ b/static/images/journal/bubblefruits.png diff --git a/static/images/journal/bubblemeatcounter.png b/static/images/journal/bubblemeatcounter.png Binary files differnew file mode 100644 index 0000000..fba0bfe --- /dev/null +++ b/static/images/journal/bubblemeatcounter.png diff --git a/static/images/journal/bubblerack.png b/static/images/journal/bubblerack.png Binary files differnew file mode 100644 index 0000000..fd09bcd --- /dev/null +++ b/static/images/journal/bubblerack.png diff --git a/static/images/journal/buttoncooking.png b/static/images/journal/buttoncooking.png Binary files differnew file mode 100644 index 0000000..d39a8e8 --- /dev/null +++ b/static/images/journal/buttoncooking.png diff --git a/static/images/journal/buttoncooking2.png b/static/images/journal/buttoncooking2.png Binary files differnew file mode 100644 index 0000000..279a9dc --- /dev/null +++ b/static/images/journal/buttoncooking2.png diff --git a/static/images/journal/buttonfridge.png b/static/images/journal/buttonfridge.png Binary files differnew file mode 100644 index 0000000..34c284f --- /dev/null +++ b/static/images/journal/buttonfridge.png diff --git a/static/images/journal/buttonfruits.png b/static/images/journal/buttonfruits.png Binary files differnew file mode 100644 index 0000000..91efdf1 --- /dev/null +++ b/static/images/journal/buttonfruits.png diff --git a/static/images/journal/buttonmeatcounter.png b/static/images/journal/buttonmeatcounter.png Binary files differnew file mode 100644 index 0000000..d59ba37 --- /dev/null +++ b/static/images/journal/buttonmeatcounter.png diff --git a/static/images/journal/buttonrack.png b/static/images/journal/buttonrack.png Binary files differnew file mode 100644 index 0000000..110d18d --- /dev/null +++ b/static/images/journal/buttonrack.png diff --git a/static/images/journal/image1.jpg b/static/images/journal/image1.jpg Binary files differdeleted file mode 100644 index ec4d688..0000000 --- a/static/images/journal/image1.jpg +++ /dev/null diff --git a/static/images/journal/image2.jpg b/static/images/journal/image2.jpg Binary files differdeleted file mode 100644 index e9b9e55..0000000 --- a/static/images/journal/image2.jpg +++ /dev/null diff --git a/static/images/journal/image3.jpg b/static/images/journal/image3.jpg Binary files differdeleted file mode 100644 index 09f9d3d..0000000 --- a/static/images/journal/image3.jpg +++ /dev/null diff --git a/static/images/journal/image4.jpg b/static/images/journal/image4.jpg Binary files differdeleted file mode 100644 index 9c67a20..0000000 --- a/static/images/journal/image4.jpg +++ /dev/null diff --git a/static/images/journal/image5.jpg b/static/images/journal/image5.jpg Binary files differdeleted file mode 100644 index 9322112..0000000 --- a/static/images/journal/image5.jpg +++ /dev/null diff --git a/static/images/journal/jauge-construction.png b/static/images/journal/jauge-construction.png Binary files differnew file mode 100644 index 0000000..1dd17af --- /dev/null +++ b/static/images/journal/jauge-construction.png diff --git a/static/images/journal/jauge-water.png b/static/images/journal/jauge-water.png Binary files differnew file mode 100644 index 0000000..df60d13 --- /dev/null +++ b/static/images/journal/jauge-water.png diff --git a/static/images/journal/shoppinglist.png b/static/images/journal/shoppinglist.png Binary files differnew file mode 100644 index 0000000..08761ea --- /dev/null +++ b/static/images/journal/shoppinglist.png diff --git a/static/images/journal/sun.png b/static/images/journal/sun.png Binary files differnew file mode 100644 index 0000000..06fe006 --- /dev/null +++ b/static/images/journal/sun.png diff --git a/static/images/journal/wrap2.png b/static/images/journal/wrap2.png Binary files differnew file mode 100644 index 0000000..079c482 --- /dev/null +++ b/static/images/journal/wrap2.png diff --git a/static/images/journal/wrap3.png b/static/images/journal/wrap3.png Binary files differnew file mode 100644 index 0000000..b999b1e --- /dev/null +++ b/static/images/journal/wrap3.png diff --git a/static/images/journal/wrap4.png b/static/images/journal/wrap4.png Binary files differnew file mode 100644 index 0000000..59187c7 --- /dev/null +++ b/static/images/journal/wrap4.png diff --git a/templates/.DS_Store b/templates/.DS_Store Binary files differnew file mode 100644 index 0000000..0e54788 --- /dev/null +++ b/templates/.DS_Store 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 Binary files differnew file mode 100644 index 0000000..5008ddf --- /dev/null +++ b/templates/nutrinoweb/.DS_Store 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 }} {{ aliment.unit }}  {{ 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 %} |