def search(request): if request.method == 'POST': form = UsageSearchForm(request.POST) if form.is_valid(): data = form.cleaned_data project_list = Project.objects.all() institute_list = Institute.objects.all() #user_list = Person.objects.all() terms = data['terms'].lower() start = data['start_date'] end = data['end_date'] start_str = start.strftime('%Y-%m-%d') end_str = end.strftime('%Y-%m-%d') if terms: # search for projects query = Q() for term in terms.split(' '): q = Q(pid__icontains=term) | Q(name__icontains=term) query = query & q project_list = project_list.filter(query) # search for institutes query = Q() for term in terms.split(' '): q = Q(name__icontains=term) query = query & q institute_list = institute_list.filter(query) for p in project_list: time, jobs = p.get_usage(start, end) p = p.__dict__ p['time'] = time p['jobs'] = jobs for i in institute_list: time, jobs = i.get_usage(start, end) i = i.__dict__ i['time'] = time i['jobs'] = jobs else: return HttpResponseRedirect('%s?start=%s&end=%s' % (reverse('kg_usage_list'), start_str, end_str)) else: form = UsageSearchForm() return render_to_response('usage/search.html', locals(), context_instance=RequestContext(request))
def project_search(request): if request.method == 'POST': form = UsageSearchForm(request.POST) if form.is_valid(): data = form.cleaned_data project = get_object_or_404(Project, pk=data['terms']) start = data['start_date'].strftime('%Y-%m-%d') end = data['end_date'].strftime('%Y-%m-%d') return HttpResponseRedirect('%s?start=%s&end=%s' % (project.get_usage_url(), start, end)) else: return HttpResponseRedirect(reverse('kg_admin_index'))
def search(request): if request.method == 'POST': form = UsageSearchForm(request.POST) if form.is_valid(): data = form.cleaned_data project_query = Project.objects.all() institute_query = Institute.objects.all() #person_list = Person.objects.all() terms = data['terms'].lower() start = data['start_date'] end = data['end_date'] machine_category = data['machine_category'] start_str = start.strftime('%Y-%m-%d') end_str = end.strftime('%Y-%m-%d') if terms: # search for projects query = Q() for term in terms.split(' '): q = Q(pid__icontains=term) | Q(name__icontains=term) query = query & q project_query = project_query.filter(query) # search for institutes query = Q() for term in terms.split(' '): q = Q(name__icontains=term) query = query & q institute_query = institute_query.filter(query) project_list = [] for p in project_query: time, jobs = p.get_usage(start, end, machine_category) project_list.append({ 'obj': p, 'time': time, 'jobs': jobs, }) del project_query institute_list = [] for i in institute_query: time, jobs = i.get_usage(start, end, machine_category) institute_list.append({ 'obj': i, 'time': time, 'jobs': jobs, }) del institute_query else: return HttpResponseRedirect('%s?start=%s&end=%s' % (reverse('kg_usage_list'), start_str, end_str)) else: start, end = get_date_range(request) initial = { 'start_date': start, 'end_date': end, 'machine_category': request.GET.get('machine_category', None) } form = UsageSearchForm(initial=initial) return render_to_response('usage/search.html', locals(), context_instance=RequestContext(request))