api_views: allow dates in statistics datetime filters (#49485)

This commit is contained in:
Valentin Deniaud 2020-12-15 10:51:05 +01:00
parent 12fd246aeb
commit d098a6fcf4
2 changed files with 8 additions and 2 deletions

View File

@ -1119,8 +1119,8 @@ class StatisticsSerializer(serializers.Serializer):
time_interval = serializers.ChoiceField(choices=TIME_INTERVAL_CHOICES, default='month')
service = ServiceOUField(child=serializers.SlugField(max_length=256), required=False)
ou = serializers.SlugField(required=False, allow_blank=False, max_length=256)
start = serializers.DateTimeField(required=False)
end = serializers.DateTimeField(required=False)
start = serializers.DateTimeField(required=False, input_formats=['iso-8601', '%Y-%m-%d'])
end = serializers.DateTimeField(required=False, input_formats=['iso-8601', '%Y-%m-%d'])
def stat(**kwargs):

View File

@ -2189,6 +2189,12 @@ def test_api_statistics(app, admin, freezer, event_type_name, event_name):
data = resp.json['data']
assert data == {'x_labels': ['2020-02'], 'series': [{'label': 'password', 'data': [2]}]}
resp = app.get(
'/api/statistics/%s/?time_interval=month&end=2020-03-01' % event_name, headers=headers
)
data = resp.json['data']
assert data == {'x_labels': ['2020-02'], 'series': [{'label': 'password', 'data': [2]}]}
resp = app.get(
'/api/statistics/%s/?time_interval=year&service=portal default' % event_name, headers=headers
)