diff --git a/ADFS/views.py b/ADFS/views.py index 3cd7875..83f21c7 100644 --- a/ADFS/views.py +++ b/ADFS/views.py @@ -62,6 +62,11 @@ def reglament(request): context = RequestContext(request, {}) return HttpResponse(template.render(context)) +def sw(request): + template = loader.get_template('sw.js') + context = RequestContext(request, {}) + return HttpResponse(template.render(context), content_type='application/javascript') + def register_attention(request): form = ContactForm() if request.method == 'POST': diff --git a/static/js/main.js b/static/js/main.js index c42ee5f..c15918d 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -74,6 +74,16 @@ function initApp() { const csrftoken = getCookie('csrftoken'); + if ('serviceWorker' in navigator) { + navigator.serviceWorker.register('/sw.js').then(function(reg) { + // регистрация сработала + console.log('Registration succeeded. Scope is ' + reg.scope); + }).catch(function(error) { + // регистрация прошла неудачно + console.log('Registration failed with ' + error); + }); + }; + function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); diff --git a/templates/sw.js b/templates/sw.js new file mode 100644 index 0000000..814856e --- /dev/null +++ b/templates/sw.js @@ -0,0 +1,11 @@ +self.addEventListener('install', (event) => { + console.log('Установлен'); +}); + +self.addEventListener('activate', (event) => { + console.log('Активирован'); +}); + +self.addEventListener('fetch', (event) => { + console.log('Происходит запрос на сервер'); +}); diff --git a/untitled1/middleware.py b/untitled1/middleware.py new file mode 100644 index 0000000..9e18cf8 --- /dev/null +++ b/untitled1/middleware.py @@ -0,0 +1,4 @@ +class MyMiddleware: + def process_response(self, request, response): + response['Service-Worker-Allowed'] = '/' + return response \ No newline at end of file diff --git a/untitled1/settings.py b/untitled1/settings.py index 41d6dcd..4eafc9c 100644 --- a/untitled1/settings.py +++ b/untitled1/settings.py @@ -87,6 +87,7 @@ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'untitled1.middleware.MyMiddleware', ) ROOT_URLCONF = 'untitled1.urls' diff --git a/untitled1/urls.py b/untitled1/urls.py index 4df0df8..4867f3c 100644 --- a/untitled1/urls.py +++ b/untitled1/urls.py @@ -35,6 +35,7 @@ class UserViewSet(viewsets.ModelViewSet): url(r'^register/', views.register), url(r'^survey', views.survey), url(r'^reglament/', views.reglament), + url(r'^sw.js', views.sw), url(r'^register_attention/', views.register_attention), url(r'^attention/(?P[0-9]+)/', views.view_attention, name='attention'), @@ -47,4 +48,4 @@ class UserViewSet(viewsets.ModelViewSet): from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) -urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) +urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \ No newline at end of file