Restored support to oldest Django versions
This commit is contained in:
@@ -3,8 +3,9 @@ from django.conf import settings
|
||||
import os
|
||||
|
||||
# Path to the service worker implementation. Default implementation is empty.
|
||||
PWA_SERVICE_WORKER_PATH = getattr(settings, 'PWA_SERVICE_WORKER_PATH', 'serviceworker.js')
|
||||
|
||||
PWA_SERVICE_WORKER_PATH = getattr(settings, 'PWA_SERVICE_WORKER_PATH',
|
||||
os.path.join(os.path.abspath(os.path.dirname(__file__)), 'templates',
|
||||
'serviceworker.js'))
|
||||
# App parameters to include in manifest.json and appropriate meta tags
|
||||
PWA_APP_NAME = getattr(settings, 'PWA_APP_NAME', 'MyApp')
|
||||
PWA_APP_DESCRIPTION = getattr(settings, 'PWA_APP_DESCRIPTION', 'My Progressive Web App')
|
||||
|
||||
10
pwa/urls.py
10
pwa/urls.py
@@ -1,10 +1,10 @@
|
||||
from django.urls import path
|
||||
from django.conf.urls import url
|
||||
|
||||
from .views import Manifest, ServiceWorker, OfflineView
|
||||
from .views import manifest, service_worker, offline
|
||||
|
||||
# Serve up serviceworker.js and manifest.json at the root
|
||||
urlpatterns = [
|
||||
path('serviceworker.js', ServiceWorker.as_view(), name='serviceworker'),
|
||||
path('manifest.json', Manifest.as_view(), name='manifest'),
|
||||
path('offline', OfflineView.as_view(), name='offline')
|
||||
url('^serviceworker.js$', service_worker, name='serviceworker'),
|
||||
url('^manifest.json$', manifest, name='manifest'),
|
||||
url('^offline/$', offline, name='offline')
|
||||
]
|
||||
|
||||
32
pwa/views.py
32
pwa/views.py
@@ -1,27 +1,21 @@
|
||||
from django.views.generic.base import TemplateView
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import render
|
||||
|
||||
from . import app_settings
|
||||
|
||||
|
||||
class ServiceWorker(TemplateView):
|
||||
content_type = 'application/javascript'
|
||||
template_name = app_settings.PWA_SERVICE_WORKER_PATH
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
kwargs['PWA_APP_FETCH_URL'] = app_settings.PWA_APP_FETCH_URL
|
||||
return super().get_context_data(**kwargs)
|
||||
def service_worker(request):
|
||||
response = HttpResponse(open(app_settings.PWA_SERVICE_WORKER_PATH).read(), content_type='application/javascript')
|
||||
return response
|
||||
|
||||
|
||||
class Manifest(TemplateView):
|
||||
content_type = 'application/json'
|
||||
template_name = 'manifest.json'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
for setting_name in dir(app_settings):
|
||||
if setting_name.startswith('PWA_'):
|
||||
kwargs[setting_name] = getattr(app_settings, setting_name)
|
||||
return super().get_context_data(**kwargs)
|
||||
def manifest(request):
|
||||
return render(request, 'manifest.json', {
|
||||
setting_name: getattr(app_settings, setting_name)
|
||||
for setting_name in dir(app_settings)
|
||||
if setting_name.startswith('PWA_')
|
||||
})
|
||||
|
||||
|
||||
class OfflineView(TemplateView):
|
||||
template_name = "offline.html"
|
||||
def offline(request):
|
||||
return render(request, "offline.html")
|
||||
|
||||
Reference in New Issue
Block a user