PageRenderTime 53ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/client_apps/canvas_quizzes/apps/statistics/js/collections/quiz_reports.js

https://gitlab.com/ykazemi/canvas-lms
JavaScript | 45 lines | 40 code | 5 blank | 0 comment | 0 complexity | 5311f46010294f57eb62d3ffdc9accff MD5 | raw file
  1. define(function(require) {
  2. var Backbone = require('canvas_packages/backbone');
  3. var QuizReport = require('../models/quiz_report');
  4. var fromJSONAPI = require('canvas_quizzes/models/common/from_jsonapi');
  5. var config = require('../config');
  6. var CoreAdapter = require('canvas_quizzes/core/adapter');
  7. var Adapter = new CoreAdapter(config);
  8. var SORT_ORDER = [
  9. 'student_analysis',
  10. 'item_analysis'
  11. ];
  12. return Backbone.Collection.extend({
  13. model: QuizReport,
  14. url: function() {
  15. return config.quizReportsUrl;
  16. },
  17. parse: function(payload) {
  18. return fromJSONAPI(payload, 'quiz_reports');
  19. },
  20. generate: function(reportType) {
  21. return Adapter.request({
  22. type: 'POST',
  23. url: this.url(),
  24. data: {
  25. quiz_reports: [{
  26. report_type: reportType,
  27. includes_all_versions: config.includesAllVersions
  28. }],
  29. include: ['progress', 'file']
  30. }
  31. }).then(function(payload) {
  32. var quizReports = this.add(payload, { parse: true, merge: true });
  33. return quizReports[0];
  34. }.bind(this));
  35. },
  36. comparator: function(model) {
  37. return SORT_ORDER.indexOf(model.get('reportType'));
  38. }
  39. });
  40. });