示例#1
0
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))
示例#2
0
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'))
示例#3
0
文件: views.py 项目: russell/karaage
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))