def edit(request, expedient_id=None): if request.method == "POST": form = ExpedientForm(request.POST) if form.is_valid(): ExpedientService.save_from_form(form) return get_redirect(request, expedient_id) else: initial_data = {"expedient_num": Expedient.objects.latest().id + 1} if expedient_id: expedient = get_object_or_404(Expedient, id=expedient_id) initial_data = ExpedientService.build_initial_data(expedient) form = ExpedientForm(initial=initial_data) return render_to_response("expedient/edit.html", {"form": form}, context_instance=RequestContext(request))
def expedient_list(request): form = ExpedientListFilterForm(request.GET) expedients = ExpedientService.find_all() if form.is_valid(): search_term = form.cleaned_data["keyword"] or None selected_branch_id = form.cleaned_data["branch"] or None selected_headquarters_id = form.cleaned_data["headquarters"] or None selected_state = form.cleaned_data["state"] or None selected_customers = form.cleaned_data["customers"] or None if search_term: expedients = expedients.filter(Q(id__icontains=search_term) | Q(description__icontains=search_term)) # Remember -> -1 equals "without" and None is "all" if selected_branch_id: if selected_branch_id == "-1": # Filter expedients without branch expedients = expedients.filter(phase__isnull=True) else: expedients = expedients.filter(phase__law_branch__id=selected_branch_id) if selected_headquarters_id: if selected_headquarters_id == "-1": # Filter expedients without headquarters expedients = expedients.filter(headquarters__isnull=True) else: expedients = expedients.filter(headquarters__id=selected_headquarters_id) if selected_state: expedients = expedients.filter(state=selected_state) if selected_customers: expedients = expedients.filter( expperrol__person__in=selected_customers, expperrol__role__text_help__iexact="CLIENTE" ).distinct() return render_to_response( "expedient/list.html", {"expedients": expedients, "filter_form": form}, context_instance=RequestContext(request) )