appsembler / figures

Reporting and data retrieval app for Open edX
MIT License
44 stars 37 forks source link

Fixed Learner Metrics API endpoint duplicate users returned #273

Closed johnbaldwin closed 3 years ago

johnbaldwin commented 4 years ago

This fixes https://appsembler.atlassian.net/browse/RED-1448

I still need to do some more testing, so not including this in Figures 0.3.18

This is a candidate for Figures 0.3.19

When the learner-metrics API endpoint was called with a user filter, such as username, email, name, duplicate entries would be returned. the count would match the number of enrollments the learner has.

This fix adds the distinct=True option to the char filters for the UserFilterSet and appears to address the issue.

This was happening because Django Filter does not default to distinct records when filtering with CharFilter.

Some basic testing added for this, but we should have futher testing on all the query parameters for figures.filters.UserFilterSet, possibly creating a new filterset object specific to the learner metrics API endpoint

codecov-io commented 4 years ago

Codecov Report

Merging #273 into master will not change coverage. The diff coverage is 71.42%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #273   +/-   ##
=======================================
  Coverage   91.71%   91.71%           
=======================================
  Files          41       41           
  Lines        2161     2161           
=======================================
  Hits         1982     1982           
  Misses        179      179           
Impacted Files Coverage Δ
figures/filters.py 88.61% <71.42%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update fc15b04...2c944e0. Read the comment docs.