dev_haigong
huang 6 years ago
commit e6cec18bc5

@ -891,7 +891,7 @@ class AccountController < ApplicationController
@user = User.current
@se = @user.extensions
# 已授权的用户修改单位名称,需要重新授权
if @se.school_id != params[:occupation].to_i && @user.certification == 1
if (@se.school_id != params[:occupation].to_i || @se.identity != params[:identity].to_i) && @user.certification == 1
@user.certification = 0
apply_user = ApplyAction.where(:user_id => @user.id, :container_type => "TrialAuthorization")
apply_user.update_all(:status => 2) unless apply_user.blank?
@ -1038,7 +1038,7 @@ class AccountController < ApplicationController
apply_action = ApplyAction.where(:user_id => User.current.id, :container_type => "TrialAuthorization", :status => 0).first
school_ids = School.where(:auto_users_trial => 1).map(&:id)
user_ex = User.current.user_extensions
if (user_ex.identity == 0 || (user_ex.identity == 1 && user_ex.student_id.present?)) && !user_ex.school.nil? && school_ids.include?(user_ex.school_id)
if user_ex.identity == 1 && user_ex.student_id.present? && !user_ex.school.nil? && school_ids.include?(user_ex.school_id)
User.current.update_attributes(:certification => 1)
logger.warn("apply_trail #######{User.current.login} ****#{User.current.user_extensions.school_id}")
@tip = "申请已提交我们将在1分钟内完成审核"

