| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- from django.conf.urls import url
 
- from django.contrib import messages
 
- from django.core.urlresolvers import reverse
 
- from django.http import HttpResponse
 
- from django.shortcuts import redirect
 
- from jet.dashboard.dashboard_modules.yandex_metrika import YandexMetrikaClient
 
- from jet.dashboard.models import UserDashboardModule
 
- from jet.dashboard import dashboard
 
- from django.utils.translation import ugettext_lazy as _
 
- def yandex_metrika_grant_view(request, pk):
 
-     client = YandexMetrikaClient()
 
-     return redirect(client.get_oauth_authorize_url(pk))
 
- def yandex_metrika_revoke_view(request, pk):
 
-     try:
 
-         module = UserDashboardModule.objects.get(pk=pk)
 
-         module.pop_settings(('access_token', 'expires_in', 'token_type', 'counter'))
 
-         return redirect(reverse('jet-dashboard:update_module', kwargs={'pk': module.pk}))
 
-     except UserDashboardModule.DoesNotExist:
 
-         return HttpResponse(_('Module not found'))
 
- def yandex_metrika_callback_view(request):
 
-     try:
 
-         state = request.GET['state']
 
-         code = request.GET['code']
 
-         module = UserDashboardModule.objects.get(pk=state)
 
-         client = YandexMetrikaClient()
 
-         result, exception = client.oath_token_request(code)
 
-         if result is None:
 
-             messages.error(request, _('API request failed.'))
 
-         else:
 
-             module.update_settings(result)
 
-         return redirect(reverse('jet-dashboard:update_module', kwargs={'pk': module.pk}))
 
-     except KeyError:
 
-         return HttpResponse(_('Bad arguments'))
 
-     except UserDashboardModule.DoesNotExist:
 
-         return HttpResponse(_('Module not found'))
 
- dashboard.urls.register_urls([
 
-     url(
 
-         r'^yandex-metrika/grant/(?P<pk>\d+)/$',
 
-         yandex_metrika_grant_view,
 
-         name='yandex-metrika-grant'
 
-     ),
 
-     url(
 
-         r'^yandex-metrika/revoke/(?P<pk>\d+)/$',
 
-         yandex_metrika_revoke_view,
 
-         name='yandex-metrika-revoke'
 
-     ),
 
-     url(
 
-         r'^yandex-metrika/callback/$',
 
-         yandex_metrika_callback_view,
 
-         name='yandex-metrika-callback'
 
-     ),
 
- ])
 
 
  |