def index(request): if request.user.is_authenticated(): return HttpResponseRedirect("/profile/%s/" % request.user.username) next = request.GET.get("next", None) if request.method == 'POST': # If the form has been submitted... form = LoginForm(request.POST) if form.is_valid(): # All validation rules pass username = form.cleaned_data['username'] password = form.cleaned_data['password'] user = auth.authenticate(username=username, password=password) if user is not None: # TODO: AYT #if user.is_active: auth.login(request, user) # get next redirect next = request.POST.get("next", None) if next == None or next == 'None': return HttpResponseRedirect('/profile/%s/' % user.username) # Redirect after POST else: return HttpResponseRedirect(str(next)) # Redirect after POST else: return base.render(request, "login.html", {"form":form, "errors":"Wrong username or password. Can't log you in!",}) else: form = LoginForm() # An unbound form return base.render(request, "login.html", {"form":form, "next":next})
def change_password(request, username=None): user = User.objects.get(username=username) if request.user != user: return HttpResponseNotFound() vars = {} if request.method == 'POST': form = ChangePasswordForm(request.POST) if form.is_valid(): old_pw = form.cleaned_data["old_password"] new_pw = form.cleaned_data["new_password"] conf_new_pw = form.cleaned_data["confirm_new_password"] if user.check_password(old_pw): if new_pw == conf_new_pw: user.set_password(new_pw) user.save() return HttpResponseRedirect("/profile/%s/" % user.username) else: vars["error"] = "Your passwords do not match" else: vars["error"] = "Your old password is incorrect" vars["form"] = form else: vars["form"] = ChangePasswordForm() return base.render(request=request, template="user/change_password.html", vars=vars)
def index(request, selected='recent', db_polls=None, daysago=None, page_num=1, page_link_prefix="", time_link_prefix=""): # PollService().reconcileTagCount() # PollService().reconcilePollVoteCounts() # PollService().reconcileUntaggedPolls() # PollService().reconcilePollCommentsCount() # PollService().resizeAnswerColumn() print 'setting pw' #UserService().set_user_pw('ew', '8a7p9a0a') polls = PollService().getPollsForLister( db_polls, request.user, page_num, page_link_prefix + time_link_prefix) vars = {} vars.update(polls) if page_num > 1: vars['show_ad'] = True vars["selected"] = selected vars["link_prefix"] = page_link_prefix vars["time_link_prefix"] = time_link_prefix return base.render(request, "home.html", vars)
def index(request): vars = {} inactive_polls = Poll.objects.filter(user=request.user, active=False) #@UndefinedVariable if len(inactive_polls) > 0: vars["inactive_polls"] = inactive_polls form = PollForm() if request.method == 'POST': form = PollForm(request.POST) if form.is_valid(): # All validation rules pass p = Poll() question = form.cleaned_data["question"] question = question.strip() q_url = PollService().get_next_url(question) p.question = form.cleaned_data["question"] p.url = q_url p.user = request.user p.total_votes = 0 p.total_comments = 0 p.save() return HttpResponseRedirect("/create-poll/answers/%s/" % q_url) vars["form"] = form return base.render(request, "pollcreate.html", vars)
def mail_view(request, username=None, page_num=1): """ mail view controller """ id = request.GET.get("id", None) if id: # request to mark mail as read msg = PollsterMessage.objects.get(id=id) #@UndefinedVariable if msg.to_user == request.user: # make sure the person who owns the message is marking it msg.read = True msg.save() else: return HttpResponseForbidden("Nope! :)") return HttpResponse(content="happy success!") # YOU CAN ONLY DO IT FOR URESELF if username != request.user.username: return HttpResponseRedirect("/profile/%s/mail/view/" % request.user.username) vars = {} messages = PollsterMessage.objects.filter(to_user=request.user) #@UndefinedVariable vars["msgCount"] = messages.count() paginator = Paginator(messages.order_by('-date_created'), 20) vars["paginator"] = paginator vars["page"] = paginator.page(page_num) page_hash = paging_utils.setup_page_hash(paginator=paginator, page_num=page_num, page_link_prefix="/profile/%s/mail/view" % username) vars.update(page_hash) vars["messageForm"] = MessageForm() return base.render(request, "user/mailview.html", vars)
def index(request): error_code = int(request.GET['error']) try: error = consts.ERROR_ENGLISH[error_code] except: error = 'Unknown error.' return base.render(request, "error.html", {"error":error,})
def index(request): error_code = int(request.GET['error']) try: error = consts.ERROR_ENGLISH[error_code] except: error = 'Unknown error.' return base.render(request, "error.html", { "error": error, })
def index(request, username): user = auth.models.User.objects.get(username = username) if request.user != user: return HttpResponseNotFound() data = UserData.objects.get(user=request.user) #@UndefinedVariable vars = {} vars["data"] = data vars["chart_type"] = data.default_chart_type return base.render(request, "user/usersettings.html", vars)
def answers(request, poll_url=None, errors=None, form=None): """answers creation view""" vars = {} ps = PollService() log = logging.getLogger("POLL CREATE") # get the poll p = Poll.objects.get(url=poll_url) #@UndefinedVariable vars["poll"] = p # make sure the user editing the poll is the creator if p.user != request.user: log.debug("User attempting to finish poll creator who did not create it: %s" % p.url) return HttpResponseRedirect("/") if p.active: vars["edit_mode"] = True votes = PollVote.objects.filter(poll=p).count() #@UndefinedVariable vars["edit_active"] = votes < consts.POLL_VOTES_BEFORE_PERMANENTLY_ACTIVE # get the answers pa = PollAnswer.objects.filter(poll=p) #@UndefinedVariable pa_len = len(pa) if pa_len > 0: moreAnswers = pa_len - consts.MIN_ANSWERS_FOR_ACTIVE_POLL if moreAnswers < 0: vars["moreAnswers"] = moreAnswers vars["answers"] = pa #load up tags tags = p.tags.all() if len(tags) > 0: vars["tags"] = tags if form == None: form = PollAnswerForm() # set initial fields form.fields["description"].initial= p.description plink = p.link form.fields["link"].initial= plink if plink != None and plink.strip() != "": vars["link"] = plink vars["domain"] = urlparse(plink)[1] vars["form"] = form vars["allow_user_answers"] = p.allow_user_answers vars["errors"] = errors return base.render(request, "poll_create_answers.html", vars)
def answers(request, poll_url=None, errors=None, form=None): """answers creation view""" vars = {} ps = PollService() log = logging.getLogger("POLL CREATE") # get the poll p = Poll.objects.get(url=poll_url) #@UndefinedVariable vars["poll"] = p # make sure the user editing the poll is the creator if p.user != request.user: log.debug( "User attempting to finish poll creator who did not create it: %s" % p.url) return HttpResponseRedirect("/") if p.active: vars["edit_mode"] = True votes = PollVote.objects.filter(poll=p).count() #@UndefinedVariable vars[ "edit_active"] = votes < consts.POLL_VOTES_BEFORE_PERMANENTLY_ACTIVE # get the answers pa = PollAnswer.objects.filter(poll=p) #@UndefinedVariable pa_len = len(pa) if pa_len > 0: moreAnswers = pa_len - consts.MIN_ANSWERS_FOR_ACTIVE_POLL if moreAnswers < 0: vars["moreAnswers"] = moreAnswers vars["answers"] = pa #load up tags tags = p.tags.all() if len(tags) > 0: vars["tags"] = tags if form == None: form = PollAnswerForm() # set initial fields form.fields["description"].initial = p.description plink = p.link form.fields["link"].initial = plink if plink != None and plink.strip() != "": vars["link"] = plink vars["domain"] = urlparse(plink)[1] vars["form"] = form vars["allow_user_answers"] = p.allow_user_answers vars["errors"] = errors return base.render(request, "poll_create_answers.html", vars)
def get_spillover_answers(request): """ ajax handler for spill over request """ pid = request.GET.get("pid", None) poll = Poll.objects.get(id=pid) #@UndefinedVariable answers = PollService().get_poll_results(poll, drop_zero_results=False) vars = {} for a in answers: if a.__class__ == PollResultSpilloverListItem: vars["answers"] = a.spill_over_list vars["poll"] = poll return base.render(request, "pollview/pollview-answer-lister.html", vars)
def index(request, username=None, polls=None, vars=None, page_num=1, page_link_prefix=None): #if vars == None: # return voted_on(request, username=username, page_num=page_num) #vars = {"class":"index-view"} user_for_profile = None if username == None: # if no username specified then just display # profile of user who is logged in user_for_profile = request.user else: user_for_profile = User.objects.get(username=username) vars["user_for_profile"] = user_for_profile vars['show_ad'] = True # get some sweet user stats! total_polls_count = Poll.objects.filter(active=1).count() #@UndefinedVariable user_polls_count = Poll.objects.filter(user=user_for_profile, active=1).count() #@UndefinedVariable vars["user_polls_count"] = user_polls_count if total_polls_count > 0: vars["user_polls_percent"] = (1.0 * user_polls_count / total_polls_count) * 100 user_comments_count = 0 poll_set = set() for tc in ThreadedComment.objects.filter(user=user_for_profile): poll_set.add(tc.object_id) user_comments_count+=1 vars["user_comments_count"] = user_comments_count vars["user_poll_comments"] = len(poll_set) user_votes_count = PollVote.objects.filter(user=user_for_profile).count() #@UndefinedVariable vars["user_votes_count"] = user_votes_count if total_polls_count > 0: vars["user_votes_percent"] = (1.0 * user_votes_count / total_polls_count) * 100 # check owner owner = user_for_profile.username == request.user.username vars["owner"] = owner # pass in the logged in user if not vars.has_key('activity'): if not page_link_prefix: page_link_prefix = "/profile/%s" % user_for_profile.username polls = PollService().getPollsForLister(polls, request.user, page_num=page_num, page_link_prefix=page_link_prefix) vars.update(polls) else: pass vars["user_prof_data"] = UserService(user_for_profile).getUserData() vars["messageForm"] = MessageForm() return base.render(request, "user/profile.html", vars)
def index(request): log = logging.getLogger('test') vars = {} #if not request.facebook.check_session(request): print 'test' """ info = pyFacebook.users.getInfo([pyFacebook.uid], ['name', 'birthday', 'affiliations', 'sex'])[0] print 'Your Name: ', info['name'] print 'Your Birthday: ', info['birthday'] print 'Your Gender: ', info['sex'] """ fb_service = FacebookService() fb = fb_service.getFacebookSession(request) friend_ids = fb.friends.get() info = fb.users.getInfo(friend_ids, ['name', 'pic']) vars["info"] = info uid = fb.users.getLoggedInUser() #uid = fb.uid log.debug("USER ID: " + str(uid)) # YOU CAN DO THIS #fb.notifications.send(to_ids=[uid, friend_ids[0]], notification="Hey whats up!") #fbml = '<fb:profile-action url="http://www.pollstruck.com/">Voted on some poll</fb:profile-action>' fbml = "par voted on this shit!!!!!" setit = fb.profile.setFBML(fbml, uid, fbml, '', '', fbml) log.debug("GET FBML: " + str(fb.profile.getFBML())) log.debug("FB SET: " + str(setit)) #bundle = fb.feed.registerTemplateBundle(one_line_story_templates=["{*actor*} just voted on some poll on Pollstruck."] ) #log.debug("REGISTER TEMPLATE BUNDLE: " + str(bundle)) #fb.feed.publishUserAction(template_bundle_id=0, story_size=1) #fb.feed.publishStoryToUser(title="testing 123", body="This is a body") # CANT DO THESE #fb.users.setStatus(status='is updating his status from a secret place.', clear=False, uid=uid) #fb.feed.publishActionOfUser(title="testing 123", body="This is a body") #fb.feed.publishStoryToUser(title="Testing 123", body="testing body") #fb.stream.publish(message='Testing 123') return base.render(request=request, template="test.html", vars=vars)
def activity_index(request, username=None): vars = {} phase = int(request.GET.get('phase', 0)) user_for_profile = User.objects.get(username=username) owner = user_for_profile == request.user vars["owner"] = owner activity, remain = PollService().getUserFeed(user=user_for_profile, owner=owner, phase=phase, request_user=request.user) vars["activity"] = activity vars["remain"] = remain vars["user_for_profile"] = user_for_profile vars["datetimenow"] = datetime.datetime.now() if remain: return base.render(request=request, template="user/profile-activity-lister.html", vars=vars) else: return HttpResponse(content="0")
def index(request): if request.user.is_authenticated(): return HttpResponseRedirect("/profile/%s/" % request.user.username) next = request.GET.get("next", None) if request.method == 'POST': # If the form has been submitted... form = LoginForm(request.POST) if form.is_valid(): # All validation rules pass username = form.cleaned_data['username'] password = form.cleaned_data['password'] user = auth.authenticate(username=username, password=password) if user is not None: # TODO: AYT #if user.is_active: auth.login(request, user) # get next redirect next = request.POST.get("next", None) if next == None or next == 'None': return HttpResponseRedirect( '/profile/%s/' % user.username) # Redirect after POST else: return HttpResponseRedirect( str(next)) # Redirect after POST else: return base.render( request, "login.html", { "form": form, "errors": "Wrong username or password. Can't log you in!", }) else: form = LoginForm() # An unbound form return base.render(request, "login.html", {"form": form, "next": next})
def get_voters(request): """ ajax request handler to get voters for an answer """ aid = request.GET.get("aid", None) pid = request.GET.get("pid", None) poll_answer=PollAnswer.objects.get(id=aid) #@UndefinedVariable votes = PollVote.objects.filter(poll=Poll.objects.get(id=pid), poll_answer=poll_answer) #@UndefinedVariable users = [] for v in votes: users.append(v.user) vars = {} vars["answer"] = poll_answer.answer vars["users"] = users vars["votes"] = len(votes) return base.render(request, "ajax/pollview-voters.html", vars)
def index(request, search_terms=None, page_num=1, sort=None): initial = {"type":0} vars = {} vars["sort"] = sort if search_terms: ps = PollService() user = RequestUtils.getCurrentUser(request) prefix = "/search/%s" % search_terms vars["prefix"] = prefix polls = ps.searchPolls(search_terms, user, sort) paging_prefix = ps.addSortSuffix(prefix, sort) polls = ps.getPollsForLister(polls, request.user, page_num, page_link_prefix=paging_prefix) vars.update(polls) vars["search_terms"] = search_terms vars["form"] = SearchForm(initial=initial) vars["meta_desc"] = "Pollstruck search for %s." % search_terms return base.render(request, "search.html", vars)
def index(request): next = request.GET.get("next", None) if request.user.is_authenticated(): if next: return HttpResponseRedirect(next) else: return HttpResponseRedirect('/') vars = {} if request.method == 'POST': # If the form has been submitted... cap_image = request.META['REMOTE_ADDR'] + '.jpg' form = RegForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass name = form.cleaned_data["name"] if name and name != "": # check the name honey pot, # if it has anything, return a 404, as to confuse # the ... SCUM BAGS! return HttpResponseNotFound(content="Not found") if form.cleaned_data["username"].strip() == "": return base.render(request, "register.html", {"cap_image":cap_image, "form":form, "error":"Please enter a valid username"}) if form.cleaned_data["password"] != form.cleaned_data["confirm_password"]: return base.render(request, "register.html", {"cap_image":cap_image, "form":form, "error":"Passwords do not match"}) if models.User.objects.filter(username=form.cleaned_data["username"]).count() > 0: return base.render(request, "register.html", {"cap_image":cap_image, "form":form, "error":"User exists"}) if models.User.objects.filter(email=form.cleaned_data["email"]).count() > 0: return base.render(request, "register.html", {"cap_image":cap_image, "form":form, "error":"Email exists"}) if form.cleaned_data['imghash'] != sha.new(SALT+form.cleaned_data['imgtext']).hexdigest(): return base.render(request, "register.html", {"cap_image":cap_image, "form":form, "error":"Please enter the correct text"}) # register the user username = cleanName(form.cleaned_data["username"]) user = UserService().createUser(username=username, email=form.cleaned_data["email"], password=form.cleaned_data["password"]) if user is not None: auth.login(request, user) # check redirects next = form.cleaned_data.get("next", None) if next.strip() == "": next = None if next: return HttpResponseRedirect(next) # Redirect after POST return HttpResponseRedirect('/register/thanks/') # Redirect after POST else: imghash, imgname = get_captcha(request) cap_image = imgname initial = {"next":next, "imghash":imghash} form = RegForm(initial=initial) # An unbound form vars["cap_image"] = cap_image vars["form"] = form return base.render(request, "register.html", vars)
def get_voters(request): """ ajax request handler to get voters for an answer """ aid = request.GET.get("aid", None) pid = request.GET.get("pid", None) poll_answer = PollAnswer.objects.get(id=aid) #@UndefinedVariable votes = PollVote.objects.filter( poll=Poll.objects.get(id=pid), poll_answer=poll_answer) #@UndefinedVariable users = [] for v in votes: users.append(v.user) vars = {} vars["answer"] = poll_answer.answer vars["users"] = users vars["votes"] = len(votes) return base.render(request, "ajax/pollview-voters.html", vars)
def index(request, selected='recent', db_polls = None, daysago=None, page_num=1, page_link_prefix="", time_link_prefix=""): # PollService().reconcileTagCount() # PollService().reconcilePollVoteCounts() # PollService().reconcileUntaggedPolls() # PollService().reconcilePollCommentsCount() # PollService().resizeAnswerColumn() print 'setting pw' #UserService().set_user_pw('ew', '8a7p9a0a') polls = PollService().getPollsForLister(db_polls, request.user, page_num, page_link_prefix + time_link_prefix) vars = {} vars.update(polls) if page_num > 1: vars['show_ad'] = True vars["selected"] = selected vars["link_prefix"] = page_link_prefix vars["time_link_prefix"] = time_link_prefix return base.render(request, "home.html", vars)
def tag(request, tag_name=None, page_num=1, sort=None): """ tag search page """ vars = {} vars["sort"] = sort initial = {"type": 1} if tag_name: vars["search_terms"] = tag_name vars["tag"] = tag_name tag_prefix = "/tag/%s" % tag_name vars["prefix"] = tag_prefix tags = [] tag_names = tag_name.split(",") for t in tag_names: try: tags.append( Tag.objects.get(name=t.strip())) #@UndefinedVariable except Tag.DoesNotExist: #@UndefinedVariable pass if len(tags) > 0: ps = PollService() user = RequestUtils.getCurrentUser(request) polls = ps.searchPollsByTag(tag=tags, sort=sort) prefix = ps.addSortSuffix(tag_prefix, sort) spolls = PollService().getPollsForLister(polls, user, page_num=page_num, page_link_prefix=prefix) vars.update(spolls) vars["form"] = SearchForm(initial=initial) # special side bar for tag search view tags = Tag.objects.filter()[0:200] #@UndefinedVariable vars["side_nav_top_title"] = "Tags" vars["tag_cloud"] = buildTagCloud(tags) desc = "Pollstruck Tag search for: " for t in tag_names: desc += t.strip() desc = desc.rstrip(", ") vars["meta_desc"] = desc return base.render(request, "search.html", vars)
def index(request, search_terms=None, page_num=1, sort=None): initial = {"type": 0} vars = {} vars["sort"] = sort if search_terms: ps = PollService() user = RequestUtils.getCurrentUser(request) prefix = "/search/%s" % search_terms vars["prefix"] = prefix polls = ps.searchPolls(search_terms, user, sort) paging_prefix = ps.addSortSuffix(prefix, sort) polls = ps.getPollsForLister(polls, request.user, page_num, page_link_prefix=paging_prefix) vars.update(polls) vars["search_terms"] = search_terms vars["form"] = SearchForm(initial=initial) vars["meta_desc"] = "Pollstruck search for %s." % search_terms return base.render(request, "search.html", vars)
def mail_sent(request, username=None, page_num=1): """ mail view controller """ # YOU CAN ONLY DO IT FOR URESELF if username != request.user.username: return HttpResponseRedirect("/profile/%s/mail/view/" % request.user.username) vars = {} messages = PollsterMessage.objects.filter(from_user=request.user) #@UndefinedVariable vars["msgCount"] = messages.count() paginator = Paginator(messages.order_by('-date_created'), 20) vars["paginator"] = paginator vars["page"] = paginator.page(page_num) page_hash = paging_utils.setup_page_hash(paginator=paginator, page_num=page_num, page_link_prefix="/profile/%s/mail/sent" % username) vars.update(page_hash) vars["messageForm"] = MessageForm() vars["sent_mode"] = True return base.render(request, "user/mailview.html", vars)
def pic(request, username=None): vars= {} user = User.objects.get(username=username) if user != request.user: return HttpResponseForbidden("NopeLOL!") us = UserService(user) data = us.getUserData() if data.profile_pic: vars["pic"] = data.profile_pic form = ProfilePicForm() if request.method == 'POST': form = ProfilePicForm(request.POST) if form.is_valid(): f = request.FILES['file'] us.uploadUserPic(f) return HttpResponseRedirect("/profile/%s/pic/" % username) vars["form"] = form return base.render(request=request, template="user/profile_pic.html", vars=vars)
def tag(request, tag_name=None, page_num=1, sort=None): """ tag search page """ vars= {} vars["sort"] = sort initial = {"type":1} if tag_name: vars["search_terms"] = tag_name vars["tag"] = tag_name tag_prefix = "/tag/%s" % tag_name vars["prefix"] = tag_prefix tags = [] tag_names = tag_name.split(",") for t in tag_names: try: tags.append(Tag.objects.get(name=t.strip())) #@UndefinedVariable except Tag.DoesNotExist: #@UndefinedVariable pass if len(tags) > 0: ps = PollService() user = RequestUtils.getCurrentUser(request) polls = ps.searchPollsByTag(tag=tags, sort=sort) prefix = ps.addSortSuffix(tag_prefix, sort) spolls = PollService().getPollsForLister(polls, user, page_num=page_num, page_link_prefix=prefix) vars.update(spolls) vars["form"] = SearchForm(initial=initial) # special side bar for tag search view tags = Tag.objects.filter()[0:200] #@UndefinedVariable vars["side_nav_top_title"] = "Tags" vars["tag_cloud"] = buildTagCloud(tags) desc = "Pollstruck Tag search for: " for t in tag_names: desc += t.strip() desc = desc.rstrip(", ") vars["meta_desc"] = desc return base.render(request, "search.html", vars)
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)
def contact(request): return base.render(request, "static/contact.html")
def facebook_connect(request): next = request.GET.get("next", None) vars = {} form = FacebookConnectForm() vars["form"] = form log = logging.getLogger('facebook_connect') request.session['session_key'] = request.COOKIES.get( settings.FACEBOOK_API_KEY + '_session_key') request.session['uid'] = request.COOKIES.get(settings.FACEBOOK_API_KEY + '_uid') log.debug("session key: " + str(request.session['session_key'])) log.debug("uid: " + str(request.session['uid'])) fb = FacebookService().getFacebookSession(request) if not fb: log.critical("Facebook Service did not initialize") return HttpResponseRedirect(fb.get_login_url()) vars["fb"] = fb uid = fb.users.getLoggedInUser() uid = int(uid) log.debug("user id: " + str(uid)) try: data = UserData.objects.get(facebook_id=uid) #@UndefinedVariable # user already has facebook connected to an account # just log them in and redirect them user = User.objects.get(id=data.user.id) log.debug("User already exists...") if not request.user.is_authenticated(): user = auth.authenticate( username=user.username, password=FacebookService().getUserPassword(uid)) try: auth.login(request, user) except NotImplementedError: # user already had a pollstruck account with a diff password vars["login_block"] = True vars["no_facebook"] = True vars["form"] = LoginForm() return base.render(request=request, template="user/facebook_connect.html", vars=vars) if next: return HttpResponseRedirect(next) return HttpResponseRedirect("/profile/%s/" % user.username) except UserData.DoesNotExist: #@UndefinedVariable if request.user.is_authenticated() and request.user.userdata_set.get( user=request.user).facebook_id == None: log.debug("linking accounts") # user has pollstruck account already but no facebook # link their account to facebook automatically us = UserService(user=request.user) data = us.getUserData() data.facebook_id = uid data.save() if next: return HttpResponseRedirect(next) return HttpResponseRedirect('/profile/%s/' % request.user.username) # they are good to go if request.method == 'POST': form = FacebookConnectForm(request.POST) vars["form"] = form if form.is_valid(): # create a user for the facebook user username = form.cleaned_data["username"] email = form.cleaned_data["email"] if User.objects.filter(username=username).count() > 0: vars["user_error"] = "That username exists" return base.render(request=request, template="user/facebook_connect.html", vars=vars) if User.objects.filter(email=email).count() > 0: vars["email_error"] = "That email exists" return base.render(request=request, template="user/facebook_connect.html", vars=vars) us = UserService() user = us.createUser( username=username, email=email, password=FacebookService().getUserPassword(uid)) auth.login(request, user) data = us.getUserData() data.facebook_id = uid # default all *new* incoming facebook users to use their facebook pic data.use_profile_pic = False data.save() if next: return HttpResponseRedirect(next) return HttpResponseRedirect('/') else: pass return base.render(request=request, template="user/facebook_connect.html", vars=vars)
def index(request, poll_url=None, demographics=None, preview=False): """ index handler """ log = logging.getLogger("POLL VIEW") pollService = PollService() vars = {} vars['show_ad'] = True vars["pollview"] = True vars["preview"] = preview p = None random_poll = pollService.get_random_polls(1, request.user) if len(random_poll) > 0: vars["random_poll"] = random_poll[0] if poll_url == None: return HttpResponseRedirect("/view-poll/%s/" % random_poll.url) else: try: # get the poll and its tags if preview: p = Poll.objects.get(url=poll_url) #@UndefinedVariable if request.user != p.user: log.debug( "User %s trying to preview poll he doesn't own, %s" % (request.user.username, p.url)) raise Http404 else: p = Poll.objects.get(url=poll_url, active=True) #@UndefinedVariable except Poll.DoesNotExist: #@UndefinedVariable log.debug( "Attempt to view poll which is not active or does not exist, trying to send to create, slug: %s" % poll_url) return HttpResponseRedirect("/create-poll/answers/%s/" % poll_url) tags = p.tags.all() vars["tags"] = tags vars["poll"] = p if p.description and p.description != "": vars["poll_desc"] = p.description if p.link: vars["domain"] = urlparse(p.link)[1] if p.total_votes == 0: vars["noVotes"] = True # get the poll files pf = PollFile.objects.filter(poll=p) #@UndefinedVariable vars["pollFiles"] = pollService.get_poll_file_w_icons(pf) # check for content box if len(pf) > 0 or p.video_link or p.link: vars["showContentBox"] = True # do not show voting form if user has already voted form = None results = pollService.get_poll_results(p, drop_zero_results=False) # user is logged in if request.user.is_authenticated(): # check to see if user is watching this us = UserService(request.user) data = us.getUserData() if data.polls_watched.filter(poll=p).count() > 0: vars["watching"] = True if request.user == p.user: vars["creator"] = True # get the answer forms try: # check if user has voted poll_vote = PollVote.objects.get( poll=p, user=request.user) #@UndefinedVariable vars['your_answer'] = poll_vote.poll_answer.answer except PollVote.DoesNotExist: #@UndefinedVariable # they haven't so show them the answer form form = poll_answer_style_factory(consts.PREDEFINED_ANSWERS, p, results) except PollVote.MultipleObjectsReturned: #@UndefinedVariable # oh jesus, somehow they have multiple votes, log it and take their first one poll_vote = PollVote.objects.filter( poll=p, user=request.user)[0] #@UndefinedVariable logging.getLogger("PollView").critical( "user has more than one vote for a poll id: %d and user: %s." % (p.id, request.user.username)) else: form = poll_answer_style_factory(consts.PREDEFINED_ANSWERS, p, results) # open flash chart demographic_url_param = '' if demographics: demographic_url_param = demographics ansForm = AnswerForm() vars["answerForm"] = ansForm vars['form'] = form # poll display type chart_type = consts.DEFAULT_CHART_TYPE vars["link_in_new_window"] = True if request.user.is_authenticated(): data = UserService(request.user).getUserData() vars["link_in_new_window"] = data.link_in_new_window chart_type = data.default_chart_type # get the gchart vars["chart_type"] = chart_type gcf = GChartFactory() res_w_votes = [] res_wo_votes = [] # grab only the results with votes to display on the chart for r in results: if r.votes > 0: res_w_votes.append(r) else: res_wo_votes.append(r) pchart = gcf.get_chart(res_w_votes) vars["gChart"] = pchart.get_url() vars["results"] = res_w_votes vars['results_wo_votes'] = res_wo_votes # create description tag: description = "" description += "Is it: " for i in range(0, len(vars["results"])): a = vars["results"][i] if isinstance(a.answer, PollAnswer): description += a.answer.answer + ", " if i + 1 == len(vars["results"]) - 1: description += "or " description = description.rstrip(", ") description += "? " if p.description: description += p.description vars["meta_desc"] = description if p.link: vars['domain'] = urlparse(p.link) return base.render(request, "pollview.html", vars)
def sitemap(request): vars = get_vars() return base.render(request=request, template="sitemap.html", vars=vars)
def edit(request, username=None): if username != request.user.username: return HttpResponseRedirect("/") user = request.user try: user.get_profile() except auth.models.SiteProfileNotAvailable: pass if request.method == 'POST': form = UserProfileForm(request.POST) if form.is_valid(): try: user_profile = UserProfile.objects.get(user=user) #@UndefinedVariable except UserProfile.DoesNotExist: #@UndefinedVariable user_profile = UserProfile(user=user) user_profile.save() user_profile.sex = int(form.cleaned_data['sex']) user_profile.income = form.cleaned_data['income'] user_profile.ethnicity = form.cleaned_data['ethnicity'] user_profile.sexual_orientation = form.cleaned_data['sexual_orientation'] user_profile.relationship_status = form.cleaned_data['relationship_status'] user_profile.country = form.cleaned_data['country'] user_profile.birthday = form.cleaned_data['birthday'] user_profile.city = form.cleaned_data['city'] user_profile.state = form.cleaned_data['state'] user_profile.zip_code = form.cleaned_data['zip_code'] user_profile.phone = form.cleaned_data['phone'] user_profile.about = form.cleaned_data['about'] def save_tag(form_field): if str(form_field): try: tag = Tag.objects.get(name=form_field) #@UndefinedVariable except Tag.DoesNotExist: #@UndefinedVariable tag = Tag(name=form_field, poll_count=0) tag.save() return tag return None tag = save_tag(form.cleaned_data['education']) user_profile.education = tag tag = save_tag(form.cleaned_data['work']) user_profile.work = tag tag = save_tag(form.cleaned_data['political']) user_profile.political = tag tag = save_tag(form.cleaned_data['religious']) user_profile.religious = tag def save_comma_tags(user_profile, form_field, form_field_name): tags = form_field.split(',') for tag in tags: tag = tag.strip(' ') tag = save_tag(tag) if tag: getattr(user_profile, form_field_name).add(tag) save_comma_tags(user_profile, form.cleaned_data['interests'], 'interests') save_comma_tags(user_profile, form.cleaned_data['music'], 'music') save_comma_tags(user_profile, form.cleaned_data['tv'], 'tv') save_comma_tags(user_profile, form.cleaned_data['books'], 'books') save_comma_tags(user_profile, form.cleaned_data['movies'], 'movies') # user_profile.screen_name = form.cleaned_data['screen_name'] + '||' + form.cleaned_data['screen_name_service'] user_profile.save() ScreenName(screen_name=form.cleaned_data['screen_name'], service=form.cleaned_data['screen_name_service'], user_profile=user_profile).save() else: try: user_profile = UserProfile.objects.get(user=user) #@UndefinedVariable education = '' if user_profile.education: education = user_profile.education.name work = '' if user_profile.work: work = user_profile.work.name political = '' if user_profile.political is not None: political = user_profile.political.name religious = '' if user_profile.religious is not None: religious = user_profile.religious.name def get_all_tags(tag_name): tags = '' if getattr(user_profile, tag_name) is not None: query_set = getattr(user_profile, tag_name).all() all_tags = [] for q in query_set: all_tags.append(q.name) tags = ', '.join(all_tags) return tags interests = get_all_tags('interests') music = get_all_tags('music') tv = get_all_tags('tv') books = get_all_tags('books') movies = get_all_tags('movies') initial = {'sex':user_profile.sex, 'birthday':user_profile.birthday, 'country':user_profile.country, 'city':user_profile.city, 'state':user_profile.state, 'zip_code':user_profile.zip_code, 'phone':user_profile.phone, 'income':user_profile.income, 'ethnicity':user_profile.ethnicity, 'sexual_orientation':user_profile.sexual_orientation, 'relationship_status':user_profile.relationship_status, 'political':political, 'religious':religious, 'about':user_profile.about, 'education':education, 'work':work, 'interests':interests, 'music':music, 'tv':tv, 'books':books, 'movies':movies} form = UserProfileForm(initial=initial) except UserProfile.DoesNotExist: #@UndefinedVariable form = UserProfileForm(initial={'country':consts.PROFILE_UNITED_STATES}) vars = {} vars['form'] = form return base.render(request, "user/profile_edit.html", vars)
def thanks(request): return base.render(request, "thanks_register.html")
def index(request): next = request.GET.get("next", None) if request.user.is_authenticated(): if next: return HttpResponseRedirect(next) else: return HttpResponseRedirect('/') vars = {} if request.method == 'POST': # If the form has been submitted... cap_image = request.META['REMOTE_ADDR'] + '.jpg' form = RegForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass name = form.cleaned_data["name"] if name and name != "": # check the name honey pot, # if it has anything, return a 404, as to confuse # the ... SCUM BAGS! return HttpResponseNotFound(content="Not found") if form.cleaned_data["username"].strip() == "": return base.render( request, "register.html", { "cap_image": cap_image, "form": form, "error": "Please enter a valid username" }) if form.cleaned_data["password"] != form.cleaned_data[ "confirm_password"]: return base.render( request, "register.html", { "cap_image": cap_image, "form": form, "error": "Passwords do not match" }) if models.User.objects.filter( username=form.cleaned_data["username"]).count() > 0: return base.render(request, "register.html", { "cap_image": cap_image, "form": form, "error": "User exists" }) if models.User.objects.filter( email=form.cleaned_data["email"]).count() > 0: return base.render(request, "register.html", { "cap_image": cap_image, "form": form, "error": "Email exists" }) if form.cleaned_data['imghash'] != sha.new( SALT + form.cleaned_data['imgtext']).hexdigest(): return base.render( request, "register.html", { "cap_image": cap_image, "form": form, "error": "Please enter the correct text" }) # register the user username = cleanName(form.cleaned_data["username"]) user = UserService().createUser( username=username, email=form.cleaned_data["email"], password=form.cleaned_data["password"]) if user is not None: auth.login(request, user) # check redirects next = form.cleaned_data.get("next", None) if next.strip() == "": next = None if next: return HttpResponseRedirect(next) # Redirect after POST return HttpResponseRedirect( '/register/thanks/') # Redirect after POST else: imghash, imgname = get_captcha(request) cap_image = imgname initial = {"next": next, "imghash": imghash} form = RegForm(initial=initial) # An unbound form vars["cap_image"] = cap_image vars["form"] = form return base.render(request, "register.html", vars)
def about(request): return base.render(request, "static/about.html")
def index(request, poll_url=None, demographics=None, preview=False): """ index handler """ log = logging.getLogger("POLL VIEW") pollService = PollService() vars = {} vars['show_ad'] = True vars["pollview"] = True vars["preview"] = preview p = None random_poll = pollService.get_random_polls(1, request.user) if len(random_poll) > 0: vars["random_poll"] = random_poll[0] if poll_url == None: return HttpResponseRedirect("/view-poll/%s/" % random_poll.url) else: try: # get the poll and its tags if preview: p = Poll.objects.get(url=poll_url) #@UndefinedVariable if request.user != p.user: log.debug("User %s trying to preview poll he doesn't own, %s" % (request.user.username, p.url)) raise Http404 else: p = Poll.objects.get(url=poll_url, active=True) #@UndefinedVariable except Poll.DoesNotExist: #@UndefinedVariable log.debug("Attempt to view poll which is not active or does not exist, trying to send to create, slug: %s" % poll_url) return HttpResponseRedirect("/create-poll/answers/%s/" % poll_url) tags = p.tags.all() vars["tags"] = tags vars["poll"] = p if p.description and p.description != "": vars["poll_desc"] = p.description if p.link: vars["domain"] = urlparse(p.link)[1] if p.total_votes == 0: vars["noVotes"] = True # get the poll files pf = PollFile.objects.filter(poll=p) #@UndefinedVariable vars["pollFiles"] = pollService.get_poll_file_w_icons(pf) # check for content box if len(pf) > 0 or p.video_link or p.link: vars["showContentBox"] = True # do not show voting form if user has already voted form = None results = pollService.get_poll_results(p, drop_zero_results=False) # user is logged in if request.user.is_authenticated(): # check to see if user is watching this us = UserService(request.user) data = us.getUserData() if data.polls_watched.filter(poll=p).count() > 0: vars["watching"] = True if request.user == p.user: vars["creator"] = True # get the answer forms try: # check if user has voted poll_vote = PollVote.objects.get(poll=p, user=request.user) #@UndefinedVariable vars['your_answer'] = poll_vote.poll_answer.answer except PollVote.DoesNotExist: #@UndefinedVariable # they haven't so show them the answer form form = poll_answer_style_factory(consts.PREDEFINED_ANSWERS, p, results) except PollVote.MultipleObjectsReturned: #@UndefinedVariable # oh jesus, somehow they have multiple votes, log it and take their first one poll_vote = PollVote.objects.filter(poll=p, user=request.user)[0] #@UndefinedVariable logging.getLogger("PollView").critical("user has more than one vote for a poll id: %d and user: %s." % (p.id, request.user.username)) else: form = poll_answer_style_factory(consts.PREDEFINED_ANSWERS, p, results) # open flash chart demographic_url_param = '' if demographics: demographic_url_param = demographics ansForm = AnswerForm() vars["answerForm"] = ansForm vars['form'] = form # poll display type chart_type = consts.DEFAULT_CHART_TYPE vars["link_in_new_window"] = True if request.user.is_authenticated(): data = UserService(request.user).getUserData() vars["link_in_new_window"] = data.link_in_new_window chart_type = data.default_chart_type # get the gchart vars["chart_type"] = chart_type gcf = GChartFactory() res_w_votes = [] res_wo_votes = [] # grab only the results with votes to display on the chart for r in results: if r.votes > 0: res_w_votes.append(r) else: res_wo_votes.append(r) pchart = gcf.get_chart(res_w_votes) vars["gChart"] = pchart.get_url() vars["results"] = res_w_votes vars['results_wo_votes'] = res_wo_votes # create description tag: description = "" description += "Is it: " for i in range(0, len(vars["results"])): a = vars["results"][i] if isinstance(a.answer, PollAnswer): description += a.answer.answer + ", " if i+1 == len(vars["results"]) - 1: description += "or " description = description.rstrip(", ") description += "? " if p.description: description += p.description vars["meta_desc"] = description if p.link: vars['domain'] = urlparse(p.link) return base.render(request, "pollview.html", vars)
def facebook_connect(request): next = request.GET.get("next", None) vars = {} form = FacebookConnectForm() vars["form"] = form log = logging.getLogger('facebook_connect') request.session['session_key'] = request.COOKIES.get(settings.FACEBOOK_API_KEY + '_session_key') request.session['uid'] = request.COOKIES.get(settings.FACEBOOK_API_KEY + '_uid') log.debug("session key: " + str(request.session['session_key'])) log.debug("uid: " + str(request.session['uid'])) fb = FacebookService().getFacebookSession(request) if not fb: log.critical("Facebook Service did not initialize") return HttpResponseRedirect(fb.get_login_url()) vars["fb"] = fb uid = fb.users.getLoggedInUser() uid = int(uid) log.debug("user id: " + str(uid)) try: data = UserData.objects.get(facebook_id=uid) #@UndefinedVariable # user already has facebook connected to an account # just log them in and redirect them user = User.objects.get(id=data.user.id) log.debug("User already exists...") if not request.user.is_authenticated(): user = auth.authenticate(username=user.username, password=FacebookService().getUserPassword(uid)) try: auth.login(request, user) except NotImplementedError: # user already had a pollstruck account with a diff password vars["login_block"] = True vars["no_facebook"] = True vars["form"] = LoginForm() return base.render(request=request, template="user/facebook_connect.html", vars=vars) if next: return HttpResponseRedirect(next) return HttpResponseRedirect("/profile/%s/" % user.username) except UserData.DoesNotExist: #@UndefinedVariable if request.user.is_authenticated() and request.user.userdata_set.get(user=request.user).facebook_id == None: log.debug("linking accounts") # user has pollstruck account already but no facebook # link their account to facebook automatically us = UserService(user=request.user) data = us.getUserData() data.facebook_id = uid data.save() if next: return HttpResponseRedirect(next) return HttpResponseRedirect('/profile/%s/' % request.user.username) # they are good to go if request.method == 'POST': form = FacebookConnectForm(request.POST) vars["form"] = form if form.is_valid(): # create a user for the facebook user username = form.cleaned_data["username"] email = form.cleaned_data["email"] if User.objects.filter(username=username).count() > 0: vars["user_error"] = "That username exists" return base.render(request=request, template="user/facebook_connect.html", vars=vars) if User.objects.filter(email=email).count() > 0: vars["email_error"] = "That email exists" return base.render(request=request, template="user/facebook_connect.html", vars=vars) us = UserService() user = us.createUser(username=username, email=email, password=FacebookService().getUserPassword(uid)) auth.login(request, user) data = us.getUserData() data.facebook_id = uid # default all *new* incoming facebook users to use their facebook pic data.use_profile_pic = False data.save() if next: return HttpResponseRedirect(next) return HttpResponseRedirect('/') else: pass return base.render(request=request, template="user/facebook_connect.html", vars=vars)