mirror of
				https://github.com/DerTyp7/tealcode-django-python.git
				synced 2025-10-31 05:07:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			120 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.http.response import HttpResponse
 | |
| from django.shortcuts import render, redirect
 | |
| from .models import Category, Topic, Rating
 | |
| 
 | |
| def index(req):
 | |
|     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()
 | |
|             helpful_count = 0
 | |
|             notHelpful_count = 0
 | |
| 
 | |
|             for rating in Rating.objects.filter(topic=topic_obj):
 | |
|                 if rating.is_positive == 1:
 | |
|                     helpful_count = helpful_count+1
 | |
|                 else:
 | |
|                     notHelpful_count = notHelpful_count +1
 | |
| 
 | |
|             if topic_obj:# topic_obj.title
 | |
|                 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,
 | |
|                     'current': category_obj.title,
 | |
|                     'helpful_count': helpful_count,
 | |
|                     'notHelpful_count': notHelpful_count,
 | |
|                     'read_more': topic_obj.read_more,
 | |
|                     'keywords': topic_obj.tags,
 | |
|                     'description': topic_obj.description,
 | |
|                 }
 | |
|                 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)
 | |
| 
 | |
|             context = {
 | |
|                 'category_obj': category_obj,
 | |
|                 'topics': topics_obj,
 | |
|                 'current': category_obj.title,
 | |
|                 'title': category_obj.display_name,
 | |
|                 'keywords': category_obj.tags,
 | |
|                 'description': category_obj.description,
 | |
|             }
 | |
| 
 | |
|             return render(req, "main/category.html", context)
 | |
|         
 | |
|     
 | |
|     return redirect("main-index")
 | |
| 
 | |
| 
 | |
| def search(req, value): # https://django-taggit.readthedocs.io/en/latest/getting_started.html        
 | |
|     
 | |
|     return HttpResponse("<h1>moin</h1>")
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| def sitemap(req):
 | |
|     topics = Topic.objects.all()
 | |
|     categories = Category.objects.all()
 | |
| 
 | |
|     context = {
 | |
|         'topics': topics,
 | |
|         'categories': categories
 | |
|     }
 | |
|     return render(req, 'sitemap.xml', context, 'text/xml')
 | |
| 
 | |
| def about(req):
 | |
|     return render(req, "main/about.html", {'current': 'about'})
 | |
| 
 | |
| 
 | |
| def privacy(req):
 | |
|     return render(req, "main/privacy.html", {'current': 'privacy'})
 | |
| 
 | |
| def rating(req, topic_title, is_positive):
 | |
|     topic = Topic.objects.filter(title=topic_title).first()
 | |
| 
 | |
| 
 | |
|     if(Rating.objects.filter(ip=get_ip(req), topic=topic)):
 | |
|         return redirect("main-index")
 | |
| 
 | |
|     if is_positive == 1:
 | |
|         is_positive = True
 | |
|     else:
 | |
|         is_positive = False
 | |
| 
 | |
|     rating = Rating(topic=topic, is_positive=is_positive, ip=get_ip(req))
 | |
| 
 | |
|     rating.save()
 | |
|     return redirect("main-index")
 | |
| 
 | |
| def get_ip(req):
 | |
|     ip = req.META.get('HTTP_X_REAL_IP') 
 | |
|     if ip is None:
 | |
|         return "x.x.x.x"
 | |
|     else:
 | |
|         # We got the client's IP address
 | |
|         return ip
 | |
|     
 | |
| 
 | 
