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!")
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")
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")
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!")
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)