ok, the below now works, except for the part where it returns to parent 
controller (highlighted yellow).

Seems like there needs to be a way for the child controller to remember the 
grandparent vars.

CHILD CONTROLLER - after form is filled, wants to redirect to parent 
controller with the correct vars.  
def edit_object_comment():
    db.SuperObjectComment.superObjectID.readable = True
    db.SuperObjectComment.superObjectID.writable = False 
    comment_id = request.args(0) or redirect(URL('view_suggestions'))
    form = SQLFORM(db.SuperObjectComment, comment_id, next=(URL('default', 
'comment_on_an_object')), _class='formstyle')
    if form.process().accepted:
        response.flash = 'form accepted'
        redirect(URL('comment_on_an_object', 
vars=dict(filter=db.SuperObjectComment.superObjectID, 
id=db.SuperObjectComment.id)))
    elif form.errors:
        response.flash = 'form has errors'
    return dict(form=form)

GRANDPARENT CONTROLLER sends this to the parent.  Child controller needs to 
figure out how to go to parent controller too.
dict(header='Comments',  body=lambda row: A('Comments',_class="btn 
btn-mini", _href=URL('comment_on_an_object', vars=dict(filter=row.objectID, 
id=row.id))))


PARENT CONTROLLER
def comment_on_an_object():
    is_owner = (lambda row: row.created_by == auth.user_id) if auth.user 
else False 
    db.SuperObjectComment.superObjectID.default = request.get_vars.filter
    db.SuperObjectComment.superObjectID.readable = False
    db.SuperObjectComment.superObjectID.writable = False  
    commentsHeader=db.SuperObject(request.get_vars.filter)
    form = crud.create(db.SuperObjectComment)
    objectComments = db(db.SuperObjectComment.superObjectID == 
request.get_vars.filter).select()
    return locals() 

PARENT HTML
{{extend 'layout.html'}}
<font size=+3>
    Comments<input style="margin:0px 0px 0px 80px" type="button" 
onclick="history.go(-1);" value="Back"></font>
<h1 style="margin:60px 40px 40px 40px"> 
{{=(commentsHeader.objectDisplayName)}}</h1>
<table><!--- big table that contains two tables that run down the whole 
length of page.  One on left is comments.  Table on right contains ads or 
other types of info -->
    <tr>  <td> <!-- this table on left -->
<table class="table table-striped">
  {{for objectComment in objectComments:}}
  <tr>
    <td 
style="color:gray;font-size:80%">{{=prettydate(objectComment.created_on)}}</td>
<td>{{=A(objectComment.created_by.first_name, 
_href=URL('default','view_user_profile', args=objectComment.created_by))}} 
{{=A(objectComment.created_by.last_name, 
_href=URL('default','view_user_profile', 
args=objectComment.created_by))}}</td>      
    <td>{{=MARKMIN(objectComment.superObjectComment)}}</td>
    <td> {{if auth.user_id == objectComment.created_by:}} 
{{=A(objectComment.created_by.first_name, 
_href=URL('default','view_user_profile', args=objectComment.created_by), 
_class='btn btn-min')}}</td>
            {{pass}}
    <td> {{if auth.user_id == objectComment.created_by:}} {{=A("Edit me", 
_href=URL('default','edit_object_comment', args=objectComment.id), 
_class='btn btn-min')}}</td>      
            {{pass}}
  </tr>
  {{pass}}
</table>
<hr>
<h4>{{=form}}</h4>
        
</td> <!-- this end table on left.><td> <!-- this starts table on right -->
</tr>
</table>
<input style="margin:70px" type="button" onclick="history.go(-1);" 
value="Back">

I'm hoping someone can explain how to phrase the syntax in yellow so that 
the the real vars are produced instead of the pseudo code.

thanks,

Alex Glaros

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to