links in grid include referencing field (this is important for table with multiple reference fields)
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 1.99.7 (2012-04-01 11:25:03) dev
|
Version 1.99.7 (2012-04-01 23:20:43) dev
|
||||||
|
|||||||
+2
-2
@@ -7129,7 +7129,7 @@ class Table(dict):
|
|||||||
def insert(self, **fields):
|
def insert(self, **fields):
|
||||||
if any(f(fields) for f in self._before_insert): return 0
|
if any(f(fields) for f in self._before_insert): return 0
|
||||||
ret = self._db._adapter.insert(self,self._listify(fields))
|
ret = self._db._adapter.insert(self,self._listify(fields))
|
||||||
ret and [f(fields) for f in self._after_insert]
|
ret and [f(fields,ret) for f in self._after_insert]
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def validate_and_insert(self,**fields):
|
def validate_and_insert(self,**fields):
|
||||||
@@ -7167,7 +7167,7 @@ class Table(dict):
|
|||||||
items = [self._listify(item) for item in items]
|
items = [self._listify(item) for item in items]
|
||||||
if any(f(item) for item in items for f in self._before_insert):return 0
|
if any(f(item) for item in items for f in self._before_insert):return 0
|
||||||
ret = self._db._adapter.bulk_insert(self,items)
|
ret = self._db._adapter.bulk_insert(self,items)
|
||||||
ret and [[f(item) for item in items] for f in self._after_insert]
|
ret and [[f(item,ret[k]) for k,item in enumerate(items)] for f in self._after_insert]
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def _truncate(self, mode = None):
|
def _truncate(self, mode = None):
|
||||||
|
|||||||
+6
-2
@@ -1930,6 +1930,7 @@ class SQLFORM(FORM):
|
|||||||
request.args[:]=args+[table._tablename]
|
request.args[:]=args+[table._tablename]
|
||||||
if links is None: links = {}
|
if links is None: links = {}
|
||||||
if constraints is None: constraints = {}
|
if constraints is None: constraints = {}
|
||||||
|
field = None
|
||||||
try:
|
try:
|
||||||
nargs = len(args)+1
|
nargs = len(args)+1
|
||||||
previous_tablename,previous_fieldname,previous_id = \
|
previous_tablename,previous_fieldname,previous_id = \
|
||||||
@@ -1993,18 +1994,21 @@ class SQLFORM(FORM):
|
|||||||
else:
|
else:
|
||||||
del kwargs[key]
|
del kwargs[key]
|
||||||
for tablename,fieldname in table._referenced_by:
|
for tablename,fieldname in table._referenced_by:
|
||||||
|
tb = db[tablename]
|
||||||
|
if not tb[fieldname].readable: continue
|
||||||
id_field_name = table._id.name
|
id_field_name = table._id.name
|
||||||
if linked_tables is None or tablename in linked_tables:
|
if linked_tables is None or tablename in linked_tables:
|
||||||
args0 = tablename+'.'+fieldname
|
args0 = tablename+'.'+fieldname
|
||||||
links.append(
|
links.append(
|
||||||
lambda row,t=T(db[tablename]._plural),nargs=nargs,args0=args0:\
|
lambda row,t=T(tb._plural+' for '+fieldname),nargs=nargs,args0=args0:\
|
||||||
A(SPAN(t),_class=trap_class(),_href=URL(
|
A(SPAN(t),_class=trap_class(),_href=URL(
|
||||||
args=request.args[:nargs]+[args0,row[id_field_name]])))
|
args=request.args[:nargs]+[args0,row[id_field_name]])))
|
||||||
grid=SQLFORM.grid(query,args=request.args[:nargs],links=links,
|
grid=SQLFORM.grid(query,args=request.args[:nargs],links=links,
|
||||||
links_in_grid=links_in_grid,
|
links_in_grid=links_in_grid,
|
||||||
user_signature=user_signature,**kwargs)
|
user_signature=user_signature,**kwargs)
|
||||||
if isinstance(grid,DIV):
|
if isinstance(grid,DIV):
|
||||||
breadcrumbs.append(A(T(table._plural),_class=trap_class(),
|
header = table._plural + (field and ' for '+field.name or '')
|
||||||
|
breadcrumbs.append(A(T(header),_class=trap_class(),
|
||||||
_href=URL(args=request.args[:nargs])))
|
_href=URL(args=request.args[:nargs])))
|
||||||
grid.insert(0,DIV(H3(*breadcrumbs),_class='web2py_breadcrumbs'))
|
grid.insert(0,DIV(H3(*breadcrumbs),_class='web2py_breadcrumbs'))
|
||||||
return grid
|
return grid
|
||||||
|
|||||||
+1
-1
@@ -1884,7 +1884,7 @@ class Auth(object):
|
|||||||
cas_user = cas.get_user()
|
cas_user = cas.get_user()
|
||||||
if cas_user:
|
if cas_user:
|
||||||
next = cas.logout_url(next)
|
next = cas.logout_url(next)
|
||||||
|
|
||||||
current.session.auth = None
|
current.session.auth = None
|
||||||
current.session.flash = self.messages.logged_out
|
current.session.flash = self.messages.logged_out
|
||||||
redirect(next)
|
redirect(next)
|
||||||
|
|||||||
Reference in New Issue
Block a user