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, )))
예제 #10
0
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, )))
예제 #11
0
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, )))
예제 #12
0
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'))
예제 #13
0
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)
예제 #14
0
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)
예제 #15
0
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)
예제 #16
0
def admin_entity_list(request):
    user_ver(request, True)
    context = {'entity_list': Entity.objects.all(), 'admin': True}
    return render(request, 'entity/list.html', context)
예제 #17
0
def createadmin(request):
    user_ver(request, True)
    context = {'admin': True}
    return render(request, 'account/createac.html', context)
예제 #18
0
def create_conversation(request, receiver_id):
    user_ver(request, True)
    return HttpResponseRedirect(
        reverse('adminconversation', args=(receiver_id, )))
예제 #19
0
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)
예제 #20
0
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)
예제 #21
0
def support(request):
    user_ver(request, False)
    return render(request, 'home/contact_for_help.html')