Hi Alan and Anthony,
Thanks for your replies. This solution partially solved the problem:
db.NodeRelatedCard.targetID.represent = lambda targetID, row:
db(db.Organization.nodeID == targetID).select().first().name
In appadmin the targetID is now represented by the name of the
organization, however, in the following delete form
the targetID is still the id:
@auth.requires(auth.has_membership(VCARD) or
auth.has_membership(ROOT))
def relatedcards():
id=auth.user.nodeID
db.NodeRelatedCard.sourceID.default=id
rows=db((db.NodeRelatedCard.sourceID==id)&(db.NodeRelatedCard.targetID==db.Organization.id))
\
.select(db.NodeRelatedCard.ALL,db.Organization.name,orderby=db.Organization.name)
if not rows:
if not response.flash: response.flash='No related cards in
database'
else:
if not response.flash: response.flash='Related cards in
database'
if len(request.args):
if request.args(0)=='delete':
row=db(db.NodeRelatedCard.id==request.args(1)).select().first()
response.flash='Delete related card'
message='Related card deleted'
form=crud.update(table=db.NodeRelatedCard,record=row,message=message,deletable=True)
form[0][-1]
[1].append(INPUT(_type="button",_value="Cancel",_onclick='javascript:history.go(-1);'))
return dict(form=form,rows=rows)
Adding this:
db.NodeRelatedCard.targetID.represent=lambda targetID, row:
db(db.Organization.nodeID==targetID).select().first().name
after:
db.NodeRelatedCard.sourceID.default=id
doesn't make any difference. What's wrong with the function above?
Kind regards,
Annet.