コード例 #1
0
ファイル: profile.py プロジェクト: partriv/pollster
def friend(request):
    id = request.GET.get("id")
    user = User.objects.get(id=id)
    if request.user == user:
        return HttpResponseForbidden("Nope!!")
    
    us = UserService(request.user)
    data = us.getUserData()
    # add friend
    data.friends.add(user)
    data.save()
    
    # do reverse as well
    # TODO: check user settings before auto adding this
    
    to_data = UserService(user).getUserData()
    # add friend
    to_data .friends.add(request.user)
    to_data.save()
    
    # notify user
    ps = PollService()
    subject = "%s added you as  friend" % request.user.username
    body = "Hi, %s has just added you as a friend.  As a result %s has been automatically added to your friends list.\n This is because he/she added you to their list.  You can change this setting in your settings if you like." % (request.user.username, request.user.username)
    ps.sendPollsterMessage(to_user=user, from_user=request.user, subject=subject, body=body)    
    
    return HttpResponse(content="You are now friends!")
コード例 #2
0
def watch_poll(request):
    """
    ajax handler signs up users to watch a poll
    """
    log = logging.getLogger('pollview.watch_poll')
    pid = request.GET.get("pid", None)
    type = request.GET.get("type", None)
    ps = PollService()
    if type == 'a':
        # add the poll to request users watch
        userdata = UserService(request.user).getUserData()
        poll = Poll.objects.get(id=pid, active=True)  #@UndefinedVariable

        if PollWatch.objects.filter(
                user=request.user,
                poll=poll).count() == 0:  #@UndefinedVariable
            pw = PollWatch()
            pw.poll = poll
            pw.user = request.user
            pw.save()
            userdata.polls_watched.add(pw)
            userdata.save()
        else:
            log.error("User trying to watch poll multiple times, user: %s" %
                      request.user.username)
            return HttpResponse("Already watching!")

        if poll.user != request.user:
            # send message to poll creator
            # as long as you arent poll creator
            subject = "%s is watching your poll" % request.user.username
            body = "Hello.  This is just a note to let you know %s is watching your poll '%s'.  Thanks, The Mgmt." % (
                request.user.username, poll.question)
            ps.sendPollsterMessage(to_user=poll.user,
                                   from_user=request.user,
                                   subject=subject,
                                   body=body)

        return HttpResponse("You are watching this poll")
    elif type == 'd':
        userdata = UserService(user=request.user).getUserData()
        poll = Poll.objects.get(id=pid)  #@UndefinedVariable
        pw = PollWatch.objects.get(user=request.user,
                                   poll=poll)  #@UndefinedVariable
        userdata.polls_watched.remove(pw)
        userdata.save()
        pw.delete()
        return HttpResponse("You are no longer watching this poll")

    return HttpResponseForbidden("unauthorized")
コード例 #3
0
ファイル: pollview.py プロジェクト: adatapost/pollster
def watch_poll(request):
    """
    ajax handler signs up users to watch a poll
    """    
    log = logging.getLogger('pollview.watch_poll')
    pid = request.GET.get("pid", None)
    type = request.GET.get("type", None)
    ps = PollService()
    if type == 'a':
        # add the poll to request users watch
        userdata = UserService(request.user).getUserData()
        poll = Poll.objects.get(id=pid, active=True) #@UndefinedVariable
        
        if PollWatch.objects.filter(user=request.user, poll=poll).count() == 0: #@UndefinedVariable
            pw = PollWatch()
            pw.poll = poll
            pw.user = request.user
            pw.save()
            userdata.polls_watched.add(pw)                
            userdata.save()
        else:        
            log.error("User trying to watch poll multiple times, user: %s" % request.user.username)
            return HttpResponse("Already watching!")
        
                
        if poll.user != request.user:
            # send message to poll creator
            # as long as you arent poll creator
            subject = "%s is watching your poll" % request.user.username
            body = "Hello.  This is just a note to let you know %s is watching your poll '%s'.  Thanks, The Mgmt." % (request.user.username, poll.question)
            ps.sendPollsterMessage(to_user=poll.user, from_user=request.user, subject=subject, body=body)
            
            
        
        return HttpResponse("You are watching this poll")
    elif type == 'd':
        userdata = UserService(user=request.user).getUserData()        
        poll = Poll.objects.get(id=pid) #@UndefinedVariable
        pw = PollWatch.objects.get(user=request.user, poll=poll) #@UndefinedVariable
        userdata.polls_watched.remove(pw)
        userdata.save()
        pw.delete()
        return HttpResponse("You are no longer watching this poll")
    
    return HttpResponseForbidden("unauthorized")
コード例 #4
0
ファイル: profile.py プロジェクト: partriv/pollster
def mail(request, username=None):
    """
    handles ajax send of message
    """
    log = logging.getLogger('mail')
    
    subject = request.POST.get("subject", None)
    body = request.POST.get("body", None)
    mid = request.POST.get("mid", None)
    if mid == 'undefined':
        mid = None

    # get user who message is to
    try:
        user = User.objects.get(username=username)
    except User.DoesNotExist:  #@UndefinedVariable
        log.warning("Attempt to send mail to invalid user: %s done by user: %s" % (username, request.user.username))        
        return HttpResponse(content="<img src=\"/i/icons/email_delete.png\"/> Your message was not sent - 101") 
    
    if not body or body.strip() == "":
        return HttpResponse(content="<img src=\"/i/icons/email_delete.png\"/> You need to provide a message")
    
    if user == request.user:
        return HttpResponseForbidden("D'oh! ;)")    

    body = string.strip(body)
    body = body.replace("\n", "<br/>")
    if mid:        
        old_msg = PollsterMessage.objects.get(id=mid)   #@UndefinedVariable
        old_body = old_msg.body
        old_arr = old_body.split("<br/>")
        old_body = ""
        for msg_chnk in old_arr:
            old_body += "> " + msg_chnk + "<br/>"
        body = str(body) + "<br/><br/>Previous message from " + str(old_msg.from_user.username) + "<hr/><br/>" + str(old_body)
    
    # create message
    ps = PollService()
    ps.sendPollsterMessage(to_user=user, from_user=request.user, subject=subject, body=body)
    
    return HttpResponse(content="<img src=\"/i/icons/email_go.png\"/> Your message has been sent!")
コード例 #5
0
def mailusers(request):
    
    vars = {}
    form = None
    if request.method == 'POST': # If the form has been submitted...
        form = MailUsersForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            subject = form.cleaned_data["subject"]
            body = form.cleaned_data["body"]
            body = body.replace("\n", "<br/>")
            par_user = User.objects.get(username='******')
            # message every user in the system
            for u in User.objects.all():
                ps = PollService()
                ps.sendPollsterMessage(to_user=u, from_user=par_user, subject=subject, body=body)

            vars["done"] = True
    
    if not form:
        form = MailUsersForm(initial={"subject":"Recent updates"})
    vars["form"] = form
    return base.render(request, template="admin/mailuser.html", vars=vars)