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))
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/")
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 + "/")
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/")
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))
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)
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))
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))
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)
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)
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))
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))