csv can return a generator, thanks Jonathan
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.2.1 (2012-10-29 10:09:01) stable
|
Version 2.2.1 (2012-10-29 11:35:59) stable
|
||||||
|
|||||||
+13
-15
@@ -1365,13 +1365,13 @@ class Auth(object):
|
|||||||
archive_names='%(tablename)s_archive',
|
archive_names='%(tablename)s_archive',
|
||||||
current_record='current_record'):
|
current_record='current_record'):
|
||||||
"""
|
"""
|
||||||
to enable full record vernionioning (including auth tables):
|
to enable full record versioning (including auth tables):
|
||||||
|
|
||||||
auth = Auth(db)
|
auth = Auth(db)
|
||||||
auth.define_tables(signature=True)
|
auth.define_tables(signature=True)
|
||||||
# define our own tables
|
# define our own tables
|
||||||
db.define_table('mything',Field('name'),auth.signature)
|
db.define_table('mything',Field('name'),auth.signature)
|
||||||
auth.enable_record_vernining(tables=db)
|
auth.enable_record_versioning(tables=db)
|
||||||
|
|
||||||
tables can be the db (all table) or a list of tables.
|
tables can be the db (all table) or a list of tables.
|
||||||
only tables with modified_by and modified_on fiels (as created
|
only tables with modified_by and modified_on fiels (as created
|
||||||
@@ -1386,7 +1386,7 @@ class Auth(object):
|
|||||||
|
|
||||||
Important: If you use auth.enable_record_versioning,
|
Important: If you use auth.enable_record_versioning,
|
||||||
do not use auth.archive or you will end up with duplicates.
|
do not use auth.archive or you will end up with duplicates.
|
||||||
auth.archive does explicitely what enable_record_versioning
|
auth.archive does explicitly what enable_record_versioning
|
||||||
does automatically.
|
does automatically.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -1489,7 +1489,7 @@ class Auth(object):
|
|||||||
IS_NOT_IN_DB(db, '%s.username' % settings.table_user_name)]
|
IS_NOT_IN_DB(db, '%s.username' % settings.table_user_name)]
|
||||||
if not settings.username_case_sensitive:
|
if not settings.username_case_sensitive:
|
||||||
is_unique_username.insert(1, IS_LOWER())
|
is_unique_username.insert(1, IS_LOWER())
|
||||||
table = db.define_table(
|
db.define_table(
|
||||||
settings.table_user_name,
|
settings.table_user_name,
|
||||||
Field('first_name', length=128, default='',
|
Field('first_name', length=128, default='',
|
||||||
label=self.messages.label_first_name,
|
label=self.messages.label_first_name,
|
||||||
@@ -1522,7 +1522,7 @@ class Auth(object):
|
|||||||
fake_migrate=fake_migrate,
|
fake_migrate=fake_migrate,
|
||||||
format='%(username)s'))
|
format='%(username)s'))
|
||||||
else:
|
else:
|
||||||
table = db.define_table(
|
db.define_table(
|
||||||
settings.table_user_name,
|
settings.table_user_name,
|
||||||
Field('first_name', length=128, default='',
|
Field('first_name', length=128, default='',
|
||||||
label=self.messages.label_first_name,
|
label=self.messages.label_first_name,
|
||||||
@@ -1555,7 +1555,7 @@ class Auth(object):
|
|||||||
if not settings.table_group_name in db.tables:
|
if not settings.table_group_name in db.tables:
|
||||||
extra_fields = settings.extra_fields.get(
|
extra_fields = settings.extra_fields.get(
|
||||||
settings.table_group_name, []) + signature_list
|
settings.table_group_name, []) + signature_list
|
||||||
table = db.define_table(
|
db.define_table(
|
||||||
settings.table_group_name,
|
settings.table_group_name,
|
||||||
Field('role', length=512, default='',
|
Field('role', length=512, default='',
|
||||||
label=self.messages.label_role,
|
label=self.messages.label_role,
|
||||||
@@ -1573,7 +1573,7 @@ class Auth(object):
|
|||||||
if not settings.table_membership_name in db.tables:
|
if not settings.table_membership_name in db.tables:
|
||||||
extra_fields = settings.extra_fields.get(
|
extra_fields = settings.extra_fields.get(
|
||||||
settings.table_membership_name, []) + signature_list
|
settings.table_membership_name, []) + signature_list
|
||||||
table = db.define_table(
|
db.define_table(
|
||||||
settings.table_membership_name,
|
settings.table_membership_name,
|
||||||
Field('user_id', reference_table_user,
|
Field('user_id', reference_table_user,
|
||||||
label=self.messages.label_user_id),
|
label=self.messages.label_user_id),
|
||||||
@@ -1587,7 +1587,7 @@ class Auth(object):
|
|||||||
if not settings.table_permission_name in db.tables:
|
if not settings.table_permission_name in db.tables:
|
||||||
extra_fields = settings.extra_fields.get(
|
extra_fields = settings.extra_fields.get(
|
||||||
settings.table_permission_name, []) + signature_list
|
settings.table_permission_name, []) + signature_list
|
||||||
table = db.define_table(
|
db.define_table(
|
||||||
settings.table_permission_name,
|
settings.table_permission_name,
|
||||||
Field('group_id', reference_table_group,
|
Field('group_id', reference_table_group,
|
||||||
label=self.messages.label_group_id),
|
label=self.messages.label_group_id),
|
||||||
@@ -1605,7 +1605,7 @@ class Auth(object):
|
|||||||
settings.table_permission_name, migrate),
|
settings.table_permission_name, migrate),
|
||||||
fake_migrate=fake_migrate))
|
fake_migrate=fake_migrate))
|
||||||
if not settings.table_event_name in db.tables:
|
if not settings.table_event_name in db.tables:
|
||||||
table = db.define_table(
|
db.define_table(
|
||||||
settings.table_event_name,
|
settings.table_event_name,
|
||||||
Field('time_stamp', 'datetime',
|
Field('time_stamp', 'datetime',
|
||||||
default=current.request.now,
|
default=current.request.now,
|
||||||
@@ -1629,7 +1629,7 @@ class Auth(object):
|
|||||||
now = current.request.now
|
now = current.request.now
|
||||||
if settings.cas_domains:
|
if settings.cas_domains:
|
||||||
if not settings.table_cas_name in db.tables:
|
if not settings.table_cas_name in db.tables:
|
||||||
table = db.define_table(
|
db.define_table(
|
||||||
settings.table_cas_name,
|
settings.table_cas_name,
|
||||||
Field('user_id', reference_table_user, default=None,
|
Field('user_id', reference_table_user, default=None,
|
||||||
label=self.messages.label_user_id),
|
label=self.messages.label_user_id),
|
||||||
@@ -1773,8 +1773,6 @@ class Auth(object):
|
|||||||
"""
|
"""
|
||||||
logins user as specified by usernname (or email) and password
|
logins user as specified by usernname (or email) and password
|
||||||
"""
|
"""
|
||||||
request = current.request
|
|
||||||
session = current.session
|
|
||||||
table_user = self.table_user()
|
table_user = self.table_user()
|
||||||
if self.settings.login_userfield:
|
if self.settings.login_userfield:
|
||||||
userfield = self.settings.login_userfield
|
userfield = self.settings.login_userfield
|
||||||
@@ -2669,7 +2667,6 @@ class Auth(object):
|
|||||||
redirect(self.settings.login_url)
|
redirect(self.settings.login_url)
|
||||||
db = self.db
|
db = self.db
|
||||||
table_user = self.table_user()
|
table_user = self.table_user()
|
||||||
usern = self.settings.table_user_name
|
|
||||||
s = db(table_user.id == self.user.id)
|
s = db(table_user.id == self.user.id)
|
||||||
|
|
||||||
request = current.request
|
request = current.request
|
||||||
@@ -4139,12 +4136,13 @@ class Service(object):
|
|||||||
return '<NULL>'
|
return '<NULL>'
|
||||||
return value
|
return value
|
||||||
if args and args[0] in self.run_procedures:
|
if args and args[0] in self.run_procedures:
|
||||||
|
import types
|
||||||
r = universal_caller(self.run_procedures[args[0]],
|
r = universal_caller(self.run_procedures[args[0]],
|
||||||
*args[1:], **dict(request.vars))
|
*args[1:], **dict(request.vars))
|
||||||
s = cStringIO.StringIO()
|
s = cStringIO.StringIO()
|
||||||
if hasattr(r, 'export_to_csv_file'):
|
if hasattr(r, 'export_to_csv_file'):
|
||||||
r.export_to_csv_file(s)
|
r.export_to_csv_file(s)
|
||||||
elif r and isinstance(r[0], (dict, Storage)):
|
elif r and not isinstance(r, types.GeneratorType) and isinstance(r[0], (dict, Storage)):
|
||||||
import csv
|
import csv
|
||||||
writer = csv.writer(s)
|
writer = csv.writer(s)
|
||||||
writer.writerow(r[0].keys())
|
writer.writerow(r[0].keys())
|
||||||
@@ -4656,7 +4654,7 @@ class Wiki(object):
|
|||||||
html = page.body
|
html = page.body
|
||||||
# @///function -> http://..../function
|
# @///function -> http://..../function
|
||||||
html = replace_at_urls(html, URL)
|
html = replace_at_urls(html, URL)
|
||||||
# http://...jpg -> <img src="http://...jpg/> or oembed
|
# http://...jpg -> <img src="http://...jpg/> or embed
|
||||||
html = replace_autolinks(html, lambda link: expand_one(link, {}))
|
html = replace_autolinks(html, lambda link: expand_one(link, {}))
|
||||||
# @{component:name} -> <script>embed component name</script>
|
# @{component:name} -> <script>embed component name</script>
|
||||||
html = replace_components(html, self.env)
|
html = replace_components(html, self.env)
|
||||||
|
|||||||
Reference in New Issue
Block a user