Cached displaynames of users
Added solved state and #comments to index of request_for_comments Added translations
This commit is contained in:
@ -35,6 +35,7 @@ module CodeOcean
|
||||
|
||||
has_many :files
|
||||
has_many :testruns
|
||||
has_many :comments
|
||||
alias_method :descendants, :files
|
||||
|
||||
mount_uploader :native_file, FileUploader
|
||||
|
@ -6,8 +6,10 @@ class ExternalUser < ActiveRecord::Base
|
||||
|
||||
def displayname
|
||||
result = name
|
||||
if(consumer.name == 'openHPI')
|
||||
result = Xikolo::UserClient.get(external_id.to_s)[:display_name]
|
||||
Rails.cache.fetch("#{cache_key}/displayname", expires_in: 12.hours) do
|
||||
if(consumer.name == 'openHPI')
|
||||
result = Xikolo::UserClient.get(external_id.to_s)[:display_name]
|
||||
end
|
||||
end
|
||||
result
|
||||
end
|
||||
|
@ -25,12 +25,16 @@ class RequestForComment < ActiveRecord::Base
|
||||
limit 1").first
|
||||
end
|
||||
|
||||
def comments_count
|
||||
submission.files.map { |file| file.comments.size}.sum
|
||||
end
|
||||
|
||||
def to_s
|
||||
"RFC-" + self.id.to_s
|
||||
end
|
||||
|
||||
private
|
||||
def self.row_number_user_sql
|
||||
select("id, user_id, exercise_id, file_id, question, requested_at, created_at, updated_at, user_type, row_number() OVER (PARTITION BY user_id ORDER BY created_at DESC) as row_number").to_sql
|
||||
select("id, user_id, exercise_id, file_id, question, requested_at, created_at, updated_at, user_type, solved, row_number() OVER (PARTITION BY user_id ORDER BY created_at DESC) as row_number").to_sql
|
||||
end
|
||||
end
|
||||
|
@ -4,18 +4,28 @@ h1 = RequestForComment.model_name.human(count: 2)
|
||||
table.table.sortable
|
||||
thead
|
||||
tr
|
||||
th
|
||||
i class="fa fa-lightbulb-o" aria-hidden="true" title = t('request_for_comments.solved') align="right"
|
||||
th = t('activerecord.attributes.request_for_comments.exercise')
|
||||
th = t('activerecord.attributes.request_for_comments.question')
|
||||
th
|
||||
i class="fa fa-comment" aria-hidden="true" title = t('request_for_comments.comments') align="center"
|
||||
th = t('activerecord.attributes.request_for_comments.username')
|
||||
th = t('activerecord.attributes.request_for_comments.requested_at')
|
||||
tbody
|
||||
- @request_for_comments.each do |request_for_comment|
|
||||
tr data-id=request_for_comment.id
|
||||
- if request_for_comment.solved?
|
||||
td
|
||||
span class="fa fa-check" aria-hidden="true"
|
||||
- else
|
||||
td = ''
|
||||
td = link_to(request_for_comment.exercise.title, request_for_comment)
|
||||
- if request_for_comment.has_attribute?(:question) && request_for_comment.question
|
||||
td = truncate(request_for_comment.question, length: 200)
|
||||
- else
|
||||
td = '-'
|
||||
td = request_for_comment.comments_count
|
||||
td = request_for_comment.user.displayname
|
||||
td = t('shared.time.before', time: distance_of_time_in_words_to_now(request_for_comment.requested_at))
|
||||
|
||||
|
@ -14,15 +14,21 @@
|
||||
%>
|
||||
<%= user.displayname %> | <%= @request_for_comment.requested_at %>
|
||||
</p>
|
||||
<h5>
|
||||
<u><%= t('activerecord.attributes.exercise.instructions') %>:</u> "<%= @request_for_comment.exercise.description %>"
|
||||
</h5>
|
||||
|
||||
<h5>
|
||||
<% if @request_for_comment.question and not @request_for_comment.question == '' %>
|
||||
<%= t('activerecord.attributes.request_for_comments.question')%>: "<%= @request_for_comment.question %>"
|
||||
<u><%= t('activerecord.attributes.request_for_comments.question')%>:</u> "<%= @request_for_comment.question %>"
|
||||
<% else %>
|
||||
<%= t('request_for_comments.no_question') %>
|
||||
<u><%= t('activerecord.attributes.request_for_comments.question')%>:</u> <%= t('request_for_comments.no_question') %>
|
||||
<% end %>
|
||||
</h5>
|
||||
<% if (policy(@request_for_comment).mark_as_solved? and not @request_for_comment.solved?) %>
|
||||
<button class="btn btn-default" id="mark-as-solved-button">Bla</button>
|
||||
<button class="btn btn-default" id="mark-as-solved-button"><%= t('request_for_comments.mark_as_solved') %></button>
|
||||
<% elsif (@request_for_comment.solved?) %>
|
||||
<button type="button" class="btn btn-success"><%= t('request_for_comments.solved') %></button>
|
||||
<% else %>
|
||||
|
||||
<% end %>
|
||||
|
@ -78,6 +78,7 @@ de:
|
||||
password_confirmation: Passwort-Bestätigung
|
||||
role: Rolle
|
||||
request_for_comments:
|
||||
comments: Kommentare
|
||||
exercise: Aufgabe
|
||||
execution_environment: Sprache
|
||||
username: Benutzername
|
||||
@ -161,6 +162,7 @@ de:
|
||||
show:
|
||||
link: Konsument
|
||||
errors:
|
||||
connection_refused: Verbindung abgelehnt
|
||||
index:
|
||||
count: Anzahl
|
||||
execution_environments:
|
||||
@ -350,10 +352,13 @@ de:
|
||||
body: 'Bitte besuchen Sie %{link}, sofern Sie Ihr Passwort zurücksetzen wollen.'
|
||||
subject: Anweisungen zum Zurücksetzen Ihres Passworts
|
||||
request_for_comments:
|
||||
comments: Kommentare
|
||||
index:
|
||||
get_my_comment_requests: Meine Kommentaranfragen
|
||||
all: "Alle Kommentaranfragen"
|
||||
no_question: "Der Autor hat keine Frage zu dieser Anfrage gestellt."
|
||||
mark_as_solved: "Diese Frage als beantwortet markieren"
|
||||
solved: "Diese Frage wurde erfolgreich beantwortet"
|
||||
sessions:
|
||||
create:
|
||||
failure: Fehlerhafte E-Mail oder Passwort.
|
||||
|
@ -78,6 +78,7 @@ en:
|
||||
password_confirmation: Passwort Confirmation
|
||||
role: Role
|
||||
request_for_comments:
|
||||
comments: Comments
|
||||
exercise: Exercise
|
||||
execution_environment: Language
|
||||
username: Username
|
||||
@ -161,6 +162,7 @@ en:
|
||||
show:
|
||||
link: Consumer
|
||||
errors:
|
||||
connection_refused: Connection refused
|
||||
index:
|
||||
count: Count
|
||||
execution_environments:
|
||||
@ -350,10 +352,13 @@ en:
|
||||
body: 'Please visit %{link} if you want to reset your password.'
|
||||
subject: Password reset instructions
|
||||
request_for_comments:
|
||||
comments: Comments
|
||||
index:
|
||||
all: All Requests for Comments
|
||||
get_my_comment_requests: My Requests for Comments
|
||||
no_question: "The author did not enter a question for this request."
|
||||
mark_as_solved: "Mark this question as answered"
|
||||
solved: "This question has been answered"
|
||||
sessions:
|
||||
create:
|
||||
failure: Invalid email or password.
|
||||
|
Reference in New Issue
Block a user