def descriptions(request): keyword = request.GET.get('term', '') if keyword: expenses = Expense.cached().filter(description__icontains=keyword).order_by('description').distinct('description') data = [expense.description for expense in expenses] else: data = [] return HttpResponse(json.dumps(data), content_type='application/javascript')
def category(request): description = request.GET.get('description', '') data = { 'category_id': 0, } if description: expenses = Expense.cached().filter(description=description) if expenses: data['category_id'] = expenses[0].category.id return HttpResponse(json.dumps(data), content_type='application/javascript')
def descriptions(request): keyword = request.GET.get('term', '') if keyword: expenses = Expense.cached().filter( description__icontains=keyword).order_by('description').distinct( 'description') data = [expense.description for expense in expenses] else: data = [] return HttpResponse(json.dumps(data), content_type='application/javascript')
def trends(request): context = {'expenses': []} if request.method == 'POST': form = TrendsForm(request.POST) if form.is_valid(): description = form.cleaned_data['description'] expenses = Expense.cached().filter(description__icontains=description).order_by('-date') context['sum'] = expenses.aggregate(expenses_sum=Sum('amount')).get('expenses_sum', Decimal(0)) context['expenses'] = expenses else: form = TrendsForm() context['form'] = form return render( request, 'expenses/trends.html', context, )
def trends(request): context = {'expenses': []} if request.method == 'POST': form = TrendsForm(request.POST) if form.is_valid(): description = form.cleaned_data['description'] expenses = Expense.cached().filter( description__icontains=description).order_by('-date') context['sum'] = expenses.aggregate( expenses_sum=Sum('amount')).get('expenses_sum', Decimal(0)) context['expenses'] = expenses else: form = TrendsForm() context['form'] = form return render( request, 'expenses/trends.html', context, )
def test_cached(self): self.assertEqual(Expense.cached().count(), 1)