Exemplo n.º 1
0
    def get_queryset(self):
        """
        Method which returns queryset after filter.
        :param self:
        :return qs:
        """
        required_values = ['id', self.obj_alias]
        qs = super(Select2Mixin, self).get_queryset()
        org_id = self.request.GET.get('org', '0')
        sSearch = self.request.GET.get('sSearch', None)
        tech_name = self.request.GET.get('tech_name', None)
        if str(org_id) == "0":
            # Create instance of 'NocoutUtilsGateway' class
            nocout_utils = NocoutUtilsGateway()
            organizations = nocout_utils.logged_in_user_organizations(self)
            qs = qs.filter(organization__id__in=organizations)
        else:
            qs = qs.filter(organization_id=org_id)

        if str(qs.model.__name__).strip().lower() == 'sector':
            sector_required_list = [
                'id', self.obj_alias, 'name',
                'sector_configured_on__ip_address', 'sector_id'
            ]
            required_values = sector_required_list
        elif str(qs.model.__name__).strip().lower() == 'device':
            required_values = required_values = [
                'id', self.obj_alias, 'ip_address'
            ]

        if sSearch:
            #specific cases to handle
            #ask Anoop how to make it more generic
            if str(qs.model.__name__).strip().lower() == 'sector':
                #we have a search for sector
                #search for sector can happen on
                #sector id, sector configured on
                qs = qs.filter(
                    Q(**{"%s__icontains" % self.obj_alias: sSearch})
                    | Q(**{
                        "sector_configured_on__ip_address__icontains": sSearch
                    })
                    | Q(**{"sector_id__icontains": sSearch}))

            else:
                qs = qs.filter(
                    Q(**{"%s__icontains" % self.obj_alias: sSearch}))

        if tech_name:
            try:
                tech_id = DeviceTechnology.objects.get(
                    name__iexact=tech_name).id
                qs = qs.filter(device_technology=tech_id)
            except Exception, e:
                pass
Exemplo n.º 2
0
    def get_initial_queryset(self):
        """
        Preparing  Initial Queryset for the for rendering the data table.
        """
        if not self.model:
            raise NotImplementedError("Need to provide a model.")
        qs = self.model.objects.all()
        if not self.request.user.is_superuser:
            # Create instance of 'NocoutUtilsGateway' class
            nocout_utils = NocoutUtilsGateway()
            qs = qs.filter(
                **{
                    self.organization_field + "__in":
                    nocout_utils.logged_in_user_organizations(self)
                })

        if self.values_queryset:
            qs = qs.values(*self.columns + ['id'])

        if self.extra_qs_kwargs:
            qs = qs.filter(**self.extra_qs_kwargs)

        return qs