def blog_post(request,blog_id): stores_ip(request) context = {} obj = get_object_or_404(models.BlogPost,id=blog_id) comments = models.Comment.objects.filter(post=obj ,is_published=True) print(comments) context['obj'] = obj context['comments'] = comments obj_prev = models.BlogPost.objects.filter(id__lt=blog_id)[0:1] obj_next = models.BlogPost.objects.filter(id__gt=blog_id)[0:1] if obj_prev: context['obj_prev']=obj_prev if obj_next: context['obj_next']=obj_next form = forms.CommentForm context['form'] = form if 'liked'in request.session: if blog_id in request.session['liked']: context['liked'] = True elif 'disliked' in request.session: if blog_id in request.session['liked']: context['disliked'] = True if request.method == 'POST': form = forms.CommentForm(request.POST) if form.is_valid(): form.savepost(request,form,obj) sendemail('You have recieved a new comment', f"Hello there, you have recieved new comment from {form.cleaned_data['name']} and for the post {obj.title}") return render(request, 'blog/post.html', context)
def create_post(request): form = forms.PostForm if request.method == 'POST': form = forms.PostForm(request.POST, request.FILES) if form.is_valid(): print('from valid') form.savepost(request,form) sendemail("There's a new post in your website ", f"Hello There, you have a new post in the website with the title {form.cleaned_data['title']} and by {request.user.name} and it havent published yet.") return redirect('admin') # send an email return render(request, 'blog/create_post.html', {'form': form})
def contact(requests): form = forms.ContactForm stores_ip(requests) if requests.method == 'POST': form = forms.ContactForm(requests.POST) if form.is_valid(): form.save() sendemail( 'You have recieved a new contact form', f"Hey, you have recieved a new contact form with a name of {form.cleaned_data['name']} and email {form.cleaned_data['email']}" ) # send an email return render(requests, 'pages/contact.html', {'form': form})
def dislike_post(request,blog_id): sendemail('Hey you have a new dislike',f'Hello, you have recieved a dislike in the post {obj.title}') obj = get_object_or_404(models.BlogPost, id=blog_id) if 'disliked' in request.session: disliked_posts = request.session['disliked'] disliked_posts.append(blog_id) request.session['disliked'] = disliked_posts obj.dislikes += 1 obj.save() return redirect('blogpost', blog_id) else: disliked_posts = [] disliked_posts.append(blog_id) request.session['disliked'] = disliked_posts obj.dislikes += 1 obj.save() return redirect('blogpost', blog_id)
def like_post(request,blog_id): obj = get_object_or_404(models.BlogPost, id=blog_id) sendemail('Hey you have a new like',f'Hello, you have recieved a like in the post {obj.title}') if 'liked' in request.session: liked_posts = request.session['liked'] liked_posts.append(blog_id) request.session['liked'] = liked_posts obj.likes += 1 obj.save() return redirect('blogpost', blog_id) else: liked_posts = [] liked_posts.append(blog_id) request.session['liked'] = liked_posts obj.likes += 1 obj.save() return redirect('blogpost', blog_id)
def stores_ip(request): record = models.ViewLog(IP=get_client_ip(request)) record.save() if models.ViewLog.objects.all().count() % 100 == 0: sendemail('You have scored another 100 views', f'Hey, you have recieved another 100 views and has a total views of {models.ViewLog.objects.all().count()}')