@ -1,10 +1,10 @@
#encoding: utf-8
class EcCoursesController < ApplicationController
layout 'base_ec'
before_filter :find_ec_course, :except => [:create, :get_calculation_data, :sync_all_course_data]
before_filter :find_ec_course, :except => [:create, :get_calculation_data, :sync_all_course_data, :search_courses]
before_filter :find_year, :only => [:create, :get_calculation_data]
before_filter :require_login
before_filter :ec_auth, :except => [:sync_all_course_data]
before_filter :require_login, :except => [:search_courses, :correlation_course]
before_filter :ec_auth, :except => [:sync_all_course_data, :search_courses, :correlation_course]
skip_before_filter :verify_authenticity_token, :only => [:crud_targets, :crud_score_level, :sync_all_course_data, :search_courses,
:correlation_course, :delete_course]
@ -349,11 +349,11 @@ class EcCoursesController < ApplicationController
if user.try(:admin?)
courses = Course.where(:is_delete => 0)
else
course_ids = Member.where("user_id = #{params[:user_id]} and course_id != -1").pluck(:course_id)
course_ids = Member.where("user_id = #{user.try(:id)} and course_id != -1").pluck(:course_id)
courses = Course.where(:is_delete => 0, :id => course_ids)
end
if params[:search] && params[:search].strip != ""
courses = courses.where("name like '%#{params[:search].strip}%'").reorder("created_at desc")
courses = courses.where("name like ?", "%#{params[:search].strip}%").reorder("created_at desc")
else
courses = courses.reorder("created_at desc")
end
@ -696,15 +696,16 @@ class EcCoursesController < ApplicationController
# 毕业要求指标点达成评价
total_rate = []
total_arry = EcCourseStudentScore.find_by_sql("SELECT avg(score) as averge_score, ec_target_position as position,
ect.weigths FROM ec_student_score_targets esst, ec_course_targets ect
where esst.ec_course_target_id=ect.id group by ec_course_target_id")
ect.weigths FROM ec_student_score_targets esst, ec_course_targets ect where
esst.ec_course_target_id=ect.id and ect.ec_course_id = #{course_id}
group by ec_course_target_id")
all_score = 0
total_arry.try(:each) do |ta|
total_rate << {:position => ta.position, :score => ta.averge_score.round(1), :rate => ta.weigths}
total_rate << {:position => ta.position, :score => ta.averge_score.round(2), :rate => ta.weigths}
logger.info("##############total_rate: #{total_rate.to_json}")
all_score += ta.averge_score * ta.weigths
end
total_rate << {:total_score => (all_score).round(1)}
total_rate << {:total_score => (all_score).round(2)}
ecg_targets = EcGraduationSubitemCourseTarget.where(:ec_course_target_id => @ec_course.ec_course_targets)
ecg_targets.chunk{|c| c.ec_graduation_subitem_id}.try(:each) do |key, egs_t|
@ -724,8 +725,12 @@ class EcCoursesController < ApplicationController
va = total_rate.select{|tra| tra[:position] == po}.first
reach_real_target += va[:score] * va[:rate] if va.present?
end
Rails.logger.info("######round11111111#{(target_total_rates == 0 ? 0 : (reach_real_target * weight)/(target_total_rates.round(3)*100))}")
reach_real_target = target_total_rates == 0 ? 0 : (reach_real_target * weight)/(target_total_rates*100)
Rails.logger.info("######round2222222#{reach_real_target}")
if ec_course_support.present?
logger.info("----------ec_course_support: #{ec_course_support.id}")
egrc = ec_course_support.ec_graduation_requirement_calculation

@ -31,12 +31,10 @@ class EcYearsController < ApplicationController
end
@status = 1
end
@major_manager = User.current.admin? ||
@major_school.school.ec_school_users.pluck(:user_id).include?(User.current.id) ||
@major_school.ec_major_school_users.pluck(:user_id).include?(User.current.id)
@major_manager = true
@btn_text = @major_school.template_major && User.current.admin? ? "立即配置" :
(!@major_school.template_major && @major_manager ? "立即配置" : "查看")
@years = @major_school.ec_years
@years = EcYear.where(:ec_major_school_id => @major_school.id)
@years = paginateHelper @years, 10
respond_to do |format|
format.js

@ -17,8 +17,8 @@ require 'digest'
class EcloudController < ApplicationController
skip_before_filter :verify_authenticity_token
before_filter :check_sign, only: [:ps_new, :ps_update, :bs_new, :bs_update]
before_filter :save_para
before_filter :check_sign, only: [:ps_new, :ps_update, :bs_new, :bs_update]
before_filter :user_setup
# before_filter :require_login, only: [:authorize]
@ -45,7 +45,6 @@ class EcloudController < ApplicationController
SERVER_URL = "https://221.176.53.130:44390/services/"
## 签名
def sign(timestamp)
Digest::MD5.hexdigest("client_id=#{CLIENT_ID}client_key=#{CLIENT_SECRET}timestamp=#{timestamp}").upcase

@ -791,7 +791,14 @@ class ManagementsController < ApplicationController
def shixun_feedback_message
@menu_type = 8
@sub_type = 2
@discusses = Discuss.where(:dis_type => "Shixun").reorder("created_at desc")
@search = params[:search]
if @search.present?
shixun_ids = Shixun.where("name like ?", "%#{params[:search]}%").pluck(:id)
@discusses = Discuss.where(:dis_type => "Shixun", :dis_id => shixun_ids).reorder("created_at desc")
else
@discusses = Discuss.where(:dis_type => "Shixun").reorder("created_at desc")
end
@all_discusses = @discusses
@discusses_count = @discusses.count
@limit = 20
@is_remote = true
@ -802,6 +809,11 @@ class ManagementsController < ApplicationController
respond_to do |format|
format.js
format.html
format.xls{
shixun_ids = @all_discusses.pluck(:dis_id).uniq
filename = "#{Time.now.strftime("%Y%m%d")}-实训反馈.xls"
send_data(shixun_feedback_xls(shixun_ids), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
}
end
end
@ -2104,25 +2116,36 @@ end
condition = (params[:research_condition].nil? || params[:research_condition] == "name") ? "concat(lastname, firstname)" : params[:research_condition]
if 0 == status
if params[:research_condition] == "phone" && params[:research_contents].blank?
@users = User.order("#{@order_key} #{@us_order}")
@users = User.where(nil)
else
@users = User.where("#{condition} like '%#{params[:research_contents]}%'").order("#{@order_key} #{@us_order}")
@users = User.where("#{condition} like '%#{params[:research_contents]}%'")
end
else
if params[:research_condition] == "phone" && params[:research_contents].blank?
@users = User.where(:status => status).order("#{@order_key} #{@us_order}")
@users = User.where(:status => status)
else
@users = User.where("status = #{status} and #{condition} like '%#{params[:research_contents]}%'").order("#{@order_key} #{@us_order}")
@users = User.where("status = #{status} and #{condition} like '%#{params[:research_contents]}%'")
end
end
if params[:identity] && params[:identity].to_i != -1
@users = @users.includes(:user_extensions).where("user_extensions.identity = ?", params[:identity].to_i)
end
if params[:auto_school] && params[:auto_school].to_i != 0
@users = @users.includes(:user_extensions => [:school]).where("schools.auto_users_trial = ?", params[:auto_school].to_i == 1 ? 1 : 0)
end
if params[:school] && params[:school] != ''
school_name = params[:school]
school = School.where("name like '%#{school_name}%'")
school_id = school.map(&:id)
user_id = UserExtensions.where(:school_id => school_id).map(&:user_id)
@users = @users.where(:id => user_id).order("#{@order_key} #{@us_order}")
@users = @users.where(:id => user_id)
end
@users = @users.order("#{@order_key} #{@us_order}")
@page = (params['page'] || 1).to_i
@users_count = @users.count
@limit = 20
@ -3183,28 +3206,49 @@ end
def trial_authorization
@menu_type =10
@sub_type = 2
search = params[:search]
name_search = params[:search]
@status = trial_authorization_status(params[:status])
# @status = (params[:status].blank? || params[:status] == "0") ? 0 : [1,2]
if search.blank?
@authorizations = ApplyAction.where(:container_type => "TrialAuthorization", :status => @status).includes(:user)
else
user_id = User.find_by_sql("select id from users where concat(lastname,firstname) like '%#{search}%'")
@authorizations = ApplyAction.where(:container_type => "TrialAuthorization", :status => @status, :user_id => user_id).includes(:user)
user_id = []
search = false
@authorizations = ApplyAction.where(:container_type => "TrialAuthorization", :status => @status)
unless name_search.blank?
new_user_id = User.find_by_sql("select id from users where concat(lastname,firstname) like '%#{name_search}%'").map(&:id)
user_id = user_id.size == 0 ? new_user_id : user_id & new_user_id
search = true
end
if params[:sname] && params[:sname] != ''
if params[:sname] && params[:sname].strip != ''
school_id = School.where("name like '%#{params[:sname]}%'")
user_id = UserExtensions.where(:school_id => school_id).map(&:user_id)
@authorizations = @authorizations.where(:user_id => user_id).order("updated_at desc")
new_user_id = UserExtensions.where(:school_id => school_id).map(&:user_id)
user_id = user_id.size == 0 ? new_user_id : user_id & new_user_id
search = true
end
if params[:identity] && params[:identity].to_i != -1
new_user_id = UserExtensions.where(:identity => params[:identity].to_i).map(&:user_id)
user_id = user_id.size == 0 ? new_user_id : user_id & new_user_id
search = true
end
if params[:auto_school] && params[:auto_school].to_i != 0
school_id = School.where(auto_users_trial: params[:auto_school].to_i == 1 ? 1 : 0)
new_user_id = UserExtensions.where(:school_id => school_id).map(&:user_id)
user_id = user_id.size == 0 ? new_user_id : user_id & new_user_id
search = true
end
@authorizations = user_id.size == 0 && !search ? @authorizations.order("updated_at desc") : @authorizations.where(:user_id => user_id.uniq).order("updated_at desc")
@autu_count = @authorizations.count
@limit = 15
@is_remote = true
@autu_pages = Paginator.new @autu_count, @limit, params['page'] || 1
@offset ||= @autu_pages.offset
@authorizations = paginateHelper @authorizations, @limit
@authorizations = @authorizations.includes(:user)
respond_to do |format|
format.js
format.html
@ -4013,6 +4057,39 @@ end
return sheet.rows
end
def shixun_feedback_xls shixun_ids
xls_report = StringIO.new
book = Spreadsheet::Workbook.new
sheet1 = book.create_worksheet :name => "报名列表"
blue = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 10
sheet1.row(0).default_format = blue
count_row = 1
shixuns = Shixun.where(:id => shixun_ids).includes(discusses: [:user])
sheet1.row(0).concat(["序号", "实训ID", "实训名称","评论数", "评论内容", "关卡", "评论者", "评论者职业",
"评论者单位", "评论时间", "社区导师是否已回复"])
shixuns.each_with_index do |shixun, i|
discusses = shixun.discusses.where("user_id != ?", 1)
sheet1[count_row, 0] = i + 1
sheet1[count_row, 1] = shixun.identifier
sheet1[count_row, 2] = shixun.name
sheet1[count_row, 3] = discusses.count
discusses.each_with_index do |discuss, j|
user = discuss.user
sheet1[count_row, 4] = discuss.content.gsub(/<img.*\/>/, "【图片评论】").gsub(/!\[\].+\)/, "【图片评论】")
sheet1[count_row, 5] = "#{discuss.position}"
sheet1[count_row, 6] = user.show_real_name
sheet1[count_row, 7] = user.identity
sheet1[count_row, 8] = user.school_name
sheet1[count_row, 9] = format_time discuss.created_at
sheet1[count_row, 10] = discuss.children.pluck(:user_id).include?(1) ? "" : ""
count_row += 1
end
#count_row += 1
end
book.write xls_report
xls_report.string
end
def competition_member_xls members, competition
xls_report = StringIO.new
book = Spreadsheet::Workbook.new

@ -113,7 +113,7 @@ class StudentWorkController < ApplicationController
pass_consume_time += (game.cost_time / 60.0).to_f
end
all_time += (game.cost_time / 60.0).to_f
user_total_score += game.final_score.to_i < 0 ? 0 : game.challenge.score.to_i
user_total_score += game.status == 2 ? game.final_score.to_i < 0 ? 0 : game.challenge.score.to_i : 0
if myshixun.user_id == @work.user.id
@game_user_query << [game.id, game.outputs.first.try(:query_index).to_i]
end

@ -71,11 +71,11 @@ module ApplicationHelper
end
def ac_pass?(standard_value, real_value)
standard_value && real_value && real_value > standard_value ? "达成" : "未达成"
standard_value && real_value && real_value >= standard_value ? "达成" : "未达成"
end
def ec_pass?(standard_value, real_value)
standard_value && real_value && real_value > standard_value ? 1 : 0
standard_value && real_value && real_value >= standard_value ? 1 : 0
end
# 工程认证删除关联课堂

@ -5,7 +5,7 @@ module ShixunsHelper
def myshixun_exp myshixun
score = 0
myshixun.games.each do |game|
score += game.final_score.to_i < 0 ? 0 : game.challenge.score.to_i
score += game.status == 2 ? game.final_score.to_i < 0 ? 0 : game.challenge.score.to_i : 0
end
score
end

@ -1693,31 +1693,37 @@ class User < Principal
end
def self.create_with_ecoder!(info)
user = User.new
user.admin = false
user.login = "ecoder_" + info["mobile"]
user = User.find_by_phone(info["mobile"])
user.phone = info["mobile"]
# 如果手机号存在,则直接绑定用户
# 因为手机号可以取回密码,所以可以视为同一用户
unless user
user = User.new
user.admin = false
user.login = "ecoder_" + info["mobile"]
unless User.find_by_mail(info["email"])
user.mail = info["email"]
end
user.nickname = info["username"]
user.phone = info["mobile"]
unless User.find_by_mail(info["email"])
user.mail = info["email"]
end
user.nickname = info["username"]
user.activate
user.last_login_on = Time.now
user.activate
user.last_login_on = Time.now
user.ecoder_user_id = info["userid"]
user.ecoder_user_id = info["userid"]
user.save!(:validate => false)
user.save!(:validate => false)
UserStatus.create!(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
UserStatus.create!(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
ue = user.user_extensions ||= UserExtensions.new
ue.user_id = user.id
ue.save!
ue = user.user_extensions ||= UserExtensions.new
ue.user_id = user.id
ue.save!
end
user
end

@ -10,6 +10,9 @@
<ul class="abouttable clearfix">
<li class="clearfix">
<label class="second-label fl"><span class="color-orange">* </span>职业:</label>
<% if @user.certification == 1 %>
<input type="hidden" id="user_certi_identity" value="<%= @user.user_extensions.identity %>">
<% end %>
<select id="userIdentity" name="identity" class="fl winput-240-40">
<option value="-1" style="display:none">请选择职业</option>
<option value="0">教师</option>

@ -28,6 +28,9 @@
<ul class="abouttable clearfix">
<li class="clearfix">
<label class="second-label fl"><span class="color-orange">* </span>职业:</label>
<% if @user.certification == 1 %>
<input type="hidden" id="user_certi_identity" value="<%= @user.user_extensions.identity %>">
<% end %>
<select id="userIdentity" name="identity" class="fl winput-240-40">
<option value="-1" style="display:none">请选择职业</option>
<option value="0">教师</option>

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><meta name="renderer" content="webkit"/><meta name="force-rendering" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>Educoder</title><script type="text/javascript">window.__isR=!0</script><link rel="stylesheet" href="/react/build/css/css_min_all.css"><link rel="stylesheet" href="/assets/iconfont/iconfont.css"><link href="/react/build/./static/css/main.80b6ec5e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit"></div><div id="picture_display" style="display:none"></div><script type="text/javascript" src="/react/build/js/js_min_all.js"></script><script type="text/javascript" src="/assets/kindeditor/kindeditor.js"></script><script type="text/javascript" src="/react/build/js/create_kindeditor.js"></script><script type="text/javascript" src="/javascripts/educoder/edu_application.js"></script><script type="text/javascript" src="/react/build/./static/js/main.b4ee5e8a.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><meta name="renderer" content="webkit"/><meta name="force-rendering" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>Educoder</title><script type="text/javascript">window.__isR=!0</script><link rel="stylesheet" href="/react/build/css/css_min_all.css"><link rel="stylesheet" href="/assets/iconfont/iconfont.css"><link href="/react/build/./static/css/main.c95e49c6.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit"></div><div id="picture_display" style="display:none"></div><script type="text/javascript" src="/react/build/js/js_min_all.js"></script><script type="text/javascript" src="/assets/kindeditor/kindeditor.js"></script><script type="text/javascript" src="/react/build/js/create_kindeditor.js"></script><script type="text/javascript" src="/javascripts/educoder/edu_application.js"></script><script type="text/javascript" src="/react/build/./static/js/main.21bade1d.js"></script></body></html>

@ -17,7 +17,7 @@
</div>
<li class="clearfix mt10 edu-txt-center">
<a href="javascript:void(0);" class="task-btn mr10" onclick="hideModal()">取消</a>
<a href="javascript:void(0);" class="task-btn task-btn-orange ml20" onclick="submit_data();">确定</a>
<a href="javascript:void(0);" class="task-btn task-btn-orange ml20" onclick="submit_data(); hideModal();">确定</a>
</li>
</div>
</div>

@ -1,6 +1,7 @@
<% if @status.to_i == -1 %>
notice_box("该界别已经存在,请勿重复创建")
<% else %>
$("#year_list").html('<%= j(render :partial => "ec_major_schools/year_list") %>')
hideModal();
window.location.reload();
console.log("##########<%= @years.count %>")
//$("#year_list").html('<%#= j(render :partial => "ec_major_schools/year_list") %>')
<% end %>

@ -65,15 +65,9 @@
}else{
var order = "desc"
}
var user_status = $("input[name='user_status']").val();
var research_condition = $("input[name='research_condition']").val();
var research_contents = $("input[name='research_contents']").val();
$.ajax({
url: "<%= users_managements_path %>",
type: "post",
dataType: "script",
data: {us_order : order, order_key: "created_on", user_status:user_status, research_condition:research_condition, research_contents:research_contents}
});
$("input[name='us_order']").val(order);
$("input[name='order_key']").val("created_on");
$("#managements_users_search").submit();
});
// 按最后登录时间排序
$("#user_last_order").on("click", function(){
@ -83,15 +77,9 @@
}else{
var order = "desc"
}
var user_status = $("input[name='user_status']").val();
var research_condition = $("input[name='research_condition']").val();
var research_contents = $("input[name='research_contents']").val();
$.ajax({
url: "<%= users_managements_path %>",
type: "post",
dataType: "script",
data: {us_order : order, order_key: "last_login_on", user_status:user_status, research_condition:research_condition, research_contents:research_contents}
});
$("input[name='us_order']").val(order);
$("input[name='order_key']").val("last_login_on");
$("#managements_users_search").submit();
});
// 按经验值排序
$("#user_experience_order").on("click", function(){
@ -101,16 +89,10 @@
}else{
var order = "desc"
}
var user_status = $("input[name='user_status']").val();
var research_condition = $("input[name='research_condition']").val();
var research_contents = $("input[name='research_contents']").val();
$.ajax({
url: "<%= users_managements_path %>",
type: "post",
dataType: "script",
data: {us_order : order, order_key: "experience", user_status:user_status, research_condition:research_condition, research_contents:research_contents}
});
})
$("input[name='us_order']").val(order);
$("input[name='order_key']").val("experience");
$("#managements_users_search").submit();
});
// 按金币排序
$("#user_grade_order").on("click", function(){
@ -120,14 +102,8 @@
}else{
var order = "desc"
}
var user_status = $("input[name='user_status']").val();
var research_condition = $("input[name='research_condition']").val();
var research_contents = $("input[name='research_contents']").val();
$.ajax({
url: "<%= users_managements_path %>",
type: "post",
dataType: "script",
data: {us_order : order, order_key: "grade", user_status:user_status, research_condition:research_condition, research_contents:research_contents}
});
$("input[name='us_order']").val(order);
$("input[name='order_key']").val("grade");
$("#managements_users_search").submit();
})
</script>

