コード例 #1
0
ファイル: views.py プロジェクト: kreeger/etcetera
def equipmenttype_index(request):
    paged_objects = None
    q = None
    count = None
    form = eqforms.OtherSearchForm()
    if request.GET and request.GET.get('q'):
        form = eqforms.OtherSearchForm(request.GET)
        if form.is_valid():
            data = form.cleaned_data
            if data['q'] and data['q'].strip() and form.get_list():
                # This sends a query to search middleware, if such
                # query exists. It gets a Q object back which is used
                # in a Django filter to get our queryset.
                equipmenttype_query = get_query(data['q'], form.get_list())
                paged_objects = equipment.EquipmentType.objects.filter(
                    equipmenttype_query
                ).annotate(eq_count=Count('equipment'))
                q = data['q']
    else:
        paged_objects = equipment.EquipmentType.objects.all().annotate(
            eq_count=Count('equipment')
        )
    count = paged_objects.count()
    # Repackage everything into paged_objects using Paginator.
    paginator = Paginator(paged_objects, 20)
    # Make sure the page request is an int -- if not, then deliver page 1.
    try:
        page = int(request.GET.get('page','1'))
    except ValueError:
        page = 1
    # If the page request is out of range, deliver the last page of results.
    try:
        paged_objects = paginator.page(page)
    except (EmptyPage, InvalidPage):
        paged_objects = paginator.page(paginator.num_pages)
    # Bundle everything into the context and send it out.
    context = {
        'paged_objects': paged_objects,
        'form': form,
        'view_type': 'types',
        'q': q,
        'count': count,
    }
    return render_to_response(
        "equipment/index.html",
        context,
        context_instance=RequestContext(request)
    )
コード例 #2
0
ファイル: views.py プロジェクト: kreeger/etcetera
def index(request, view_type=None):
    paged_objects = None
    q = None
    form = woforms.SearchForm()
    if request.GET and request.GET.get('q'):
        form = woforms.SearchForm(request.GET)
        if form.is_valid():
            data = form.cleaned_data
            if data['q'] and data['q'].strip():
                # This sends a query to search middleware, if such
                # query exists. It gets a Q object back which is used
                # in a Django filter to get our queryset.
                service_query = get_query(data['q'], [
                    'first_name',
                    'last_name',
                    'department_text',
                    'department__name',
                    'equipment__equipment_type__name',
                    'equipment__make__name',
                    'equipment__model',
                    'equipment_text',
                    'building__name',
                    'room',
                    'location_text',
                    'description',
                ])
                paged_objects = service.WorkOrder.objects.filter(
                    service_query
                )
                q = data['q']
    else:
        paged_objects = service.WorkOrder.objects.all()
    if view_type == None:
        paged_objects = paged_objects.filter(
            completion_date=None).order_by(
            '-creation_date'
        )
    elif view_type == 'completed':
        paged_objects = paged_objects.exclude(
            completion_date=None).order_by(
            '-completion_date'
        )
    count = paged_objects.count()
    # Repackage everything into paged_objects using Paginator.
    paginator = Paginator(paged_objects, 20)
    # Make sure the page request is an int -- if not, then deliver page 1.
    try:
        page = int(request.GET.get('page','1'))
    except ValueError:
        page = 1
    # If the page request is out of range, deliver the last page of results.
    try:
        paged_objects = paginator.page(page)
    except (EmptyPage, InvalidPage):
        paged_objects = paginator.page(paginator.num_pages)
    
    # Bundle everything into the context and send it out.
    context = {
        'paged_objects': paged_objects,
        'view_type': view_type,
        'form': form,
        'q': q,
        'count': count,
    }
    return render_to_response(
        "service/index.html",
        context,
        context_instance=RequestContext(request)
    )
コード例 #3
0
ファイル: views.py プロジェクト: kreeger/etcetera
def index(request, structure_kind='buildings'):
    if not structure_kind in ['buildings','departments','campuses',]: raise Http404
    paged_objects = None
    q = None
    form = stforms.SearchForm()
    if request.GET and request.GET.get('q'):
        form = stforms.SearchForm(request.GET)
        if form.is_valid():
            data = form.cleaned_data
            if data['q'] and data['q'].strip():
                # This sends a query to search middleware, if such
                # query exists. It gets a Q object back which is used
                # in a Django filter to get our queryset.
                structure_query = get_query(
                    data['q'],
                    form.get_list(structure_kind)
                )
                if structure_kind == 'buildings':
                    paged_objects = structure.Building.objects.filter(
                        structure_query
                    )
                if structure_kind == 'departments':
                    paged_objects = structure.OrganizationalUnit.objects.filter(
                        structure_query
                    )
                if structure_kind == 'campuses':
                    paged_objects = structure.Campus.objects.filter(
                        structure_query
                    )
                q = data['q']
    else:
        if structure_kind == 'buildings':
            paged_objects = structure.Building.objects.all()
        if structure_kind == 'departments':
            paged_objects = structure.OrganizationalUnit.objects.all()
        if structure_kind == 'campuses':
            paged_objects = structure.Campus.objects.all()
    # Repackage everything into paged_objects using Paginator.
    paginator = Paginator(paged_objects, 20)
    # Make sure the page request is an int -- if not, then deliver page 1.
    try:
        page = int(request.GET.get('page','1'))
    except ValueError:
        page = 1
    # If the page request is out of range, deliver the last page of results.
    try:
        paged_objects = paginator.page(page)
    except (EmptyPage, InvalidPage):
        paged_objects = paginator.page(paginator.num_pages)
    
    # Bundle everything into the context and send it out.
    context = {
        'paged_objects': paged_objects,
        'object_list': paged_objects.object_list,
        'form': form,
        'view_type': structure_kind,
        'q': q,
    }
    return render_to_response(
        "structure/index.html",
        context,
        context_instance=RequestContext(request)
    )
