Ejemplo n.º 1
0
class IssueFilter(filters.FilterSet):
    status = filters.CharFilter(field_name='kanbancol__name',
                                lookup_expr='exact')
    assignee = filters.CharFilter(field_name="assignee__username",
                                  lookup_expr='contains')
    participant = filters.CharFilter(field_name="participant__username",
                                     lookup_expr='contains')
    dependsOn = filters.NumberFilter(field_name="dependsOn__number",
                                     lookup_expr='exact')
    sprint = filters.NumberFilter(field_name="sprint__seqnum",
                                  lookup_expr='exact')
    project = filters.CharFilter(field_name="project__name_short",
                                 lookup_expr='exact')
    logged_total__gt = DurationFilter(field_name='logged_total',
                                      lookup_expr='gt')
    logged_total__lt = DurationFilter(field_name='logged_total',
                                      lookup_expr='lt')
    logged_total = DurationFilter(field_name='logged_total',
                                  lookup_expr='exact')

    class Meta:
        model = Issue
        fields = {
            'priority': ['exact', 'lt', 'gt'],
            'type': ['exact'],
            'description': ['contains'],
            'due_date': ['exact', 'lt', 'gt'],
            'created': ['exact', 'lt', 'gt'],
            'storypoints': ['exact', 'lt', 'gt'],
            'archived': ['exact'],
            'sprint': ['isnull']
        }
Ejemplo n.º 2
0
class LogDateFilter(filters.FilterSet):
    timestamp = filters.DateTimeFilter(name="timestamp", lookup_type="gte")
    coordinate_X = filters.NumberFilter(name="coordinate_X")
    coordinate_Y = filters.NumberFilter(name="coordinate_Y")

    class Meta:
        model = Logs
        fields = ['timestamp', 'coordinate_X', 'coordinate_Y']
Ejemplo n.º 3
0
class EntityImageFilter(filters.FilterSet):
    """
    EntityImageFilter
    """
    entity = filters.NumberFilter()
    key = filters.NumberFilter()

    class Meta:
        model = EntityImage
        fields = ['entity', 'key']
Ejemplo n.º 4
0
class SplitFilter(filters.FilterSet):
    reader = filters.CharFilter(name='reader__id_str')
    tag = filters.CharFilter(name='tag__id_str')
    time_gte = filters.NumberFilter(name='time', lookup_type='gte')
    time_lte = filters.NumberFilter(name='time', lookup_type='lte')
    session = filters.NumberFilter(name='timingsession')
    checkpoint = filters.NumberFilter(name='reader__checkpoint', distinct=True)

    class Meta:
        model = Split
        fields = ('athlete', 'tag', 'session', 'reader', 'time_lte',
                  'time_gte', 'checkpoint')
Ejemplo n.º 5
0
class ServiceBaseFilter(filters.FilterSet):
    id = filters.AllLookupsFilter(name="id")
    serve_name = filters.AllLookupsFilter(name="serve_name")
    serve_type = filters.RelatedFilter(ServiceTypeFilter, name='serve_type')
    type_id = filters.NumberFilter(name="serve_type__id")
    category_id = filters.NumberFilter(name="serve_type__category")

    class Meta:
        model = Service_base
        fields = [
            'id', 'serve_name', 'serve_abbreviation', 'serve_type',
            'category_id', 'type_id'
        ]
Ejemplo n.º 6
0
class VerbatimFilter(filters.FilterSet):
    queryset = models.Verbatim.objects.all().prefetch_related(
        'question', 'variable', 'parent', 'job')

    csp_quota = filters.NumberFilter(name='variable__csp_quota')
    age_bands = filters.NumberFilter(name='variable__age_bands')
    reg_quota = filters.NumberFilter(name='variable__reg_quota')
    sex = filters.NumberFilter(name='variable__sex')

    variable = filters.RelatedFilter(VariableFilter)

    class Meta:
        model = models.Verbatim
        fields = ('parent', 'question', 'variable', 'csp_quota', 'age_bands',
                  'reg_quota', 'sex')
