Remove usage of safe_html in renderings

This commit is contained in:
Sebastian Serth
2021-10-12 11:23:22 +02:00
parent 1123086633
commit f9a7e73719
7 changed files with 65 additions and 13 deletions

View File

@ -1,7 +1,8 @@
#flash-container.container
#flash.container.fixed_error_messages data-message-failure=t('shared.message_failure') data-websocket-failure=t('shared.websocket_failure')
- %w[alert danger info notice success warning].each do |severity|
div.alert.flash class="alert-#{{'alert' => 'warning', 'notice' => 'success'}.fetch(severity, severity)} alert-dismissible fade show"
p.mb-0 id="flash-#{severity}" = flash[severity]&.html_safe
- flash_mapping = {'alert' => 'warning', 'notice' => 'success'}
div.alert.flash class="alert-#{flash_mapping.fetch(severity, severity)} alert-dismissible fade show"
p.mb-0 id="flash-#{severity}" == flash[severity]
button type="button" class="close" data-dismiss="alert" aria-label="Close"
span.text-white aria-hidden="true" ×

View File

@ -17,8 +17,18 @@ div.h-100 id='output_sidebar_uncollapsed' class='d-none col-sm-12 enforce-bottom
.card-header.py-2
h5.card-title.m-0 == t('exercises.implement.test_file', filename: '', number: 0)
.card-body.bg-white.text-dark
= row(label: 'exercises.implement.passed_tests', value: t('shared.out_of', maximum_value: 0, value: 0).html_safe)
= row(label: 'activerecord.attributes.submission.score', value: t('shared.out_of', maximum_value: 0, value: 0).html_safe)
= row(label: 'exercises.implement.passed_tests') do
span.number
| 0
=<> t('shared.out_of')
span.number
| 0
= row(label: 'activerecord.attributes.submission.score') do
span.number
| 0
=<> t('shared.out_of')
span.number
| 0
= row(label: 'exercises.implement.feedback')
= row(label: 'exercises.implement.error_messages')
/= row(label: 'exercises.implement.output', value: link_to(t('shared.show'), '#'))
@ -27,8 +37,18 @@ div.h-100 id='output_sidebar_uncollapsed' class='d-none col-sm-12 enforce-bottom
.card-header.py-2
h5.card-title.m-0 == t('exercises.implement.linter_file', filename: '', number: 0)
.card-body.bg-white.text-dark
= row(label: 'exercises.implement.code_rating', value: t('shared.out_of', maximum_value: 0, value: 0).html_safe)
= row(label: 'activerecord.attributes.submission.score', value: t('shared.out_of', maximum_value: 0, value: 0).html_safe)
= row(label: 'exercises.implement.code_rating') do
span.number
| 0
=<> t('shared.out_of')
span.number
| 0
= row(label: 'activerecord.attributes.submission.score') do
span.number
| 0
=<> t('shared.out_of')
span.number
| 0
= row(label: 'exercises.implement.feedback')
= row(label: 'exercises.implement.messages')
#score data-maximum-score=@exercise.maximum_score data-score=@exercise.final_submission(@current_user).try(:score)

View File

@ -1,4 +1,8 @@
h1 = "#{@exercise} (external user #{link_to_if(policy(@external_user).show?, @external_user.displayname, @external_user)})".html_safe
h1
=> @exercise
' (external user
= link_to_if(policy(@external_user).show?, @external_user.displayname, @external_user)
' )
- current_submission = @submissions.first
- if current_submission
- initial_files = current_submission.files.to_a

View File

@ -12,13 +12,30 @@ h1 = @exercise
= "#{@exercise.submissions.send(scope).count} (#{t('.users', count: @exercise.submissions.send(scope).distinct.count(:user_id))})"
= row(label: '.finishing_rate') do
p == @exercise.finishers.count ? "#{t('shared.out_of', maximum_value: @exercise.users.distinct.count, value: @exercise.finishers.count)} #{t('exercises.statistics.external_users')}" : empty
p
- if @exercise.finishers.count
span.number
= @exercise.finishers.count
=<> t('shared.out_of')
span.number
= @exercise.users.distinct.count
=< t('exercises.statistics.external_users')
- else
= empty
- finishers_count = @exercise.users.distinct.count
- finishers_percentage = finishers_count == 0 ? 0 : (100.0 / finishers_count * @exercise.finishers.count).round(2)
p = progress_bar(finishers_percentage)
= row(label: '.average_score') do
p == @exercise.average_score ? t('shared.out_of', maximum_value: @exercise.maximum_score, value: @exercise.average_score.round(2)) : empty
p
- if @exercise.average_score
span.number
= @exercise.average_score.round(2)
=<> t('shared.out_of')
span.number
= @exercise.maximum_score
- else
= empty
p = progress_bar(@exercise.average_percentage)
- if policy(@exercise).detailed_statistics?

View File

@ -8,9 +8,19 @@ p
h2 = t('shared.statistics')
= row(label: '.score') do
/p == t('shared.out_of', maximum_value: @submission.exercise.maximum_score, value: @submission.score)
/p
span.number
= @submission.score
=<> t('shared.out_of')
span.number
= @submission.exercise.maximum_score
p = progress_bar(@submission.percentage)
/= row(label: '.final_submissions', value: @submission.exercise.submissions.final.distinct.count(:user_id, :user_type) - 1)
/= row(label: '.average_score') do
/ p == t('shared.out_of', maximum_value: @submission.exercise.maximum_score, value: @submission.exercise.average_score.round(2))
/ p
span.number
= @submission.exercise.average_score.round(2)
=<> t('shared.out_of')
span.number
= @submission.exercise.maximum_score
/ p = progress_bar(@submission.exercise.average_percentage)