diff --git a/VERSION b/VERSION
index bd8fb753..98b824e6 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-Version 2.1.1 (2012-10-17 12:04:15) dev
+Version 2.1.1 (2012-10-17 14:29:55) dev
diff --git a/applications/admin/controllers/appadmin.py b/applications/admin/controllers/appadmin.py
index c25fed29..bc8ae060 100644
--- a/applications/admin/controllers/appadmin.py
+++ b/applications/admin/controllers/appadmin.py
@@ -200,13 +200,14 @@ def select():
_class='delete', _type='checkbox', value=False), ''),
TR('', '', INPUT(_type='submit', _value=T('submit')))),
_action=URL(r=request,args=request.args))
+
+ tb = None
if form.accepts(request.vars, formname=None):
regex = re.compile(request.args[0] + '\.(?P
\w+)\..+')
match = regex.match(form.vars.query.strip())
if match:
table = match.group('table')
try:
- tb = None
nrows = db(query).count()
if form.vars.update_check and form.vars.update_fields:
db(query).update(**eval_in_global_env('dict(%s)'
diff --git a/applications/examples/controllers/appadmin.py b/applications/examples/controllers/appadmin.py
index c25fed29..bc8ae060 100644
--- a/applications/examples/controllers/appadmin.py
+++ b/applications/examples/controllers/appadmin.py
@@ -200,13 +200,14 @@ def select():
_class='delete', _type='checkbox', value=False), ''),
TR('', '', INPUT(_type='submit', _value=T('submit')))),
_action=URL(r=request,args=request.args))
+
+ tb = None
if form.accepts(request.vars, formname=None):
regex = re.compile(request.args[0] + '\.(?P\w+)\..+')
match = regex.match(form.vars.query.strip())
if match:
table = match.group('table')
try:
- tb = None
nrows = db(query).count()
if form.vars.update_check and form.vars.update_fields:
db(query).update(**eval_in_global_env('dict(%s)'
diff --git a/applications/welcome/controllers/appadmin.py b/applications/welcome/controllers/appadmin.py
index c25fed29..bc8ae060 100644
--- a/applications/welcome/controllers/appadmin.py
+++ b/applications/welcome/controllers/appadmin.py
@@ -200,13 +200,14 @@ def select():
_class='delete', _type='checkbox', value=False), ''),
TR('', '', INPUT(_type='submit', _value=T('submit')))),
_action=URL(r=request,args=request.args))
+
+ tb = None
if form.accepts(request.vars, formname=None):
regex = re.compile(request.args[0] + '\.(?P\w+)\..+')
match = regex.match(form.vars.query.strip())
if match:
table = match.group('table')
try:
- tb = None
nrows = db(query).count()
if form.vars.update_check and form.vars.update_fields:
db(query).update(**eval_in_global_env('dict(%s)'
diff --git a/gluon/globals.py b/gluon/globals.py
index d601b65e..7092f330 100644
--- a/gluon/globals.py
+++ b/gluon/globals.py
@@ -111,8 +111,10 @@ class Request(Storage):
def user_agent(self):
from gluon.contrib import user_agent_parser
session = current.session
- user_agent = session._user_agent = session._user_agent or \
+ user_agent = session._user_agent or \
user_agent_parser.detect(self.env.http_user_agent)
+ if session:
+ session._user_agent = user_agent
user_agent = Storage(user_agent)
for key,value in user_agent.items():
if isinstance(value,dict):
@@ -666,7 +668,8 @@ class Session(Storage):
def _unchanged(self):
previous_session_hash = self.pop('_session_hash',None)
- if not previous_session_hash and not self:
+ if not previous_session_hash and not \
+ any(value is not None for value in self.itervalues()):
return True
session_pickled = cPickle.dumps(dict(self))
session_hash = hashlib.md5(session_pickled).hexdigest()
diff --git a/gluon/storage.py b/gluon/storage.py
index 4a1900d5..92851139 100644
--- a/gluon/storage.py
+++ b/gluon/storage.py
@@ -48,7 +48,6 @@ class Storage(dict):
__getstate__ = lambda self: None
__copy__ = lambda self: Storage(self)
-
def getlist(self,key):
"""
Return a Storage value as a list.