It is the same as in

if mode == 'plus':
   value = +1
else:
   value = -1




On Tuesday, 24 July 2012 16:20:51 UTC-5, pjryan126 wrote:
>
> I'm working through this same example, and I'm having trouble 
> understanding how the following resolves:
>
> value = (mode=='plus') and +1 or -1
>
> Can anyone explain to me what is happening with this line of code?
>
>
> On Monday, March 26, 2012 10:28:27 AM UTC-4, Omi Chiba wrote:
>>
>> OK it worked !
>>
>> The indent for last three line was wrong on book and it was fixed on the 
>> downloaded code.
>>
>>
>>
>> On Friday, March 23, 2012 6:18:36 PM UTC-5, Omi Chiba wrote:
>>>
>>> Alan, 
>>>
>>> Thanks. Good idea. I will try the support files. 
>>>
>>>
>>> Sent from my Verizon Wireless BlackBerry 
>>>
>>> -----Original Message----- 
>>> From: Alan Etkin <spame...@gmail.com> 
>>> Sender: web2py@googlegroups.com 
>>> Date: Fri, 23 Mar 2012 15:22:25 
>>> To: web2py-users<web2py@​googlegroups.com <web2py@googlegroups.com>> 
>>> Reply-To: web2py@googlegroups.com 
>>> Subject: [web2py] Re: Cookbook Chapter 2 - Reddit clone Ajax problem 
>>>
>>> I tested the example app with the book support files and it worked 
>>> (with Firefox 10 and web2py trunk). Maybe there is a bug fixed in the 
>>> app code that was not updated in the book's text. 
>>>
>>> On 23 mar, 18:11, Omi Chiba <ochib...@gmail.com> wrote: 
>>> > I was following cookbook and having a problem for the ajax part. I can 
>>> > click plus or minus to change the value for the first time, but it 
>>> doesn't 
>>> > update the value next time it's clicked. Also, I don't get any flash 
>>> > message like 'you voted already' or 'vote recorded'. 
>>> > 
>>> > What am I missing ? 
>>> > 
>>> > Controller 
>>> > ------------------------------​----------------- 
>>> > def news_comments(): 
>>> >     news = db.news(request.args(0)) or redirect(URL('categories')) 
>>> >     if auth.user: 
>>> >         db.comment.news.default = news.id 
>>> >         db.comment.posted_on.default = request.now 
>>> >         db.comment.posted_by.default = auth.user.id 
>>> >         form = crud.create(db.comment) 
>>> >     comments = 
>>> > db(db.comment.news==news.id).​select(orderby=db.comment.​posted_on) 
>>> >     return locals() 
>>> > 
>>> > @auth.requires_login() 
>>> > def vote(): 
>>> >     if not request.env.request_method=='​POST': raise HTTP(400) 
>>> >     news_id, mode = request.args(0), request.args(1) 
>>> >     news = db.news(id=news_id) 
>>> >     vote = db.vote(posted_by=auth.user.id​, news=news_id) 
>>> >     votes = news.votes 
>>> >     value = (mode=='plus') and +1 or -1 
>>> >     if vote and value*vote.value==1: 
>>> >         message = 'you voted already' 
>>> >     else: 
>>> >         if vote: 
>>> >             votes += value - vote.value 
>>> >             vote.update_record(value=​value) 
>>> >         else: 
>>> >             votes += value 
>>> >             db.vote.insert(value=value, posted_by=auth.user.id, 
>>> > posted_on=request.now, news=news.id) 
>>> >             news.update_record(votes=​votes) 
>>> >             message ='vote recorded' 
>>> >         return "jQuery('#votes').html('%s');​jQuery('.flash').\ 
>>> >                 html('%s').slideDown();" % (votes, message) 
>>> > 
>>> > View - news_comment.html 
>>> > ------------------------------​--- 
>>> > {{extend 'layout.html'}} 
>>> > <h5>{{=A(news.title, _href=news.link)}}</h5> 
>>> > {{if auth.user:}} 
>>> > <span id="votes">{{=news.votes}}</​span> 
>>> > <button id="plus" onclick="ajax('{{=URL('vote', args=(news.id, 
>>> 'plus'))}}', 
>>> > [], ':eval')">plus</button> 
>>> > <button id="minus" onclick="ajax('{{=URL('vote', args=(news.id, 
>>> > 'minus'))}}', [], ':eval')">minus</button> 
>>> > {{=form}} 
>>> > {{pass}} 
>>> > <table> 
>>> > {{for comment in comments:}} 
>>> > <tr> 
>>> >     <td>{{=comment.posted_on}}</​td> 
>>> >     <td>{{=comment.posted_by.​first_name}}: </td> 
>>> >     <td>{{=MARKMIN(comment.body)}}​</td> 
>>> > </tr> 
>>> > {{pass}} 
>>> > </table>
>>
>>

-- 



Reply via email to