Ejemplo n.º 1
0
    def read(self, request, user_name, criteria, pag=0, offset=0):

        user = user_authentication(request, user_name)

        orderby = request.GET.get('orderby', '-creation_date')
        format = request.GET.get('format', 'default')
        scope = request.GET.get('scope', 'all')

        if criteria == 'connectEventSlot':
            search_criteria = request.GET.getlist('search_criteria')
        else:
            search_criteria = request.GET.get('search_criteria')

        resources = CatalogueResource.objects.none()

        if criteria == 'and':
            filters = get_and_filter(search_criteria, user)
        elif criteria == 'or' or criteria == 'simple_or':
            filters = get_or_filter(search_criteria, user)
        elif criteria == 'not':
            filters = get_not_filter(search_criteria, user)
        elif criteria == 'event':
            filters = get_event_filter(search_criteria)
        elif criteria == 'slot':
            filters = get_slot_filter(search_criteria)
        elif criteria == 'tag':
            filters = get_tag_filter(search_criteria)
        elif criteria == 'connectSlot':
            # get all resource compatible with the given events
            search_criteria = search_criteria.split()
            for e in search_criteria:
                resources = CatalogueResource.objects.filter(
                    Q(gadgetwiring__friendcode=e),
                    Q(gadgetwiring__wiring='out'))

        elif criteria == 'connectEvent':
            # get all resource compatible with the given slots
            search_criteria = search_criteria.split()
            filters = Q()
            for e in search_criteria:
                filters = filters | Q(gadgetwiring__friendcode=e)
            filters = filters & Q(gadgetwiring__wiring='out')

        resources = CatalogueResource.objects.filter(filters)
        resources = filter_resources_by_scope(resources, scope)
        resources = resources.order_by(orderby)
        resources = group_resources(resources)
        resources = filter_resources_by_organization(user, resources, user.groups.all())

        items = len(resources)
        resources = get_paginatedlist(resources, pag, offset)

        return get_resource_response(resources, format, items, user)
Ejemplo n.º 2
0
    def read(self, request, user_name, pag=0, offset=0):

        user = user_authentication(request, user_name)

        format = request.GET.get('format', 'default')
        orderby = request.GET.get('orderby', '-creation_date')
        scope = request.GET.get('scope', 'all')

        # Get all resource in the catalogue
        resources = filter_resources_by_scope(CatalogueResource.objects.all(), scope)
        resources = resources.order_by(orderby)
        resources = group_resources(resources)
        resources = filter_resources_by_organization(user, resources, user.groups.all())
        items = len(resources)

        resources = get_paginatedlist(resources, int(pag), int(offset))

        return get_resource_response(resources, format, items, user)
Ejemplo n.º 3
0
    def read(self, request, user_name, pag=0, offset=0):

        user = user_authentication(request, user_name)

        orderby = request.GET.get('orderby', '-creation_date')
        format = request.GET.get('format', 'default')
        scope = request.GET.get('scope', 'all')
        search_criteria = request.GET.getlist('search_criteria')
        search_boolean = request.GET.get('search_boolean')

        if search_boolean == 'AND':
            join_filters = lambda x, y: x & y
        else:
            join_filters = lambda x, y: x | y

        filters = Q()
        if search_criteria[0] != "":
            filters = get_and_filter(search_criteria[0], user)
        if search_criteria[1] != "":
            filters = join_filters(filters, get_or_filter(search_criteria[1], user))
        if search_criteria[2] != "":
            filters = join_filters(filters, get_not_filter(search_criteria[2], user))
        if search_criteria[3] != "":
            filters = join_filters(filters, get_tag_filter(search_criteria[3]))
        if search_criteria[4] != "":
            filters = join_filters(filters, get_event_filter(search_criteria[4]))
        if search_criteria[5] != "":
            filters = join_filters(filters, get_slot_filter(search_criteria[5]))

        resources = CatalogueResource.objects.filter(filters)
        resources = filter_resources_by_scope(resources, scope).distinct()
        resources = resources.order_by(orderby)
        resources = group_resources(resources)
        resources = filter_resources_by_organization(user, resources, user.groups.all())
        items = len(resources)

        resources = get_paginatedlist(resources, pag, offset)

        return get_resource_response(resources, format, items, user)
