def report(request): # Updating 'reported' field of news in database myclient, mydb = get_MongoClient() mycol = mydb["news_table"] id = request.POST.get('newsid') myquery = {"_id": ObjectId(id)} newvalues = {"$set": {"Reported": True}} mycol.update_one(myquery, newvalues) print("\n-------News Id : ", id, "reported successfully!--------\n") return HttpResponseRedirect("/home")
def delete_news(request): if not request.session.get('useremail', None): print("user is not logged in") c = {} c.update(csrf(request)) return render(request, 'adminlogin.html', c) #Deleting news from database myclient, mydb = get_MongoClient() mycol = mydb["news_table"] id = request.POST.get('newsid') mycol.delete_one({'_id': ObjectId(id)}) print("\n-------News Id : ", id, "deleted successfully!--------\n") return HttpResponseRedirect('/adminhome')
def oldnews(request, hrs): #Getting news list from database c = {} c.update(csrf(request)) myclient, mydb = get_MongoClient() mycol = mydb["news_table"] news = mycol.find() news_list = [] for i in news: time = i['DateTime'] current_time = datetime.now() #Setting the duration duration = (current_time - time).total_seconds() i['DateTime'] = int(duration // 60) i['id'] = i['_id'] # Keeping news which were latest by 6 hrs (21600 sec) if (duration < (hrs * 3600)): news_list.append(i) nl_len = len(news_list) page = request.GET.get('page', 1) #Django Pagination paginator = Paginator(news_list, 10) try: news = paginator.page(page) #For first page except PageNotAnInteger: news = paginator.page(1) #For last page except EmptyPage: news = paginator.page(paginator.num_pages) weather_report = get_weather() return render(request, 'shownews.html', { "news": news, "nl_len": nl_len, 'weather_report': weather_report })
def login(request): useremail = request.POST.get('useremail') password = request.POST.get('password') myclient, mydb = get_MongoClient() mycol = mydb["admin"] userobj = mycol.find_one({"useremail": useremail}) # print(userobj]["password"]) if userobj is None: return render(request, 'adminlogin.html', {'error': login_error}) else: # print(userobj["password"]) if password == userobj["password"]: request.session["useremail"] = useremail return HttpResponseRedirect('/adminhome') else: return render(request, 'adminlogin.html', {'error': login_error}) return render(request, 'adminlogin.html')
def reported(request): if not request.session.get('useremail', None): print("user is not logged in") c = {} c.update(csrf(request)) return render(request, 'adminlogin.html', c) #Getting news list from database c = {} c.update(csrf(request)) myclient, mydb = get_MongoClient() mycol = mydb["news_table"] news = mycol.find({'Reported': True}) news_list = [] for i in news: time = i['DateTime'] current_time = datetime.now() #Setting the duration duration = (current_time - time).total_seconds() i['DateTime'] = int(duration // 60) i['id'] = i['_id'] news_list.append(i) nl_len = len(news_list) page = request.GET.get('page', 1) #Django Pagination paginator = Paginator(news_list, 10) try: news = paginator.page(page) #For first page except PageNotAnInteger: news = paginator.page(1) #For last page except EmptyPage: news = paginator.page(paginator.num_pages) return render(request, 'reported.html', {"news": news, "nl_len": nl_len})
def search(request): # Getting Search query query = request.POST.get('squery') # For null query if query is None: return HttpResponseRedirect("/home") myclient, mydb = get_MongoClient() mycol = mydb["news_table"] # Using MongoDB's Text index for searching on Headline, Content, Category and Source fields news = mycol.find({"$text": {"$search": query}}) news_list = [] for i in news: news_list.append(i) nl_len = len(news_list) weather_report = get_weather() return render(request, 'search.html', { "news": news_list, "nl_len": nl_len, 'weather_report': weather_report })