示例#1
0
def get_list(request):
    """ Retrieves a single list """
    if request.method == POST:
        name = request.POST.get('list_name')
    elif request.method == GET:
        name = request.GET.get('list_name')
    else:
        raise Exception("Call to this method must be post or get!", request)
    # result = ShoppingList.objects.get(name__exact=name).next()
    ## DEV
    if name == 'Groceries':
        result = ShoppingList(name="Groceries", numberOfItems=5, contents={})
        result.contents['Potatoes'] = 5
        result.contents['Milk'] = 1
        result.contents['Rice'] = 1
    elif name == 'Christmas':
        result = ShoppingList(name="Christmas", numberOfItems=12, contents={})
        result.contents['Turkey'] = 1
        result.contents['Wine'] = 2
        result.contents['Crackers'] = 4
        result.contents['Pudding'] = 1
    else:
        result = ShoppingList(name=name)
    return JsonResponse({'list': json.dumps({
        'name': name,
        'contents': result.contents
        })})
示例#2
0
def login_user(request):
    """ Login function """
    username, password = retrieve_user_password(request)
    _user = authenticate(username=username, password=password)
    if _user is not None:
        if _user.is_active:
            login(request, _user)
            load_data(request, _user)
            return JsonResponse({
                'valid': True,
                'next': '/home',
            })
            # return HttpResponseRedirect('/home')
        # else:
        # Inactive account
        # return views.home(request)
    else:
        return JsonResponse({'valid': False})
示例#3
0
def register_user(request):
    """ Saves the user onto the database """
    usrnm, password, email = retrieve_user_password_email(request)
    try:
        result = User.objects.get(email__exact=email) is not None
    except ObjectDoesNotExist:
        result = False
    except MultipleObjectsReturned:
        result = True
    if result is True:
        return JsonResponse({'valid': False})
    n_user = User.objects.create_user(usrnm, email, password)
    n_user.save()
    n_user_obj = UserObject(user=n_user, shoppinglists=[])
    n_user_obj.save()
    new_user = authenticate(username=usrnm, password=password)
    if new_user is not None and new_user.is_active:
        login(request, new_user)
        return JsonResponse({'valid': True, 'next': 'home/'})
    return JsonResponse({'valid': False})
示例#4
0
def check_email(request):
    """ Checks for the existence of an email address """
    email_check = request.POST.get('email')
    if email_check is None:
        # return JsonResponse({'valid': False})
        return HttpResponseRedirect('/')
    try:
        result = User.objects.get(email__exact=email_check) is not None
    except ObjectDoesNotExist:
        result = False
    except MultipleObjectsReturned:
        result = True
    # result = True
    return JsonResponse({'exists': result})
示例#5
0
def home_layout(request, layout):
    """ Fetch the required layout """
    if layout == 'controls':
        result = UserObject.objects.get(user__exact=request.user).layout
        return JsonResponse({'controls': result})
    return None
示例#6
0
def get_message_count(request):
    """ Gets the number of unread/new messages from the database """
    messages = _get_or_fetch_messages(request)
    return JsonResponse({'message_count': messages.length()})
示例#7
0
def get_all_lists(request):
    """ Retrieves all of the lists for a specified user """
    result = UserObject.objects.get(user__exact=request.user).next()
    return JsonResponse(result)
示例#8
0
def get_timeline(request):
    """ Retrieves the timeline for the currently logged in user """
    timeline = UserObject.objects.get(user__exact=request.user).timeline
    return JsonResponse({'timeline': timeline})
示例#9
0
def get_messages(request):
    """ Retrieves all the messages for this user """
    return JsonResponse({'messages': _get_or_fetch_messages(request)})
示例#10
0
def logout_user(request):
    """ Logs out the current user and returns the home page """
    logout(request)
    return JsonResponse({'next': '/'})