Ejemplo n.º 4
0
    def read(self, request, user_name, pag=0, offset=0):

        user = user_authentication(request, user_name)
        isIE = is_ie(request)

        orderby = request.GET.get('orderby', '-creation_date')
        format = request.GET.get('format', 'default')
        scope = request.GET.get('scope', 'all')
        search_criteria = request.GET.getlist('search_criteria')
        search_boolean = request.GET.get('search_boolean')

        andlist = []
        orlist = []
        notlist = []
        taglist = []
        eventlist = []
        slotlist = []
        # This variable counts the number of criteria for the search
        # to be passed as a parameter to the function
        # get_uniquelist in order to get the gadgets that match the
        # number of criteria
        fields = 0

        if (search_criteria[0] != ""):
            andlist = get_and_list(search_criteria[0], user, isIE)
            fields = fields + 1
        if (search_criteria[1] != ""):
            orlist = get_or_list(search_criteria[1], user, isIE)
            fields = fields + 1
        if (search_criteria[2] != ""):
            notlist = get_not_list(search_criteria[2], user, isIE)
            fields = fields + 1
        if (search_criteria[3] != ""):
            #get all the gadgets that match any of the given tags
            criteria = search_criteria[3].split()
            for e in criteria:
                taglist += get_resources_that_must_be_shown(
                    user, isIE).filter(usertag__tag__name__icontains=e)
            taglist = get_uniquelist(taglist)
            fields = fields + 1
        if (search_criteria[4] != ""):
            #get all the gadgets that match any of the given events
            criteria = search_criteria[4].split()
            for e in criteria:
                eventlist += get_resources_that_must_be_shown(
                    user,
                    isIE).filter(Q(gadgetwiring__friendcode__icontains=e),
                                 Q(gadgetwiring__wiring='out'))
            eventlist = get_uniquelist(eventlist)
            fields = fields + 1
        if (search_criteria[5] != ""):
            #get all the gadgets that match any of the given slots
            criteria = search_criteria[5].split()
            for e in criteria:
                slotlist += get_resources_that_must_be_shown(
                    user,
                    isIE).filter(Q(gadgetwiring__friendcode__icontains=e),
                                 Q(gadgetwiring__wiring='in'))
            slotlist = get_uniquelist(slotlist)
            fields = fields + 1

        gadgetlist = andlist + orlist + notlist + taglist + eventlist + slotlist
        if search_boolean == "AND":
            gadgetlist = get_uniquelist(gadgetlist, fields)
        else:
            gadgetlist = get_uniquelist(gadgetlist)

        gadgetlist = filter_gadgets_by_organization(user, gadgetlist,
                                                    user.groups.all(), scope)
        items = len(gadgetlist)

        gadgetlist = get_sortedlist(gadgetlist, orderby)
        gadgetlist = get_paginatedlist(gadgetlist, pag, offset)

        return get_resource_response(gadgetlist, format, items, user)
