Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
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))
Exemple #4
0
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))
Exemple #5
0
    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
Exemple #6
0
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))
Exemple #7
0
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))
Exemple #8
0
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))
Exemple #9
0
    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
Exemple #10
0
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))
Exemple #11
0
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))
Exemple #12
0
    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
Exemple #13
0
    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
Exemple #14
0
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))
Exemple #15
0
    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
Exemple #16
0
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))
Exemple #17
0
    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
Exemple #18
0
    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
Exemple #19
0
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))
Exemple #20
0
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))
Exemple #21
0
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))
Exemple #22
0
    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
Exemple #23
0
    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
Exemple #24
0
    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
Exemple #25
0
    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
Exemple #26
0
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))
Exemple #27
0
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))
Exemple #28
0
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))
Exemple #29
0
    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
Exemple #30
0
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))
Exemple #31
0
    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