def test_payments_filter_form_valid(self): """ Test payments filter form (valid) """ form = PaymentsFilterForm({ 'begin': date.today(), 'end': date.today() + timedelta(weeks=3), }) self.assertTrue(form.is_valid())
def test_payments_filter_form_invalid(self): """ Test payments filter form (invalid) """ form = PaymentsFilterForm({}) self.assertFalse(form.is_valid()) self.assertTrue(form.errors, { 'begin': ['This field is required.'], 'end': ['This field is required.'] })
def get_context_data(self, **kwargs): context = super(PaymentsChart, self).get_context_data(**kwargs) form = PaymentsFilterForm(self.request.GET if self.request.GET.get('filter', False) else None, initial={'is_incoming': 0}) initial = form.get_initial_data(exclude=('period',)) initial.update({'is_incoming': False}) data = form.cleaned_data if form.is_valid() else initial tags = Payment.objects.filtered_tags(**data) context['tags_chart_data'] = fh.chart.get(Payment.objects.tags_by_count(filtered_tags=tags, **data)) context['payment_tags_chart_data'] = fh.chart.get(Payment.objects.tags_by_amount(filtered_tags=tags, **data)) context['payment_days_chart_data'] = fh.chart.get(Payment.objects.payments_by_days(**data), y='amount') context['payment_months_chart_data'] = fh.chart.get(Payment.objects.payments_by_months(**data), y='amount') context['summary'] = Payment.objects.summary(**data) context['form'] = form context['filter'] = data return context