Ejemplo n.º 5
0
    def read(self, request, user_name, criteria, pag=0, offset=0):

        user = user_authentication(request, user_name)
        isIE = is_ie(request)

        orderby = request.GET.get('orderby', '-creation_date')
        format = request.GET.get('format', 'default')
        scope = request.GET.get('scope', 'all')

        if criteria == 'connectEventSlot':
            search_criteria = request.GET.getlist('search_criteria')
        else:
            search_criteria = request.GET.get('search_criteria')

        gadgetlist = []

        if criteria == 'and':
            gadgetlist = get_and_list(search_criteria, user, isIE)
        elif (criteria == 'or' or criteria == 'simple_or'):
            gadgetlist = get_or_list(search_criteria, user, isIE)
        elif criteria == 'not':
            gadgetlist = get_not_list(search_criteria, user, isIE)
        elif criteria == 'event':
            #get all the gadgets that match any of the given events
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(
                    user,
                    isIE).filter(Q(gadgetwiring__friendcode__icontains=e),
                                 Q(gadgetwiring__wiring='out'))

        elif criteria == 'slot':
            #get all the gadgets that match any of the given slots
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(
                    user,
                    isIE).filter(Q(gadgetwiring__friendcode__icontains=e),
                                 Q(gadgetwiring__wiring='in'))

        elif criteria == 'tag':
            #get all the gadgets that match any of the given tags
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(
                    user, isIE).filter(usertag__tag__name__icontains=e)

        elif criteria == 'connectSlot':
            #get all the gadgets compatible with the given events
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(
                    user, isIE).filter(Q(gadgetwiring__friendcode=e),
                                       Q(gadgetwiring__wiring='out'))

        elif criteria == 'connectEvent':
            #get all the gadgets compatible with the given slots
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(
                    user, isIE).filter(Q(gadgetwiring__friendcode=e),
                                       Q(gadgetwiring__wiring='in'))

        elif criteria == 'connectEventSlot':
            #get all the gadgets compatible with the given slots
            search_criteria[0] = search_criteria[0].split()
            for e in search_criteria[0]:
                gadgetlist += get_resources_that_must_be_shown(
                    user, isIE).filter(Q(gadgetwiring__friendcode=e),
                                       Q(gadgetwiring__wiring='in'))
            #get all the gadgets compatible with the given events
            search_criteria[1] = search_criteria[1].split()
            for e in search_criteria[1]:
                gadgetlist += get_resources_that_must_be_shown(
                    user, isIE).filter(Q(gadgetwiring__friendcode=e),
                                       Q(gadgetwiring__wiring='out'))

        gadgetlist = get_uniquelist(gadgetlist)

        gadgetlist = filter_gadgets_by_organization(user, gadgetlist,
                                                    user.groups.all(), scope)

        items = len(gadgetlist)
        gadgetlist = get_sortedlist(gadgetlist, orderby)
        gadgetlist = get_paginatedlist(gadgetlist, pag, offset)

        return get_resource_response(gadgetlist, format, items, user)
Ejemplo n.º 6
0
    def read(self, request, user_name, pag=0, offset=0):

        user = user_authentication(request, user_name)
        isIE = is_ie(request)

        orderby = request.GET.get('orderby', '-creation_date')
        format = request.GET.get('format', 'default')
        scope = request.GET.get('scope', 'all')
        search_criteria = request.GET.getlist('search_criteria')
        search_boolean = request.GET.get('search_boolean')

        andlist = []
        orlist = []
        notlist = []
        taglist = []
        eventlist = []
        slotlist = []
        # This variable counts the number of criteria for the search
        # to be passed as a parameter to the function
        # get_uniquelist in order to get the gadgets that match the
        # number of criteria
        fields = 0

        if (search_criteria[0] != ""):
            andlist = get_and_list(search_criteria[0], user, isIE)
            fields = fields + 1
        if (search_criteria[1] != ""):
            orlist = get_or_list(search_criteria[1], user, isIE)
            fields = fields + 1
        if (search_criteria[2] != ""):
            notlist = get_not_list(search_criteria[2], user, isIE)
            fields = fields + 1
        if (search_criteria[3] != ""):
            #get all the gadgets that match any of the given tags
            criteria = search_criteria[3].split()
            for e in criteria:
                taglist += get_resources_that_must_be_shown(user, isIE).filter(
                    usertag__tag__name__icontains=e)
            taglist = get_uniquelist(taglist)
            fields = fields + 1
        if (search_criteria[4] != ""):
            #get all the gadgets that match any of the given events
            criteria = search_criteria[4].split()
            for e in criteria:
                eventlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode__icontains=e),
                    Q(gadgetwiring__wiring='out'))
            eventlist = get_uniquelist(eventlist)
            fields = fields + 1
        if (search_criteria[5] != ""):
            #get all the gadgets that match any of the given slots
            criteria = search_criteria[5].split()
            for e in criteria:
                slotlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode__icontains=e),
                    Q(gadgetwiring__wiring='in'))
            slotlist = get_uniquelist(slotlist)
            fields = fields + 1

        gadgetlist = andlist + orlist + notlist + taglist + eventlist + slotlist
        if search_boolean == "AND":
            gadgetlist = get_uniquelist(gadgetlist, fields)
        else:
            gadgetlist = get_uniquelist(gadgetlist)

        gadgetlist = filter_gadgets_by_organization(user, gadgetlist, user.groups.all(), scope)
        items = len(gadgetlist)

        gadgetlist = get_sortedlist(gadgetlist, orderby)
        gadgetlist = get_paginatedlist(gadgetlist, pag, offset)

        return get_resource_response(gadgetlist, format, items, user)
