def update_profile_fb(request, passenger_id, next): """ Callback after passenger approved us to get his data from fb """ logging.info("update facebook profile for passenger[%s]" % passenger_id) from ordering.models import Passenger passenger = Passenger.by_id(passenger_id) if passenger and request.GET.get('code'): args = { 'client_id': settings.FACEBOOK_APP_ID, # redirect_uri MUST match the one passed in step1 (redirecting to fb) 'redirect_uri': "http://%s%s" % (DEFAULT_DOMAIN, reverse(update_profile_fb, args=[passenger.id, next])), 'client_secret': settings.FACEBOOK_APP_SECRET, 'code': request.GET['code'], } url = 'https://graph.facebook.com/oauth/access_token?' +\ urllib.urlencode(args) try: response = cgi.parse_qs(urllib.urlopen(url).read()) logging.info("FB query: %s" % url) logging.info("FB response: %s" % response) access_token = response['access_token'][0] facebook_session = FacebookSession(access_token=access_token) profile = facebook_session.query('me', fields=['id', 'email', 'first_name', 'last_name', 'picture']) passenger.picture_url = profile['picture']['data']['url'] passenger.fb_id = profile['id'] passenger.save() logging.info("passenger picture updated: %s" % passenger.picture_url) except Exception, e: pass
def view_passenger_orders(request, passenger_id): passenger = Passenger.by_id(passenger_id) user = passenger.user orders = sorted(passenger.orders.filter(type__in=[OrderType.SHARED, OrderType.PRIVATE], debug=False), key=lambda order: order.create_date, reverse=True) num_orders = len(orders) title = "View sharing order for passenger: %s [%s]" % (user.get_full_name(), user.email) return custom_render_to_response("staff_user_orders.html", locals(), context_instance=RequestContext(request))
def view_passenger_orders(request, passenger_id): passenger = Passenger.by_id(passenger_id) user = passenger.user orders = sorted(passenger.orders.filter( type__in=[OrderType.SHARED, OrderType.PRIVATE], debug=False), key=lambda order: order.create_date, reverse=True) num_orders = len(orders) title = "View sharing order for passenger: %s [%s]" % ( user.get_full_name(), user.email) return custom_render_to_response("staff_user_orders.html", locals(), context_instance=RequestContext(request))
def update_profile_fb(request, passenger_id, next): """ Callback after passenger approved us to get his data from fb """ logging.info("update facebook profile for passenger[%s]" % passenger_id) from ordering.models import Passenger passenger = Passenger.by_id(passenger_id) if passenger and request.GET.get('code'): args = { 'client_id': settings.FACEBOOK_APP_ID, # redirect_uri MUST match the one passed in step1 (redirecting to fb) 'redirect_uri': "http://%s%s" % (DEFAULT_DOMAIN, reverse(update_profile_fb, args=[passenger.id, next])), 'client_secret': settings.FACEBOOK_APP_SECRET, 'code': request.GET['code'], } url = 'https://graph.facebook.com/oauth/access_token?' +\ urllib.urlencode(args) try: response = cgi.parse_qs(urllib.urlopen(url).read()) logging.info("FB query: %s" % url) logging.info("FB response: %s" % response) access_token = response['access_token'][0] facebook_session = FacebookSession(access_token=access_token) profile = facebook_session.query( 'me', fields=['id', 'email', 'first_name', 'last_name', 'picture']) passenger.picture_url = profile['picture']['data']['url'] passenger.fb_id = profile['id'] passenger.save() logging.info("passenger picture updated: %s" % passenger.picture_url) except Exception, e: pass