diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb
index 28a1b5b6e..3a7096b2a 100644
--- a/app/controllers/accounts_controller.rb
+++ b/app/controllers/accounts_controller.rb
@@ -60,7 +60,8 @@ class AccountsController < ApplicationController
ua = UserAgent.find_by_ip(ip)
ua.update_column(:agent_type, UserAgent::USER_REGISTER) if ua
successful_authentication(@user)
- session[:user_id] = @user.id
+ # session[:user_id] = @user.id
+ session[:"#{default_yun_session}"] = @user.id
normal_status("注册成功")
end
rescue Exception => e
@@ -94,7 +95,7 @@ class AccountsController < ApplicationController
successful_authentication(@user)
login_control.clear # 重置每日密码错误次数
- session[:user_id] = @user.id
+ # session[:user_id] = @user.id
end
# 忘记密码
@@ -158,7 +159,7 @@ class AccountsController < ApplicationController
def logout
UserAction.create(action_id: User.current.id, action_type: "Logout", user_id: User.current.id, :ip => request.remote_ip)
- session[:user_id] = nil
+ session[:"#{default_yun_session}"] = nil
logout_user
render :json => {status: 1, message: "退出成功!"}
end
diff --git a/app/controllers/admins/shixun_feedback_messages_controller.rb b/app/controllers/admins/shixun_feedback_messages_controller.rb
new file mode 100644
index 000000000..31fcc468c
--- /dev/null
+++ b/app/controllers/admins/shixun_feedback_messages_controller.rb
@@ -0,0 +1,14 @@
+class Admins::ShixunFeedbackMessagesController < Admins::BaseController
+
+ def index
+ default_sort('created_at', 'desc')
+ @params_page = params[:page] || 1
+ if params[:keyword]
+ discusses = Discuss.find_by_sql("select * from discusses join shixuns on discusses.dis_id = shixuns.id where discusses.dis_type='Shixun' AND
+ shixuns.name like '%#{params[:keyword]}%'")
+ else
+ discusses = Discuss.where(:dis_type => 'Shixun').includes(:user, :dis)
+ end
+ @discusses = paginate discusses
+ end
+end
\ No newline at end of file
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index c6aca5ae5..4c61fb1df 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -299,9 +299,11 @@ class ApplicationController < ActionController::Base
# and starts a session if needed
def find_current_user
uid_logger("user setup start: session[:user_id] is #{session[:user_id]}")
- if session[:user_id]
+ uid_logger("0000000000000user setup start: session[:user_id] is #{session[:"#{default_yun_session}"]}")
+ current_domain_session = session[:"#{default_yun_session}"]
+ if current_domain_session
# existing session
- (User.active.find(session[:user_id]) rescue nil)
+ (User.active.find(current_domain_session) rescue nil)
elsif autologin_user = try_to_autologin
autologin_user
elsif params[:format] == 'atom' && params[:key] && request.get? && accept_rss_auth?
@@ -313,10 +315,10 @@ class ApplicationController < ActionController::Base
def try_to_autologin
if cookies[autologin_cookie_name]
# auto-login feature starts a new session
- user = User.try_to_autologin(cookies[autologin_cookie_name])
- if user
- start_user_session(user)
- end
+ user = nil
+ Rails.logger.info("111111111111111111#{default_yun_session}, session is #{session[:"#{default_yun_session}"]} ")
+ user = User.try_to_autologin(cookies[autologin_cookie_name]) if session[:"#{default_yun_session}"]
+ start_user_session(user) if user
user
end
end
diff --git a/app/controllers/concerns/laboratory_helper.rb b/app/controllers/concerns/laboratory_helper.rb
index 37a3675f0..ecb478388 100644
--- a/app/controllers/concerns/laboratory_helper.rb
+++ b/app/controllers/concerns/laboratory_helper.rb
@@ -27,5 +27,6 @@ module LaboratoryHelper
def default_yun_session
@_default_yun_session = "#{request.subdomain.split('.').first}_user_id"
+ # @_default_yun_session = "#{current_laboratory.try(:identifier).split('.').first}_user_id"
end
end
\ No newline at end of file
diff --git a/app/controllers/concerns/login_helper.rb b/app/controllers/concerns/login_helper.rb
index 8497799e3..cf0c8e1e3 100644
--- a/app/controllers/concerns/login_helper.rb
+++ b/app/controllers/concerns/login_helper.rb
@@ -47,7 +47,7 @@ module LoginHelper
User.current.delete_session_token(session[:tk])
self.logged_user = nil
end
- session[:user_id] = nil
+ session[:"#{default_yun_session}"] = nil
end
# Sets the logged in user
@@ -73,8 +73,8 @@ module LoginHelper
# # session[:"#{request.subdomain}_user_id"] = user.id
# # end
- session[:user_id] = user.id
- # session[:"#{default_yun_session}"] = user.id
+ # session[:user_id] = user.id
+ session[:"#{default_yun_session}"] = user.id
session[:ctime] = Time.now.utc.to_i
session[:atime] = Time.now.utc.to_i
end
diff --git a/app/controllers/hack_user_lastest_codes_controller.rb b/app/controllers/hack_user_lastest_codes_controller.rb
index a4b41a162..2d749ce75 100644
--- a/app/controllers/hack_user_lastest_codes_controller.rb
+++ b/app/controllers/hack_user_lastest_codes_controller.rb
@@ -35,7 +35,7 @@ class HackUserLastestCodesController < ApplicationController
# 提交结果显示
def result
if @my_hack.submit_status == 1
- render json: {status:0, message: "正在评测中"}
+ render json: {status: 1, message: "正在评测中"}
else
@mode = params[:mode]
@result =
diff --git a/app/controllers/oauth/base_controller.rb b/app/controllers/oauth/base_controller.rb
index e4068fbda..327f21845 100644
--- a/app/controllers/oauth/base_controller.rb
+++ b/app/controllers/oauth/base_controller.rb
@@ -12,7 +12,8 @@ class Oauth::BaseController < ActionController::Base
private
def session_user_id
- session[:user_id]
+ # session[:user_id]
+ session[:"#{default_yun_session}"]
end
def current_user
diff --git a/app/controllers/weapps/registers_controller.rb b/app/controllers/weapps/registers_controller.rb
index 391850090..de48ebd54 100644
--- a/app/controllers/weapps/registers_controller.rb
+++ b/app/controllers/weapps/registers_controller.rb
@@ -48,7 +48,8 @@ class Weapps::RegistersController < Weapps::BaseController
)
end
successful_authentication(@user)
- session[:user_id] = @user.id
+ # session[:user_id] = @user.id
+ session[:"#{default_yun_session}"] = @user.id
# render_ok(user_id: @user.id)
end
diff --git a/app/views/admins/shared/_sidebar.html.erb b/app/views/admins/shared/_sidebar.html.erb
index f78b52ac7..7b1f5db7a 100644
--- a/app/views/admins/shared/_sidebar.html.erb
+++ b/app/views/admins/shared/_sidebar.html.erb
@@ -65,6 +65,12 @@
<% end %>
+
+ <%= sidebar_item_group('#comments-submenu', '消息', icon: 'comments') do %>
+ <%= sidebar_item(admins_shixun_feedback_messages_path, '实训反馈', icon: 'comment', controller: 'admins-shixun_feedback_messages') %>
+ <% end %>
+
+
<%= sidebar_item_group('#major-identification-submenu', '工程认证', icon: 'anchor') do %>
<%= sidebar_item(admins_major_informations_path, '本科专业目录', icon: 'outdent', controller: 'admins-major_informations') %>
diff --git a/app/views/admins/shixun_feedback_messages/index.html.erb b/app/views/admins/shixun_feedback_messages/index.html.erb
new file mode 100644
index 000000000..730729646
--- /dev/null
+++ b/app/views/admins/shixun_feedback_messages/index.html.erb
@@ -0,0 +1,14 @@
+<% define_admin_breadcrumbs do %>
+ <% add_admin_breadcrumb('实训反馈', admins_shixun_feedback_messages_path) %>
+<% end %>
+
+
+ <%= form_tag(admins_shixun_feedback_messages_path, method: :get, class: 'form-inline search-form', remote: true) do %>
+ <%= text_field_tag(:keyword, params[:keyword], class: 'form-control col-md-4 ml-3', placeholder: '输入实训名称关键字进行搜索') %>
+ <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %>
+ <% end %>
+
+
+
+ <%= render(partial: 'admins/shixun_feedback_messages/shared/list', locals: {discusses: @discusses}) %>
+
\ No newline at end of file
diff --git a/app/views/admins/shixun_feedback_messages/index.js.erb b/app/views/admins/shixun_feedback_messages/index.js.erb
new file mode 100644
index 000000000..6eab9be54
--- /dev/null
+++ b/app/views/admins/shixun_feedback_messages/index.js.erb
@@ -0,0 +1,2 @@
+$(".shixun_feedback_messages-list-container")
+ .html("<%= j render partial: "admins/shixun_feedback_messages/shared/list", locals: {discusses: @discusses} %>")
\ No newline at end of file
diff --git a/app/views/admins/shixun_feedback_messages/shared/_list.html.erb b/app/views/admins/shixun_feedback_messages/shared/_list.html.erb
new file mode 100644
index 000000000..af81f9e58
--- /dev/null
+++ b/app/views/admins/shixun_feedback_messages/shared/_list.html.erb
@@ -0,0 +1,29 @@
+
+
+
+ 序号 |
+ 实训名称 |
+ 评论内容 |
+ 评论者 |
+ 评论时间 |
+
+
+
+ <% if discusses.present? %>
+ <% discusses.each_with_index do |discuss, index| %>
+
+ <%= (@params_page.to_i - 1) * 20 + index + 1 %> |
+ <% identifier = Game.find_by(challenge_id: discuss.challenge_id, user_id: discuss.user_id)&.identifier %>
+ <%= link_to discuss.dis.name, "/tasks/#{identifier}", target: '_blank'%> |
+ <%= content_safe discuss.content %> |
+ <%= discuss.user.show_real_name %> |
+ <%= format_time discuss.created_at %> |
+
+ <% end %>
+ <% else %>
+ <%= render 'admins/shared/no_data_for_table' %>
+ <% end %>
+
+
+
+<%= render partial: 'admins/shared/paginate', locals: { objects: discusses } %>
\ No newline at end of file
diff --git a/app/views/hack_user_lastest_codes/result.json.jbuilder b/app/views/hack_user_lastest_codes/result.json.jbuilder
index 31164d4f7..2561d4ecd 100644
--- a/app/views/hack_user_lastest_codes/result.json.jbuilder
+++ b/app/views/hack_user_lastest_codes/result.json.jbuilder
@@ -1,7 +1,12 @@
-json.(@result, :id, :status, :error_line, :error_msg,
- :input, :output, :execute_time, :execute_memory)
+json.status 0
+json.message "评测成功"
+json.data do
+ json.(@result, :id, :status, :error_line, :error_msg,
+ :input, :output, :execute_time, :execute_memory)
# 提交模式多了一个预计输出
-if @mode == "submit"
- json.expected_output @result.expected_output
+ if @mode == "submit"
+ json.expected_output @result.expected_output
+ end
end
+
diff --git a/app/views/hacks/edit.json.jbuilder b/app/views/hacks/edit.json.jbuilder
index 95124666f..24d51385b 100644
--- a/app/views/hacks/edit.json.jbuilder
+++ b/app/views/hacks/edit.json.jbuilder
@@ -1,5 +1,5 @@
# 编程内容
-json.(@hack, :name, :description, :language, :code)
+json.(@hack, :name, :description, :language, :difficult, :category, :time_limit, :open_or_not)
# 代码
json.language @hack.language
diff --git a/config/routes.rb b/config/routes.rb
index 86bac4533..0f31c6d48 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1039,6 +1039,7 @@ Rails.application.routes.draw do
end
resources :shixuns, only: [:index,:destroy]
resources :shixun_settings, only: [:index,:update]
+ resources :shixun_feedback_messages, only: [:index]
resources :department_applies,only: [:index,:destroy] do
collection do
post :merge
diff --git a/public/react/public/css/edu-all.css b/public/react/public/css/edu-all.css
index f51e0e630..5988709eb 100644
--- a/public/react/public/css/edu-all.css
+++ b/public/react/public/css/edu-all.css
@@ -80,6 +80,27 @@ em.vertical-line{display: inline-block;width: 2px;background: #999;height: 10px}
.inner-footernav li{float: left;height: 50px;width: 80px;text-align: center}
.inner-footernav li a{width: 100%;text-align: center;line-height: 50px;color: #888}
.inner-footer_con{ width: 1200px; margin: 0 auto;}
+.inner-footernavysl{ display: flex;flex-direction:initial;}
+.inner-footernavysl li a {
+ height: 40px;
+ line-height: 40px;
+ color:#878786;
+ font-size: 19px;
+}
+
+.inner-footernavysl li Link {
+ height: 40px;
+ line-height: 40px;
+ color:#878786;
+}
+
+.intermediatecenter{
+ width:100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
.footer_con-p{ color: #888; margin-top:10px;}
/*banner图*/
.banner{width:100%;height:345px;position: relative;overflow: hidden;border-radius: 10px;}
diff --git a/public/react/src/modules/tpm/NewFooter.js b/public/react/src/modules/tpm/NewFooter.js
index 4ff1cc46a..f54fa1d3f 100644
--- a/public/react/src/modules/tpm/NewFooter.js
+++ b/public/react/src/modules/tpm/NewFooter.js
@@ -1,53 +1,127 @@
-import React, { Component } from 'react';
-import { Redirect } from 'react-router';
-import { Link } from 'react-router-dom';
-import { getImageUrl, toPath } from 'educoder'
+import React, {Component} from 'react';
+import {Redirect} from 'react-router';
+import {Link} from 'react-router-dom';
+import {getImageUrl, toPath} from 'educoder'
import PropTypes from 'prop-types';
class NewFooter extends Component {
- constructor(props) {
- super(props)
+ constructor(props) {
+ super(props)
- }
+ }
- componentWillReceiveProps(newProps, newContext) {
+ componentWillReceiveProps(newProps, newContext) {
- }
+ }
- render() {
- return (
-
+ render() {
+ return (
+
{/*newContainers*/}
-
- {this.props.user&&this.props.user.main_site===true?
- {/*
+
+ {this.props.user && this.props.user.main_site === true ?
+ {/*
EduCoder.net
*/}
-
- - 网站首页
- - 关于我们
- - 联系我们
- - 合作伙伴
- - 服务协议
- - 帮助中心
- - 意见反馈
-
-
:""}
-
- {this.props.mygetHelmetapi === null ? "" :
- this.props.mygetHelmetapi===undefined|| this.props.mygetHelmetapi.footer===null||this.props.mygetHelmetapi.footer===undefined?
+
+ - 网站首页
+ - 关于我们
+ - 联系我们
+ - 合作伙伴
+ - 服务协议
+ - 帮助中心
+ - 意见反馈
+
+
: ""}
+
+
+
+ {this.props.mygetHelmetapi === null ? "" :
+ this.props.mygetHelmetapi === undefined || this.props.mygetHelmetapi.footer === null || this.props.mygetHelmetapi.footer === undefined ?
© 2019 EduCoder
- 湘ICP备17009477号
-
+ 湘ICP备17009477号
+
湘公网安备43019002000962号
- Trustie & IntelliDE inside. 版权所有 湖南智擎科技有限公司
@@ -56,12 +130,12 @@ class NewFooter extends Component {
}
-
-
-
-
- );
- }
+
+
+
+
+ );
+ }
}
export default NewFooter;
diff --git a/public/stylesheets/educoder/edu-all.css b/public/stylesheets/educoder/edu-all.css
index 3ed8a36c3..6fcbd3b5c 100644
--- a/public/stylesheets/educoder/edu-all.css
+++ b/public/stylesheets/educoder/edu-all.css
@@ -84,6 +84,27 @@ em.vertical-line{display: inline-block;width: 2px;background: #999;height: 10px}
.inner-footernav li{float: left;height: 50px;width: 80px;text-align: center}
.inner-footernav li a{width: 100%;text-align: center;line-height: 50px;color: #888}
.inner-footer_con{ width: 1200px; margin: 0 auto;}
+.inner-footernavysl{ display: flex;flex-direction:initial;}
+.inner-footernavysl li a {
+ height: 40px;
+ line-height: 40px;
+ color:#878786;
+ font-size: 19px;
+}
+
+.inner-footernavysl li Link {
+ height: 40px;
+ line-height: 40px;
+ color:#878786;
+}
+
+.intermediatecenter{
+ width:100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
.footer_con-p{ color: #888; margin-top:10px;}
/*banner图*/
.banner{width:100%;height:345px;position: relative;overflow: hidden;border-radius: 10px;}
@@ -3773,4 +3794,4 @@ a.singlepublishtwo{
.fontweightbold{
font-weight: bold !important;
-}
\ No newline at end of file
+}