Ejemplo n.º 7
0
class ServiceErrorCodeFilter(filters.FilterSet):
    error_type_id = filters.NumberFilter(name='error_type__id')
    error_type_name = filters.NumberFilter(name='error_type__error_type_name')

    class Meta:
        model = Service_errorCode
        fields = [
            'id',
            'service',
            'error_type_id',
            'error_type_name',
            'error_code',
            'error_name',
            'create_time',
        ]
Ejemplo n.º 8
0
class LocationGeometryFilterBase(GeoFilterSet):
    label = filters.CharFilter(name='label', lookup_expr='iexact')
    label__contains = filters.CharFilter(name='label', lookup_expr='icontains')

    name = filters.CharFilter(name='attributes__name', lookup_expr='exact')
    layer = filters.CharFilter(name='attributes__layer', lookup_expr='exact')
    region = filters.NumberFilter(name='attributes__region', action=filter_region_json)
Ejemplo n.º 9
0
class ScaleFilter(filters.FilterSet):

    scale = filters.NumberFilter(name='scale')

    class Meta:
        model = Scale
        fields = ('scale',)
Ejemplo n.º 10
0
class TimingSessionFilter(filters.FilterSet):
    start_date = filters.DateFilter(name='start_time', lookup_type='gte')
    stop_date = filters.DateFilter(name='start_time', lookup_type='lte')
    athlete = filters.NumberFilter(name='splits__athlete', distinct=True)

    class Meta:
        model = TimingSession
        fields = ('start_date', 'stop_date', 'private', 'coach', 'athlete')
Ejemplo n.º 11
0
class ComponentVersionFilter(filters.FilterSet):
    component = filters.RelatedFilter(
        ComponentFilter,
        field_name='component',
        queryset=models.ComponentModel.objects.all(),
        lookups='__all__')
    owner_maintainer = filters.RelatedFilter(
        UserFilter,
        lookups='__all__',
        queryset=models.User.objects.all(),
    )
    deployments = filters.RelatedFilter(
        DeploymentFilter,
        field_name='deployments',
        queryset=models.ComponentDeploymentModel.objects.all())
    statuses = filters.RelatedFilter(
        RequirementStatusEntryFilter,
        field_name='statuses',
        queryset=models.RequirementStatusEntry.objects.all())
    exclude_statuses = filters.BaseInFilter(field_name='statuses',
                                            method='filter_exclude_statuses')
    unknown_status_count = filters.NumberFilter()
    negative_status_count = filters.NumberFilter()
    total_statuses = filters.NumberFilter()
    version = filters.AutoFilter(lookups='__all__')

    class Meta:
        model = models.ComponentVersionModel
        fields = '__all__'

    def filter_exclude_statuses(self, qs, name, value):
        """ handle query params for excluding component version with some requirement statuses.
        that useful for filtering component version that have not requirement statuses by some
        requirement. It's equal to select "unknown" status at frontend filters. We exclude all
        statuses except unknown: Ready, not ready, n/a. That case cover situation when component
        version have not requirement status. If requirement status is not exist it equal "unknown" status"""
        requirement = self.request.query_params.get('exclude_requirement')
        req_type = self.request.query_params.get('exclude_type')
        args = {}
        if requirement:
            args.update({'requirement__in': requirement.split(',')})
        if req_type:
            args.update({'type__in': req_type.split(',')})

        return qs.exclude(statuses__in=models.RequirementStatusEntry.objects.
                          filter(status__in=value, **args))
Ejemplo n.º 12
0
class SourcesFilter(filters.FilterSet):
    id = filters.NumberFilter(name='id', lookup_type='exact')
    text = filters.CharFilter(name='text', lookup_type='icontains')
    name = filters.CharFilter(name='name', lookup_type='icontains')
    is_default = filters.BooleanFilter(name='is_default', lookup_type='exact')
    is_active = filters.BooleanFilter(name='is_active', lookup_type='exact')
    created_by = filters.NumberFilter(name='created_by', lookup_type='exact')
    source = filters.NumberFilter(name='source', lookup_type='exact')

    class Meta:
        model = Sources
        fields = {
            'id',
            'text',
            'name',
            'created_by',
            'is_active',
        }
