Alec,

the Mysterious part of this mystery is the "controller" called with a 
parameter....in web2py land that is not really a controller, but just a 
helper method.  in your case event_page() returns it's value to the d() 
method (which web2py does think is a controller), and then web2py execution 
continues....so it's in the d() method before return from it that you must 
customize the view.

anthony's answer is spot on....i was just hoping to unravel the mystery 
slightly. :)

cfh

On Sunday, July 22, 2012 11:48:13 AM UTC-7, Anthony wrote:
>
> Where did you set response.view -- should be something like:
>
> def d():
>     group = db(db.group_of_events.group_name == request.args(0)).select() 
> or redirect(URL('', 'groups'))
>     events = db(db.event.group_id == group[0].id).select()
>     if request.args(1):
>         response.view = 'group/event_page.html'
>         return event_page({'foo':'bar'})
>      return dict(group=group, events=events, eventpage=eventpage)
>
> You could also set it in the event_page function.
>
> Anthony
>
> On Sunday, July 22, 2012 2:39:07 PM UTC-4, Alec Taylor wrote:
>>
>> Thanks for the advise, unfortunately that didn't work either.
>>
>> I have been able to get it working though, within the "d.html" template:
>>
>> # /social/views/group/d.html
>>
>> {{if 'eventpage' in globals() and 'group_name' in globals():}}{{if 
>> len(eventpage):}}<h4>{{=group_name}}</h4>{{=eventpage}}{{else:}}
>> Error: group ID not found{{pass}}
>> {{elif 'group' in globals():}}...
>>
>>
>> # /social/controllers/group.pydef d():
>>     group = db(db.group_of_events.group_name == request.args(0)).select() or 
>> redirect(URL('', 'groups')) 
>>     events = db(db.event.group_id == group[0].id).select()
>>     if request.args(1):
>>         requested_event = None
>>         for event in events:
>>             if event.id==int(request.args(1)):
>>                 requested_event = event
>>                 break                
>>         return event_page(requested_event, group[0].group_name)
>>     return dict(group=group, events=events)
>> def event_page(requested_event, group):
>>     eventpage = requested_event or redirect(URL('', 'group/d/'+str(group)))
>>     return dict(group_name=group, eventpage=eventpage)
>>
>>
>>
>> :D
>>
>

-- 



Reply via email to