mirror of
				https://github.com/DerTyp7/tealcode-django-python.git
				synced 2025-10-31 13:17:07 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.http.response import HttpResponse
 | |
| 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})
 | |
| 
 | |
| def topic(req, category, topic):
 | |
| 
 | |
|     if topic and category:
 | |
|         category_obj = Category.objects.filter(title = category).first()
 | |
|         if category_obj:
 | |
|             topic_obj = Topic.objects.filter(title=topic, category = category_obj).first()
 | |
|             previous_obj = Topic.objects.filter(id = topic_obj.id-1, category = category_obj).first()
 | |
|             next_obj = Topic.objects.filter(id = topic_obj.id+1, category = category_obj).first()
 | |
| 
 | |
|             if topic_obj:
 | |
|                 context = {
 | |
|                     'title': topic_obj.title,
 | |
|                     'code': topic_obj.code_text,
 | |
|                     'category_title': category_obj.title,
 | |
|                     'version': topic_obj.version,
 | |
|                     'previous': previous_obj,
 | |
|                     'next': next_obj,
 | |
|                     '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")
 | |
| 
 | |
|     
 | |
| 
 | |
| def category(req, category):
 | |
|     
 | |
|     if 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})
 | |
|         
 | |
|     
 | |
|     return redirect("main-index")
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| def sitemap(req):
 | |
|     topics = Topic.objects.all()
 | |
|     categories = Category.objects.all()
 | |
|     #REPLACE ALL BLANKS WITH %20
 | |
| 
 | |
| 
 | |
|     context = {
 | |
|         'topics': topics,
 | |
|         'categories': categories
 | |
|     }
 | |
|     return render(req, 'sitemap.xml', context, 'text/xml')
 | |
| 
 | |
| def about(req):
 | |
|     return render(req, "main/about.html")
 | |
| 
 | |
| 
 | |
| 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
 | 