@ -1,13 +1,14 @@
<div class="edu-class-container">
<%#= form_tag(url_for(shixuns_managements_path), :id => "managements_shixuns_search", :method => "post", :remote => true ) do %>
<!--<div class="edu-con-top clearfix mb20">-->
<!--<input class="fl task-form-20 task-height-30 ml25" id="shixun_Look_name" name="search" maxlength="" placeholder="输入实训名称关键字进行搜索" type="text" style="height: 21px;">-->
<!--<li class="fl ml10">-->
<!--<a href="javascript:void(0)" class="task-btn task-btn-orange" onclick="$('#managements_shixuns_search').submit();">搜索</a>-->
<!--<a href="javascript:clearSearchCondition();" class="task-btn mr10">清除</a>-->
<!--</li>-->
<!--</div>-->
<%# end %>
<%= form_tag(url_for(shixun_feedback_message_managements_path), :id => "managements_shixuns_search", :method => "post", :remote => true ) do %>
<div class="edu-con-top clearfix mb20">
<input class="fl task-form-20 task-height-30 ml25" id="shixun_Look_name" name="search" maxlength="" placeholder="输入实训名称关键字进行搜索" type="text" style="height: 21px;">
<li class="fl ml10">
<a href="javascript:void(0)" class="task-btn task-btn-orange" onclick="$('#managements_shixuns_search').submit();">搜索</a>
<a href="javascript:clearSearchCondition();" class="task-btn mr10">清除</a>
</li>
<a href="<%= shixun_feedback_message_managements_path(:search => @search, :format => "xls") %>" id="shixun_search" class="task-btn mr10 task-btn-orange fr">导出</a>
</div>
<% end %>
<div class="ex_container" id="management_shixun_feedback_list">
<%= render :partial => "shixun_feedback_list" %>
</div>