Ejemplo n.º 7
0
    def read(self, request, user_name, criteria, pag=0, offset=0):

        user = user_authentication(request, user_name)
        isIE = is_ie(request)

        orderby = request.GET.get('orderby', '-creation_date')
        format = request.GET.get('format', 'default')
        scope = request.GET.get('scope', 'all')

        if criteria == 'connectEventSlot':
            search_criteria = request.GET.getlist('search_criteria')
        else:
            search_criteria = request.GET.get('search_criteria')

        gadgetlist = []

        if criteria == 'and':
            gadgetlist = get_and_list(search_criteria, user, isIE)
        elif (criteria == 'or' or criteria == 'simple_or'):
            gadgetlist = get_or_list(search_criteria, user, isIE)
        elif criteria == 'not':
            gadgetlist = get_not_list(search_criteria, user, isIE)
        elif criteria == 'event':
            #get all the gadgets that match any of the given events
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode__icontains=e),
                    Q(gadgetwiring__wiring='out'))

        elif criteria == 'slot':
            #get all the gadgets that match any of the given slots
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode__icontains=e),
                    Q(gadgetwiring__wiring='in'))

        elif criteria == 'tag':
            #get all the gadgets that match any of the given tags
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(user, isIE).filter(
                    usertag__tag__name__icontains=e)

        elif criteria == 'connectSlot':
            #get all the gadgets compatible with the given events
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode=e),
                    Q(gadgetwiring__wiring='out'))

        elif criteria == 'connectEvent':
            #get all the gadgets compatible with the given slots
            search_criteria = search_criteria.split()
            for e in search_criteria:
                gadgetlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode=e),
                    Q(gadgetwiring__wiring='in'))

        elif criteria == 'connectEventSlot':
            #get all the gadgets compatible with the given slots
            search_criteria[0] = search_criteria[0].split()
            for e in search_criteria[0]:
                gadgetlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode=e),
                    Q(gadgetwiring__wiring='in'))
            #get all the gadgets compatible with the given events
            search_criteria[1] = search_criteria[1].split()
            for e in search_criteria[1]:
                gadgetlist += get_resources_that_must_be_shown(user, isIE).filter(
                    Q(gadgetwiring__friendcode=e),
                    Q(gadgetwiring__wiring='out'))

        gadgetlist = get_uniquelist(gadgetlist)

        gadgetlist = filter_gadgets_by_organization(user, gadgetlist, user.groups.all(), scope)

        items = len(gadgetlist)
        gadgetlist = get_sortedlist(gadgetlist, orderby)
        gadgetlist = get_paginatedlist(gadgetlist, pag, offset)

        return get_resource_response(gadgetlist, format, items, user)