Ejemplo n.º 13
0
class ServiceActivePackFilter(filters.FilterSet):
    pack_name = filters.AllLookupsFilter(name="pack_name")
    pack_price = filters.NumberFilter(name="pack_price", lookup_type='lte')

    class Meta:
        model = Service_activePack
        fields = [
            'id', 'service', 'pack_name', 'pack_price', 'status', 'create_time'
        ]
Ejemplo n.º 14
0
class DataMartImageFilter(filters.FilterSet):
    """
    DataMartImageFilter
    """
    data_mart = filters.NumberFilter()

    class Meta:
        model = BaseDataMartImage
        fields = ['data_mart']
Ejemplo n.º 15
0
class BaseResolweFilter(filters.FilterSet):
    """Base filter for Resolwe's endpoints."""

    id = filters.AllLookupsFilter()  # pylint: disable=invalid-name
    slug = filters.AllLookupsFilter()
    name = filters.AllLookupsFilter()
    contributor = filters.NumberFilter()
    created = filters.AllLookupsFilter()
    modified = filters.AllLookupsFilter()
Ejemplo n.º 16
0
class EntityFileFilter(filters.FilterSet):
    """
    EntityImageFilter
    """
    entity = filters.NumberFilter()

    class Meta:
        model = BaseEntityFile
        fields = ['entity']
Ejemplo n.º 17
0
class WorkFilter(filters.FilterSet):
    id = filters.NumberFilter(field_name='id_from_source')

    class Meta:
        model = Work
        fields = {
            'iswc': ['exact', 'in'],
            'source': ['exact'],
        }
Ejemplo n.º 18
0
class UsersFilter(filters.FilterSet):
    id = filters.NumberFilter(name='id', lookup_type='exact')
    first_name = filters.CharFilter(name='first_name', lookup_type='icontains')
    last_name = filters.CharFilter(name='last_name', lookup_type='icontains')
    email = filters.CharFilter(name='email', lookup_type='icontains')
    organization = filters.CharFilter(name='organization',
                                      lookup_type='icontains')
    affiliation = filters.CharFilter(name='affiliation',
                                     lookup_type='icontains')
    role = filters.CharFilter(name='role__name', lookup_type='exact')
    is_active = filters.BooleanFilter(name='is_active', lookup_type='exact')
    created_by = filters.NumberFilter(name='created_by', lookup_type='exact')

    class Meta:
        model = Users
        fields = {
            'id', 'first_name', 'last_name', 'email', 'organization',
            'affiliation', 'role__name', 'is_active', 'created_by'
        }
Ejemplo n.º 19
0
class CategoriesFilter(filters.FilterSet):
    id = filters.NumberFilter(name='id', lookup_type='exact')
    name = filters.CharFilter(name='name', lookup_type='icontains')
    description = filters.CharFilter(name='description', lookup_type='icontains')
    tooltip = filters.CharFilter(name='tooltip', lookup_type='icontains')
    abbreviation = filters.CharFilter(name='abbreviation', lookup_type='exact')
    is_default = filters.BooleanFilter(name='is_default', lookup_type='exact')
    is_active = filters.BooleanFilter(name='is_active', lookup_type='exact')
    created_by = filters.NumberFilter(name='created_by', lookup_type='exact')
    class Meta:
        model = Categories
        fields = {
            'id',
            'name',
            'description',
            'tooltip',
            'abbreviation',
            'is_default',
            'created_by',
            'is_active',
        }
Ejemplo n.º 20
0
class TasksFilter(filters.FilterSet):
    id = filters.NumberFilter(name='id', lookup_type='exact')
    parent_task = filters.NumberFilter(name='parent_task', lookup_type='exact')
    type = filters.CharFilter(name='type', lookup_type='icontains')
    status = filters.CharFilter(name='status', lookup_type='icontains')
    manager_comment = filters.CharFilter(name='manager_comment',
                                         lookup_type='icontains')
    is_demo = filters.BooleanFilter(name='is_demo', lookup_type='exact')
    is_active = filters.BooleanFilter(name='is_active', lookup_type='exact')
    created_by = filters.NumberFilter(name='created_by', lookup_type='exact')

    project = filters.NumberFilter(name='project', lookup_type='exact')
    passage = filters.NumberFilter(name='passage', lookup_type='exact')
    annotator = filters.NumberFilter(name='annotator', lookup_type='exact')

    class Meta:
        model = Tasks
        fields = {
            'id',
            'parent_task',
            'type',
            'status',
            'project',
            'passage',
            'annotator',
            'manager_comment',
            'is_demo',
            'created_by',
            'is_active',
        }