@ -1 +1,2 @@
$("#management_shixun_feedback_list").html("<%= j(render :partial => 'shixun_feedback_list') %>");
$("#management_shixun_feedback_list").html("<%= j(render :partial => 'shixun_feedback_list') %>");
$("#shixun_search").attr("href", "<%= shixun_feedback_message_managements_path(:search => @search, :format => "xls") %>")

@ -28,11 +28,22 @@
<div id="edu-tab-con-2" class="undis">
<div class="mt10">
<p class="fl task-form-40 mt8 ml15 clearfix">
<p class="fl task-form-20 mt8 ml15 clearfix">
<a href="javascript:void(0);" class="edu-filter-cir-grey mr5 fl font-12 active" id="audit_all_authentication">全部</a>
<a href="javascript:void(0);" class="edu-filter-cir-grey mr5 fl font-12" id="audit_agree_authentication">同意</a>
<a href="javascript:void(0);" class="edu-filter-cir-grey mr5 fl font-12" id="audit_reject_authentication" >拒绝</a>
</p>
<select id="user_identity" name="identity" class="fl winput-120-40 ml15 mt5">
<option value="-1">请选择职业</option>
<option value="0">教师</option>
<option value="1">学生</option>
<option value="2">专业人士</option>
</select>
<select id="auto_school" name="auto_school" class="fl winput-120-40 ml15 mt5">
<option value="0">全部</option>
<option value="1">自动授权</option>
<option value="2">非自动授权</option>
</select>
<div class="edu-position fr task-form-30 mb10 fr mr15">
<input class="task-form-100 panel-box-sizing " placeholder="输入真实姓名进行检索" type="text" id="audit_search_name">
<a href="javascript:void(0);" class="edu-btn-search font-16 color-grey mt10" id="audit_search"><i class="fa fa-search"></i></a>
@ -91,59 +102,55 @@
});
/* ----------------------- 已审批(全部) ------------------------- */
$("#audit_all_authentication").on("click", function(){
var iName = $("#audit_search_name").val();
var sName = $("#school_search_name").val();
$.ajax({
url: "<%= trial_authorization_managements_path %>" + ".js",
data: { name: iName, status: [1, 2], sname: sName }
});
});
$("#audit_all_authentication").on("click", function(){search_func([1, 2]);});
/* ----------------------- 已审批(同意) ------------------------- */
$("#audit_agree_authentication").live("click", function(){
var iName = $("#audit_search_name").val();
var sName = $("#school_search_name").val();
$.ajax({
url: "<%= trial_authorization_managements_path %>" +".js",
data: { name: iName, status: 1, sname: sName}
});
});
$("#audit_agree_authentication").live("click", function(){search_func(1);});
/* ----------------------- 已审批(拒绝) ------------------------- */
$("#audit_reject_authentication").live("click", function(){
var iName = $("#audit_search_name").val();
var sName = $("#school_search_name").val();
$("#audit_reject_authentication").live("click", function(){search_func(2);});
$.ajax({
url: "<%= trial_authorization_managements_path %>" +".js",
data: { name: iName, status: 2, sname: sName }
});
/* ------------------- 按名字进行搜索(已审批)-------------------- */
$("#audit_search").live("click", function(){search_func(0);});
$("#user_identity").on("change", function(){search_func(0);});
$("#auto_school").on("change", function(){search_func(0);});
$("#audit_search_name, #school_search_name").on("keydown", function(e){
// 兼容FF和IE和Opera
var theEvent = e || window.event;
var code = theEvent.keyCode || theEvent.which || theEvent.charCode;
if (code == 13) {
//回车执行查询
search_func(0);
}
});
/* ------------------- 按名字进行搜索(已审批)-------------------- */
$("#audit_search").live("click", function(){
function search_func(status){
var iName = $("#audit_search_name").val();
var sName = $("#school_search_name").val();
var identity = $("#user_identity").val();
var auto_school = $("#auto_school").val();
var type = status;
var id = $("#audit_all_authentication").parent().find(".active").attr("id");
var type = 0;
if(type == 0){
var id = $("#audit_all_authentication").parent().find(".active").attr("id");
if(id == "audit_all_authentication"){
type = [1, 2];
}else if(id=="audit_agree_authentication"){
type = 1;
}else{
type = 2;
if(id == "audit_all_authentication"){
type = [1, 2];
}else if(id=="audit_agree_authentication"){
type = 1;
}else{
type = 2;
}
}
// alert(type);
$.ajax({
url: "<%= trial_authorization_managements_path %>" +".js",
data: { search: iName, status: type, sname: sName}
data: { search: iName, status: type, sname: sName, identity: identity, auto_school: auto_school}
});
});
}
// $(document).keyup(function(event){
// if(event.keyCode == 13){

@ -1,40 +1,56 @@
<div class="edu-class-top mt15 clearfix bor-grey-e">
<%= form_tag(url_for(users_managements_path), :id => "managements_users_search", :method => "post", :remote => true) do %>
<div class=" edu-position edu-admin-select fl mr10" style="width:140px;" >
<p>全部状态<i class="fa fa-caret-down ml10" ></i></p>
<input type="hidden" name="user_status" value="0">
<ul class="edu-admin-option">
<li data-val="0">全部状态</li>
<li data-val="1">活动的(<%= query_user_status_num 1 %></li>
<li data-val="2">未激活(<%= query_user_status_num 2 %></li>
<li data-val="3">已锁定(<%= query_user_status_num 3 %></li>
</ul>
</div>
<div class="edu-position edu-admin-select fl mr10" style="width:150px;">
<p>真实姓名搜索<i class="fa fa-caret-down ml10"></i></p>
<input type="hidden" name="research_condition" value="name">
<ul class="edu-admin-option">
<li data-val="name">真实姓名搜索</li>
<li data-val="login">用户id搜索</li>
<li data-val="mail">邮箱地址搜索</li>
<li data-val="phone">手机号码搜索</li>
</ul>
</div>
<div class="fl with20">
<input type="text" class="fl task-form-100 task-height-40 panel-box-sizing" name="research_contents" placeholder="输入关键字进行搜索">
</div>
<li class="fl task-height-30 ml10" style="display: inline-block">
<input nhname="tag" autocomplete="off" maxlength="36" nh_tag_0="true" nh_tag_1="true" nh_tag_3="true" id="province" name="school" class="task-height-40 panel-box-sizing fl" type="text" placeholder="请输入单位名称关键字进行搜索" style="width: 260px" />
<input nhname="tag" nh_tag_5="true" class="fl" id="school_id" name="school_id" style="display:none;" type="text"/> <!-- 单位名称的test框选中下拉列表框的id -->
<div class="cl"></div>
</li>
<div id="search_school_result_list" style="width: 330px;line-height: 1.5;min-height:20px; max-height: 200px; height: auto !important;display:none;background: white;overflow: scroll;border: solid 1px #cccccc; overflow-x: hidden; overflow-y: auto;">
</div>
<div class=" edu-position edu-admin-select fl mr10" style="width:140px;">
<p>全部状态<i class="fa fa-caret-down ml10"></i></p>
<input type="hidden" name="user_status" value="0">
<ul class="edu-admin-option">
<li data-val="0">全部状态</li>
<li data-val="1">活动的(<%= query_user_status_num 1 %></li>
<li data-val="2">未激活(<%= query_user_status_num 2 %></li>
<li data-val="3">已锁定(<%= query_user_status_num 3 %></li>
</ul>
</div>
<div class="edu-position edu-admin-select fl mr10" style="width:120px;">
<p>真实姓名搜索<i class="fa fa-caret-down ml10"></i></p>
<input type="hidden" name="research_condition" value="name">
<ul class="edu-admin-option">
<li data-val="name">真实姓名搜索</li>
<li data-val="login">用户id搜索</li>
<li data-val="mail">邮箱地址搜索</li>
<li data-val="phone">手机号码搜索</li>
</ul>
</div>
<a href="javascript:void(0);" class="fl task-btn task-btn-orange ml5 mt5" onclick="$('#managements_users_search').submit();">搜索</a>
<a href="javascript:void(0);" class="fl task-btn ml5 mt5" id="clear_contents">清除</a>
<select id="user_identity" name="identity" class="fl winput-100-40 ml10">
<option value="-1">请选择职业</option>
<option value="0">教师</option>
<option value="1">学生</option>
<option value="2">专业人士</option>
</select>
<select id="auto_school" name="auto_school" class="fl winput-100-40 ml10">
<option value="0">全部</option>
<option value="1">自动授权</option>
<option value="2">非自动授权</option>
</select>
<!-- <a href="javascript:void(0);" class="fr task-btn task-btn-green mt5"> 新建用户</a>-->
<div class="fl with15 ml10">
<input type="text" class="fl task-form-100 task-height-40 panel-box-sizing" name="research_contents" placeholder="输入关键字进行搜索">
</div>
<li class="fl task-height-30 ml10" style="display: inline-block">
<input nhname="tag" autocomplete="off" maxlength="36" nh_tag_0="true" nh_tag_1="true" nh_tag_3="true" id="province" name="school" class="task-height-40 panel-box-sizing fl" type="text" placeholder="请输入单位名称关键字进行搜索" style="width: 200px"/>
<input nhname="tag" nh_tag_5="true" class="fl" id="school_id" name="school_id" style="display:none;" type="text"/> <!-- 单位名称的test框选中下拉列表框的id -->
<div class="cl"></div>
</li>
<div id="search_school_result_list" style="width: 330px;line-height: 1.5;min-height:20px; max-height: 200px; height: auto !important;display:none;background: white;overflow: scroll;border: solid 1px #cccccc; overflow-x: hidden; overflow-y: auto;">
</div>
<input type="hidden" name="us_order" value="">
<input type="hidden" name="order_key" value="">
<a href="javascript:void(0);" class="fl task-btn task-btn-orange ml5 mt5" onclick="$('#managements_users_search').submit();">搜索</a>
<a href="javascript:void(0);" class="fl task-btn ml5 mt5" id="clear_contents">清除</a>
<!-- <a href="javascript:void(0);" class="fr task-btn task-btn-green mt5"> 新建用户</a>-->
<a href="javascript:void(0);" onclick="import_course_members();" class="fr task-btn task-btn-orange mt5">课堂添加成员</a>
<% end %>
</div>
@ -42,7 +58,7 @@
<%= render :partial => "managements/user_list" %>
</div>
<script>
function import_course_members(){
function import_course_members() {
var htmlvalue = '<%= escape_javascript(render :partial => 'student_work/import_excel_score') %>';
pop_box_new(htmlvalue, 452, 163);
$("#submit_url").val('<%= import_course_members_managements_path() %>');
@ -56,7 +72,7 @@
var d_count = 0; //查询结果的总量
var d_maxPage = 0;//最大页面值
function department_search_fn(e) {
if($(e.target).val().trim() == ''){
if ($(e.target).val().trim() == '') {
$("#search_school_result_list").hide();
$("input[name='school_id']").val("");
return;
@ -94,9 +110,10 @@
}
});
}
//修改部门
function changeSchoolValue(value, data) {
console.log(value+","+data)
console.log(value + "," + data)
$("input[name='school']").val(value);
$("input[name='school_id']").val(data);
$("#search_school_result_list").hide();

@ -15,7 +15,7 @@
<% if @shixun.myshixuns.count > 0 %>
<li>
<span>学习人数</span>
<span><%= @shixun.myshixuns.count %></span>
<span><%= @shixun.myshixuns_count %></span>
</li>
<% end %>
<li>

@ -76,12 +76,12 @@
<span class="delay ml10">延时</span>
<% end %>
</td>
<td><%= game.try(:open_time).nil? ? "--" : format_time(game.open_time) %></td>
<td><%= game.try(:open_time).nil? || game.status == 3 ? "--" : format_time(game.open_time) %></td>
<% user_query = @game_user_query.select{|user_query| user_query[0] == game.id} %>
<td><%= user_query.blank? ? "--" : user_query.first[1] %></td>
<td><%= game.try(:end_time).nil? ? "--" : format_time(game.end_time) %></td>
<td><%= game.consumes_time %></td>
<td><%= game.final_score.to_i < 0 ? 0 : game.challenge.score.to_i %> / <%= game.challenge.st == 1 ? game.challenge.choose_score : game.challenge.score %></td>
<td><%= game.status == 2 ? (game.final_score.to_i < 0 ? 0 : game.challenge.score.to_i) : 0 %> / <%= game.challenge.st == 1 ? game.challenge.choose_score : game.challenge.score %></td>
</tr>
<% end %>
</tbody>

@ -600,7 +600,7 @@ RedmineApp::Application.routes.draw do ## oauth相关
get 'create_departments'
post 'add_department'
get 'shixun_feedback'
get 'shixun_feedback_message'
match 'shixun_feedback_message', :via => [:get, :post]
get 'leave_message'
get 'messages_list'
get 'course_messages_list'

@ -0,0 +1,8 @@
class MigrateUserGrade < ActiveRecord::Migration
def up
change_column :users, :grade, :integer, :default => 0
end
def down
end
end

@ -0,0 +1,8 @@
class MigratePollQuestionType < ActiveRecord::Migration
def up
change_column :poll_questions, :question_title, :text
end
def down
end
end

@ -1032,9 +1032,10 @@ function submit_pro_certification(type){
}
}
else if (data.result == 1){
if($("#user_certi_school_id").length == 1 && $("#user_certi_school_id").val() != $("input[name='occupation']").val().trim()){
if(($("#user_certi_school_id").length == 1 && $("#user_certi_school_id").val() != $("input[name='occupation']").val().trim()) ||
($("#user_certi_identity").length == 1 && $("#user_certi_identity").val() != $("select[name='identity']").val().trim())){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>'+
'<div class="task-popup-content"><p class="task-popup-text-center font-16">修改单位名称后需要重新申请试用授权</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="cancel_submit_pro('+type+');" class="task-btn fl">取消</a>'+
'<div class="task-popup-content"><p class="task-popup-text-center font-16">修改单位名称/职业后需要重新申请试用授权</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="cancel_submit_pro('+type+');" class="task-btn fl">取消</a>'+
'<a href="javascript:void(0);" class="task-btn task-btn-orange fr pop_close" onclick="$(\'#my_pro_certification_form\').submit();">确定</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
} else{
@ -1054,9 +1055,10 @@ function submit_pro_certification(type){
}
});
} else{
if($("#user_certi_school_id").length == 1 && $("#user_certi_school_id").val() != $("input[name='occupation']").val().trim()){
if(($("#user_certi_school_id").length == 1 && $("#user_certi_school_id").val() != $("input[name='occupation']").val().trim()) ||
($("#user_certi_identity").length == 1 && $("#user_certi_identity").val() != $("select[name='identity']").val().trim())){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>'+
'<div class="task-popup-content"><p class="task-popup-text-center font-16">修改单位名称后需要重新申请试用授权</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="cancel_submit_pro('+type+');" class="task-btn fl">取消</a>'+
'<div class="task-popup-content"><p class="task-popup-text-center font-16">修改单位名称/职业后需要重新申请试用授权</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="cancel_submit_pro('+type+');" class="task-btn fl">取消</a>'+
'<a href="javascript:void(0);" class="task-btn task-btn-orange fr pop_close" onclick="$(\'#my_pro_certification_form\').submit();">确定</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
} else{
@ -1610,9 +1612,10 @@ function my_account_form_submit() {
notice_box("该学号已被另一个账号(" + data.account + ")使用");
}
else if (data.result == 1){
if($("#user_certi_school_id").length == 1 && $("#user_certi_school_id").val() != $("input[name='occupation']").val().trim()){
if(($("#user_certi_school_id").length == 1 && $("#user_certi_school_id").val() != $("input[name='occupation']").val().trim()) ||
($("#user_certi_identity").length == 1 && $("#user_certi_identity").val() != $("select[name='identity']").val().trim())){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>'+
'<div class="task-popup-content"><p class="task-popup-text-center font-16">修改单位名称后需要重新申请试用授权</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>'+
'<div class="task-popup-content"><p class="task-popup-text-center font-16">修改单位名称/职业后需要重新申请试用授权</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>'+
'<a href="javascript:void(0);" class="task-btn task-btn-orange fr pop_close" onclick="$(\'#my_account_form\').submit();">确定</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
} else{

@ -1,88 +1,88 @@
{
"./static/js/0.f26528b1.chunk.js": "./static/js/0.f26528b1.chunk.js",
"./static/js/0.f26528b1.chunk.js.map": "./static/js/0.f26528b1.chunk.js.map",
"./static/js/1.cc33d6fc.chunk.js": "./static/js/1.cc33d6fc.chunk.js",
"./static/js/1.cc33d6fc.chunk.js.map": "./static/js/1.cc33d6fc.chunk.js.map",
"./static/js/10.943803f2.chunk.js": "./static/js/10.943803f2.chunk.js",
"./static/js/10.943803f2.chunk.js.map": "./static/js/10.943803f2.chunk.js.map",
"./static/js/11.c1a78f08.chunk.js": "./static/js/11.c1a78f08.chunk.js",
"./static/js/11.c1a78f08.chunk.js.map": "./static/js/11.c1a78f08.chunk.js.map",
"./static/js/12.fd69873b.chunk.js": "./static/js/12.fd69873b.chunk.js",
"./static/js/12.fd69873b.chunk.js.map": "./static/js/12.fd69873b.chunk.js.map",
"./static/js/13.d7c70bf4.chunk.js": "./static/js/13.d7c70bf4.chunk.js",
"./static/js/13.d7c70bf4.chunk.js.map": "./static/js/13.d7c70bf4.chunk.js.map",
"./static/js/14.af9b2fb8.chunk.js": "./static/js/14.af9b2fb8.chunk.js",
"./static/js/14.af9b2fb8.chunk.js.map": "./static/js/14.af9b2fb8.chunk.js.map",
"./static/js/15.05fc7db4.chunk.js": "./static/js/15.05fc7db4.chunk.js",
"./static/js/15.05fc7db4.chunk.js.map": "./static/js/15.05fc7db4.chunk.js.map",
"./static/js/16.efbbac6a.chunk.js": "./static/js/16.efbbac6a.chunk.js",
"./static/js/16.efbbac6a.chunk.js.map": "./static/js/16.efbbac6a.chunk.js.map",
"./static/js/17.17bd092d.chunk.js": "./static/js/17.17bd092d.chunk.js",
"./static/js/17.17bd092d.chunk.js.map": "./static/js/17.17bd092d.chunk.js.map",
"./static/js/18.24d189e1.chunk.js": "./static/js/18.24d189e1.chunk.js",
"./static/js/18.24d189e1.chunk.js.map": "./static/js/18.24d189e1.chunk.js.map",
"./static/js/19.cadd2a48.chunk.js": "./static/js/19.cadd2a48.chunk.js",
"./static/js/19.cadd2a48.chunk.js.map": "./static/js/19.cadd2a48.chunk.js.map",
"./static/js/2.9a1bdcfa.chunk.js": "./static/js/2.9a1bdcfa.chunk.js",
"./static/js/2.9a1bdcfa.chunk.js.map": "./static/js/2.9a1bdcfa.chunk.js.map",
"./static/js/20.5086cbe2.chunk.js": "./static/js/20.5086cbe2.chunk.js",
"./static/js/20.5086cbe2.chunk.js.map": "./static/js/20.5086cbe2.chunk.js.map",
"./static/js/21.d3d939d5.chunk.js": "./static/js/21.d3d939d5.chunk.js",
"./static/js/21.d3d939d5.chunk.js.map": "./static/js/21.d3d939d5.chunk.js.map",
"./static/js/22.234575f5.chunk.js": "./static/js/22.234575f5.chunk.js",
"./static/js/22.234575f5.chunk.js.map": "./static/js/22.234575f5.chunk.js.map",
"./static/js/23.67ab77f0.chunk.js": "./static/js/23.67ab77f0.chunk.js",
"./static/js/23.67ab77f0.chunk.js.map": "./static/js/23.67ab77f0.chunk.js.map",
"./static/js/24.27d7be07.chunk.js": "./static/js/24.27d7be07.chunk.js",
"./static/js/24.27d7be07.chunk.js.map": "./static/js/24.27d7be07.chunk.js.map",
"./static/js/25.c8a915ae.chunk.js": "./static/js/25.c8a915ae.chunk.js",
"./static/js/25.c8a915ae.chunk.js.map": "./static/js/25.c8a915ae.chunk.js.map",
"./static/js/26.488c5233.chunk.js": "./static/js/26.488c5233.chunk.js",
"./static/js/26.488c5233.chunk.js.map": "./static/js/26.488c5233.chunk.js.map",
"./static/js/27.ba45f1d3.chunk.js": "./static/js/27.ba45f1d3.chunk.js",
"./static/js/27.ba45f1d3.chunk.js.map": "./static/js/27.ba45f1d3.chunk.js.map",
"./static/js/28.8071de5d.chunk.js": "./static/js/28.8071de5d.chunk.js",
"./static/js/28.8071de5d.chunk.js.map": "./static/js/28.8071de5d.chunk.js.map",
"./static/js/29.67275bf0.chunk.js": "./static/js/29.67275bf0.chunk.js",
"./static/js/29.67275bf0.chunk.js.map": "./static/js/29.67275bf0.chunk.js.map",
"./static/js/3.935bae8c.chunk.js": "./static/js/3.935bae8c.chunk.js",
"./static/js/3.935bae8c.chunk.js.map": "./static/js/3.935bae8c.chunk.js.map",
"./static/js/30.4964944f.chunk.js": "./static/js/30.4964944f.chunk.js",
"./static/js/30.4964944f.chunk.js.map": "./static/js/30.4964944f.chunk.js.map",
"./static/js/31.5a1072f1.chunk.js": "./static/js/31.5a1072f1.chunk.js",
"./static/js/31.5a1072f1.chunk.js.map": "./static/js/31.5a1072f1.chunk.js.map",
"./static/js/32.2ff1fc95.chunk.js": "./static/js/32.2ff1fc95.chunk.js",
"./static/js/32.2ff1fc95.chunk.js.map": "./static/js/32.2ff1fc95.chunk.js.map",
"./static/js/4.017bf48d.chunk.js": "./static/js/4.017bf48d.chunk.js",
"./static/js/4.017bf48d.chunk.js.map": "./static/js/4.017bf48d.chunk.js.map",
"./static/js/5.27b42764.chunk.js": "./static/js/5.27b42764.chunk.js",
"./static/js/5.27b42764.chunk.js.map": "./static/js/5.27b42764.chunk.js.map",
"./static/js/6.1d80a66b.chunk.js": "./static/js/6.1d80a66b.chunk.js",
"./static/js/6.1d80a66b.chunk.js.map": "./static/js/6.1d80a66b.chunk.js.map",
"./static/js/7.03d1beb1.chunk.js": "./static/js/7.03d1beb1.chunk.js",
"./static/js/7.03d1beb1.chunk.js.map": "./static/js/7.03d1beb1.chunk.js.map",
"./static/js/8.ea688812.chunk.js": "./static/js/8.ea688812.chunk.js",
"./static/js/8.ea688812.chunk.js.map": "./static/js/8.ea688812.chunk.js.map",
"./static/js/9.2971266e.chunk.js": "./static/js/9.2971266e.chunk.js",
"./static/js/9.2971266e.chunk.js.map": "./static/js/9.2971266e.chunk.js.map",
"main.css": "./static/css/main.80b6ec5e.css",
"main.css.map": "./static/css/main.80b6ec5e.css.map",
"main.js": "./static/js/main.b4ee5e8a.js",
"main.js.map": "./static/js/main.b4ee5e8a.js.map",
"static\\media\\ERASBD.ttf": "static/media/ERASBD.d5213044.ttf",
"static\\media\\background1.png": "static/media/background1.a34df396.png",
"static\\media\\background2.png": "static/media/background2.22ee659e.png",
"static\\media\\courses.jpg": "static/media/courses.7b27495b.jpg",
"static\\media\\group.png": "static/media/group.2f91e9cd.png",
"static\\media\\introduceback.jpg": "static/media/introduceback.3d75d3db.jpg",
"static\\media\\logo.svg": "static/media/logo.ee7cd8ed.svg",
"static\\media\\match_ad.jpg": "static/media/match_ad.4e957369.jpg",
"static\\media\\message.svg": "static/media/message.a7af2a8f.svg",
"static\\media\\messagegrey.svg": "static/media/messagegrey.8c1dff55.svg",
"static\\media\\nodata.png": "static/media/nodata.cde5b659.png",
"static\\media\\passall.png": "static/media/passall.46817e26.png",
"static\\media\\passpart.png": "static/media/passpart.4aaf3e6b.png",
"static\\media\\rc-tree.png": "static/media/rc-tree.776c7fe6.png",
"static\\media\\search.svg": "static/media/search.0e1dcc19.svg",
"static\\media\\vedio.png": "static/media/vedio.6a98b4f1.png"
"./static/js/0.6b9d3c60.chunk.js": "./static/js/0.6b9d3c60.chunk.js",
"./static/js/0.6b9d3c60.chunk.js.map": "./static/js/0.6b9d3c60.chunk.js.map",
"./static/js/1.5f152c98.chunk.js": "./static/js/1.5f152c98.chunk.js",
"./static/js/1.5f152c98.chunk.js.map": "./static/js/1.5f152c98.chunk.js.map",
"./static/js/10.2464b0fd.chunk.js": "./static/js/10.2464b0fd.chunk.js",
"./static/js/10.2464b0fd.chunk.js.map": "./static/js/10.2464b0fd.chunk.js.map",
"./static/js/11.03d0c22e.chunk.js": "./static/js/11.03d0c22e.chunk.js",
"./static/js/11.03d0c22e.chunk.js.map": "./static/js/11.03d0c22e.chunk.js.map",
"./static/js/12.ec0ef070.chunk.js": "./static/js/12.ec0ef070.chunk.js",
"./static/js/12.ec0ef070.chunk.js.map": "./static/js/12.ec0ef070.chunk.js.map",
"./static/js/13.8575d630.chunk.js": "./static/js/13.8575d630.chunk.js",
"./static/js/13.8575d630.chunk.js.map": "./static/js/13.8575d630.chunk.js.map",
"./static/js/14.29e80958.chunk.js": "./static/js/14.29e80958.chunk.js",
"./static/js/14.29e80958.chunk.js.map": "./static/js/14.29e80958.chunk.js.map",
"./static/js/15.0dcec662.chunk.js": "./static/js/15.0dcec662.chunk.js",
"./static/js/15.0dcec662.chunk.js.map": "./static/js/15.0dcec662.chunk.js.map",
"./static/js/16.e8e3aa00.chunk.js": "./static/js/16.e8e3aa00.chunk.js",
"./static/js/16.e8e3aa00.chunk.js.map": "./static/js/16.e8e3aa00.chunk.js.map",
"./static/js/17.709dcd2a.chunk.js": "./static/js/17.709dcd2a.chunk.js",
"./static/js/17.709dcd2a.chunk.js.map": "./static/js/17.709dcd2a.chunk.js.map",
"./static/js/18.5fe45ac4.chunk.js": "./static/js/18.5fe45ac4.chunk.js",
"./static/js/18.5fe45ac4.chunk.js.map": "./static/js/18.5fe45ac4.chunk.js.map",
"./static/js/19.5f9a9263.chunk.js": "./static/js/19.5f9a9263.chunk.js",
"./static/js/19.5f9a9263.chunk.js.map": "./static/js/19.5f9a9263.chunk.js.map",
"./static/js/2.eb0d1091.chunk.js": "./static/js/2.eb0d1091.chunk.js",
"./static/js/2.eb0d1091.chunk.js.map": "./static/js/2.eb0d1091.chunk.js.map",
"./static/js/20.6efcbe58.chunk.js": "./static/js/20.6efcbe58.chunk.js",
"./static/js/20.6efcbe58.chunk.js.map": "./static/js/20.6efcbe58.chunk.js.map",
"./static/js/21.6e5a22af.chunk.js": "./static/js/21.6e5a22af.chunk.js",
"./static/js/21.6e5a22af.chunk.js.map": "./static/js/21.6e5a22af.chunk.js.map",
"./static/js/22.7c073e45.chunk.js": "./static/js/22.7c073e45.chunk.js",
"./static/js/22.7c073e45.chunk.js.map": "./static/js/22.7c073e45.chunk.js.map",
"./static/js/23.0abe5b59.chunk.js": "./static/js/23.0abe5b59.chunk.js",
"./static/js/23.0abe5b59.chunk.js.map": "./static/js/23.0abe5b59.chunk.js.map",
"./static/js/24.e1553222.chunk.js": "./static/js/24.e1553222.chunk.js",
"./static/js/24.e1553222.chunk.js.map": "./static/js/24.e1553222.chunk.js.map",
"./static/js/25.7f05ced8.chunk.js": "./static/js/25.7f05ced8.chunk.js",
"./static/js/25.7f05ced8.chunk.js.map": "./static/js/25.7f05ced8.chunk.js.map",
"./static/js/26.e3927d38.chunk.js": "./static/js/26.e3927d38.chunk.js",
"./static/js/26.e3927d38.chunk.js.map": "./static/js/26.e3927d38.chunk.js.map",
"./static/js/27.d2f21a4d.chunk.js": "./static/js/27.d2f21a4d.chunk.js",
"./static/js/27.d2f21a4d.chunk.js.map": "./static/js/27.d2f21a4d.chunk.js.map",
"./static/js/28.db5cbded.chunk.js": "./static/js/28.db5cbded.chunk.js",
"./static/js/28.db5cbded.chunk.js.map": "./static/js/28.db5cbded.chunk.js.map",
"./static/js/29.95e5a009.chunk.js": "./static/js/29.95e5a009.chunk.js",
"./static/js/29.95e5a009.chunk.js.map": "./static/js/29.95e5a009.chunk.js.map",
"./static/js/3.123eae7e.chunk.js": "./static/js/3.123eae7e.chunk.js",
"./static/js/3.123eae7e.chunk.js.map": "./static/js/3.123eae7e.chunk.js.map",
"./static/js/30.92e2f4a6.chunk.js": "./static/js/30.92e2f4a6.chunk.js",
"./static/js/30.92e2f4a6.chunk.js.map": "./static/js/30.92e2f4a6.chunk.js.map",
"./static/js/31.3edb9173.chunk.js": "./static/js/31.3edb9173.chunk.js",
"./static/js/31.3edb9173.chunk.js.map": "./static/js/31.3edb9173.chunk.js.map",
"./static/js/32.23fc5ec4.chunk.js": "./static/js/32.23fc5ec4.chunk.js",
"./static/js/32.23fc5ec4.chunk.js.map": "./static/js/32.23fc5ec4.chunk.js.map",
"./static/js/4.a563b706.chunk.js": "./static/js/4.a563b706.chunk.js",
"./static/js/4.a563b706.chunk.js.map": "./static/js/4.a563b706.chunk.js.map",
"./static/js/5.459a49ba.chunk.js": "./static/js/5.459a49ba.chunk.js",
"./static/js/5.459a49ba.chunk.js.map": "./static/js/5.459a49ba.chunk.js.map",
"./static/js/6.83516b55.chunk.js": "./static/js/6.83516b55.chunk.js",
"./static/js/6.83516b55.chunk.js.map": "./static/js/6.83516b55.chunk.js.map",
"./static/js/7.accad232.chunk.js": "./static/js/7.accad232.chunk.js",
"./static/js/7.accad232.chunk.js.map": "./static/js/7.accad232.chunk.js.map",
"./static/js/8.69fefc71.chunk.js": "./static/js/8.69fefc71.chunk.js",
"./static/js/8.69fefc71.chunk.js.map": "./static/js/8.69fefc71.chunk.js.map",
"./static/js/9.e77edf45.chunk.js": "./static/js/9.e77edf45.chunk.js",
"./static/js/9.e77edf45.chunk.js.map": "./static/js/9.e77edf45.chunk.js.map",
"main.css": "./static/css/main.c95e49c6.css",
"main.css.map": "./static/css/main.c95e49c6.css.map",
"main.js": "./static/js/main.21bade1d.js",
"main.js.map": "./static/js/main.21bade1d.js.map",
"static/media/ERASBD.ttf": "static/media/ERASBD.d5213044.ttf",
"static/media/background1.png": "static/media/background1.a34df396.png",
"static/media/background2.png": "static/media/background2.22ee659e.png",
"static/media/courses.jpg": "static/media/courses.7b27495b.jpg",
"static/media/group.png": "static/media/group.2f91e9cd.png",
"static/media/introduceback.jpg": "static/media/introduceback.3d75d3db.jpg",
"static/media/logo.svg": "static/media/logo.5d5d9eef.svg",
"static/media/match_ad.jpg": "static/media/match_ad.4e957369.jpg",
"static/media/message.svg": "static/media/message.c4f86b97.svg",
"static/media/messagegrey.svg": "static/media/messagegrey.31dd74f4.svg",
"static/media/nodata.png": "static/media/nodata.cde5b659.png",
"static/media/passall.png": "static/media/passall.46817e26.png",
"static/media/passpart.png": "static/media/passpart.4aaf3e6b.png",
"static/media/rc-tree.png": "static/media/rc-tree.776c7fe6.png",
"static/media/search.svg": "static/media/search.0e1dcc19.svg",
"static/media/vedio.png": "static/media/vedio.6a98b4f1.png"
}

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><meta name="renderer" content="webkit"/><meta name="force-rendering" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>Educoder</title><script type="text/javascript">window.__isR=!0</script><link rel="stylesheet" href="/css/css_min_all.css"><link rel="stylesheet" href="http://testbdweb.educoder.net/assets/iconfont/iconfont.css"><link href="/react/build/./static/css/main.80b6ec5e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit"></div><div id="picture_display" style="display:none"></div><script type="text/javascript" src="/js/js_min_all.js"></script><script type="text/javascript" src="http://testbdweb.educoder.net/assets/kindeditor/kindeditor.js"></script><script type="text/javascript" src="/js/create_kindeditor.js"></script><script type="text/javascript" src="http://testbdweb.educoder.net/javascripts/educoder/edu_application.js"></script><script type="text/javascript" src="/react/build/./static/js/main.b4ee5e8a.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><meta name="renderer" content="webkit"/><meta name="force-rendering" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>Educoder</title><script type="text/javascript">window.__isR=!0</script><link rel="stylesheet" href="/css/css_min_all.css"><link rel="stylesheet" href="http://testbdweb.educoder.net/assets/iconfont/iconfont.css"><link href="/react/build/./static/css/main.c95e49c6.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit"></div><div id="picture_display" style="display:none"></div><script type="text/javascript" src="/js/js_min_all.js"></script><script type="text/javascript" src="http://testbdweb.educoder.net/assets/kindeditor/kindeditor.js"></script><script type="text/javascript" src="/js/create_kindeditor.js"></script><script type="text/javascript" src="http://testbdweb.educoder.net/javascripts/educoder/edu_application.js"></script><script type="text/javascript" src="/react/build/./static/js/main.21bade1d.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save