For now I've hacked sqlhtml.py with the following to achieve this:
in "smartgrid" def after the first try block (i.e. following line 1938 
(v1.99.4): "redirect(URL(args=table._tablename))")
        
        # RM: mod to create links in reference fields
        if linked_tables:
            for field in table:
                referee_t = field.type[10:]
                if referee_t and referee_t != table and referee_t in 
linked_tables:
                    field.represent = lambda 
id,r=None,referee_t=referee_t,rep=field.represent: A(callable(rep) and 
rep(id) or 
id,_class=trap_class(),_href=URL(args=request.args[:nargs]+['view',referee_t,id],
 
user_signature=user_signature))
        # RM: end mod

To use it, list the tables you want to use the links with in the 
"linked_tables" parameter to the smartgrid.

The breadcrumbs aren't perfect but match the standard behaviour when 
clicking on referenced fields anyway. Also there's a "http 400: not found" 
when clicking a button in the new view referencing another table - not 
introduced by this mod though so that's one for a ticket...

Trying to use "represent" on the table fields themselves became too 
complex. I haven't tried "links" yet as I prefer the click on field 
approach as opposed to adding buttons...

Open to suggestions / improvements though,

Thanks!

Reply via email to