From f78e172eda2bd3d2d567625119866c7197aa57ff Mon Sep 17 00:00:00 2001 From: Massimo Date: Fri, 20 Sep 2013 12:47:15 -0500 Subject: [PATCH] fixed issue 1673, propagation for format in archive tables --- VERSION | 2 +- gluon/dal.py | 6 ++++-- gluon/globals.py | 8 ++++++++ gluon/main.py | 8 ++------ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/VERSION b/VERSION index 761c1f37..280e9dcb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.6.3-stable+timestamp.2013.09.19.22.17.43 +Version 2.6.3-stable+timestamp.2013.09.20.12.45.53 diff --git a/gluon/dal.py b/gluon/dal.py index bba0e469..34efd87a 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -8457,8 +8457,10 @@ class Table(object): clones.append(field.clone( unique=False, type=field.type if nfk else 'bigint')) archive_db.define_table( - archive_name, Field(current_record,field_type, - label=current_record_label), *clones) + archive_name, + Field(current_record,field_type,label=current_record_label), + *clones,**dict(format=self._format)) + self._before_update.append( lambda qset,fs,db=archive_db,an=archive_name,cn=current_record: archive_record(qset,fs,db[an],cn)) diff --git a/gluon/globals.py b/gluon/globals.py index 2897ff56..359475bf 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -932,6 +932,14 @@ class Session(Storage): else: response.session_new = True + def _fixup_before_save(self): + response = current.response + rcookies = response.cookies + if self._forget and response.session_id_name in rcookies: + del rcookies[response.session_id_name] + elif self._secure and response.session_id_name in rcookies: + rcookies[response.session_id_name]['secure'] = True + def clear_session_cookies(sefl): request = current.request response = current.response diff --git a/gluon/main.py b/gluon/main.py index d8f664ee..2a17528c 100644 --- a/gluon/main.py +++ b/gluon/main.py @@ -503,12 +503,8 @@ def wsgibase(environ, responder): # store cookies in headers # ################################################## - rcookies = response.cookies - if session._forget and response.session_id_name in rcookies: - del rcookies[response.session_id_name] - elif session._secure: - rcookies[response.session_id_name]['secure'] = True - http_response.cookies2headers(rcookies) + session._fixup_before_save() + http_response.cookies2headers(response.cookies) ticket = None