Exemplo n.º 1
0
    def check_built_query(self, query_string, expected_ids):
        params = QueryDict(query_string)

        builder = OfficerAllegationQueryBuilder()
        query = builder.build(params)
        results = OfficerAllegation.objects\
            .filter(query).values_list('id', flat=True)

        set(list(results)).should.equal(set(expected_ids))
Exemplo n.º 2
0
    def get_context_data(self, hash_id=None, **kwargs):
        context = super(SunburstView, self).get_context_data(**kwargs)

        session = get_object_or_404(
            Session, pk=Session.id_from_hash(hash_id)[0])
        query_str = build_query_string_from_session(session)
        query_dict = QueryDict(query_str)
        query_set = OfficerAllegationQueryBuilder().build(query_dict)
        officer_allegations = OfficerAllegation.objects.filter(query_set)
        context['sunburst_data'] = {
            'sunburst': SunburstSerializer(officer_allegations).data
        }
        context['sunburst_arc'] = session.sunburst_arc

        return context
Exemplo n.º 3
0
    def track_filter(self, session):
        if not session.query:
            return
        query_string = session.query_string
        if not query_string or query_string == '&':
            return

        queries = OfficerAllegationQueryBuilder()\
            .build(QueryDict(query_string))
        officer_allegations = OfficerAllegation.objects.filter(queries)
        num_allegations = officer_allegations.count()

        FilterLog.objects.create(tag_name=query_string,
                                 session_id=session.hash_id,
                                 num_allegations=num_allegations)
Exemplo n.º 4
0
 def get_officer_allegations(self, ignore_filters=None):
     queries = OfficerAllegationQueryBuilder()\
         .build(self.query_dict, ignore_filters)
     return OfficerAllegation.objects.filter(queries)
Exemplo n.º 5
0
 def test_adhoc_queries_null(self):
     builder = OfficerAllegationQueryBuilder()
     queries = builder.build(QueryDict('id=None'))
     repr(queries).should.equal(repr(Q(id__isnull=True)))
     queries = builder.build(QueryDict('cat=null'))
     repr(queries).should.equal(repr(Q(cat__isnull=True)))
Exemplo n.º 6
0
 def test_investigator_agency_not_exists(self):
     params = QueryDict('allegation__investigator__agency=abc')
     builder = OfficerAllegationQueryBuilder()
     queries = builder.build(params)
     repr(queries).should.equal(repr(Q()))
Exemplo n.º 7
0
 def test_exclude_ignore_params(self):
     params = QueryDict('a=1&b=2&c=3')
     builder = OfficerAllegationQueryBuilder()
     sorted(builder._exclude_ignore_params(params, None).keys()).should.equal(['a', 'b', 'c'])
     sorted(builder._exclude_ignore_params(params, ['c', 'd']).keys()).should.equal(['a', 'b'])