mirror of
https://github.com/DerTyp7/tealcode-django-python.git
synced 2025-10-29 12:32:09 +01:00
added views and admin security
This commit is contained in:
@@ -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),
|
||||
]
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
from analytics.models import View
|
||||
|
||||
admin.site.register(View)
|
||||
17
TealCode/analytics/migrations/0002_remove_view_category.py
Normal file
17
TealCode/analytics/migrations/0002_remove_view_category.py
Normal 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',
|
||||
),
|
||||
]
|
||||
30
TealCode/analytics/migrations/0003_auto_20211118_0824.py
Normal file
30
TealCode/analytics/migrations/0003_auto_20211118_0824.py
Normal 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'),
|
||||
),
|
||||
]
|
||||
25
TealCode/analytics/migrations/0004_auto_20211118_0826.py
Normal file
25
TealCode/analytics/migrations/0004_auto_20211118_0826.py
Normal 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'),
|
||||
),
|
||||
]
|
||||
25
TealCode/analytics/migrations/0005_auto_20211118_0827.py
Normal file
25
TealCode/analytics/migrations/0005_auto_20211118_0827.py
Normal 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'),
|
||||
),
|
||||
]
|
||||
18
TealCode/analytics/migrations/0006_view_home.py
Normal file
18
TealCode/analytics/migrations/0006_view_home.py
Normal 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),
|
||||
),
|
||||
]
|
||||
@@ -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
|
||||
|
||||
@@ -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')
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user