Does the latest web2py Admin page now run on GAE so that we can directly edit the .py files on the GAE file system, thereby doing all web2py dev "in the cloud"? Or is it still necessary to do development on a private machine and then upload the modified app to GAE each time?
On May 19, 3:35 pm, HansD <[email protected]> wrote: > I know GAE cannot do direct JOINS. > However, a modification in the table layout or a workaround on DAL > level should be possible I think (but I haven't had the time yet to > figure that one out yet). > > On May 19, 9:10 pm, mdipierro <[email protected]> wrote: > > > > > Because the example we provide uses a JOIN and GAE cannot do JOINS. > > > Massimo > > > On May 19, 1:57 pm, Hans Donner <[email protected]> wrote: > > > > Trying to make the web2py examples run out of the box on google apps > > > engine (sdk). It now runs almost all examples, only the purchase part > > > of the database not yet, anyone a suggestion for this? > > > > The fixing might be a bit quick&dirty, but I was after the results. > > > > Index: applications/examples/controllers/database_examples.py > > > =================================================================== > > > --- applications/examples/controllers/database_examples.py (revision > > > 953) > > > +++ applications/examples/controllers/database_examples.py (working > > > copy) > > > @@ -100,9 +100,13 @@ > > > > # ## now get a list of all purchases > > > > - records = db(purchased).select(db.users.name, > > > - db.purchases.quantity, > > > - db.products.name) > > > + # quick fix to make it runnable on gae > > > + if purchased: > > > + records = db(purchased).select(db.users.name, > > > + db.purchases.quantity, > > > + db.products.name) > > > + else: > > > + records = db().select(db.users.ALL)) > > > return dict(form=form, records=SQLTABLE(records), vars=form.vars, > > > vars2=request.vars) > > > > Index: applications/examples/models/db.py > > > =================================================================== > > > --- applications/examples/models/db.py (revision 953) > > > +++ applications/examples/models/db.py (working copy) > > > @@ -33,8 +33,12 @@ > > > SQLField('product_id', db.products), SQLField > > > ('quantity' > > > , 'integer')) > > > > -purchased = (db.users.id == db.purchases.buyer_id) & (db.products.id > > > - == db.purchases.product_id) > > > +from gluon.settings import settings > > > +if not settings.web2py_runtime_gae: > > > + purchased = (db.users.id == db.purchases.buyer_id) & > > > (db.products.id > > > + == db.purchases.product_id) > > > +else: > > > + purchased = None > > > > db.users.name.requires = IS_NOT_EMPTY() > > > db.users.email.requires = [IS_EMAIL(), IS_NOT_IN_DB(db, > > > 'users.email')] > > > Index: gluon/cache.py > > > =================================================================== > > > --- gluon/cache.py (revision 953) > > > +++ gluon/cache.py (working copy) > > > @@ -160,11 +160,21 @@ > > > class Cache(object): > > > > def __init__(self, request): > > > - self.ram = CacheInRam(request) > > > - try: > > > - self.disk = CacheOnDisk(request) > > > - except IOError: > > > - logging.warning('no cache.disk') > > > + > > > + from gluon.settings import settings > > > + if settings.web2py_runtime_gae: > > > + from gluon.contrib.gae_memcache import MemcacheClient > > > + self.ram=self.disk=MemcacheClient(request) > > > + else: > > > + > > > + > > > + self.ram = CacheInRam(request) > > > + try: > > > + self.disk = CacheOnDisk(request) > > > + except IOError: > > > + logging.warning('no cache.disk (IOError)') > > > + except AttributeError: > > > + logging.warning('no cache.disk (AttributeError)') > > > > def __call__( > > > self, > > > Index: gluon/compileapp.py > > > =================================================================== > > > --- gluon/compileapp.py (revision 953) > > > +++ gluon/compileapp.py (working copy) > > > @@ -37,7 +37,8 @@ > > > logging.warning('unable to import py_compile') > > > from rewrite import error_message_custom > > > > -is_gae = settings.web2py_runtime in > > > ['gae:development','gae:production'] > > > +#is_gae = settings.web2py_runtime in > > > ['gae:development','gae:production'] > > > +is_gae = settings.web2py_runtime_gae > > > > TEST_CODE = \ > > > r""" > > > Index: gaehandler.py > > > =================================================================== > > > --- gaehandler.py (revision 953) > > > +++ gaehandler.py (working copy) > > > @@ -15,10 +15,15 @@ > > > > from gluon.settings import settings > > > > + > > > + > > > + > > > if os.environ.get('SERVER_SOFTWARE','').startswith('Devel'): > > > - (settings.web2py_runtime, debug) = ('gae:development', True) > > > + (settings.web2py_runtime, settings.web2py_runtime_gae, debug) = \ > > > + ('gae:development', True, True) > > > else: > > > - (settings.web2py_runtime, debug) = ('gae:production', False) > > > + (settings.web2py_runtime, settings.web2py_runtime_gae, debug) = \ > > > + ('gae:production', True, False) > > > > import gluon.main- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

