Exemple #1
0
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))
Exemple #4
0
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