ajax=False is very important for me, so, I like 1.96 more than 1.97 :) I use it at most interactive components, that can be displayed on the all pages of site.
Just one example: def voting_viewlet(): if not session.has_key('finished_votings'): session.finished_votings = {} if request.vars.get('vote', None): active_voting = db((db.voting.id==session['active_voting'])&(db.voting.status=='opened')).select().first() if active_voting and active_voting.id not in session.get('finished_votings', []): answers = db(db.voting_answers.voting_id==active_voting.id).select() show_results = False if active_voting.multi: answerlist = [] tmp = makelist(request.vars.answer) for i in tmp: answerlist.append(int(i)) valide_answers = list(set(get_ids(answers)) & set(answerlist)) if valide_answers: db(db.voting_answers.id.belongs(valide_answers)).update(count=db.voting_answers.count +1) try: session['finished_votings'].append(active_voting.id) except: session['finished_votings']=[active_voting.id] show_results = True else: if request.vars.answer: answer = int(request.vars.answer) if answer in get_ids(answers): db(db.voting_answers.id==answer).update(count=db.voting_answers.count +1) try: session['finished_votings'].append(active_voting.id) except: session['finished_votings']=[active_voting.id] show_results = True if show_results: voting = db(db.voting.id==active_voting.id).select().first() or redirect(URL('default','index')) answers = db(db.voting_answers.voting_id==voting.id).select(orderby=~db.voting_answers.count) count = 0 if answers: max = answers.first().count for answer in answers: count += answer.count for answer in answers: if count > 0: answer.percent = int(float(answer.count)*100/count) answer.width = int(float(answer.count)*100/ max) answer.color = getColor() else: answer.percent = 0 answer.width = 0 answer.color = getColor() return response.render('voting/ voting_viewlet_results.html', dict(voting=voting, answers=answers, count=count)) votings = db(db.voting.status=='opened').select() finished_votings = session.get('finished_votings',[]) unfinished_votings = [] for voting in votings: if voting.id not in finished_votings: unfinished_votings.append(voting) if unfinished_votings: active_voting = unfinished_votings[random.randint(0, len(unfinished_votings)-1)] session['active_voting'] = active_voting.id else: active_voting = None session['active_voting'] = None if active_voting: answers = db(db.voting_answers.voting_id==active_voting.id).select(orderby=db.voting_answers.id) else: answers = [] return dict(active_voting=active_voting, answers=answers) On 2 июл, 04:51, Massimo Di Pierro <massimo.dipie...@gmail.com> wrote: > There are logic problems with ajax=False. Just use ajax=True. I am not > sure ajax=False should be an option al all. > > On Jul 1, 11:45 am, LightOfMooN <vladsale...@yandex.ru> wrote: > > > > > > > > > Thx, but I just disabled some components until the new stable version > > of webpy :) > > > On 1 июл, 21:29, Anthony <abasta...@gmail.com> wrote: > > > > That problem has been fixed in trunk, but looks like another problem may > > > have been introduced. Try downloading trunk revision d4c2d8d15bb1 -- that > > > fixes the request.vars problem, but comes before the copy.copy(request) > > > problem was introduced. Actually, maybe you could try the latest revision > > > in > > > trunk and see if the copy.copy(request) causes the same problem for you as > > > it has for pbreit -- that might help diagnose the problem. > > > > Anthony > > > > On Friday, July 1, 2011 10:57:13 AM UTC-4, LightOfMooN wrote: > > > > so, request has no vars storage > > > > > On 1 июл, 20:53, LightOfMooN <vlads...@yandex.ru> wrote: > > > > > def voting_viewlet(): > > > > > return dict() > > > > > > works fine > > > > > > But if I try to check request.vars, it crashes: > > > > > > def voting_viewlet(): > > > > > if request.vars.vote: > > > > > pass > > > > > return dict() > > > > > > rises an error > > > > > > On 1 июл, 20:46, LightOfMooN <vlads...@yandex.ru> wrote: > > > > > > > Hello, just updated web2py to 1.97.1 and one of my sites crashed > > > > > > with > > > > > > the same problem: > > > > > > {{=LOAD('voting', 'voting_viewlet', ajax=False)[0][0]}} > > > > > > too bad > > > > > > > On 1 июл, 01:10, pbreit <pbreit...@gmail.com> wrote: > > > > > > > > Any ideas on this one? Has anyone else had problems with > > > > LOAD(ajax=False) in > > > > > > > trunk? I tried switching it to deepcopy and got same error. I also > > > > tried > > > > > > > putting it in a try/except but could not find anything. Could my > > > > request > > > > > > > have something funky in it?