示例#1
0
 def build_query(self, kwargs, join=True):
     query = super(ScheduleAView, self).build_query(kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type, kwargs)
     if join:
         query = query.options(sa.orm.joinedload(models.ScheduleA.committee))
         query = query.options(sa.orm.joinedload(models.ScheduleA.contributor))
     return query
示例#2
0
 def test_filter_contributor_type_none(self):
     query = filters.filter_contributor_type(
         models.ScheduleA.query,
         models.ScheduleA.entity_type,
         {'contributor_type': ['individual', 'committee']},
     )
     self.assertEqual(set(query.all()), set(self.receipts))
示例#3
0
 def build_query(self, **kwargs):
     query = super().build_query(**kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type,
                                             kwargs)
     zip_list = []
     if kwargs.get('contributor_zip'):
         for value in kwargs['contributor_zip']:
             if re.search('[^a-zA-Z0-9-\s]', value):
                 raise exceptions.ApiError(
                     'Invalid zip code. It can not have special character',
                     status_code=400,
                 )
             else:
                 zip_list.append(value[:5])
         contributor_zip_list = {'contributor_zip': zip_list}
         query = filters.filter_multi_start_with(
             query, contributor_zip_list,
             self.filter_multi_start_with_fields)
     if kwargs.get('sub_id'):
         query = query.filter_by(sub_id=int(kwargs.get('sub_id')))
     if kwargs.get('line_number'):
         if len(kwargs.get('line_number').split('-')) == 2:
             form, line_no = kwargs.get('line_number').split('-')
             query = query.filter_by(filing_form=form.upper())
             query = query.filter_by(line_number=line_no)
     return query
示例#4
0
 def test_filter_contributor_type_committee(self):
     query = filters.filter_contributor_type(
         models.ScheduleA.query,
         models.ScheduleA.entity_type,
         {'contributor_type': ['committee']},
     )
     self.assertEqual(
         set(query.all()),
         set(each for each in self.receipts if each.entity_type != 'IND'))
示例#5
0
 def test_filter_contributor_type_committee(self):
     query = filters.filter_contributor_type(
         models.ScheduleA.query,
         models.ScheduleA.entity_type,
         {'contributor_type': ['committee']},
     )
     self.assertEqual(
         set(query.all()),
         set(each for each in self.receipts if each.entity_type != 'IND')
     )
示例#6
0
文件: sched_a.py 项目: mbland/openFEC
 def build_query(self, kwargs, join=True):
     query = super(ScheduleAView, self).build_query(kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type,
                                             kwargs)
     if join:
         query = query.options(sa.orm.joinedload(
             models.ScheduleA.committee))
         query = query.options(
             sa.orm.joinedload(models.ScheduleA.contributor))
     return query
示例#7
0
文件: sched_a.py 项目: 18F/openFEC
 def build_query(self, **kwargs):
     query = super().build_query(**kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type, kwargs)
     if kwargs.get('sub_id'):
         query = query.filter_by(sub_id= int(kwargs.get('sub_id')))
     if kwargs.get('line_number'):
         if len(kwargs.get('line_number').split('-')) == 2:
             form, line_no = kwargs.get('line_number').split('-')
             query = query.filter_by(filing_form=form.upper())
             query = query.filter_by(line_number=line_no)
     return query
示例#8
0
 def build_query(self, **kwargs):
     query = super().build_query(**kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type,
                                             kwargs)
     if kwargs.get('sub_id'):
         query = query.filter_by(sub_id=int(kwargs.get('sub_id')))
     if kwargs.get('line_number'):
         if len(kwargs.get('line_number').split('-')) == 2:
             form, line_no = kwargs.get('line_number').split('-')
             query = query.filter_by(filing_form=form.upper())
             query = query.filter_by(line_number=line_no)
     return query
示例#9
0
文件: sched_a.py 项目: syyunn/openFEC
 def build_query(self, **kwargs):
     secondary_index_options = [
         'committee_id',
         'contributor_id',
         'contributor_name',
         'contributor_city',
         'contributor_zip',
         'contributor_employer',
         'contributor_occupation',
         'image_number',
     ]
     two_year_transaction_periods = set(
         kwargs.get('two_year_transaction_period', [])
     )
     if len(two_year_transaction_periods) != 1:
         if not any(kwargs.get(field) for field in secondary_index_options):
             raise exceptions.ApiError(
                 "Please choose a single `two_year_transaction_period` or \
                 add one of the following filters to your query: `{}`".format(
                     "`, `".join(secondary_index_options)
                 ),
                 status_code=400,
             )
     query = super().build_query(**kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type, kwargs)
     zip_list = []
     if kwargs.get('contributor_zip'):
         for value in kwargs['contributor_zip']:
             if re.search('[^a-zA-Z0-9-\s]', value):  # noqa
                 raise exceptions.ApiError(
                     'Invalid zip code. It can not have special character',
                     status_code=400,
                 )
             else:
                 zip_list.append(value[:5])
         contributor_zip_list = {'contributor_zip': zip_list}
         query = filters.filter_multi_start_with(
             query, contributor_zip_list, self.filter_multi_start_with_fields
         )
     if kwargs.get('sub_id'):
         query = query.filter_by(sub_id=int(kwargs.get('sub_id')))
     if kwargs.get('line_number'):
         # line_number is a composite value of 'filing_form-line_number'
         if len(kwargs.get('line_number').split('-')) == 2:
             form, line_no = kwargs.get('line_number').split('-')
             query = query.filter_by(filing_form=form.upper())
             query = query.filter_by(line_number=line_no)
         else:
             raise exceptions.ApiError(
                 exceptions.LINE_NUMBER_ERROR, status_code=400,
             )
     return query
示例#10
0
    def build_query(self, **kwargs):
        query = super().build_query(**kwargs)
        query = filters.filter_contributor_type(query, self.model.entity_type,
                                                kwargs)

        if kwargs.get('contributor_zip'):
            for value in kwargs['contributor_zip']:
                if re.search('^-?\d{5}$', value) is None:
                    raise exceptions.ApiError(
                        'Invalid Zip code. It must be 5 digits',
                        status_code=400,
                    )
            query = filters.filter_multi_start_with(
                query, kwargs, self.filter_multi_start_with_fields)

        if kwargs.get('sub_id'):
            query = query.filter_by(sub_id=int(kwargs.get('sub_id')))
        if kwargs.get('line_number'):
            if len(kwargs.get('line_number').split('-')) == 2:
                form, line_no = kwargs.get('line_number').split('-')
                query = query.filter_by(filing_form=form.upper())
                query = query.filter_by(line_number=line_no)
        return query
示例#11
0
 def build_query(self, **kwargs):
     query = super().build_query(**kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type, kwargs)
     return query
示例#12
0
文件: sched_a.py 项目: nbedi/openFEC
 def build_query(self, **kwargs):
     query = super().build_query(**kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type,
                                             kwargs)
     return query
示例#13
0
 def build_query(self, **kwargs):
     query = super().build_query(**kwargs)
     query = filters.filter_contributor_type(query, self.model.entity_type, kwargs)
     if kwargs.get('sub_id'):
         query = query.filter_by(sub_id= int(kwargs.get('sub_id')))
     return query