def search(request): user_ver(request, False) input = request.POST['search_input'] try: sort = request.POST['sort'] except: sort = 'none' if (not input) and sort == 'none': return HttpResponseRedirect(reverse('list', args=())) if sort == 'none': entity_list = Entity.objects.filter(name__icontains=input) else: if sort == 'name': #ascending entity_list = Entity.objects.filter( name__icontains=input).order_by(sort) else: #descending sort = '-' + sort entity_list = Entity.objects.filter( name__icontains=input).order_by(sort) context = {'entity_list': entity_list, 'admin': False, 'search': True} return render(request, 'entity/list.html', context)
def review(request, entity_id): user_ver(request, False) process_access(request, 'commentbox') entity = Entity.objects.get(id=entity_id) comment = request.POST['commentbox'] try: selected = request.POST['review'] except: selected = '0' if (selected == 'Good' or selected == 'Bad'): if (selected == 'Good'): entity.positive_review += 1 else: entity.negative_review += 1 entity.save() comment = comment.strip() if comment: new_comment = EntityComment() new_comment.entity_id = entity_id new_comment.comment = comment new_comment.save() entity.comment += 1 entity.save() return HttpResponseRedirect(reverse('detail', args=(entity_id, )))
def start_new_conversation(request): user_ver(request, True) context = { 'ac': Account.objects.all(), 'myac': Account.objects.get(id=request.session['user_id']) } return render(request, 'admin/admin_start_new_conversation.html', context)
def logout(request): user_ver(request, False, True) try: del request.session['user_id'] except KeyError: pass return HttpResponseRedirect(reverse('login'))
def admin_messenger(request): user_ver(request, True) admin_id = request.session['user_id'] x = [] message_list = Message.objects.all() #sender = False for message in message_list: if message.receiverid != admin_id and message.senderid != admin_id: message_list.exclude(id=message.id) else: if message.receiverid != admin_id: if message.receiverid not in x: x.append(message.receiverid) else: message_list.exclude(id=message.id) else: if message.senderid not in x: x.append(message.senderid) else: message_list.exclude(id=message.id) context = { 'conversation_list': x, 'account_list': Account.objects.all(), 'admin': True } return render(request, 'messenger/messenger.html', context)
def conversation(request, receiver_id): user_ver(request, False, True) x = [] count = 0 admin_id = request.session['user_id'] messages = Message.objects.order_by('deliver_date', 'deliver_time').all() for each in messages: if ((int(each.receiverid) == int(receiver_id)) and (int(each.senderid) == int(admin_id))): x.append(each) count += 1 if ((int(each.receiverid) == int(admin_id)) and (int(each.senderid) == int(receiver_id))): x.append(each) count += 1 if Account.objects.get( id=request.session['user_id']).account_type == "Admin": admin = True else: admin = False context = { 'messages': x, 'account_list': Account.objects.all(), 'receiver_id': int(receiver_id), 'admin': admin, 'count': count } return render(request, 'messenger/conversation.html', context)
def adminsearch(request): user_ver(request, True) input = request.POST['search_input'] context = { 'entity_list': Entity.objects.filter(name__icontains=input), 'admin': True, 'search': True } return render(request, 'entity/list.html', context)
def home(request): user_ver(request, False) ac = Account.objects.get(id=request.session['user_id']) if ac.account_type == 'Student': recommend_list = Entity.objects.all().order_by( "-positive_review").exclude(type='Hotel').exclude( type='Industry')[:4] if ac.account_type == 'Tourist': recommend_list = Entity.objects.all().order_by( "-positive_review").exclude(type='College').exclude( type='Industry').exclude(type='Library')[:4] if ac.account_type == 'Businessman': recommend_list = Entity.objects.all().order_by( "-positive_review").exclude(type='College').exclude( type='Library')[:4] context = {'username': ac.username, 'recommend_list': recommend_list} return render(request, 'home/home.html', context)
def edit_entity_save(request, entity_id): user_ver(request, True) process_access(request, 'name') types = [ 'College', 'Library', 'Industry', 'Hotel', 'Park', 'Zoo', 'Museum', 'Restaurant', 'Mall' ] user_ver(request, True) all_en = Entity.objects.all() if int(entity_id) == 0: a = Entity() else: a = Entity.objects.get(id=entity_id) requestname = request.POST['name'] for en in all_en: if (requestname == en.name) and int(entity_id) == 0: return render(request, 'entity/edit_create_entity.html', { 'message': "An entity with this name existed.", 'entityid': 0 }) try: typeno = request.POST['entype'] except MultiValueDictKeyError: return render(request, 'entity/edit_create_entity.html', {'error_message': "Please choose an entity type."}) else: entype = types[int(typeno) - 1] a.name = requestname a.description = request.POST['description'] a.address = request.POST['address'] a.photolink = request.POST['photolink'] a.officallink = request.POST['officallink'] a.type = entype a.save() if int(entity_id) == 0: return HttpResponseRedirect(reverse('adminentitylist', args=())) else: return HttpResponseRedirect(reverse('editentity', args=(entity_id, )))
def help_message(request): user_ver(request, False) process_access(request, 'help box') receiving_admin = Account.objects.get(username='******') help_message = request.POST['help box'] help_message = help_message.strip() if not help_message: return HttpResponseRedirect(reverse('support')) a = Message(senderid=request.session['user_id'], receiverid=receiving_admin.id, message=help_message) a.save() context = {} return HttpResponseRedirect( reverse('userconversation', args=(receiving_admin.id, )))
def add_message(request, receiver_id): user_ver(request, False, True) process_access(request, 'conversationbox') my_message = request.POST['conversationbox'] my_message = my_message.strip() if my_message != "": a = Message(senderid=request.session['user_id'], receiverid=receiver_id, message=my_message) a.save() if Account.objects.get( id=request.session['user_id']).account_type == "Admin": return HttpResponseRedirect( reverse('adminconversation', args=(receiver_id, ))) else: return HttpResponseRedirect( reverse('userconversation', args=(receiver_id, )))
def createadminprocess(request): user_ver(request, True) process_access(request, 'yourname') yourname = request.POST['yourname'] username = request.POST['username'] password = request.POST['password'] confirmpw = request.POST['confirm_password'] phoneno = request.POST['phone_number'] email = request.POST['email'] address = request.POST['address'] for ac in Account.objects.all(): if ac.username == username: return render(request, 'account/createac.html', { 'error_message': "This username have been chosen.", 'admin': True }) if ac.email_address == email: return render( request, 'account/createac.html', {'error_message': "This email have been registered."}) if password != confirmpw: return render(request, 'account/createac.html', { 'error_message': "Your password does not match.", 'admin': True }) newac = Account(name=yourname, account_type='Admin', username=username, password=password, phone_number=phoneno, email_address=email, residential_address=address) newac.save() return HttpResponseRedirect(reverse('adminhome'))
def edit_entity(request, entity_id): user_ver(request, True) typeno = 0 types = [ 'College', 'Library', 'Industry', 'Hotel', 'Park', 'Zoo', 'Museum', 'Restaurant', 'Mall' ] if int(entity_id) != 0: en = get_object_or_404(Entity, id=entity_id) count = 0 for i in types: count += 1 if en.type == i: typeno = count if int(entity_id) != 0: context = {'entity': en, 'entityid': int(entity_id), 'typeno': typeno} else: context = {'entityid': 0} return render(request, 'entity/edit_create_entity.html', context)
def editacsave(request): user_ver(request, False) process_access(request, 'yourname') all_ac = Account.objects.all() user_ac = Account.objects.get(id=request.session['user_id']) acname = request.POST['yourname'] acusername = request.POST['Username'] acemail = request.POST['emailaddress'] error = "Edit successful" for ac in all_ac: if acusername != user_ac.username and ac.username == acusername: error = "This username have been chosen." if acemail != user_ac.email_address and ac.email_address == acemail: error = "This email have been registered." old_pw = request.POST['old_password'] new_pw = request.POST['new_password'] confirm_pw = request.POST['confirm_password'] if (new_pw or old_pw or confirm_pw): if (user_ac.password == old_pw and new_pw == confirm_pw): user_ac.password = new_pw else: error = "Invalid password" if error == "Edit successful": user_ac.name = acname user_ac.username = acusername user_ac.email_address = acemail user_ac.residential_address = request.POST['address'] user_ac.phone_number = request.POST['contactnumber'] user_ac.save() context = {'ac': user_ac, 'message': error} return render(request, 'account/edit_account_details.html', context)
def detail(request, entity_id): user_ver(request, False) ac = Account.objects.get(id=request.session['user_id']) comments = EntityComment.objects.filter(entity_id=entity_id) count = EntityComment.objects.filter(entity_id=entity_id).count() if ac.account_type == 'Student': recommend_list = Entity.objects.all().order_by( "-positive_review").exclude(type='Hotel').exclude( type='Industry')[:4] if ac.account_type == 'Tourist': recommend_list = Entity.objects.all().order_by( "-positive_review").exclude(type='College').exclude( type='Industry').exclude(type='Library')[:4] if ac.account_type == 'Businessman': recommend_list = Entity.objects.all().order_by( "-positive_review").exclude(type='College').exclude( type='Library')[:4] context = { 'entity': get_object_or_404(Entity, id=entity_id), 'comments': comments, 'count': count, 'recommend_list': recommend_list } return render(request, 'entity/detail.html', context)
def admin_entity_list(request): user_ver(request, True) context = {'entity_list': Entity.objects.all(), 'admin': True} return render(request, 'entity/list.html', context)
def createadmin(request): user_ver(request, True) context = {'admin': True} return render(request, 'account/createac.html', context)
def create_conversation(request, receiver_id): user_ver(request, True) return HttpResponseRedirect( reverse('adminconversation', args=(receiver_id, )))
def editac(request): user_ver(request, False) context = {'ac': Account.objects.get(id=request.session['user_id'])} return render(request, 'account/edit_account_details.html', context)
def admin_home(request): user_ver(request, True) context = {'ac': Account.objects.get(id=request.session['user_id'])} return render(request, 'admin/admin_home.html', context)
def support(request): user_ver(request, False) return render(request, 'home/contact_for_help.html')