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',
|
||||
current_record='current_record'):
|
||||
"""
|
||||
to enable full record vernionioning (including auth tables):
|
||||
to enable full record versioning (including auth tables):
|
||||
|
||||
auth = Auth(db)
|
||||
auth.define_tables(signature=True)
|
||||
# define our own tables
|
||||
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.
|
||||
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,
|
||||
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.
|
||||
|
||||
"""
|
||||
@@ -1489,7 +1489,7 @@ class Auth(object):
|
||||
IS_NOT_IN_DB(db, '%s.username' % settings.table_user_name)]
|
||||
if not settings.username_case_sensitive:
|
||||
is_unique_username.insert(1, IS_LOWER())
|
||||
table = db.define_table(
|
||||
db.define_table(
|
||||
settings.table_user_name,
|
||||
Field('first_name', length=128, default='',
|
||||
label=self.messages.label_first_name,
|
||||
@@ -1522,7 +1522,7 @@ class Auth(object):
|
||||
fake_migrate=fake_migrate,
|
||||
format='%(username)s'))
|
||||
else:
|
||||
table = db.define_table(
|
||||
db.define_table(
|
||||
settings.table_user_name,
|
||||
Field('first_name', length=128, default='',
|
||||
label=self.messages.label_first_name,
|
||||
@@ -1555,7 +1555,7 @@ class Auth(object):
|
||||
if not settings.table_group_name in db.tables:
|
||||
extra_fields = settings.extra_fields.get(
|
||||
settings.table_group_name, []) + signature_list
|
||||
table = db.define_table(
|
||||
db.define_table(
|
||||
settings.table_group_name,
|
||||
Field('role', length=512, default='',
|
||||
label=self.messages.label_role,
|
||||
@@ -1573,7 +1573,7 @@ class Auth(object):
|
||||
if not settings.table_membership_name in db.tables:
|
||||
extra_fields = settings.extra_fields.get(
|
||||
settings.table_membership_name, []) + signature_list
|
||||
table = db.define_table(
|
||||
db.define_table(
|
||||
settings.table_membership_name,
|
||||
Field('user_id', reference_table_user,
|
||||
label=self.messages.label_user_id),
|
||||
@@ -1587,7 +1587,7 @@ class Auth(object):
|
||||
if not settings.table_permission_name in db.tables:
|
||||
extra_fields = settings.extra_fields.get(
|
||||
settings.table_permission_name, []) + signature_list
|
||||
table = db.define_table(
|
||||
db.define_table(
|
||||
settings.table_permission_name,
|
||||
Field('group_id', reference_table_group,
|
||||
label=self.messages.label_group_id),
|
||||
@@ -1605,7 +1605,7 @@ class Auth(object):
|
||||
settings.table_permission_name, migrate),
|
||||
fake_migrate=fake_migrate))
|
||||
if not settings.table_event_name in db.tables:
|
||||
table = db.define_table(
|
||||
db.define_table(
|
||||
settings.table_event_name,
|
||||
Field('time_stamp', 'datetime',
|
||||
default=current.request.now,
|
||||
@@ -1629,7 +1629,7 @@ class Auth(object):
|
||||
now = current.request.now
|
||||
if settings.cas_domains:
|
||||
if not settings.table_cas_name in db.tables:
|
||||
table = db.define_table(
|
||||
db.define_table(
|
||||
settings.table_cas_name,
|
||||
Field('user_id', reference_table_user, default=None,
|
||||
label=self.messages.label_user_id),
|
||||
@@ -1773,8 +1773,6 @@ class Auth(object):
|
||||
"""
|
||||
logins user as specified by usernname (or email) and password
|
||||
"""
|
||||
request = current.request
|
||||
session = current.session
|
||||
table_user = self.table_user()
|
||||
if self.settings.login_userfield:
|
||||
userfield = self.settings.login_userfield
|
||||
@@ -2669,7 +2667,6 @@ class Auth(object):
|
||||
redirect(self.settings.login_url)
|
||||
db = self.db
|
||||
table_user = self.table_user()
|
||||
usern = self.settings.table_user_name
|
||||
s = db(table_user.id == self.user.id)
|
||||
|
||||
request = current.request
|
||||
@@ -4139,12 +4136,13 @@ class Service(object):
|
||||
return '<NULL>'
|
||||
return value
|
||||
if args and args[0] in self.run_procedures:
|
||||
import types
|
||||
r = universal_caller(self.run_procedures[args[0]],
|
||||
*args[1:], **dict(request.vars))
|
||||
s = cStringIO.StringIO()
|
||||
if hasattr(r, 'export_to_csv_file'):
|
||||
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
|
||||
writer = csv.writer(s)
|
||||
writer.writerow(r[0].keys())
|
||||
@@ -4656,7 +4654,7 @@ class Wiki(object):
|
||||
html = page.body
|
||||
# @///function -> http://..../function
|
||||
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, {}))
|
||||
# @{component:name} -> <script>embed component name</script>
|
||||
html = replace_components(html, self.env)
|
||||
|
||||
Reference in New Issue
Block a user