OK it was solved... it was a problem with the decorators... sorry... I did this... def is_in_conference(f): ''' INFO: Special decorator to validate that they are attending a conference. ''' def validation(): if not session.current_conference: print "In the method!" print session.current_conference redirect(URL('default', 'index')) return validation() Thanks GUYS! The IRC channel and Ross finalized this issue for me. BR, Jason
On Thu, Apr 7, 2011 at 8:35 PM, Jason (spot) Brower <encomp...@gmail.com>wrote: > Yup... if I put the decorator somewhere on some other method than index it > still kicks me out. WEIRD! > > > > On Thu, Apr 7, 2011 at 8:23 PM, Jason (spot) Brower > <encomp...@gmail.com>wrote: > >> 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 >> <encomp...@gmail.com>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 <encomp...@gmail.com >>> > wrote: >>> >>>> That still returns none.... Sadly... >>>> >>>> >>>> On Wed, Apr 6, 2011 at 11:46 PM, Anthony <abasta...@gmail.com> 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<enco...@gmail.com> 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 >>>>>> >>>>>> >>>> >>> >> >