Ejemplo n.º 21
0
class AllowedForStepsFilter(filters.FilterSet):
    """Filter sections on allowed effort steps."""

    allowed_for_steps = filters.NumberFilter(field_name="allowed_for_steps",
                                             method="filter_allowed_for_steps")

    class Meta:
        model = Section
        fields = "__all__"

    def filter_allowed_for_steps(self, qs, name, value):
        """Filter on "allowed_for_steps" relation."""
        return qs.filter(allowed_for_steps__number=value)
Ejemplo n.º 22
0
class PlanoTrabalhoFilter(filters.FilterSet):
    situacao_conselho_descricao = filters.CharFilter(
        name='conselho_cultural__situacao_ata__descricao',
        lookup_expr='istartswith')
    situacao_conselho_id = filters.NumberFilter(
        name='conselho_cultural__situacao_ata__id')

    situacao_orgao_descricao = filters.CharFilter(
        name='orgao_gestor__situacao_relatorio_secretaria__descricao',
        lookup_expr='istartswith')
    situacao_orgao_id = filters.NumberFilter(
        name='orgao_gestor__situacao_relatorio_secretaria__id')

    situacao_lei_descricao = filters.CharFilter(
        name='criacao_sistema__situacao_lei_sistema__descricao',
        lookup_expr='istartswith')
    situacao_lei_id = filters.CharFilter(
        name='criacao_sistema__situacao_lei_sistema__id')

    situacao_fundo_descricao = filters.CharFilter(
        name='fundo_cultura__situacao_lei_plano__descricao',
        lookup_expr='istartswith')
    situacao_fundo_id = filters.NumberFilter(
        name='fundo_cultura__situacao_lei_plano__descricao__id')

    situacao_plano_descricao = filters.CharFilter(
        name='plano_cultura__situacao_lei_plano__descricao',
        lookup_expr='istartswith')
    situacao_plano_id = filters.NumberFilter(
        name='plano_cultura__situacao_lei_plano__descricao__id')

    sistema_cultura = filters.RelatedFilter(MunicipioFilter,
                                            name='usuario__municipio',
                                            queryset=Municipio.objects.all())

    class Meta:
        model = PlanoTrabalho
        fields = {'id'}
Ejemplo n.º 23
0
class BaseResolweFilter(filters.FilterSet):
    """Base filter for Resolwe's endpoints."""

    id = filters.AllLookupsFilter()  # pylint: disable=invalid-name
    slug = filters.AllLookupsFilter()
    name = filters.AllLookupsFilter()
    contributor = filters.NumberFilter()
    created = filters.AllLookupsFilter()
    modified = filters.AllLookupsFilter()

    class Meta:
        """Filter configuration."""

        fields = ['id', 'slug', 'name', 'contributor', 'created', 'modified']
Ejemplo n.º 24
0
class LayersFilter(filters.FilterSet):
    id = filters.NumberFilter(name='id', lookup_type='exact')
    parent_layer_id = filters.NumberFilter(name='parent_layer_id', lookup_type='exact')
    name = filters.CharFilter(name='name', lookup_type='icontains')
    type = filters.CharFilter(name='type', lookup_type='icontains')
    description = filters.CharFilter(name='description', lookup_type='icontains')
    tooltip = filters.CharFilter(name='tooltip', lookup_type='icontains')
    is_default = filters.BooleanFilter(name='is_default', lookup_type='exact')
    is_active = filters.BooleanFilter(name='is_active', lookup_type='exact')
    created_by = filters.NumberFilter(name='created_by', lookup_type='exact')
    class Meta:
        model = Layers
        fields = {
            'id',
            'parent_layer_id',
            'name',
            'type',
            'description',
            'tooltip',
            'is_default',
            'created_by',
            'is_active',
        }
