This commit is contained in:
mdipierro committed 2014-08-01 01:46:46 -05:00
commit 356b4164c3
2 files changed
+15 -3

No files matched your search

+4 -3
View File
@@ -35,7 +35,7 @@ import re
import cStringIO import cStringIO
from gluon.globals import current from gluon.globals import current
from gluon.http import redirect from gluon.http import redirect
import inspect from gluon.utils import get_callable_argspec
try: try:
import gluon.settings as settings import gluon.settings as settings
@@ -1278,6 +1278,7 @@ class SQLFORM(FORM):
table = self.createform(xfields) table = self.createform(xfields)
self.components = [table] self.components = [table]
def createform(self, xfields): def createform(self, xfields):
formstyle = self.formstyle formstyle = self.formstyle
if isinstance(formstyle, basestring): if isinstance(formstyle, basestring):
@@ -1288,7 +1289,7 @@ class SQLFORM(FORM):
if callable(formstyle): if callable(formstyle):
# backward compatibility, 4 argument function is the old style # backward compatibility, 4 argument function is the old style
args, varargs, keywords, defaults = inspect.getargspec(formstyle) args, varargs, keywords, defaults = get_callable_argspec(formstyle)
if defaults and len(args) - len(defaults) == 4 or len(args) == 4: if defaults and len(args) - len(defaults) == 4 or len(args) == 4:
table = TABLE() table = TABLE()
for id, a, b, c in xfields: for id, a, b, c in xfields:
@@ -1767,7 +1768,7 @@ class SQLFORM(FORM):
iso_format = {'_data-w2p_date_format' : '%Y-%m-%d'} iso_format = {'_data-w2p_date_format' : '%Y-%m-%d'}
value_input = SQLFORM.widgets.date.widget(field, field.default, _id=_id, **iso_format) value_input = SQLFORM.widgets.date.widget(field, field.default, _id=_id, **iso_format)
elif field.type == 'datetime': elif field.type == 'datetime':
iso_format = iso_format = {'_data-w2p_datetime_format' : '%Y-%m-%d %H:%M:%S'} iso_format = {'_data-w2p_datetime_format' : '%Y-%m-%d %H:%M:%S'}
value_input = SQLFORM.widgets.datetime.widget(field, field.default, _id=_id, **iso_format) value_input = SQLFORM.widgets.datetime.widget(field, field.default, _id=_id, **iso_format)
elif (field.type.startswith('reference ') or elif (field.type.startswith('reference ') or
field.type.startswith('list:reference ')) and \ field.type.startswith('list:reference ')) and \
+11
View File
@@ -14,6 +14,7 @@ import threading
import struct import struct
import uuid import uuid
import random import random
import inspect
import time import time
import os import os
import re import re
@@ -132,6 +133,16 @@ DIGEST_ALG_BY_SIZE = {
512 / 4: 'sha512', 512 / 4: 'sha512',
} }
def get_callable_argspec(fn):
if inspect.isfunction(fn) or inspect.ismethod(fn):
inspectable = fn
elif inspect.isclass(fn):
inspectable = fn.__init__
elif hasattr(fn, '__call__'):
inspectable = fn.__call__
else:
inspectable = fn
return inspect.getargspec(inspectable)
def pad(s, n=32, padchar=' '): def pad(s, n=32, padchar=' '):
return s + (32 - len(s) % 32) * padchar return s + (32 - len(s) % 32) * padchar