コード例 #4
0
ファイル: views.py プロジェクト: kreeger/etcetera
def index(request, view_type=None):
    if view_type not in ['weekly',None]: raise Http404
    paged_objects = None
    q = None
    count = None
    form = eqforms.SearchForm()
    if request.GET and request.GET.get('q'):
        form = eqforms.SearchForm(request.GET)
        if form.is_valid():
            data = form.cleaned_data
            if data['q'] and data['q'].strip() and form.get_list():
                # This sends a query to search middleware, if such
                # query exists. It gets a Q object back which is used
                # in a Django filter to get our queryset.
                equipment_query = get_query(data['q'], form.get_list())
                paged_objects = equipment.Equipment.objects.filter(
                    equipment_query
                )
                q = data['q']
    else:
        paged_objects = equipment.Equipment.objects.all()
    if view_type == 'weekly':
        #import pdb; pdb.set_trace()
        paged_objects.object_list = paged_objects.filter(
            on_weekly_checklist=True
        ).order_by(
            'equipment_type__name',
            'video_unit',
            'cc_unit',
            'make__name',
            'model',
            'serial',
        ).select_related()    
        count = paged_objects.object_list.count()
    if view_type == None:    
        count = paged_objects.count()
        # Repackage everything into paged_objects using Paginator.
        paginator = Paginator(paged_objects, 20)
        # Make sure the page request is an int -- if not, then deliver page 1.
        try:
            page = int(request.GET.get('page','1'))
        except ValueError:
            page = 1
        # If the page request is out of range, deliver the last page of results.
        try:
            paged_objects = paginator.page(page)
        except (EmptyPage, InvalidPage):
            paged_objects = paginator.page(paginator.num_pages)
    # Bundle everything into the context and send it out.
    context = {
        'paged_objects': paged_objects,
        'form': form,
        'view_type': view_type,
        'q': q,
        'count': count,
    }
    return render_to_response(
        "equipment/index.html",
        context,
        context_instance=RequestContext(request)
    )
コード例 #5
0
ファイル: views.py プロジェクト: kreeger/etcetera
def index(request, view_type=None, date_range=None):
    # Setup our paging and query objects ahead of time
    if view_type not in [
        'unconfirmed',
        'current',
        'pickups',
        'deliveries',
        'returns',
        'completed',
        'overdue',
        None,]: raise Http404
    paged_objects = None
    q = None
    count = None
    now = dt.datetime.now()
    today = dt.date.today()
    # Set up an empty form
    form = coforms.SearchForm()
    # If there's a GET request, specifically one with a search query
    if request.GET and request.GET.get('q'):
        # Get the data from the search form and put it in a SearchForm object
        form = coforms.SearchForm(request.GET)
        if form.is_valid():
            # If everything's valid, get clean form data and get a list of
            # which boxes were selected
            data = form.cleaned_data
            if data['q'] and data['q'].strip() and form.get_list():
                # This sends a query to search middleware, if such
                # query exists. It gets a Q object back which is used
                # in a Django filter to get our queryset.
                checkout_query = get_query(data['q'], form.get_list())
                paged_objects = checkout.Checkout.objects.filter(
                    checkout_query)
                q = data['q']
    else:
        # If it's not valid or nothing was checked, get all objects from db
        paged_objects = checkout.Checkout.objects.all()
    if     view_type == None:
        paged_objects = paged_objects.filter(
            completion_date=None).order_by(
            '-out_date'
        )
    elif view_type == 'unconfirmed':
        paged_objects = paged_objects.filter(
            confirmation_sent=False).filter(
            completion_date=None).exclude(
            email='').order_by(
            'out_date'
        )
    elif view_type == 'current':
        paged_objects = paged_objects.filter(
            completion_date=None).exclude(
            action_date=None).order_by(
            '-out_date'
        )
    elif view_type == 'pickups':
        paged_objects = paged_objects.filter(
            checkout_type='pickup').filter(
            action_date=None).filter(
            return_date__gte=today).filter(
            completion_date=None).order_by(
            'out_date'
        )
    elif view_type == 'deliveries':
        paged_objects = paged_objects.filter(
            checkout_type='delivery').filter(
            action_date=None).filter(
            return_date__gte=today).filter(
            completion_date=None).order_by(
            'out_date'
        )
    elif view_type == 'returns':
        paged_objects = paged_objects.filter(
            return_date__gte=today).filter(
            completion_date=None).order_by(
            'return_date'
        )
    elif view_type == 'completed':
        paged_objects = paged_objects.exclude(
            completion_date=None).order_by(
            '-return_date'
        )
    elif view_type == 'overdue':
        paged_objects = paged_objects.filter(
            return_date__lt=today).filter(
            completion_date=None).order_by(
            '-return_date'
        )
    count = paged_objects.count()
    # Repackage everything into paged_objects using Paginator.
    paginator = Paginator(paged_objects, 20)
    # Make sure the page request is an int -- if not, then deliver page 1.
    try:
        page = int(request.GET.get('page','1'))
    except ValueError:
        page = 1
    # If the page request is out of range, deliver the last page of results.
    try:
        paged_objects = paginator.page(page)
    except (EmptyPage, InvalidPage):
        paged_objects = paginator.page(paginator.num_pages)
    
    # Bundle everything into the context and send it out.
    context = {
        'paged_objects': paged_objects,
        'object_list': paged_objects.object_list,
        'form': form,
        'view_type': view_type,
        'q': q,
        'count': count,
    }
    return render_to_response(
        "checkout/index.html",
        context,
        context_instance=RequestContext(request)
    )