By the looks of it... It seems that those decorators are run even when the
method is not called.  There by redirecting me before I can get to the enter
conference method.
I will be in the IRC tonight for a while if you have time to hop on and help
out.
BR,
Jason Brower

On Thu, Apr 7, 2011 at 8:09 PM, Jason (spot) Brower <[email protected]>wrote:

> When I put print f right at the beginngin of is_in_conference function I
> get the following:
>
> <function index at 0x31e3938>
> <function page at 0x31e3aa0>
> <function create_page at 0x31e3c08>
> <function administration at 0x31e3d70>
>
> representation each method I have decorated.
> BR,
> Jason
>
>
> On Thu, Apr 7, 2011 at 8:05 PM, Jason (spot) Brower 
> <[email protected]>wrote:
>
>> That still returns none.... Sadly...
>>
>>
>> On Wed, Apr 6, 2011 at 11:46 PM, Anthony <[email protected]> wrote:
>>
>>> Try
>>>
>>> def is_in_conference(f):
>>>     '''
>>>     INFO: Special decorator to validate that they are attending a
>>> conference.
>>>     '''
>>>     def g(f=f):
>>>         if not session.current_conference:
>>>             redirect(URL('default', 'index'))
>>>         f()
>>>     return g
>>>
>>> On Wednesday, April 6, 2011 3:45:57 PM UTC-4, encompass wrote:
>>>
>>>> Now all page controllers with the decorator return None on the screen.
>>>> ---
>>>> Jason
>>>>
>>>> On 04/06/2011 09:34 PM, Massimo Di Pierro wrote:
>>>> > should be
>>>> >
>>>> >
>>>> > def is_in_conference(f):
>>>> >       '''
>>>> >       INFO: Special decorator to validate that they are attending a
>>>> > conference.
>>>> >       '''
>>>> >       def g(f=f):
>>>> >           if not session.current_conference:
>>>> >               redirect(URL('default', 'index'))
>>>> >       return g
>>>> >
>>>> >
>>>> > On Apr 6, 12:18 pm, Jason Brower<[email protected]>  wrote:
>>>>
>>>> >> I think the session is lost in the decorator....
>>>> >> Here is my controller called "conference.py"
>>>> >>
>>>> >> def enter_conference():
>>>> >>       '''
>>>> >>       INFO:This page is for changing your session to match a
>>>> particular
>>>> >> conference
>>>> >>       that a user may be attending or managing.
>>>> >>       '''
>>>> >>       print "enter_conference"
>>>> >>       if not request.args(0):
>>>> >>           redirect(URL('default', 'index'))
>>>> >>       conference = (db((db.conference_attenders.conference ==
>>>> >> request.args(0))&\
>>>> >>                       (db.conference_attenders.attender ==
>>>> >> auth.user_id))).select() or \
>>>> >>                    (db((db.conference.creator ==
>>>> auth.user_id))).select()
>>>> >>       if conference:
>>>> >>           print "The conference exists and I will now put the user in
>>>> the
>>>> >> conference."
>>>> >>           session.current_conference = request.args(0)
>>>> >>           redirect(URL('conference','index'))
>>>> >>       else:
>>>> >>           redirect(URL('default', 'index'))
>>>> >>
>>>> >> def exit():
>>>> >>       """
>>>> >>       INFO: This page simple remove them from visiting the
>>>> conference.
>>>> >> Though they are still attending.
>>>> >>       """
>>>> >>       session.current_conference = None
>>>> >>       redirect(URL('default', 'index'))
>>>> >>
>>>> >> def is_in_conference(f):
>>>> >>       '''
>>>> >>       INFO: Special decorator to validate that they are attending a
>>>> >> conference.
>>>> >>       '''
>>>> >>       if not session.current_conference:
>>>> >>           redirect(URL('default', 'index'))
>>>> >>       return (f)
>>>> >>
>>>> >> @auth.requires_login()
>>>> >> @is_in_conference
>>>> >> def index():
>>>> >>       """
>>>> >>       INFO: This page takes all the various things of the conference
>>>> on
>>>> >> to one page.
>>>> >>       """
>>>> >>       return dict()
>>>> >>
>>>> >>
>>>> ---------------------------------------------------------------------------
>>>> -----------------
>>>> >> if I put enter_conference/5 for the the link it doesn't work.
>>>> >> If I put print session.current_conference it print's None
>>>> >> If I take out the decorator it works.
>>>> >>
>>>> >> So what are my options at this point?  Do I really need to put that
>>>> if
>>>> >> statement in each method.  The decorator is so much more clean.
>>>> >> Best Regards,
>>>> >> Jason
>>>>
>>>>
>>
>

Reply via email to