def get_queryset(self): # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' object_list = self.model.objects.filter(**{search_field: self.actions['s']}) if self.actions['filter_status'] != '': object_list = object_list.filter(status=self.actions['filter_status']) if self.actions['filter_thematic'] != '': object_list = object_list.filter(thematics__thematic_area=int(self.actions['filter_thematic'])) if self.actions['filter_created_by_user'] != '': object_list = object_list.filter(created_by_id=int(self.actions['filter_created_by_user'])) if self.actions['filter_created_by_cc'] != '': object_list = object_list.filter(cooperative_center_code=self.actions['filter_created_by_cc']) if self.actions['order'] == "-": object_list = object_list.order_by("%s%s" % (self.actions["order"], self.actions["orderby"])) if self.restrict_by_user and self.actions['filter_owner'] != "*": object_list = object_list.filter(created_by=self.request.user) elif self.actions['filter_owner'] == "*": object_list = object_list.all() return object_list
def get_queryset(self): user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('DirIns') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) # search filter search = self.actions['s'] search_filter = Q(name__icontains=search) | Q( cc_code__icontains=search) | Q(acronym__icontains=search) object_list = self.model.objects.filter(search_filter) if self.actions['filter_status'] != '': object_list = object_list.filter( status=self.actions['filter_status']) if self.actions['order'] == "-": object_list = object_list.order_by( "%s%s" % (self.actions["order"], self.actions["orderby"])) # filter by institution of user if self.actions['filter_owner'] != "*": object_list = object_list.filter(cc_code=user_data['user_cc']) return object_list
def networks(request): user = request.user output = {} # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] networks = Network.objects.filter(acronym__icontains=actions['s']) if not user.is_superuser: networks = networks.filter(responsible=user.profile.cooperative_center) networks = networks.order_by(actions["orderby"]) if actions['order'] == "-": networks = networks.order_by("%s%s" % (actions["order"], actions["orderby"])) output['networks'] = networks output['actions'] = actions return render_to_response('main/networks.html', output, context_instance=RequestContext(request))
def get_queryset(self): user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('DirIns') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) # search filter search = self.actions['s'] search_filter = Q(name__icontains=search) | Q(cc_code__icontains=search) | Q(acronym__icontains=search) object_list = self.model.objects.filter(search_filter) if self.actions['filter_status'] != '': object_list = object_list.filter(status=self.actions['filter_status']) if self.actions['order'] == "-": object_list = object_list.order_by("%s%s" % (self.actions["order"], self.actions["orderby"])) # filter by institution of user if self.actions['filter_owner'] != "*": object_list = object_list.filter(cc_code=user_data['user_cc']) return object_list
def services(request): user = request.user output = {} # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] services = Service.objects.filter(name__icontains=actions['s']) services = services.order_by(actions["orderby"]) if actions['order'] == "-": services = services.order_by("%s%s" % (actions["order"], actions["orderby"])) output['services'] = services output['actions'] = actions return render_to_response('main/services.html', output, context_instance=RequestContext(request))
def list_events(request): user = request.user output = {} delete_id = request.POST.get('delete_id') if delete_id: delete_event(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] user_data = additional_user_info(request) events = Event.objects.filter(title__icontains=actions['s']) if actions['filter_status'] != '': events = events.filter(status=actions['filter_status']) if actions['filter_thematic'] != '': actions['filter_thematic'] = int(actions['filter_thematic']) events = events.filter(thematics__thematic_area=actions['filter_thematic']) events = events.order_by(actions["orderby"]) if actions['order'] == "-": events = events.order_by("%s%s" % (actions["order"], actions["orderby"])) if actions['filter_owner'] == "network": events = events.filter(cooperative_center_code__in=user_data['ccs']) elif actions['filter_owner'] != "*": events = events.filter(created_by=request.user) else: events = events.all() # populate thematic list for filter thematic_list = ThematicArea.objects.all().order_by('name') # pagination pagination = {} paginator = Paginator(events, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) events = pagination['page'].object_list output['events'] = events output['thematic_list'] = thematic_list output['actions'] = actions output['pagination'] = pagination output['user_data'] = user_data return render_to_response('events/events.html', output, context_instance=RequestContext(request))
def list_suggestions(request): user = request.user output = {} delete_id = request.POST.get('delete_id') suggestions = None if delete_id: delete_resource(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] if actions['type'] and actions['type'] == 'keywords': suggestions = Keyword.objects.filter(user_recomendation=True, status=0, text__icontains=actions['s']) elif actions['type'] == 'events': suggestions = SuggestEvent.objects.filter( title__icontains=actions['s']) else: suggestions = SuggestResource.objects.filter( title__icontains=actions['s']) if not actions['filter_status']: actions['filter_status'] = '0' if actions['filter_status'] != '*': suggestions = suggestions.filter(status=actions['filter_status']) suggestions = suggestions.order_by(actions["orderby"]) if actions['order'] == "-": suggestions = suggestions.order_by( "%s%s" % (actions["order"], actions["orderby"])) # pagination pagination = {} paginator = Paginator(suggestions, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) suggestions = pagination['page'].object_list output['suggestions'] = suggestions output['actions'] = actions output['pagination'] = pagination return render_to_response('suggest/list.html', output, context_instance=RequestContext(request))
def get_queryset(self): user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('LeisRef') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' # search by field search = self.actions['s'] if ':' in search: search_parts = search.split(':') search_field = search_parts[0] + '__icontains' search = search_parts[1] filter_qs = Q(**{search_field: search}) # if Act model search also by title and denomination fields if self.search_field == 'act_number': filter_qs = filter_qs | Q(title__icontains=search) | Q( denomination__icontains=search) object_list = self.model.objects.filter(filter_qs) # filter by status if self.actions['filter_status'] != '': object_list = object_list.filter( status=self.actions['filter_status']) # filter by scope region country if self.actions['filter_country'] != '': object_list = object_list.filter( scope_region=self.actions['filter_country']) # filter by indexed database if self.actions['filter_indexed_database'] != '': object_list = object_list.filter( indexed_database=self.actions['filter_indexed_database']) # filter by act_type if self.actions['filter_act_type'] != '': object_list = object_list.filter( act_type=self.actions['filter_act_type']) # order if self.actions['order'] == "-": object_list = object_list.order_by( "%s%s" % (self.actions["order"], self.actions["orderby"])) # filter by user if self.restrict_by_user and self.actions['filter_owner'] != "*": object_list = object_list.filter(created_by=self.request.user) if self.actions['results_per_page'] != '': self.paginate_by = self.actions['results_per_page'] return object_list
def list_suggestions(request): user = request.user output = {} delete_id = request.POST.get('delete_id') suggestions = None if delete_id: delete_resource(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] if actions['type'] and actions['type'] == 'keywords': suggestions = Keyword.objects.filter(user_recomendation=True, status=0, text__icontains=actions['s']) elif actions['type'] == 'events': suggestions = SuggestEvent.objects.filter(title__icontains=actions['s']) else: suggestions = SuggestResource.objects.filter(title__icontains=actions['s']) if not actions['filter_status']: actions['filter_status'] = '0' if actions['filter_status'] != '*': suggestions = suggestions.filter(status=actions['filter_status']) suggestions = suggestions.order_by(actions["orderby"]) if actions['order'] == "-": suggestions = suggestions.order_by("%s%s" % (actions["order"], actions["orderby"])) # pagination pagination = {} paginator = Paginator(suggestions, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) suggestions = pagination['page'].object_list output['suggestions'] = suggestions output['actions'] = actions output['pagination'] = pagination return render_to_response('suggest/list.html', output, context_instance=RequestContext(request))
def list_error_report(request): user = request.user output = {} delete_id = request.POST.get('delete_id') error_reports = None if delete_id: delete_error_report(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] ct = ContentType.objects.get_for_model(Resource) if actions['type'] and actions['type'] == 'events': ct = ContentType.objects.get_for_model(Event) error_reports = ErrorReport.objects.filter( content_type=ct, object_id__icontains=actions['s']) else: ct = ContentType.objects.get_for_model(Resource) error_reports = ErrorReport.objects.filter( content_type=ct, object_id__icontains=actions['s']) error_reports = error_reports.order_by(actions["orderby"]) if actions['order'] == "-": error_reports = error_reports.order_by( "%s%s" % (actions["order"], actions["orderby"])) # pagination pagination = {} paginator = Paginator(error_reports, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) error_reports = pagination['page'].object_list output['error_reports'] = error_reports output['actions'] = actions output['pagination'] = pagination return render_to_response('error_report/list.html', output, context_instance=RequestContext(request))
def get_queryset(self): user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('LeisRef') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' # search by field search = self.actions['s'] if ':' in search: search_parts = search.split(':') search_field = search_parts[0] + '__icontains' search = search_parts[1] filter_qs = Q(**{search_field: search}) # if Act model search also by title and denomination fields if self.search_field == 'act_number': filter_qs = filter_qs | Q(title__icontains=search) | Q(denomination__icontains=search) object_list = self.model.objects.filter(filter_qs) # filter by status if self.actions['filter_status'] != '': object_list = object_list.filter(status=self.actions['filter_status']) # filter by scope region country if self.actions['filter_country'] != '': object_list = object_list.filter(scope_region=self.actions['filter_country']) # filter by indexed database if self.actions['filter_indexed_database'] != '': object_list = object_list.filter(indexed_database=self.actions['filter_indexed_database']) # order if self.actions['order'] == "-": object_list = object_list.order_by("%s%s" % (self.actions["order"], self.actions["orderby"])) # filter by user if self.restrict_by_user and self.actions['filter_owner'] != "*": object_list = object_list.filter(created_by=self.request.user) if self.actions['results_per_page'] != '': self.paginate_by = self.actions['results_per_page'] return object_list
def get_queryset(self): user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('OER') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' # search by field search = self.actions['s'] if ':' in search: search_parts = search.split(':') search_field = search_parts[0] + '__icontains' search = search_parts[1] if search: object_list = self.model.objects.filter(**{search_field: search}) else: object_list = self.model.objects.all() if self.actions['filter_status'] != '': object_list = object_list.filter( status=self.actions['filter_status']) # filter by scope region country if self.actions['filter_country'] != '': object_list = object_list.filter( cvsp_node=self.actions['filter_country']) if self.actions['order'] == "-": object_list = object_list.order_by( "%s%s" % (self.actions["order"], self.actions["orderby"])) # filter by user if not self.actions['filter_owner'] or self.actions[ 'filter_owner'] == 'user': object_list = object_list.filter(created_by=self.request.user) # filter by cooperative center elif self.actions['filter_owner'] == 'center': user_cc = self.request.user.profile.get_attribute('cc') object_list = object_list.filter(cooperative_center_code=user_cc) return object_list
def list_error_report(request): user = request.user output = {} delete_id = request.POST.get('delete_id') error_reports = None if delete_id: delete_error_report(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] ct = ContentType.objects.get_for_model(Resource) if actions['type'] and actions['type'] == 'events': ct = ContentType.objects.get_for_model(Event) error_reports = ErrorReport.objects.filter(content_type=ct, object_id__icontains=actions['s']) else: ct = ContentType.objects.get_for_model(Resource) error_reports = ErrorReport.objects.filter(content_type=ct, object_id__icontains=actions['s']) error_reports = error_reports.order_by(actions["orderby"]) if actions['order'] == "-": error_reports = error_reports.order_by("%s%s" % (actions["order"], actions["orderby"])) # pagination pagination = {} paginator = Paginator(error_reports, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) error_reports = pagination['page'].object_list output['error_reports'] = error_reports output['actions'] = actions output['pagination'] = pagination return render_to_response('error_report/list.html', output, context_instance=RequestContext(request))
def get_queryset(self): user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('DirIns') user_cc = user_data.get('user_cc') user_type = user_data.get('user_type') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) # search filter search = self.actions['s'] if ':' in search: search_parts = search.split(':') search_field = search_parts[0] if search_field == 'user': search_field = 'adm__type_history' elif search_field == 'cat': search_field = 'adm__category_history' search_field, search = "%s%s" % (search_field, '__icontains'), search_parts[1] object_list = self.model.objects.filter(**{search_field: search}) else: query_search = Q(name__icontains=search) | Q( cc_code__icontains=search) | Q(acronym__icontains=search) object_list = self.model.objects.filter(query_search) if self.actions['filter_status'] != '': object_list = object_list.filter( status=self.actions['filter_status']) if self.actions['filter_country'] != '': object_list = object_list.filter( country=self.actions['filter_country']) if self.actions['order'] == "-": object_list = object_list.order_by( "%s%s" % (self.actions["order"], self.actions["orderby"])) # filter by institution of user if self.actions['filter_owner'] != "*" or user_cc != 'BR1.1': object_list = object_list.filter(cc_code=user_cc) return object_list
def users(request): user = request.user cc = request.user.profile.cooperative_center output = {} users = None ccs_networks_responsible = [] # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] users = User.objects.filter(username__icontains=actions['s']) if not user.is_superuser: # tk39 - advanced user can view users of CCs of networks that his center coordinate # check networks that CC manages networks_managed = Network.objects.filter(responsible=cc) # create list with all CCs that user can view users for net_managed in networks_managed: ccs_networks_responsible.extend( [member.pk for member in net_managed.members.all()] ) # make list of CCs that user can view users (based on network that the center manages) if networks_managed: q_list = [ Q( ('profile__cooperative_center',cc_pk) ) for cc_pk in ccs_networks_responsible] users = users.filter(reduce(operator.or_, q_list)) else: users = users.filter(profile__cooperative_center=cc) users = users.order_by(actions["orderby"]) if actions['order'] == "-": users = users.order_by("%s%s" % (actions["order"], actions["orderby"])) output['users'] = users output['actions'] = actions output['cc'] = cc output['show_users_cc'] = True if len(ccs_networks_responsible) > 1 else False return render_to_response('main/users.html', output, context_instance=RequestContext(request))
def get_queryset(self): # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) if ":" in self.actions["s"]: search_parts = self.actions["s"].split(":") search_field = search_parts[0] + "__icontains" search_value = search_parts[1] else: search_field = self.search_field + '__icontains' search_value = self.actions["s"] object_list = self.model.objects.filter(**{search_field: search_value}) if self.actions['filter_status'] != '': object_list = object_list.filter( status=self.actions['filter_status']) if self.actions['filter_thematic'] != '': object_list = object_list.filter( thematics__thematic_area=int(self.actions['filter_thematic'])) if self.actions['filter_created_by_user'] != '': object_list = object_list.filter( created_by_id=int(self.actions['filter_created_by_user'])) if self.actions['filter_created_by_cc'] != '': object_list = object_list.filter( cooperative_center_code=self.actions['filter_created_by_cc']) if self.actions['order'] == "-": object_list = object_list.order_by( "%s%s" % (self.actions["order"], self.actions["orderby"])) if self.restrict_by_user and self.actions['filter_owner'] != "*": object_list = object_list.filter(created_by=self.request.user) elif self.actions['filter_owner'] == "*": object_list = object_list.all() return object_list
def get_queryset(self): user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('OER') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' # search by field search = self.actions['s'] if ':' in search: search_parts = search.split(':') search_field = search_parts[0] + '__icontains' search = search_parts[1] if search: object_list = self.model.objects.filter(**{search_field: search}) else: object_list = self.model.objects.all() if self.actions['filter_status'] != '': object_list = object_list.filter(status=self.actions['filter_status']) # filter by scope region country if self.actions['filter_country'] != '': object_list = object_list.filter(cvsp_node=self.actions['filter_country']) if self.actions['order'] == "-": object_list = object_list.order_by("%s%s" % (self.actions["order"], self.actions["orderby"])) # filter by user if not self.actions['filter_owner'] or self.actions['filter_owner'] == 'user': object_list = object_list.filter(created_by=self.request.user) # filter by cooperative center elif self.actions['filter_owner'] == 'center': user_cc = self.request.user.profile.get_attribute('cc') object_list = object_list.filter(cooperative_center_code=user_cc) return object_list
def list_languages(request): user = request.user output = {} delete_id = request.POST.get('delete_id') if delete_id: delete_language(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] languages = SourceLanguage.objects.filter(name__icontains=actions['s']) languages = languages.order_by(actions["orderby"]) if actions['order'] == "-": languages = languages.order_by("%s%s" % (actions["order"], actions["orderby"])) # pagination pagination = {} paginator = Paginator(languages, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) languages = pagination['page'].object_list output['languages'] = languages output['actions'] = actions output['pagination'] = pagination return render_to_response('main/languages.html', output, context_instance=RequestContext(request))
def roles(request): user = request.user output = {} # getting action parameters actions = {} for key in ACTIONS.keys(): actions[key] = ACTIONS[key] if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) roles = Role.objects.filter(name__icontains=actions['s']) roles = roles.order_by(actions["orderby"]) if actions['order'] == "-": roles = roles.order_by("%s%s" % (actions["order"], actions["orderby"])) output['roles'] = roles output['actions'] = actions return render_to_response('main/roles.html', output, context_instance=RequestContext(request))
def get_queryset(self): # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) param_country = self.request.GET.get('country') search = self.actions['s'] search_filter = Q(name__icontains=search) | Q(acronym__icontains=search) object_list = [] if search: object_list = self.model.objects.filter(search_filter) else: object_list = self.model.objects.all() if param_country: object_list = object_list.filter(country=param_country) return object_list
def get_queryset(self): # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__contains' object_list = self.model.objects.filter(**{search_field: self.actions['s']}) if self.actions['filter_status'] != '': object_list = object_list.filter(status=self.actions['filter_status']) if self.actions['order'] == "-": object_list = object_list.order_by("%s%s" % (self.actions["order"], self.actions["orderby"])) if self.restrict_by_user and self.actions['filter_owner'] != "*": object_list = object_list.filter(created_by=self.request.user) elif self.actions['filter_owner'] == "*": # restrict by cooperative center user_cc = self.request.user.profile.get_attribute('cc') object_list = object_list.filter(cooperative_center_code=user_cc) return object_list
def get_queryset(self): # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) param_country = self.request.GET.get('country') search = self.actions['s'] search_filter = Q(name__icontains=search) | Q( acronym__icontains=search) object_list = [] if search: object_list = self.model.objects.filter(search_filter) else: object_list = self.model.objects.all() if param_country: object_list = object_list.filter(country=param_country) return object_list
def get_queryset(self): source_id = self.request.GET.get('source', None) document_type = self.request.GET.get('document_type', None) user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('LILDBI') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' # search by field search = self.actions['s'] if ':' in search: search_parts = search.split(':') search_field = search_parts[0] + '__icontains' search = search_parts[1] if search: object_list = self.model.objects.filter(**{search_field: search}) else: object_list = self.model.objects.all() if source_id: object_list = object_list.filter(source_id=source_id) if self.actions['filter_status'] != '': object_list = object_list.filter( status=self.actions['filter_status']) if self.actions['filter_indexed_database'] != '': object_list = object_list.filter( indexed_database=self.actions['filter_indexed_database']) # filter by specific document type and remove filter by user (filter_owner) if document_type: literature_type = re.sub( '[^A-Z]|[CP]', '', document_type ) # get only uppercase chars excepct CP (congress/project) treatment_level = re.sub('[A-Z]', '', document_type) # get only lowercase chars object_list = object_list.filter( literature_type__startswith=literature_type, treatment_level=treatment_level) if self.actions['order'] == "-": object_list = object_list.order_by( "%s%s" % (self.actions["order"], self.actions["orderby"])) # if not at main reference list and source or document_type remove filter by user if self.model.__name__ != 'Reference' and (source_id or document_type): self.actions['filter_owner'] = '*' # profile lilacs express editor - restrict by CC code when list sources if document_type and user_role == 'editor_llxp': self.actions['filter_owner'] = 'center' # filter by user if not self.actions['filter_owner'] or self.actions[ 'filter_owner'] == 'user': object_list = object_list.filter(created_by=self.request.user) # filter by cooperative center elif self.actions['filter_owner'] == 'center': user_cc = self.request.user.profile.get_attribute('cc') object_list = object_list.filter(cooperative_center_code=user_cc) # filter by titles of responsibility of current user CC elif self.actions['filter_owner'] == 'indexed': user_cc = self.request.user.profile.get_attribute('cc') titles_indexed = [ t.shortened_title for t in Title.objects.filter( indexrange__indexer_cc_code=user_cc) ] if titles_indexed: filter_title_qs = Q() for title in titles_indexed: filter_title_qs = filter_title_qs | Q( referenceanalytic__source__title_serial=title) | Q( referencesource__title_serial=title) object_list = object_list.filter(filter_title_qs) # by default filter by LILACS express references if self.actions['filter_status'] == '': self.actions['filter_status'] = 0 object_list = object_list.filter(status=0) else: # if no indexed journals are found return a empty list object_list = self.model.objects.none() # filter by records changed by others elif self.actions['filter_owner'] == 'review': if self.actions['review_type'] == 'user': ref_list = refs_changed_by_other_user(self.request.user) else: ref_list = refs_changed_by_other_cc(self.request.user) if ref_list: # get only ID's from filter reference list reference_id_list = ref_list.keys object_list = object_list.filter(id__in=reference_id_list) else: object_list = object_list.none() return object_list
def list_resources(request): user = request.user output = {} delete_id = request.POST.get('delete_id') if delete_id: delete_resource(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] if actions['s'].isdigit(): resources = Resource.objects.filter(pk=int(actions['s'])) else: resources = Resource.objects.filter( Q(title__icontains=actions['s']) | Q(link__icontains=actions['s'])) if actions['filter_status'] != '': resources = resources.filter(status=actions['filter_status']) if actions['filter_thematic'] != '': actions['filter_thematic'] = int(actions['filter_thematic']) resources = resources.filter( thematics__thematic_area=actions['filter_thematic']) resources = resources.order_by(actions["orderby"]) if actions['order'] == "-": resources = resources.order_by("%s%s" % (actions["order"], actions["orderby"])) user_data = additional_user_info(request) if actions['filter_owner'] == "network": resources = resources.filter( cooperative_center_code__in=user_data['ccs']) elif actions['filter_owner'] != "*": resources = resources.filter(created_by=request.user) else: resources = resources.all() # populate thematic list for filter thematic_list = ThematicArea.objects.all().order_by('name') # pagination pagination = {} paginator = Paginator(resources, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) resources = pagination['page'].object_list output['resources'] = resources output['thematic_list'] = thematic_list output['actions'] = actions output['pagination'] = pagination output['user_data'] = user_data return render_to_response('main/resources.html', output, context_instance=RequestContext(request))
def list_resources(request): user = request.user output = {} delete_id = request.POST.get('delete_id') # save current url for preserve filters after edit request.session["filtered_list"] = request.get_full_path() if delete_id: delete_resource(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] if actions['s'].isdigit(): resources = Resource.objects.filter(pk=int(actions['s'])) elif ":" in actions["s"]: search_parts = actions["s"].split(":") search_field = search_parts[0] + "__icontains" search = search_parts[1] resources = Resource.objects.filter(**{search_field: search}) else: resources = Resource.objects.filter( Q(title__icontains=actions['s']) | Q(link__icontains=actions['s'])) if actions['filter_status'] != '': resources = resources.filter(status=actions['filter_status']) if actions['filter_thematic'] != '': actions['filter_thematic'] = int(actions['filter_thematic']) resources = resources.filter( thematics__thematic_area=actions['filter_thematic']) resources = resources.order_by(actions["orderby"]) if actions['order'] == "-": resources = resources.order_by("%s%s" % (actions["order"], actions["orderby"])) user_data = additional_user_info(request) if actions['filter_owner'] == "network": resources = resources.filter( cooperative_center_code__in=user_data['ccs']) elif actions['filter_owner'] != "*": resources = resources.filter(created_by=request.user) else: resources = resources.all() # populate thematic list for filter thematic_list = ThematicArea.objects.all().order_by('name') # pagination pagination = {} paginator = Paginator(resources, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator try: pagination['page'] = paginator.page(page) except EmptyPage: page = paginator.num_pages if int(page) > 1 else 1 pagination['page'] = paginator.page(page) resources = pagination['page'].object_list output['resources'] = resources output['thematic_list'] = thematic_list output['actions'] = actions output['pagination'] = pagination output['user_data'] = user_data return render_to_response('main/resources.html', output, context_instance=RequestContext(request))
def users(request): user = request.user cc = None users = None ccs_networks_responsible = [] output = {} # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] users = User.objects.filter( Q(username__icontains=actions['s']) | Q(email__icontains=actions['s'])) actions['cc'] = request.GET.get('cc', '') if actions['cc']: users = users.filter(profile__cooperative_center__pk=actions['cc']) cooperative_centers = CooperativeCenter.objects.all() if not user.is_superuser: # tk39 - advanced user can view users of CCs of networks that his center coordinate # check networks that CC manages cc = request.user.profile.cooperative_center networks_managed = Network.objects.filter(responsible=cc) # create list with all CCs that user can view users for net_managed in networks_managed: ccs_networks_responsible.extend( [member.pk for member in net_managed.members.all()]) # make list of CCs that user can view users (based on network that the center manages) if networks_managed: q_list = [ Q(('profile__cooperative_center', cc_pk)) for cc_pk in ccs_networks_responsible ] users = users.filter(reduce(operator.or_, q_list)) cooperative_centers = cooperative_centers.filter( id__in=ccs_networks_responsible) else: users = users.filter(profile__cooperative_center=cc) cooperative_centers = cooperative_centers.filter(id=cc.pk) users = users.order_by(actions["orderby"]) if actions['order'] == "-": users = users.order_by("%s%s" % (actions["order"], actions["orderby"])) paginator = Paginator(users, MAX_USERS_PER_PAGE) page = actions.get("page") try: users = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) output['users'] = users output["pages"] = range(1, (paginator.num_pages + 1)) output['actions'] = actions output['show_users_cc'] = True if len( ccs_networks_responsible) > 1 else False output['cooperative_centers'] = cooperative_centers.order_by('code') return render_to_response('main/users.html', output, context_instance=RequestContext(request))
def get_queryset(self): source_id = self.request.GET.get('source', None) document_type = self.request.GET.get('document_type', None) user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('LILDBI') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' # search by field search = self.actions['s'] if ':' in search: search_parts = search.split(':') search_field = search_parts[0] + '__icontains' search = search_parts[1] object_list = self.model.objects.filter(**{search_field: search}) if source_id: object_list = object_list.filter(source_id=source_id) if self.actions['filter_status'] != '': object_list = object_list.filter(status=self.actions['filter_status']) # filter by specific document type and remove filter by user (filter_owner) if document_type: literature_type = re.sub('[^A-Z]|[CP]', '', document_type) # get only uppercase chars excepct CP (congress/project) treatment_level = re.sub('[A-Z]', '', document_type) # get only lowercase chars object_list = object_list.filter(literature_type__startswith=literature_type, treatment_level=treatment_level) if self.actions['order'] == "-": object_list = object_list.order_by("%s%s" % (self.actions["order"], self.actions["orderby"])) # if not at main reference list and source or document_type remove filter by user if self.model.__name__ != 'Reference' and (source_id or document_type): self.actions['filter_owner'] = '*' # profile lilacs express editor - restrict by CC code when list sources if document_type and user_role == 'editor_llxp': self.actions['filter_owner'] = 'center' # filter by user if not self.actions['filter_owner'] or self.actions['filter_owner'] == 'user': object_list = object_list.filter(created_by=self.request.user) # filter by cooperative center elif self.actions['filter_owner'] == 'center': user_cc = self.request.user.profile.get_attribute('cc') object_list = object_list.filter(cooperative_center_code=user_cc) # filter by titles of responsibility of current user CC elif self.actions['filter_owner'] == 'indexed': user_cc = self.request.user.profile.get_attribute('cc') titles_indexed = [t.shortened_title for t in Title.objects.filter(indexer_cc_code=user_cc)] filter_title_qs = Q() for title in titles_indexed: filter_title_qs = filter_title_qs | Q(referenceanalytic__source__title_serial=title) # by default filter by LILACS express references object_list = object_list.filter(filter_title_qs) if self.actions['filter_status'] == '': self.actions['filter_status'] = 0 object_list = object_list.filter(status=0) return object_list
def list_events(request): user = request.user output = {} delete_id = request.POST.get('delete_id') if delete_id: delete_event(request, delete_id) # getting action parameters actions = {} for key in ACTIONS.keys(): if request.REQUEST.get(key): actions[key] = request.REQUEST.get(key) else: actions[key] = ACTIONS[key] page = 1 if actions['page'] and actions['page'] != '': page = actions['page'] user_data = additional_user_info(request) search = actions['s'] search_field = 'title__icontains' # search by field if ':' in search: search_parts = search.split(':') search_field = search_parts[0] + '__icontains' search = search_parts[1] if search: events = Event.objects.filter(**{search_field: search}) else: events = Event.objects.all() if actions['filter_status'] != '': events = events.filter(status=actions['filter_status']) if actions['filter_thematic'] != '': actions['filter_thematic'] = int(actions['filter_thematic']) events = events.filter(thematics__thematic_area=actions['filter_thematic']) events = events.order_by(actions["orderby"]) if actions['order'] == "-": events = events.order_by("%s%s" % (actions["order"], actions["orderby"])) if actions['filter_owner'] == "network": events = events.filter(cooperative_center_code__in=user_data['ccs']) elif actions['filter_owner'] != "*": events = events.filter(created_by=request.user) else: events = events.all() # populate thematic list for filter thematic_list = ThematicArea.objects.all().order_by('name') # pagination pagination = {} paginator = Paginator(events, settings.ITEMS_PER_PAGE) pagination['paginator'] = paginator pagination['page'] = paginator.page(page) events = pagination['page'].object_list output['events'] = events output['thematic_list'] = thematic_list output['actions'] = actions output['pagination'] = pagination output['user_data'] = user_data return render_to_response('events/events.html', output, context_instance=RequestContext(request))
def get_queryset(self): source_id = self.request.GET.get('source', None) document_type = self.request.GET.get('document_type', None) user_data = additional_user_info(self.request) user_role = user_data['service_role'].get('LILDBI') # getting action parameter self.actions = {} for key in ACTIONS.keys(): self.actions[key] = self.request.GET.get(key, ACTIONS[key]) search_field = self.search_field + '__icontains' # search by field search = self.actions['s'] if ':' in search: search_parts = search.split(':') lookup_expr = '__exact' if search_parts[ 0] == "LILACS_original_id" else '__icontains' search_field, search = "%s%s" % (search_parts[0], lookup_expr), search_parts[1] if search: object_list = self.model.objects.filter(**{search_field: search}) else: object_list = self.model.objects.all() if source_id: object_list = object_list.filter(source_id=source_id) if self.actions['filter_status'] != '': object_list = object_list.filter( status=self.actions['filter_status']) if self.actions['filter_indexed_database'] != '': object_list = object_list.filter( indexed_database=self.actions['filter_indexed_database']) # filter by specific document type and remove filter by user (filter_owner) if document_type: literature_type = re.sub( '[^A-Z]|[CP]', '', document_type ) # get only uppercase chars excepct CP (congress/project) treatment_level = re.sub('[A-Z]', '', document_type) # get only lowercase chars object_list = object_list.filter( literature_type__startswith=literature_type, treatment_level=treatment_level) if document_type == JOURNALS_FASCICLE: object_list = object_list.annotate( publication_year=Substr("publication_date_normalized", 1, 4)) if self.model.__name__ == "Reference": volume_serial_field = "referencesource__volume_serial" issue_number_field = "referencesource__issue_number" else: volume_serial_field = "volume_serial" issue_number_field = "issue_number" object_list = object_list.order_by( "-publication_year", "-{}".format(volume_serial_field), "-{}".format(issue_number_field)) elif self.actions['order'] == "-": object_list = object_list.order_by( "%s%s" % (self.actions["order"], self.actions["orderby"])) # if not at main reference list and source or document_type remove filter by user if self.model.__name__ != 'Reference' and (source_id or document_type): self.actions['filter_owner'] = '*' # profile lilacs express editor - restrict by CC code when list sources if document_type and user_role == 'editor_llxp': self.actions['filter_owner'] = 'center' # filter by user if not self.actions['filter_owner'] or self.actions[ 'filter_owner'] == 'user': object_list = object_list.filter(created_by=self.request.user) # filter by cooperative center elif self.actions['filter_owner'] == 'center': user_cc = self.request.user.profile.get_attribute('cc') object_list = object_list.filter(cooperative_center_code=user_cc) # filter by titles of responsibility of current user CC elif self.actions['filter_owner'] == 'indexed': user_cc = self.request.user.profile.get_attribute('cc') titles_indexed = [ t.shortened_title for t in Title.objects.filter( indexrange__indexer_cc_code=user_cc) ] if titles_indexed: filter_title_qs = Q() for title in titles_indexed: filter_title_qs = filter_title_qs | Q( referenceanalytic__source__title_serial=title) | Q( referencesource__title_serial=title) object_list = object_list.filter(filter_title_qs) # by default filter by LILACS express status if self.actions['filter_status'] == '': object_list = object_list.filter(status=0) # by default filter by articles (exclude sources of list) if self.actions['document_type'] == '': object_list = object_list.filter(treatment_level='as') else: # if no indexed journals are found return a empty list object_list = self.model.objects.none() # filter by records changed by others elif self.actions['filter_owner'] == 'review': if self.actions['review_type'] == 'user': ref_list = refs_changed_by_other_user(self.request.user) else: ref_list = refs_changed_by_other_cc(self.request.user) if ref_list: # get only ID's from filter reference list reference_id_list = ref_list.keys object_list = object_list.filter(id__in=reference_id_list) else: object_list = object_list.none() # exclude from the standard result list (filter status=all) sources with deleted status (#914) if self.actions['filter_status'] == '': object_list = object_list.exclude(status='3', literature_type='S', treatment_level='') return object_list