Ejemplo n.º 25
0
class AthleteFilter(filters.FilterSet):
    session = filters.NumberFilter(name='split__timingsession', distinct=True)
    primary_team = filters.BooleanFilter(name='team__primary_team',
                                         distinct=True)
    team_name = filters.CharFilter(name='team__name')
    min_age = filters.MethodFilter()
    max_age = filters.MethodFilter()
    registered_to_session = filters.NumberFilter(name='timingsession',
                                                 distinct=True)

    class Meta:
        model = Athlete
        fields = ('session', 'gender', 'tfrrs_id', 'primary_team', 'team',
                  'team_name', 'min_age', 'max_age', 'registered_to_session')

    def filter_min_age(self, queryset, value):
        """Minimum age."""
        try:
            age = int(value)
        except ValueError:
            return queryset.none()
        athlete_ids = ([
            athlete.id for athlete in queryset if athlete.age() >= age
        ])
        return queryset.filter(pk__in=athlete_ids)

    def filter_max_age(self, queryset, value):
        """Maximum age."""
        try:
            age = int(value)
        except ValueError:
            return queryset.none()
        athlete_ids = ([
            athlete.id for athlete in queryset if athlete.age() <= age
        ])
        return queryset.filter(pk__in=athlete_ids)
Ejemplo n.º 26
0
class AppropriationFilter(filters.FilterSet):
    """Filter appropriation."""

    main_activity__details__id = filters.NumberFilter(
        label=gettext("Aktivitetsdetalje for hovedaktivitet"))

    case = filters.RelatedFilter(
        CaseForAppropriationFilter,
        field_name="case",
        label=Case._meta.verbose_name.title(),
        queryset=Case.objects.all(),
    )

    class Meta:
        model = Appropriation
        fields = "__all__"
Ejemplo n.º 27
0
class ProductVariantFilter(filters.FilterSet):
    product = filters.NumberFilter(field_name='product__id')

    class Meta:
        model = ProductVariant
        fields = ['product']
Ejemplo n.º 28
0
class AdvancePublicJobsFilters(BasicPublicJobsFilters):
    """Filters for advance search"""

    filter_search = filters.InSetCharFilter(
        name="title",
        method="search_all")

    filter_company = filters.RelatedFilter(
        EmployerFilter,
        name="owner",
        queryset=Employer.objects.filter(
            user__is_active=True,
            user__status=User.S_ENABLED))

    filter_title_role = filters.NumberFilter(
        name="role")

    filter_position = filters.NumberFilter(
        name="position")

    filter_hierarchy = filters.NumberFilter(
        name="hierarchy")

    filter_branch_activity = filters.NumberFilter(
        name="branch_activity")

    filter_handicapped = filters.BooleanFilter(
        name="handicapped_postulant")

    filter_job_type = filters.NumberFilter(
        name="job_type")

    filter_is_new = filters.BooleanFilter(
        method="is_new")

    filter_country = filters.NumberFilter(
        name="country")

    def search_all(self, qs, name, value):
        """Search on title and description"""

        mq = Q()
        if len(value) > 0:
            values = value[0].split(' ')
            for i in range(len(values)):
                if values[i] != '':
                    mq |= Q(title__icontains=values[i]) | Q(description__icontains=values[i])
        res = qs.filter(mq)
        return res

    def is_new(self, qs, name, value):
        """Check if is new"""
        # @TODO
        return qs

    class Meta:
        model = Job
        fields = (
            "filter_subareas",
            "filter_roles",
            "filter_search",
            "filter_title_role",
            "filter_position",
            "filter_hierarchy",
            "filter_branch_activity",
            "filter_handicapped",
            "filter_job_type",
            "filter_is_new",
            "filter_country",
        )
