forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTurnitin.coffee
More file actions
45 lines (40 loc) · 1.77 KB
/
Copy pathTurnitin.coffee
File metadata and controls
45 lines (40 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
define [
'i18n!turnitin'
'underscore'
], (I18n, {max, invert}) ->
Turnitin =
extractDataTurnitin: (submission) ->
plagData = submission?.turnitin_data
if !plagData?
plagData = submission?.vericite_data
return unless plagData?
data = items: []
if submission.attachments and submission.submission_type is 'online_upload'
for attachment in submission.attachments
attachment = attachment.attachment ? attachment
if turnitin = plagData?['attachment_' + attachment.id]
data.items.push turnitin
else if submission.submission_type is "online_text_entry"
if turnitin = plagData?['submission_' + submission.id]
data.items.push turnitin
return unless data.items.length
stateList = ['no', 'none', 'acceptable', 'warning', 'problem', 'failure']
stateMap = invert(stateList)
states = (parseInt(stateMap[item.state or 'no']) for item in data.items)
data.state = stateList[max(states)]
data
extractDataForTurnitin: (submission, key, urlPrefix) ->
data = submission?.turnitin_data
type = "turnitin"
if !data? || (submission?.vericite_data && submission?.vericite_data.provider == 'vericite')
data = submission?.vericite_data
type = "vericite"
if submission?.has_originality_report
type = "originality_report"
return {} unless data and data[key] and data[key].similarity_score?
data = data[key]
data.state = "#{data.state || 'no'}_score"
data.score = "#{data.similarity_score}%"
data.reportUrl = "#{urlPrefix}/assignments/#{submission.assignment_id}/submissions/#{submission.user_id}/#{type}/#{key}"
data.tooltip = I18n.t('tooltip.score', 'Similarity Score - See detailed report')
data