added views and admin security

This commit is contained in:
DerTyp187
2021-11-18 08:48:26 +01:00
parent 1c11ebbfcc
commit 74d8f41426
10 changed files with 147 additions and 7 deletions

View File

@@ -19,5 +19,5 @@ from django.urls import path, include
urlpatterns = [
path('', include('main.urls')),
path('analytics/', include('analytics.urls')),
path('admin/', admin.site.urls),
path('SDGFOLKJASDNVASDFASDFSLAKDF/', admin.site.urls),
]

View File

@@ -1,3 +1,5 @@
from django.contrib import admin
# Register your models here.
from analytics.models import View
admin.site.register(View)

View File

@@ -0,0 +1,17 @@
# Generated by Django 3.2.9 on 2021-11-18 07:10
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('analytics', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='view',
name='category',
),
]

View File

@@ -0,0 +1,30 @@
# Generated by Django 3.2.9 on 2021-11-18 07:24
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('main', '0008_alter_topic_output'),
('analytics', '0002_remove_view_category'),
]
operations = [
migrations.AddField(
model_name='view',
name='admin',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='view',
name='category',
field=models.ForeignKey(blank=True, default=None, on_delete=django.db.models.deletion.CASCADE, to='main.category'),
),
migrations.AlterField(
model_name='view',
name='topic',
field=models.ForeignKey(blank=True, default=None, on_delete=django.db.models.deletion.CASCADE, to='main.topic'),
),
]

View File

@@ -0,0 +1,25 @@
# Generated by Django 3.2.9 on 2021-11-18 07:26
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('main', '0008_alter_topic_output'),
('analytics', '0003_auto_20211118_0824'),
]
operations = [
migrations.AlterField(
model_name='view',
name='category',
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='main.category'),
),
migrations.AlterField(
model_name='view',
name='topic',
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='main.topic'),
),
]

View File

@@ -0,0 +1,25 @@
# Generated by Django 3.2.9 on 2021-11-18 07:27
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('main', '0008_alter_topic_output'),
('analytics', '0004_auto_20211118_0826'),
]
operations = [
migrations.AlterField(
model_name='view',
name='category',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='main.category'),
),
migrations.AlterField(
model_name='view',
name='topic',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='main.topic'),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2021-11-18 07:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('analytics', '0005_auto_20211118_0827'),
]
operations = [
migrations.AddField(
model_name='view',
name='home',
field=models.BooleanField(default=False),
),
]

View File

@@ -1,13 +1,17 @@
from django.db import models
from django.db.models.deletion import CASCADE
from django.utils import timezone
from main.models import Category,Topic
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=CASCADE)
category = models.ForeignKey(Category, on_delete=CASCADE)
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,4 +1,6 @@
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,8 +1,10 @@
from django.shortcuts import render, redirect
from .models import Category, Topic
from analytics.models import View
def index(req):
view = View(ip=get_client_ip(req), home=True)
view.save()
categorys_obj = Category.objects.all()
return render(req, "main/index.html", {'categorys': categorys_obj})
@@ -26,6 +28,9 @@ def topic(req, category, topic):
'output': topic_obj.output,
}
view = View(ip=get_client_ip(req), topic=topic_obj)
view.save()
return render(req, "main/topic.html", context)
return redirect("main-index")
@@ -38,6 +43,10 @@ def category(req, category):
category_obj = Category.objects.filter(title = category).first()
if category_obj:
topics_obj = Topic.objects.filter(category=category_obj)
view = View(ip=get_client_ip(req), category=category_obj)
view.save()
return render(req, "main/category.html", {'category_obj': category_obj, 'topics': topics_obj})
@@ -55,3 +64,11 @@ def about(req):
def privacy(req):
return render(req, "main/privacy.html")
def get_client_ip(req):
x_forwarded_for = req.META.get("HTTP_X_FORWARDED_FOR")
if x_forwarded_for:
ip = x_forwarded_for.split[","][0]
else:
ip = req.META.get("REMOTE_ADDR")
return ip