Esempio n. 1
0
def addItem_aa(request, bookId):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    if request.method == 'POST' :
        #contactIds = request.REQUEST.getList("contact")
        form = ItemForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            billItems = []
            g = Bill(title=cd['title'], description=cd['description'], book=Book(pk=bookId), date=cd['date'], create_by=request.user, amount=cd['amount'])
            g.save()
            for contactId in request.POST["contactId0s"].strip(",").split(","):
                subAmount = request.POST['subCount0_'+contactId]
                billItems.append(Bill_Item(contact=Contact(pk=contactId), amount=subAmount, bill=g))

            for contactId in request.POST["contactIds"].strip(",").split(","):
                subAmount = -float(request.POST['subCount_'+contactId])
                billItems.append(Bill_Item(contact=Contact(pk=contactId), amount=subAmount, bill=g))
            for billItem in billItems:
                billItem.save()
            return HttpResponseRedirect(getHost(request) + "/books/" + bookId + "/")
    else:
        form = ItemForm(initial={'type':'1'})
    contacts = [contactBook.contact for contactBook in Contact_Book.objects.filter(book=Book(pk=bookId))]
    return  render_to_response('books/item_form_aa.html', {'form':form, 'contacts':contacts},context_instance=RequestContext(request))
Esempio n. 2
0
def deleteBookTypes(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    ids = request.GET["ids"].split(",")
    for idItem in ids:
        if idItem:
            Book_Type.objects.all().filter(id=idItem).delete()
    return HttpResponseRedirect(getHost(request) + "/bookTypes/")
Esempio n. 3
0
def deleteItems(request,bookId):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    ids = request.GET["ids"].split(",")
    for idItem in ids:
        if idItem:
            Bill.objects.get(pk=idItem).delete()
    return HttpResponseRedirect(getHost(request) + "/books/" + bookId + "/")
Esempio n. 4
0
def deleteContacts(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    ids = request.GET["ids"].split(",")
    for idItem in ids:
        if idItem:
            Contact.objects.get(id=idItem).delete()
    return HttpResponseRedirect(getHost(request) + "/contacts/")
Esempio n. 5
0
def addBookType(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    if request.method == 'POST' :
        form = BookTypeForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            g = Book_Type(name=cd['name'], description=cd['description'])
            g.save()
            return HttpResponseRedirect(getHost(request) + "/bookTypes/")
    else:
        form = BookTypeForm()
    return  render_to_response('books/book_type_form.html', {'form':form}, context_instance=RequestContext(request))
Esempio n. 6
0
def balance(request, bookId):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    book = Book.objects.get(id=bookId)
    bills = book.bill_set.all()
    dic = {}
    for bill in bills:
        for item in bill.bill_item_set.all():
            if dic.has_key(item.contact.id):
                dic[item.contact.id] += item.amount
            else:
                dic[item.contact.id] = item.amount
    num = 0
    g = Bill(title='结账', book=book, create_by=request.user)
    billItems = []
    for k, v in dic.items():
        if v > 0:
            num +=v
        billItems.append(Bill_Item(contact=Contact(pk=k), amount=-v))
    g.amount = num
    g.save()    
    for billItem in billItems:
        billItem.bill = g
        billItem.save()
    
    return bookDetail(request, bookId)    
Esempio n. 7
0
def bookDetail(request, bookId):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    book = Book.objects.get(id=bookId)
    bookType = book.book_type.name
    if bookType.find("AA") >= 0:
        bills = book.bill_set.all().order_by('-date', '-id')
        iMap = {}
        for bill in bills:
            for item in bill.bill_item_set.all():
                if iMap.has_key(item.contact.name):
                    iMap[item.contact.name] += item.amount
                else:
                    iMap[item.contact.name] = item.amount
            
        return render_to_response('books/book_detail_aa.html', {'form':book, 'bills':bills, 'iMap':iMap},context_instance=RequestContext(request))    
    else:
        amountIn = 0
        amountOut = 0
        bills = book.bill_set.all().order_by('-date', '-id')
        for bill in bills:
            if bill.amount > 0:
                amountIn += bill.amount
            else:
                amountOut -= bill.amount
        amount = amountIn - amountOut
        return render_to_response('books/book_detail.html', {'form':book, 'bills':bills, 'amountIn': amountIn, 'amountOut':amountOut, 'amount':amount},context_instance=RequestContext(request))
Esempio n. 8
0
def addBook(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    if request.method == 'POST' :
        form = BookForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            g = Book(name=cd['name'], description=cd['description'], book_type=cd['book_type'])
            g.create_by = request.user
            g.save()
            for contactId in request.POST['contacts'].split(","):
                Contact_Book(contact=Contact(id=contactId), book=g).save()
            return HttpResponseRedirect(getHost(request) + "/books/")
    else:
        form = BookForm()
    contacts = Contact.objects.filter(create_by=request.user)
    return  render_to_response('books/book_form.html', {'form':form, 'contacts':contacts},context_instance=RequestContext(request))
Esempio n. 9
0
def logout(
    request,
    next_page="",
    template_name="registration/logged_out.html",
    redirect_field_name=REDIRECT_FIELD_NAME,
    current_app=None,
    extra_context=None,
):
    """
    Logs out the user and displays 'You are logged out' message.
    """
    auth_logout(request)

    if next_page:
        # Redirect to this page until the session has been cleared.
        return HttpResponseRedirect(getHost() + next_page)

    return TemplateResponse(request, template_name, None, current_app=current_app)
Esempio n. 10
0
def login(
    request,
    template_name="registration/login.html",
    redirect_field_name=REDIRECT_FIELD_NAME,
    authentication_form=AuthenticationForm,
    current_app=None,
    extra_context=None,
):
    """
    Displays the login form and handles the login action.
    """
    redirect_to = request.REQUEST.get(redirect_field_name, "")

    if request.method == "POST":
        form = authentication_form(data=request.POST)
        if form.is_valid():

            # Ensure the user-originating redirection url is safe.
            if not is_safe_url(url=redirect_to, host=request.get_host()):
                redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL)

            # Okay, security check complete. Log the user in.
            auth_login(request, form.get_user())

            if request.session.test_cookie_worked():
                request.session.delete_test_cookie()

            return HttpResponseRedirect(getHost() + redirect_to)
    else:
        form = authentication_form(request)

    request.session.set_test_cookie()

    current_site = get_current_site(request)

    context = {"form": form, redirect_field_name: redirect_to, "site": current_site, "site_name": current_site.name}
    if extra_context is not None:
        context.update(extra_context)
    return TemplateResponse(request, template_name, context, current_app=current_app)
Esempio n. 11
0
def listContacts(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    l = Contact.objects.filter(create_by=request.user)
    return render_to_response('books/contacts.html', {'forms':l},context_instance=RequestContext(request))
Esempio n. 12
0
def listBookTypes(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(getHost(request) + '/login/?next=%s' % request.path)  
    l = Book_Type.objects.all()
    return render_to_response('books/book_types.html', {'forms':l},context_instance=RequestContext(request))