diff --git a/app/handlers.py b/app/handlers.py index 1747caf..5a90068 100755 --- a/app/handlers.py +++ b/app/handlers.py @@ -5,6 +5,7 @@ from app.modules.examples.yaml_example import YamlExampleHandler from app.modules.training.pipeline_training import PipelineTrainigHandler from app.modules.training.http_training import HttpTrainingHandler +from app.modules.training.datastore_training import DatastoreTrainingHandler def handlers(): return [ @@ -18,5 +19,6 @@ def handlers(): (r'/examples/datastore/([^\/]+)/([^\/]+)', DatastoreExampleHandler), (r'/examples/yaml', YamlExampleHandler), (r'/training/pipeline/(\d+)', PipelineTrainigHandler), - (r'/training/http/([\d\.]+)/([\d\.]+)', HttpTrainingHandler), + (r'/training/http/([-?\d\.]+)/([-?\d\.]+)', HttpTrainingHandler), + (r'/training/datastore', DatastoreTrainingHandler), ] diff --git a/app/modules/common/kinds.py b/app/modules/common/kinds.py new file mode 100644 index 0000000..6d2927b --- /dev/null +++ b/app/modules/common/kinds.py @@ -0,0 +1,4 @@ +from google.appengine.ext import ndb + +class Example(ndb.Model): + value = ndb.StringProperty() \ No newline at end of file diff --git a/app/modules/home.html b/app/modules/home.html index a341e1f..5a855ce 100755 --- a/app/modules/home.html +++ b/app/modules/home.html @@ -9,7 +9,8 @@

Home

  • Datastore example (load)
  • Yaml example
  • Pipeline training
  • -
  • Http training
  • +
  • Http training
  • +
  • Datastore training
  • Logged in as : {{user_name}}

    diff --git a/app/modules/home.py b/app/modules/home.py index 3c1e726..7955d71 100644 --- a/app/modules/home.py +++ b/app/modules/home.py @@ -1,7 +1,7 @@ import webapp2 import logging import os - +import geocoder from google.appengine.ext.webapp import template from google.appengine.api import users @@ -12,6 +12,17 @@ def get(self): # get logged in user user = users.get_current_user() + # get user coordinates via user ip + g = geocoder.ip(self.request.remote_addr) + + if not g.latlng: + # if user coordinates is not detected locate in cairo + lat = 30.0355 + lng = 31.223 + else: + lat = g.latlng[0] + lng = g.latlng[1] + template_path = os.path.join(os.path.dirname(__file__), 'home.html') - self.response.write(template.render(template_path, {'user_name' : user.nickname() })) + self.response.write(template.render(template_path, {'user_name' : user.nickname() , 'lat' : lat , 'lng' : lng})) diff --git a/app/modules/training/datastore_training.html b/app/modules/training/datastore_training.html new file mode 100644 index 0000000..d125b88 --- /dev/null +++ b/app/modules/training/datastore_training.html @@ -0,0 +1,14 @@ + + +

    Datastore Training

    +
    + {% for entity in entities %} +

    {{ entity.key }}

    +

    {{ entity.value }}

    + {% endfor %} + {% if not entities %} + No entities found + {% endif %} +
    + + diff --git a/app/modules/training/datastore_training.py b/app/modules/training/datastore_training.py new file mode 100644 index 0000000..dbfaadb --- /dev/null +++ b/app/modules/training/datastore_training.py @@ -0,0 +1,25 @@ +import webapp2 +import logging +import os +from google.appengine.ext.webapp import template +from app.modules.common.kinds import Example + +class DatastoreTrainingHandler(webapp2.RequestHandler): + def get(self): + logging.info("DatastoreTrainingHandler") + + LIST_DEFAULT_LIMIT = 20 + + # get entities + entities_for_example_kind = Example.query().fetch(LIST_DEFAULT_LIMIT) + + # make a list of key value pairs + entities = [] + for entity in entities_for_example_kind: + entities.append({'key':entity.key.string_id() , 'value':entity.value}) + + template_path = os.path.join(os.path.dirname(__file__), 'datastore_training.html') + self.response.write(template.render(template_path, { + 'entities': entities, + })) + diff --git a/requirements.txt b/requirements.txt index d7b2f4b..a3e8c2a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ GoogleAppEnginePipeline GoogleAppEngineCloudStorageClient requests requests_toolbelt +geocoder \ No newline at end of file