| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | from django.core.urlresolvers import reversefrom django.conf.urls import urlfrom django.contrib import messagesfrom django.shortcuts import redirectfrom httplib2 import ServerNotFoundErrorfrom jet.dashboard.dashboard_modules.google_analytics import GoogleAnalyticsClient, ModuleCredentialStoragefrom jet.dashboard.models import UserDashboardModulefrom jet.dashboard import dashboardfrom django.http import HttpResponsefrom oauth2client.client import FlowExchangeErrorfrom django.utils.translation import ugettext_lazy as _def google_analytics_grant_view(request, pk):    redirect_uri = request.build_absolute_uri(reverse('jet-dashboard:google-analytics-callback'))    client = GoogleAnalyticsClient(redirect_uri=redirect_uri)    return redirect(client.get_oauth_authorize_url(pk))def google_analytics_revoke_view(request, pk):    try:        module = UserDashboardModule.objects.get(pk=pk)        ModuleCredentialStorage(module).delete()        return redirect(reverse('jet-dashboard:update_module', kwargs={'pk': module.pk}))    except UserDashboardModule.DoesNotExist:        return HttpResponse(_('Module not found'))def google_analytics_callback_view(request):    module = None    try:        state = request.GET['state']        module = UserDashboardModule.objects.get(pk=state)        redirect_uri = request.build_absolute_uri(reverse('jet-dashboard:google-analytics-callback'))        client = GoogleAnalyticsClient(redirect_uri=redirect_uri)        client.set_credential_from_request(request)        ModuleCredentialStorage(module).put(client.credential)    except (FlowExchangeError, ValueError, ServerNotFoundError):        messages.error(request, _('API request failed.'))    except KeyError:        return HttpResponse(_('Bad arguments'))    except UserDashboardModule.DoesNotExist:        return HttpResponse(_('Module not found'))    return redirect(reverse('jet-dashboard:update_module', kwargs={'pk': module.pk}))dashboard.urls.register_urls([    url(r'^google-analytics/grant/(?P<pk>\d+)/$', google_analytics_grant_view, name='google-analytics-grant'),    url(r'^google-analytics/revoke/(?P<pk>\d+)/$', google_analytics_revoke_view, name='google-analytics-revoke'),    url(r'^google-analytics/callback/', google_analytics_callback_view, name='google-analytics-callback'),])
 |