def read(self, request, user_name, pag=0, offset=0): user = user_authentication(request, user_name) isIE = is_ie(request) format = request.GET.get('format', 'default') orderby = request.GET.get('orderby', '-creation_date') scope = request.GET.get('scope', 'all') #paginate a = int(pag) b = int(offset) # Get all the gadgets in the catalogue gadgetlist = get_resources_that_must_be_shown(user, isIE).order_by(orderby) gadgetlist = filter_gadgets_by_organization(user, gadgetlist, user.groups.all(), scope) items = len(gadgetlist) if not (a == 0 or b == 0): # Get the requested gadgets c = ((a - 1) * b) d = (b * a) if a == 1: c = 0 gadgetlist = gadgetlist[c:d] return get_resource_response(gadgetlist, format, items, user)
def update(self, request, user_name, vendor, name, version): user = user_authentication(request, user_name) # Get the gadget data from the request preferred = PUT_parameter(request, 'preferred') if preferred != None: # Set all version of this gadget as no preferred old_preferred_versions = UserRelatedToGadgetResource.objects.filter( gadget__vendor=vendor, gadget__short_name=name, user=user, preferred_by=True) for old_version in old_preferred_versions: old_version.preferred_by = False old_version.save() new_preferred_versions = UserRelatedToGadgetResource.objects.filter( gadget__vendor=vendor, gadget__short_name=name, gadget__version=version, user=user) userRelated = None if len(new_preferred_versions) == 0: resource = get_object_or_404(GadgetResource, short_name=name, vendor=vendor, version=version) userRelated = UserRelatedToGadgetResource() userRelated.gadget = resource userRelated.user = user userRelated.added_by = False else: userRelated = new_preferred_versions[0] userRelated.preferred_by = True userRelated.save() resource = get_object_or_404(GadgetResource, short_name=name, vendor=vendor, version=version) return get_resource_response([resource], 'json', 1, user)
def read(self, request, user_name, pag=0, offset=0): user = user_authentication(request, user_name) isIE = is_ie(request) format = request.GET.get('format', 'default') orderby = request.GET.get('orderby', '-creation_date') scope = request.GET.get('scope', 'all') #paginate a = int(pag) b = int(offset) # Get all the gadgets in the catalogue gadgetlist = get_resources_that_must_be_shown(user, isIE).order_by(orderby) gadgetlist = filter_gadgets_by_organization(user, gadgetlist, user.groups.all(), scope) items = len(gadgetlist) if not(a == 0 or b == 0): # Get the requested gadgets c = ((a - 1) * b) d = (b * a) if a == 1: c = 0 gadgetlist = gadgetlist[c:d] return get_resource_response(gadgetlist, format, items, user)
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)
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)
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)
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)
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)
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)
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)