fixed issue 1327, breadcrumbs in smartgrid
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.4.2-stable+timestamp.2013.03.11.10.21.55
|
Version 2.4.2-stable+timestamp.2013.03.11.11.09.58
|
||||||
|
|||||||
+29
-12
@@ -2463,6 +2463,16 @@ class SQLFORM(FORM):
|
|||||||
if constraints is None:
|
if constraints is None:
|
||||||
constraints = {}
|
constraints = {}
|
||||||
field = None
|
field = None
|
||||||
|
name = None
|
||||||
|
def format(table,row):
|
||||||
|
if not row:
|
||||||
|
return 'Unknown'
|
||||||
|
elif isinstance(table._format,str):
|
||||||
|
return table._format % row
|
||||||
|
elif callable(table._format):
|
||||||
|
return table._format(row)
|
||||||
|
else:
|
||||||
|
return '#'+str(row.id)
|
||||||
try:
|
try:
|
||||||
nargs = len(args) + 1
|
nargs = len(args) + 1
|
||||||
previous_tablename, previous_fieldname, previous_id = \
|
previous_tablename, previous_fieldname, previous_id = \
|
||||||
@@ -2489,14 +2499,7 @@ class SQLFORM(FORM):
|
|||||||
raise HTTP(400)
|
raise HTTP(400)
|
||||||
previous_tablename, previous_fieldname, previous_id = \
|
previous_tablename, previous_fieldname, previous_id = \
|
||||||
tablename, fieldname, id
|
tablename, fieldname, id
|
||||||
try:
|
name = format(db[referee],record)
|
||||||
format = db[referee]._format
|
|
||||||
if callable(format):
|
|
||||||
name = format(record)
|
|
||||||
else:
|
|
||||||
name = format % record
|
|
||||||
except TypeError:
|
|
||||||
name = id
|
|
||||||
breadcrumbs.append(
|
breadcrumbs.append(
|
||||||
LI(A(T(db[referee]._plural),
|
LI(A(T(db[referee]._plural),
|
||||||
_class=trap_class(),
|
_class=trap_class(),
|
||||||
@@ -2558,13 +2561,27 @@ class SQLFORM(FORM):
|
|||||||
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):
|
||||||
header = table._plural + (field and ' for ' + field.label or '')
|
header = table._plural
|
||||||
breadcrumbs.append(LI(A(T(header), _class=trap_class(),
|
next = grid.create_form or grid.update_form or grid.view_form
|
||||||
_href=url()), _class='active w2p_grid_breadcrumb_elem'))
|
breadcrumbs.append(LI(
|
||||||
|
A(T(header), _class=trap_class(),_href=url()),
|
||||||
|
SPAN(divider, _class='divider') if next else '',
|
||||||
|
_class='active w2p_grid_breadcrumb_elem'))
|
||||||
|
if grid.create_form:
|
||||||
|
header = T('New %s' % table._singular)
|
||||||
|
elif grid.update_form:
|
||||||
|
header = T('Edit %s' % format(table,grid.update_form.record))
|
||||||
|
elif grid.view_form:
|
||||||
|
header = T('View %s' % format(table,grid.view_form.record))
|
||||||
|
if next:
|
||||||
|
breadcrumbs.append(LI(
|
||||||
|
A(T(header), _class=trap_class(),_href=url()),
|
||||||
|
_class='active w2p_grid_breadcrumb_elem'))
|
||||||
grid.insert(
|
grid.insert(
|
||||||
0, DIV(UL(*breadcrumbs, **{'_class': breadcrumbs_class}),
|
0, DIV(UL(*breadcrumbs, **{'_class': breadcrumbs_class}),
|
||||||
_class='web2py_breadcrumbs'))
|
_class='web2py_breadcrumbs'))
|
||||||
return grid
|
return grid
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user