Use sites framework to get current site
This commit is contained in:
parent
579c162365
commit
6d542e81e5
@ -18,6 +18,6 @@ urlpatterns = [
|
|||||||
path(
|
path(
|
||||||
"<service_uuid>/<identifier>/script.js",
|
"<service_uuid>/<identifier>/script.js",
|
||||||
ingress.ScriptView.as_view(),
|
ingress.ScriptView.as_view(),
|
||||||
name="endpoint_pixel_id",
|
name="endpoint_script_id",
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
@ -4,7 +4,7 @@ window.onload = function () {
|
|||||||
Math.random().toString(36).substring(2, 15);
|
Math.random().toString(36).substring(2, 15);
|
||||||
function sendUpdate() {
|
function sendUpdate() {
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.open("POST", "{{endpoint}}", true);
|
xhr.open("POST", self.location.protocol + "//{{request.site.domain|default:request.META.HTTP_HOST}}{{endpoint}}", true);
|
||||||
xhr.setRequestHeader("Content-Type", "application/json");
|
xhr.setRequestHeader("Content-Type", "application/json");
|
||||||
xhr.send(
|
xhr.send(
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
|
@ -2,7 +2,7 @@ import base64
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render, reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
@ -64,10 +64,24 @@ class ScriptView(View):
|
|||||||
return resp
|
return resp
|
||||||
|
|
||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
|
endpoint = (
|
||||||
|
reverse(
|
||||||
|
"ingress:endpoint_script",
|
||||||
|
kwargs={"service_uuid": self.kwargs.get("service_uuid"),},
|
||||||
|
)
|
||||||
|
if self.kwargs.get("identifier") == None
|
||||||
|
else reverse(
|
||||||
|
"ingress:endpoint_script_id",
|
||||||
|
kwargs={
|
||||||
|
"service_uuid": self.kwargs.get("service_uuid"),
|
||||||
|
"identifier": self.kwargs.get("identifier"),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
)
|
||||||
return render(
|
return render(
|
||||||
self.request,
|
self.request,
|
||||||
"analytics/scripts/page.js",
|
"analytics/scripts/page.js",
|
||||||
context={"endpoint": self.request.build_absolute_uri()},
|
context={"endpoint": endpoint},
|
||||||
content_type="application/javascript",
|
content_type="application/javascript",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -29,11 +29,3 @@ class DateRangeMixin:
|
|||||||
data["start_date"] = self.get_start_date()
|
data["start_date"] = self.get_start_date()
|
||||||
data["end_date"] = self.get_end_date()
|
data["end_date"] = self.get_end_date()
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
class BaseUrlMixin:
|
|
||||||
def get_context_data(self, **kwargs):
|
|
||||||
data = super().get_context_data(**kwargs)
|
|
||||||
url_data = urlparse(self.request.build_absolute_uri())
|
|
||||||
data["base_url"] = f"{url_data.scheme}://{url_data.netloc}"
|
|
||||||
return data
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
{% block card %}
|
{% block card %}
|
||||||
<form class="login" method="POST" action="{% url 'account_login' %}">
|
<form class="login" method="POST" action="{% url 'account_login' %}">
|
||||||
<aside class="aside ~info mb-4">
|
<aside class="aside ~info mb-4">
|
||||||
<p>Welcome to Shynet, a self-hosted analytics tool that's open source and privacy conscious. View the <a href="https://github.com/milesmcc/shynet">source code</a>.</p>
|
<p>Welcome to {{request.site.name|default:"Shynet"}}, a self-hosted analytics tool that's open source and privacy conscious. Powered by Shynet. View the <a href="https://github.com/milesmcc/shynet">source code</a>.</p>
|
||||||
</aside>
|
</aside>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form|a17t }}
|
{{ form|a17t }}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>{% block head_title %}Privacy-oriented analytics{% endblock %} | Shynet</title>
|
<title>{% block head_title %}Privacy-oriented analytics{% endblock %} | {{request.site.name}}</title>
|
||||||
<meta name="robots" content="noindex">
|
<meta name="robots" content="noindex">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
{% include 'a17t/head.html' %}
|
{% include 'a17t/head.html' %}
|
||||||
|
@ -21,6 +21,6 @@
|
|||||||
{% for object in services %}
|
{% for object in services %}
|
||||||
{% include 'dashboard/includes/service_overview.html' %}
|
{% include 'dashboard/includes/service_overview.html' %}
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<p>You don't have any services on this Shynet instance yet.</p>
|
<p>You don't have any services on {{request.site.name|default:"Shynet"}} yet.</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="content">
|
<section class="content">
|
||||||
<h2>Shynet Analytics</h2>
|
<h2>{{request.site.name}} Analytics</h2>
|
||||||
<p>Eventually, more information about Shynet will be available here.</p>
|
<p>{{request.site.name}} uses Shynet. Eventually, more information about Shynet will be available here.</p>
|
||||||
<a href="{% url 'account_login' %}" class="button ~urge !high">Log In</a>
|
<a href="{% url 'account_login' %}" class="button ~urge !high">Log In</a>
|
||||||
</section>
|
</section>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -15,7 +15,7 @@ from django.db.models import Q
|
|||||||
from analytics.models import Session
|
from analytics.models import Session
|
||||||
|
|
||||||
from .forms import ServiceForm
|
from .forms import ServiceForm
|
||||||
from .mixins import BaseUrlMixin, DateRangeMixin
|
from .mixins import DateRangeMixin
|
||||||
from core.models import Service
|
from core.models import Service
|
||||||
|
|
||||||
class DashboardView(LoginRequiredMixin, DateRangeMixin, TemplateView):
|
class DashboardView(LoginRequiredMixin, DateRangeMixin, TemplateView):
|
||||||
@ -64,7 +64,7 @@ class ServiceView(
|
|||||||
|
|
||||||
|
|
||||||
class ServiceUpdateView(
|
class ServiceUpdateView(
|
||||||
LoginRequiredMixin, PermissionRequiredMixin, BaseUrlMixin, UpdateView
|
LoginRequiredMixin, PermissionRequiredMixin, UpdateView
|
||||||
):
|
):
|
||||||
model = Service
|
model = Service
|
||||||
form_class = ServiceForm
|
form_class = ServiceForm
|
||||||
|
@ -59,6 +59,7 @@ MIDDLEWARE = [
|
|||||||
"django.middleware.common.CommonMiddleware",
|
"django.middleware.common.CommonMiddleware",
|
||||||
"django.middleware.csrf.CsrfViewMiddleware",
|
"django.middleware.csrf.CsrfViewMiddleware",
|
||||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||||
|
"django.contrib.sites.middleware.CurrentSiteMiddleware",
|
||||||
"django.contrib.messages.middleware.MessageMiddleware",
|
"django.contrib.messages.middleware.MessageMiddleware",
|
||||||
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
||||||
]
|
]
|
||||||
|
@ -19,7 +19,7 @@ from django.urls import include, path
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
path("accounts/", include("allauth.urls")),
|
path("accounts/", include("allauth.urls")),
|
||||||
path("ingress/", include("analytics.ingress_urls"), name="ingress"),
|
path("ingress/", include(("analytics.ingress_urls", "ingress")), name="ingress"),
|
||||||
path("dashboard/", include(("dashboard.urls", "dashboard"), namespace="dashboard")),
|
path("dashboard/", include(("dashboard.urls", "dashboard"), namespace="dashboard")),
|
||||||
path("", include(("core.urls", "core"), namespace="core")),
|
path("", include(("core.urls", "core"), namespace="core")),
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user