diff --git a/app/controllers/competitions/competitions_controller.rb b/app/controllers/competitions/competitions_controller.rb index 7084f47b1..2161ab937 100644 --- a/app/controllers/competitions/competitions_controller.rb +++ b/app/controllers/competitions/competitions_controller.rb @@ -142,7 +142,7 @@ class Competitions::CompetitionsController < Competitions::BaseController } end else - @records = @records.includes(:team_members, user: :user_extension).limit(@competition.awards_count) + @records = @records.includes(:team_members, competition_prize_users: :competition_prize, user: :user_extension).limit(@competition.awards_count) end end diff --git a/app/models/competition_team.rb b/app/models/competition_team.rb index 485be61ef..0092f977c 100644 --- a/app/models/competition_team.rb +++ b/app/models/competition_team.rb @@ -18,6 +18,10 @@ class CompetitionTeam < ApplicationRecord team_type.zero? end + def competition_prize + competition_prize_users.take&.competition_prize&.name + end + def personal_team_type? team_type == 1 end diff --git a/app/models/searchable/subject.rb b/app/models/searchable/subject.rb index 64845a566..f0a713201 100644 --- a/app/models/searchable/subject.rb +++ b/app/models/searchable/subject.rb @@ -18,6 +18,8 @@ module Searchable::Subject def search_data { name: name, + status: status, + hidden: hidden, description: Util.extract_content(description)[0..Searchable::MAXIMUM_LENGTH], shixuns_count: shixuns_count, myshixuns_count: member_count, diff --git a/app/models/shixun.rb b/app/models/shixun.rb index c1782fe03..a2c66db79 100644 --- a/app/models/shixun.rb +++ b/app/models/shixun.rb @@ -293,7 +293,7 @@ class Shixun < ApplicationRecord # 所属实践课程 def relation_path - subjects.where(hidden: 0).uniq + subjects.published.unhidden.uniq end private diff --git a/app/views/admins/competition_prize_users/shared/_tr.html.erb b/app/views/admins/competition_prize_users/shared/_tr.html.erb index 66d0b64ad..679db2ad7 100644 --- a/app/views/admins/competition_prize_users/shared/_tr.html.erb +++ b/app/views/admins/competition_prize_users/shared/_tr.html.erb @@ -17,7 +17,11 @@ <% if prize_user.leader? && prize_user.competition_prize.category == 'bonus' %> <% bank_content = [prize_user.extra&.[]('bank'), prize_user.extra&.[]('second_bank'), prize_user.extra&.[]('card_no')].compact.join('
').presence || '无' %> <%= javascript_void_link('查看银行账户', data: { toggle: 'tooltip', title: bank_content.html_safe, html: true, placement: 'left', trigger: 'click' }) %> - <% end %> + <% prize_module = prize_user.competition&.competition_modules.find_by(module_type: 'certificate') %> + <% if prize_module %> + <%= link_to('编辑', EduSetting.get("host_name").to_s + "/competitions/#{prize_user.competition&.identifier}?menu=#{prize_module&.id}&user_id=#{user.id}", target: "_blank") %> + <% end %> + <% end %> <% if prize_user.pending? %> <%= link_to('审批通过', approve_admins_competition_competition_prize_user_path(prize_user.competition, prize_user), diff --git a/app/views/competitions/competitions/charts.json.jbuilder b/app/views/competitions/competitions/charts.json.jbuilder index e1952b5f3..897b674e7 100644 --- a/app/views/competitions/competitions/charts.json.jbuilder +++ b/app/views/competitions/competitions/charts.json.jbuilder @@ -6,6 +6,7 @@ json.user_ranks @user_ranks.each do |user_rank| json.user_name user_rank.user.real_name json.cost_time rank == 0 && user_rank.cost_time ? "--" : com_spend_time(user_rank.cost_time) json.score rank == 0 ? "--" : user_rank.score.round(2) + json.competition_prize user_rank.competition_prize end json.teams @records.each do |record| @@ -18,4 +19,5 @@ json.teams @records.each do |record| json.school_name school_name json.score record&.score&.round(2) json.spend_time record.cost_time ? com_spend_time(record.cost_time) : "--" + json.competition_prize record.competition_prize end \ No newline at end of file diff --git a/app/views/shixuns/menus.json.jbuilder b/app/views/shixuns/menus.json.jbuilder index c5021e88c..491ba5f05 100644 --- a/app/views/shixuns/menus.json.jbuilder +++ b/app/views/shixuns/menus.json.jbuilder @@ -30,15 +30,15 @@ # end # end -json.array! @sub_reps_map.keys do |rep| +json.array! @sub_reps_map.keys.sort_by(&:updated_at).reverse do |rep| json.extract! rep, :id, :name json.sub_repertoires do - json.array! @sub_reps_map[rep] do |sub_rep| + json.array! @sub_reps_map[rep].sort_by(&:updated_at).reverse do |sub_rep| json.extract! sub_rep, :id, :name json.tags do - json.array! @tags_map[sub_rep] do |tag| + json.array! @tags_map[sub_rep].sort_by(&:updated_at).reverse do |tag| json.extract! tag, :id, :name end end diff --git a/public/react/package.json b/public/react/package.json index 5bc10f627..e43132877 100644 --- a/public/react/package.json +++ b/public/react/package.json @@ -77,6 +77,7 @@ "react-redux": "5.0.7", "react-router": "^4.2.0", "react-router-dom": "^4.2.2", + "react-split-pane": "^0.1.87", "react-url-query": "^1.4.0", "redux": "^4.0.0", "redux-thunk": "2.3.0", diff --git a/public/react/src/modules/page/main/CodeRepositoryView.js b/public/react/src/modules/page/main/CodeRepositoryView.js index bae058dcd..cd44940d9 100644 --- a/public/react/src/modules/page/main/CodeRepositoryView.js +++ b/public/react/src/modules/page/main/CodeRepositoryView.js @@ -222,8 +222,10 @@ class CodeRepositoryView extends Component { const { game_id, host, password, port, username, webssh_url} = response.data // js_min_all.js有同样的计算逻辑,用来拖拽时计算ssh高宽 // TODO 结合new Terminal 时的fontSize参数来定高度 - var h = $("#games_repository_contents").height() - 50; - var w = $("#games_repository_contents").width(); + const gameCtx = $("#games_repository_contents"); + gameCtx.css({'padding-bottom': '50px', 'background': '#000'}); + var h = gameCtx.height() - 50; + var w = gameCtx.width(); var line_h = (navigator.userAgent.indexOf('Chrome') >= 0 ? 18 : 19); var rows = Math.round(h / line_h); var cols = parseInt(w / 9.9); @@ -233,14 +235,13 @@ class CodeRepositoryView extends Component { response.data.line_h = line_h; response.data.rows = rows; response.data.cols = cols; - // https://stackoverflow.com/questions/5645485/detect-mousemove-when-over-an-iframe // this.loadSshInIframe( response.data, tabIndex ) this.loadSshNormal(response.data, tabIndex, isReInit) } - console.log(response) + // console.log(response) }).catch((error) => { console.log(error) }) @@ -542,13 +543,13 @@ class CodeRepositoryView extends Component { {/* { tabIndex === STABLE_SSH_TAB_ID && this.state.sshData && } */}
+ style={ { color: '#fff', display: tabIndex === 82 ? 'block' : 'none', 'marginLeft': '2px', 'paddingBottom': '50px' } }>
+ style={ { color: '#fff', display: tabIndex === 83 ? 'block' : 'none', 'marginLeft': '2px', 'paddingBottom': '50px'} }>
+ style={ { color: '#fff', display: tabIndex === 84 ? 'block' : 'none', 'marginLeft': '2px', 'paddingBottom': '50px'} }>