json.allow_score allow_score(@homework, @user_course_identity, @current_user.id, @work)
json.ultimate @work.ultimate_score

json.last_comment do
  json.last_content @last_comment.try(:comment)
  json.last_score @last_comment.try(:score)
end

json.is_author @current_user == @work.user

json.comment_count @comment_scores.size

json.comment_scores @comment_scores do |score|
  json.user_id score.user_id
  json.user_login score.show_name(@user_course_identity, @current_user) ? score.user.login : "--"
  json.user_image_url score.show_name(@user_course_identity, @current_user) ? url_to_avatar(score.user) : "--"
  json.user_name score.show_name(@user_course_identity, @current_user) ? score.user.real_name : "匿名"
  json.comment_id score.id
  json.comment_role score.reviewer_role == 1 ? "教师" : score.reviewer_role == 2 ? "助教" : "学生"
  json.comment_time score.created_at
  json.score score.score
  json.score_id score.id
  json.content score.comment
  json.appeal_status score.appeal_status
  json.is_invalid score.is_invalid
  json.delete score.allow_delete(@current_user, @user_course_identity)
  json.attachments score.attachments do |atta|
    json.partial! "attachments/attachment_simple", locals: {attachment: atta, delete: false}
  end

  json.can_appeal @homework.appeal_duration && score.reviewer_role == 3 && score.appeal_status == 0 && @work.user == @current_user

  if @homework.anonymous_appeal && score.reviewer_role == 3 && score.student_works_scores_appeal.present?
    json.appeal_info appeal_info(score.student_works_scores_appeal, @user_course_identity, @current_user)
  end

  json.can_reply !score.is_invalid && @user_course_identity <= Course::STUDENT

  json.journals score.journals_for_messages.each do |message|
    json.user_info message_user_name(message.user, score, @work.user, @current_user, @user_course_identity)
    json.id message.id
    json.content message.notes
    json.time message.created_at
    json.can_delete @user_course_identity == Course::ADMIN
  end
end