Ejemplo n.º 29
0
class PositionFilter(filters.FilterSet):
    languages = filters.RelatedFilter(QualificationFilter,
                                      name='languages',
                                      queryset=Qualification.objects.all())
    description = filters.RelatedFilter(
        CapsuleDescriptionFilter,
        name='description',
        queryset=CapsuleDescription.objects.all())
    grade = filters.RelatedFilter(GradeFilter,
                                  name='grade',
                                  queryset=Grade.objects.all())
    skill = filters.RelatedFilter(SkillFilter,
                                  name='skill',
                                  queryset=Skill.objects.all())
    organization = filters.RelatedFilter(OrganizationFilter,
                                         name='organization',
                                         queryset=Organization.objects.all())
    bureau = filters.RelatedFilter(OrganizationFilter,
                                   name='bureau',
                                   queryset=Organization.objects.all())
    post = filters.RelatedFilter(PostFilter,
                                 name='post',
                                 queryset=Post.objects.all())
    current_assignment = filters.RelatedFilter(
        'talentmap_api.position.filters.AssignmentFilter',
        name='current_assignment',
        queryset=Assignment.objects.all())
    bid_statistics = filters.RelatedFilter(
        PositionBidStatisticsFilter,
        name='bid_statistics',
        queryset=PositionBidStatistics.objects.all())

    is_domestic = filters.BooleanFilter(name="is_overseas",
                                        lookup_expr="exact",
                                        exclude=True)
    is_highlighted = filters.BooleanFilter(name="highlighted_by_org",
                                           lookup_expr="isnull",
                                           exclude=True)

    # Full text search across multiple fields
    q = filters.CharFilter(
        name="position_number",
        method=full_text_search(fields=[
            "title", "organization__long_description",
            "bureau__long_description", "skill__description", "skill__code",
            "languages__language__long_description", "post__location__code",
            "post__location__country__name", "post__location__country__code",
            "post__location__city", "post__location__state",
            "description__content", "position_number"
        ]))

    is_available_in_current_bidcycle = filters.BooleanFilter(
        name="bid_cycles", method="filter_available_in_current_bidcycle")
    vacancy_in_years = filters.NumberFilter(
        name="current_assignment__estimated_end_date",
        method="filter_vacancy_in_years")

    def filter_available_in_current_bidcycle(self, queryset, name, value):
        '''
        Returns a queryset of all positions who are in the latest active bidcycle and do not have any
        bids with handshake or above status
        '''
        # Get latest active bidcycle
        bidcycle = BidCycle.objects.filter(
            active=True).latest('cycle_start_date')
        accepting_bids_query = Subquery(
            bidcycle.annotated_positions.filter(
                accepting_bids=value).values_list('id', flat=True))
        return queryset.filter(id__in=accepting_bids_query)

    def filter_vacancy_in_years(self, queryset, name, value):
        '''
        Returns a queryset of all positions with a vacancy in the specified number of years
        '''
        start = timezone.now()
        end = start + relativedelta(years=value)
        q_obj = {}
        q_obj[LOOKUP_SEP.join([name, "gt"])] = start
        q_obj[LOOKUP_SEP.join([name, "lte"])] = end
        return queryset.filter(Q(**q_obj))

    class Meta:
        model = Position
        fields = {
            "position_number": ALL_TEXT_LOOKUPS,
            "title": ALL_TEXT_LOOKUPS,
            "is_overseas": ["exact"],
            "create_date": DATE_LOOKUPS,
            "update_date": DATE_LOOKUPS,
            "post": FOREIGN_KEY_LOOKUPS,
            "organization": FOREIGN_KEY_LOOKUPS,
            "bureau": FOREIGN_KEY_LOOKUPS,
            "skill": FOREIGN_KEY_LOOKUPS,
            "grade": FOREIGN_KEY_LOOKUPS,
            "description": FOREIGN_KEY_LOOKUPS,
            "languages": FOREIGN_KEY_LOOKUPS,
            "current_assignment": FOREIGN_KEY_LOOKUPS
        }
Ejemplo n.º 30
0
class ServicePriceFilter(filters.FilterSet):
    cost = filters.NumberFilter(name="cost", lookup_type='lte')

    class Meta:
        model = Service_price
        fields = ['id', 'service', 'is_free', 'cost', 'create_time']