Merge branch 'better-analytics'

This commit is contained in:
DerTyp187
2021-11-23 18:59:45 +01:00
16 changed files with 32 additions and 134 deletions

View File

@@ -41,8 +41,6 @@ INSTALLED_APPS = [
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'main.apps.MainConfig', 'main.apps.MainConfig',
'analytics.apps.AnalyticsConfig',
'ipware',
] ]
MIDDLEWARE = [ MIDDLEWARE = [

View File

@@ -19,7 +19,6 @@ from django.views.generic.base import TemplateView
urlpatterns = [ urlpatterns = [
path('', include('main.urls')), path('', include('main.urls')),
path('analytics/', include('analytics.urls')),
path("robots.txt", TemplateView.as_view(template_name="robots.txt", content_type="text/plain")), path("robots.txt", TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
path('AD/SDGFOLKJASDNVASDFASDFSLAKDF/', admin.site.urls), path('AD/SDGFOLKJASDNVASDFASDFSLAKDF/', admin.site.urls),
] ]

View File

@@ -1,5 +0,0 @@
from django.contrib import admin
from analytics.models import View
admin.site.register(View)

View File

@@ -1,6 +0,0 @@
from django.apps import AppConfig
class AnalyticsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'analytics'

View File

@@ -1,29 +0,0 @@
# Generated by Django 3.2.9 on 2021-11-22 18:23
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
('main', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='View',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('ip', models.CharField(max_length=200)),
('date', models.DateTimeField(default=django.utils.timezone.now)),
('admin', models.BooleanField(default=False)),
('home', models.BooleanField(default=False)),
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='main.category')),
('topic', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='main.topic')),
],
),
]

View File

@@ -1,17 +0,0 @@
from django.db import models
from django.utils import timezone
from main.models import Topic, Category
class View(models.Model):
ip = models.CharField(max_length=200)
date = models.DateTimeField(default=timezone.now)
topic = models.ForeignKey(Topic, on_delete=models.CASCADE, blank=True, null=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE, blank=True, null=True)
admin = models.BooleanField(default=False)
home = models.BooleanField(default=False)
def __str__(self):
return self.ip

View File

@@ -1,20 +0,0 @@
{% extends "base.html" %}
{% block content %}
<h2>Analytics</h2>
<div class="main-content-block">
<h5>Clicks Last 30 Days</h5>
</div>
<div class="main-content-block">
<h5>Clicks In Total</h5>
</div>
<div class="main-content-block">
<h5>Clicks From Coutries Last 30 Days</h5>
</div>
<div class="main-content-block">
<h5>Clicks From Coutries In Total</h5>
</div>
{% endblock content %}

View File

@@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View File

@@ -1,6 +0,0 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name="analytics-index"),
]

View File

@@ -1,6 +0,0 @@
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
@login_required
def index(req):
return render(req, 'analytics/index.html')

View File

@@ -1,4 +1,4 @@
# Generated by Django 3.2.9 on 2021-11-22 18:23 # Generated by Django 3.2.9 on 2021-11-23 17:55
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion

View File

@@ -0,0 +1,22 @@
function accept_cookies(){
document.cookie = "cookies_allowed=1;path=/";
window.location.reload();
}
document.write('<div style="background-color: rgba(255, 255, 255, 0.219);" id="cookie_banner" class="text-center"><p>We only use non-technical cookies for analysis purposes.<br> Do you want to accept those cookies? (please)</p><button class="btn btn-success mb-3" onclick="accept_cookies()">Accept</button></div>');
cookies_allowed = document.cookie.split("cookies_allowed=")[1][0]
if(cookies_allowed == null){
document.cookie = "cookies_allowed=0;path=/";
cookies_allowed = document.cookie.split("cookies_allowed=")[1]
}
if(cookies_allowed == "1"){
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-PGM5LTFSMG');
document.getElementById("cookie_banner").style.display = "none";
}else if(cookies_allowed == "0"){
console.log("DO NOT LOAD ANALYTILCS");
}

View File

@@ -2,6 +2,13 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<!-- Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-PGM5LTFSMG"></script>
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;ga('create', 'UA-213552250-1', {'storage': 'none',});ga('send', 'pageview');</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<script src="{% static 'js/cookies.js' %}"></script>
<!-- End Google Analytics -->
<!-- Required META Tags--> <!-- Required META Tags-->
<meta charset="utf-8"/> <meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
@@ -26,31 +33,7 @@
{% endif %} {% endif %}
</head> </head>
<body class="bg-dark"> <body class="bg-dark">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-9M4H60DMBG"></script>
<div style="background-color: rgba(255, 255, 255, 0.219);" id="cookie_banner" class="text-center">
<p>We only use non-technical cookies for analysis purposes.<br> Do you want to accept those cookies? (please)</p>
<button class="btn btn-success mb-3" onclick='document.cookie = "cookies_allowed=1;path=/";window.location.reload();'>Accept</button>
</div>
<script>
cookies_allowed = document.cookie.split("cookies_allowed=")[1][0]
console.log(cookies_allowed)
if(cookies_allowed == null){
document.cookie = "cookies_allowed=0;path=/";
cookies_allowed = document.cookie.split("cookies_allowed=")[1]
}
if(cookies_allowed == "1"){
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-9M4H60DMBG');
document.getElementById("cookie_banner").style.display = "none";
}else if(cookies_allowed == "0"){
console.log("DO NOT LOAD ANALYTILCS");
}
</script>
<header class="p-3 bg-dark text-white shadow"> <header class="p-3 bg-dark text-white shadow">

View File

@@ -1,11 +1,8 @@
from django.http.response import HttpResponse, HttpResponseForbidden from django.http.response import HttpResponse
from django.shortcuts import render, redirect from django.shortcuts import render, redirect
from .models import Category, Topic, Rating from .models import Category, Topic, Rating
from analytics.models import View
def index(req): def index(req):
view = View(ip=get_ip(req), home=True)
view.save()
categorys_obj = Category.objects.all() categorys_obj = Category.objects.all()
return render(req, "main/index.html", {'categorys': categorys_obj}) return render(req, "main/index.html", {'categorys': categorys_obj})
@@ -40,10 +37,6 @@ def topic(req, category, topic):
'notHelpful_count': notHelpful_count, 'notHelpful_count': notHelpful_count,
'read_more': topic_obj.read_more, 'read_more': topic_obj.read_more,
} }
view = View(ip=get_ip(req), topic=topic_obj)
view.save()
return render(req, "main/topic.html", context) return render(req, "main/topic.html", context)
return redirect("main-index") return redirect("main-index")
@@ -57,9 +50,6 @@ def category(req, category):
if category_obj: if category_obj:
topics_obj = Topic.objects.filter(category=category_obj) topics_obj = Topic.objects.filter(category=category_obj)
view = View(ip=get_ip(req), category=category_obj)
view.save()
context = { context = {
'category_obj': category_obj, 'category_obj': category_obj,
'topics': topics_obj, 'topics': topics_obj,
@@ -83,8 +73,6 @@ def search(req, value): # https://django-taggit.readthedocs.io/en/latest/getting
def sitemap(req): def sitemap(req):
topics = Topic.objects.all() topics = Topic.objects.all()
categories = Category.objects.all() categories = Category.objects.all()
#REPLACE ALL BLANKS WITH %20
context = { context = {
'topics': topics, 'topics': topics,