def fetch_me(request): user = User.objects.get(fb_uid=request.facebook["uid"]) if not user.data_fetched: graph = facebook.GraphAPI(request.facebook["access_token"]) fb_profile = graph.get_object("me") profile = FacebookProfile(fb_profile) user.name = fb_profile["name"] user.first_name = profile.first_name user.last_name = profile.last_name user.email = fb_profile.get("email", "") user.birthday = profile.dob user.location_name = profile.location or "" user.location_state = profile.location_state or "" user.location_city = profile.location_city or "" user.far_from_home = profile.far_from_home() user.data_fetched = True user.save() voter = fetch_voter_from_fb_profile(profile) user = User.objects.get(id=user.id) if voter: user.votizen_id = voter.votizen_id user.registered = voter.registered user.save() try: _send_join_email(user, request) except Exception as e: logging.exception("error sending join email") if user.registered: update_friends_of.delay(user.id) _fetch_fb_friends(request) redirect_url = reverse("main:pledge") return HttpResponse(redirect_url, content_type="text/plain")
def my_vote_vote(request): user = User.objects.get(fb_uid=request.facebook["uid"]) after = request.session.get('after', None) if request.method == 'GET': return render_to_response("my_vote_vote.html", { 'page': 'my_vote', 'section': 'vote', 'user': user, }, context_instance=RequestContext(request)) elif request.method == 'POST': if 'yes' in request.POST: explicit_share = request.POST.get('tell-friends', '') == 'on' if explicit_share: og_url = opengraph_url(request, settings.FACEBOOK_OG_VOTE_ACTION) share = requests.post(og_url, params={ 'election': settings.BASE_URL + reverse('vote_object'), 'access_token': request.facebook['access_token'], 'fb:explicitly_shared': 'true', }) print 'Explicit share vote response: %s' % share.status_code print share.content user.explicit_share_vote = explicit_share user.date_voted = datetime.now() try: friendships = Friendship.objects.filter(fb_uid=user.fb_uid) for friendship in friendships: friendship.date_voted = datetime.now() friendship.save() except Friendship.DoesNotExist: pass messages.add_message( request, messages.INFO, # Translators: message displayed to users in when they mark themselves as having voted. _("Your voice was heard! Make sure your friends' voices are also heard:") ) if after: redirect_view = after else: redirect_view = 'main:invite_friends_2' else: user.date_voted = None messages.add_message( request, messages.INFO, # Translators: message displayed to users in when they mark themselves as not having voted. _("Got it, you haven't voted yet. Don't forget!") ) if after: redirect_view = after else: redirect_view = 'main:invite_friends_2' user.save() update_friends_of.delay(user.id) return redirect(redirect_view)
def submit_pledge(request): next = reverse("main:my_vote") user = User.objects.get(fb_uid=request.facebook["uid"]) explicit_share = request.GET.get('explicit_share', None) == 'true' if explicit_share: og_url = opengraph_url(request, settings.FACEBOOK_OG_PLEDGE_ACTION) share = requests.post(og_url, params={ 'vote_obj': settings.BASE_URL + reverse('pledge_object'), 'access_token': request.facebook['access_token'], 'fb:explicitly_shared': 'true', }) print 'Explicit share pledge response: %s' % share.status_code print share.content user = User.objects.get(id=user.id) user.explicit_share = explicit_share user.date_pledged = datetime.now() user.save() showing_message = False join_block = request.GET.get('join_block', None) == 'true' if join_block: block = _voting_block_from_session(request.session) if not VotingBlockMember.objects.filter( member=user, voting_block_id=block.pk).exists(): showing_message = True messages.add_message(request, messages.INFO, _voting_block_join_message(block)) try: VotingBlockMember.objects.create(member=user, voting_block_id=block.pk, joined=datetime.now()) except IntegrityError: pass next = reverse("main:voting_blocks_item", args=[ block.pk, ]) update_friends_of.delay(user.id) if not showing_message: messages.add_message( request, messages.INFO, # Translators: message displayed to users in green bar when they pledge to vote _("Thank you for pledging to vote!")) return {"next": next}
def _unpledge(request): if request.method == 'POST': user = User.objects.get(fb_uid=request.facebook["uid"]) user.date_pledged = None user.save() update_friends_of.delay(user.id) messages.add_message( request, messages.INFO, # Translators: message displayed to users when they unpledge _("Sorry to hear that you're no longer pledging to vote.") ) return redirect('main:my_vote') return HttpResponseNotAllowed()
def _unpledge(request): if request.method == 'POST': user = User.objects.get(fb_uid=request.facebook["uid"]) user.date_pledged = None user.save() update_friends_of.delay(user.id) messages.add_message( request, messages.INFO, # Translators: message displayed to users when they unpledge _("Sorry to hear that you're no longer pledging to vote.")) return redirect('main:my_vote') return HttpResponseNotAllowed()
def submit_pledge(request): next = reverse("main:my_vote") user = User.objects.get(fb_uid=request.facebook["uid"]) explicit_share = request.GET.get('explicit_share', None) == 'true' if explicit_share: og_url = opengraph_url(request, settings.FACEBOOK_OG_PLEDGE_ACTION) share = requests.post(og_url, params={ 'vote': settings.BASE_URL + reverse('pledge_object'), 'access_token': request.facebook['access_token'], 'fb:explicitly_shared': 'true', }) print 'Explicit share pledge response: %s' % share.status_code print share.content user = User.objects.get(id=user.id) user.explicit_share = explicit_share user.date_pledged = datetime.now() user.save() showing_message = False join_block = request.GET.get('join_block', None) == 'true' if join_block: block = _voting_block_from_session(request.session) if not VotingBlockMember.objects.filter( member=user, voting_block_id=block.pk).exists(): showing_message = True messages.add_message( request, messages.INFO, _voting_block_join_message(block)) try: VotingBlockMember.objects.create( member=user, voting_block_id=block.pk, joined=datetime.now()) except IntegrityError: pass next = reverse("main:voting_blocks_item", args=[block.pk,]) update_friends_of.delay(user.id) if not showing_message: messages.add_message( request, messages.INFO, # Translators: message displayed to users in green bar when they pledge to vote _("Thank you for pledging to vote!")) return {"next": next}
def my_vote_pledge(request): if not request.facebook: # assuming optimizely server. user = { "pledged": False } else: user = User.objects.get(fb_uid=request.facebook["uid"]) if request.GET.get("from_widget", False): user.registered = True user.used_registration_widget = True user.save() update_friends_of.delay(user.id) messages.add_message( request, messages.INFO, # Translators: message displayed to users in green bar when they register to vote _("Thank you for enrolling to vote!")) voting_block = _voting_block_from_session(request.session) return render_to_response("my_vote_pledge.html", { 'page': 'my_vote', 'section': 'pledge', 'user': user, 'voting_block': voting_block }, context_instance=RequestContext(request))
def my_vote_pledge(request): if not request.facebook: # assuming optimizely server. user = {"pledged": False} else: user = User.objects.get(fb_uid=request.facebook["uid"]) if request.GET.get("from_widget", False): user.registered = True user.used_registration_widget = True user.save() update_friends_of.delay(user.id) messages.add_message( request, messages.INFO, # Translators: message displayed to users in green bar when they register to vote _("Thank you for registering to vote!")) voting_block = _voting_block_from_session(request.session) return render_to_response("my_vote_pledge.html", { 'page': 'my_vote', 'section': 'pledge', 'user': user, 'voting_block': voting_block }, context_instance=RequestContext(request))
def my_vote_vote(request): user = User.objects.get(fb_uid=request.facebook["uid"]) after = request.session.get('after', None) if request.method == 'GET': return render_to_response("my_vote_vote.html", { 'page': 'my_vote', 'section': 'vote', 'user': user, }, context_instance=RequestContext(request)) elif request.method == 'POST': if 'yes' in request.POST: explicit_share = request.POST.get('tell-friends', '') == 'on' if explicit_share: og_url = opengraph_url(request, settings.FACEBOOK_OG_VOTE_ACTION) share = requests.post(og_url, params={ 'election_obj': settings.BASE_URL + reverse('vote_object'), 'access_token': request.facebook['access_token'], 'fb:explicitly_shared': 'true', }) print 'Explicit share vote response: %s' % share.status_code print share.content user.explicit_share_vote = explicit_share user.date_voted = datetime.now() try: friendships = Friendship.objects.filter(fb_uid=user.fb_uid) for friendship in friendships: friendship.date_voted = datetime.now() friendship.save() except Friendship.DoesNotExist: pass messages.add_message( request, messages.INFO, # Translators: message displayed to users in when they mark themselves as having voted. _("Your voice was heard! Make sure your friends' voices are also heard:" )) if after: redirect_view = after else: redirect_view = 'main:invite_friends_2' else: user.date_voted = None messages.add_message( request, messages.INFO, # Translators: message displayed to users in when they mark themselves as not having voted. _("Got it, you haven't voted yet. Don't forget!")) if after: redirect_view = after else: redirect_view = 'main:invite_friends_2' user.save() update_friends_of.delay(user.id) return redirect(redirect_view)