Merge "Allow Teams to be filtered by project_id"
This commit is contained in:
commit
fe8909e473
@ -197,9 +197,10 @@ class TeamsController(rest.RestController):
|
|||||||
@decorators.db_exceptions
|
@decorators.db_exceptions
|
||||||
@secure(checks.guest)
|
@secure(checks.guest)
|
||||||
@wsme_pecan.wsexpose([wmodels.Team], int, int, int, wtypes.text,
|
@wsme_pecan.wsexpose([wmodels.Team], int, int, int, wtypes.text,
|
||||||
wtypes.text, wtypes.text, wtypes.text)
|
wtypes.text, int, wtypes.text, wtypes.text)
|
||||||
def get(self, marker=None, offset=None, limit=None, name=None,
|
def get(self, marker=None, offset=None, limit=None, name=None,
|
||||||
description=None, sort_field='id', sort_dir='asc'):
|
description=None, project_id=None, sort_field='id',
|
||||||
|
sort_dir='asc'):
|
||||||
"""Retrieve a list of teams.
|
"""Retrieve a list of teams.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
@ -211,6 +212,7 @@ class TeamsController(rest.RestController):
|
|||||||
:param limit: The number of teams to retrieve.
|
:param limit: The number of teams to retrieve.
|
||||||
:param name: A string to filter the name by.
|
:param name: A string to filter the name by.
|
||||||
:param description: A string to filter the description by.
|
:param description: A string to filter the description by.
|
||||||
|
:param project_id: The ID of a project to filter by.
|
||||||
:param sort_field: The name of the field to sort on.
|
:param sort_field: The name of the field to sort on.
|
||||||
:param sort_dir: Sort direction for results (asc, desc).
|
:param sort_dir: Sort direction for results (asc, desc).
|
||||||
"""
|
"""
|
||||||
@ -226,11 +228,13 @@ class TeamsController(rest.RestController):
|
|||||||
limit=limit,
|
limit=limit,
|
||||||
name=name,
|
name=name,
|
||||||
description=description,
|
description=description,
|
||||||
|
project_id=project_id,
|
||||||
sort_field=sort_field,
|
sort_field=sort_field,
|
||||||
sort_dir=sort_dir)
|
sort_dir=sort_dir)
|
||||||
|
|
||||||
team_count = teams_api.team_get_count(name=name,
|
team_count = teams_api.team_get_count(name=name,
|
||||||
description=description)
|
description=description,
|
||||||
|
project_id=project_id)
|
||||||
|
|
||||||
# Apply the query response headers.
|
# Apply the query response headers.
|
||||||
if limit:
|
if limit:
|
||||||
|
@ -38,19 +38,36 @@ def team_get(team_id):
|
|||||||
return _entity_get(team_id)
|
return _entity_get(team_id)
|
||||||
|
|
||||||
|
|
||||||
|
def _team_build_query(project_id=None, **kwargs):
|
||||||
|
query = api_base.model_query(models.Team)
|
||||||
|
|
||||||
|
if project_id:
|
||||||
|
query = query.join(models.Team.projects)
|
||||||
|
query = query.filter(models.Project.id == project_id)
|
||||||
|
|
||||||
|
query = api_base.apply_query_filters(query=query,
|
||||||
|
model=models.Team,
|
||||||
|
**kwargs)
|
||||||
|
|
||||||
|
return query
|
||||||
|
|
||||||
|
|
||||||
def team_get_all(marker=None, offset=None, limit=None, sort_field=None,
|
def team_get_all(marker=None, offset=None, limit=None, sort_field=None,
|
||||||
sort_dir=None, **kwargs):
|
sort_dir=None, project_id=None, **kwargs):
|
||||||
return api_base.entity_get_all(models.Team,
|
query = _team_build_query(project_id, **kwargs)
|
||||||
offset=offset,
|
query = api_base.paginate_query(query=query,
|
||||||
marker=marker,
|
model=models.Team,
|
||||||
limit=limit,
|
limit=limit,
|
||||||
sort_field=sort_field,
|
sort_key=sort_field,
|
||||||
sort_dir=sort_dir,
|
marker=marker,
|
||||||
**kwargs)
|
offset=offset,
|
||||||
|
sort_dir=sort_dir)
|
||||||
|
return query.all()
|
||||||
|
|
||||||
|
|
||||||
def team_get_count(**kwargs):
|
def team_get_count(project_id=None, **kwargs):
|
||||||
return api_base.entity_get_count(models.Team, **kwargs)
|
query = _team_build_query(project_id, **kwargs)
|
||||||
|
return query.count()
|
||||||
|
|
||||||
|
|
||||||
def team_create(values):
|
def team_create(values):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user