From 8227a14960b4ccf91bc0c61a446819f68110d82f Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 25 Jul 2019 18:32:11 +0800 Subject: [PATCH 01/30] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AD=A6=E6=A0=A1?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E9=9C=80=E8=A6=81=E9=87=8D=E6=96=B0=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E8=B5=84=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/managements_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb index e3d560aa..980c775b 100644 --- a/app/controllers/managements_controller.rb +++ b/app/controllers/managements_controller.rb @@ -1664,7 +1664,8 @@ end # 删除单位 def delete_school school = School.where(:id => params[:school]).first - UserExtensions.where(:school_id => params[:school]).update_all(school_id: nil, department_id: nil, profile_completed: false) + UserExtensions.where(:school_id => params[:school]).update_all(school_id: nil, department_id: nil) + User.joins(:user_extension).where(user_extensions: {school_id: params[:school]}).update_all(profile_completed: false) ApplyAddSchools.where(:school_id => params[:school]).destroy_all ApplyAddDepartment.where(:school_id => params[:school]).destroy_all school.destroy From e0a18f44f81f7725ab940ca8fcf6d35646a97337 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 25 Jul 2019 18:42:26 +0800 Subject: [PATCH 02/30] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AD=A6=E6=A0=A1?= =?UTF-8?q?=E5=BA=94=E8=AF=A5=E6=9B=B4=E6=96=B0=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/managements_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb index 980c775b..bfd4b8be 100644 --- a/app/controllers/managements_controller.rb +++ b/app/controllers/managements_controller.rb @@ -1870,6 +1870,7 @@ end # 删除学校的用户 users = UserExtensions.where("school_id = #{applied_school.school_id}") + User.where(id: users.map(&:user_id)).update_all(profile_completed: false) # 申请了职业认证的用户撤销申请 apply_user_auth = ApplyUserAuthentication.where(:user_id => users.map(&:user_id), :auth_type => 2, :status => 0) From c575fdf8cfcbf0cc735f65f05cd8ff71e1e41d56 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 25 Jul 2019 21:09:34 +0800 Subject: [PATCH 03/30] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E5=8A=9F=E8=83=BD=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/managements/update_user.html.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/managements/update_user.html.erb b/app/views/managements/update_user.html.erb index af1c59c0..fab25083 100644 --- a/app/views/managements/update_user.html.erb +++ b/app/views/managements/update_user.html.erb @@ -641,6 +641,7 @@ document.getElementById('person_admin').value = "0"; } <% end %> + console.log("######" + document.getElementById('person_admin')); my_account_form_submit(); }); function my_account_form_submit(){ From 80782efab6d937e6939ff8688d470b7107c10644 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 25 Jul 2019 21:14:13 +0800 Subject: [PATCH 04/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/managements/update_user.html.erb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/views/managements/update_user.html.erb b/app/views/managements/update_user.html.erb index fab25083..af1c59c0 100644 --- a/app/views/managements/update_user.html.erb +++ b/app/views/managements/update_user.html.erb @@ -641,7 +641,6 @@ document.getElementById('person_admin').value = "0"; } <% end %> - console.log("######" + document.getElementById('person_admin')); my_account_form_submit(); }); function my_account_form_submit(){ From ead4437aae663aa8293313e48c87e349151e336a Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Fri, 26 Jul 2019 09:47:28 +0800 Subject: [PATCH 05/30] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/managements/update_user.html.erb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/managements/update_user.html.erb b/app/views/managements/update_user.html.erb index af1c59c0..d288c7fb 100644 --- a/app/views/managements/update_user.html.erb +++ b/app/views/managements/update_user.html.erb @@ -193,9 +193,10 @@ <% if User.current.admin? %> - name="admin" value="<%= @user.admin? ? "1" : "0" %>" id="person_admin" class="magic-checkbox" style="float:left; margin-top: 8px;"> + id="person_admin" class="magic-checkbox" style="float:left; margin-top: 8px;"> + "> <% end %> @@ -636,9 +637,9 @@ <% if User.current.admin? %> var admin_check = document.getElementById('person_admin').checked; if (admin_check) { - document.getElementById('person_admin').value = "1"; + document.getElementById('user_admin').value = "1"; } else { - document.getElementById('person_admin').value = "0"; + document.getElementById('user_admin').value = "0"; } <% end %> my_account_form_submit(); From d22f9c3f43b20e305463f8f7a379c0a8e88fc672 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Fri, 26 Jul 2019 10:17:03 +0800 Subject: [PATCH 06/30] competition team detail --- .../competition_teams_controller.rb | 41 +++++++++++++++++-- app/models/shixun.rb | 2 +- app/views/competition_teams/show.html.erb | 26 +++++++++--- 3 files changed, 60 insertions(+), 9 deletions(-) diff --git a/app/controllers/competition_teams_controller.rb b/app/controllers/competition_teams_controller.rb index 2bbbd6ef..72732a1a 100644 --- a/app/controllers/competition_teams_controller.rb +++ b/app/controllers/competition_teams_controller.rb @@ -17,7 +17,8 @@ class CompetitionTeamsController < ApplicationController @team_user_ids = @team.team_members.pluck(:user_id) - shixuns = Shixun.where(user_id: @team_user_ids, status: 2).where('shixuns.created_at > ?', Time.parse('2018-06-01')) + shixuns = Shixun.where(user_id: @team_user_ids, status: 2) + .where('shixuns.created_at > ? && shixuns.created_at <= ?', Time.parse('2018-06-01'), @competition.end_time) shixuns = shixuns.joins('left join shixuns forked_shixuns on forked_shixuns.fork_from = shixuns.id and forked_shixuns.status = 2') shixuns = shixuns.select('shixuns.id, shixuns.identifier, shixuns.user_id, shixuns.myshixuns_count, shixuns.name, shixuns.fork_from, sum(forked_shixuns.myshixuns_count) forked_myshixun_count') @shixuns = shixuns.group('shixuns.id').order('shixuns.myshixuns_count desc').includes(:creator) @@ -30,18 +31,30 @@ class CompetitionTeamsController < ApplicationController forked_myshixun_count_map = get_valid_myshixun_count(forked_shixun_map.keys) forked_myshixun_count_map.each { |k, v| @myshixun_count_map[forked_shixun_map[k]] += v } - # todo:使用新版course_members + @course_count_map = get_valid_course_count(shixun_ids) + forked_map = get_valid_course_count(forked_shixun_map.keys) + @forked_course_count_map = {} + forked_map.each do |forked_id, course_count| + @forked_course_count_map[forked_shixun_map[forked_id]] ||= 0 + @forked_course_count_map[forked_shixun_map[forked_id]] += course_count + end + + + # 课堂 course_ids = Course.where('courses.created_at > ?', Time.parse('2018-06-01')) + .where('courses.created_at <= ?', @competition.end_time) .joins('join course_members on course_members.course_id = courses.id and course_members.role in (1,2,3)') .where(course_members: { user_id: @team_user_ids }).pluck(:id) courses = Course.where(id: course_ids).joins(:shixun_homework_commons).where('homework_commons.publish_time < now()') @courses = courses.select('courses.id, courses.name, courses.members_count, count(*) shixun_homework_count') .group('courses.id').order('shixun_homework_count desc').having('shixun_homework_count > 0') + course_ids = @courses.map(&:id) @course_myshixun_map = Myshixun.joins(student_works: :homework_common) - .where(homework_commons: { course_id: @courses.map(&:id) }) + .where(homework_commons: { course_id: course_ids }) .where('exists(select 1 from games where games.myshixun_id = myshixuns.id and games.status = 2)') .group('homework_commons.course_id').count + @course_shixun_count_map = get_valid_shixun_count(course_ids) end def search_teacher @@ -345,6 +358,28 @@ class CompetitionTeamsController < ApplicationController .group('shixun_id').count end + def get_valid_course_count(ids) + percentage_sql = StudentWork.where('homework_common_id = homework_commons.id') + .select('count(compelete_status !=0 ) as finish, count(*) as total') + .having('finish > (total / 2)').to_sql + + Course.joins(shixun_homework_commons: :homework_commons_shixuns) + .where('shixun_id in (?)', ids) + .where("exists (#{percentage_sql})") + .group('shixun_id').count + end + + def get_valid_shixun_count(ids) + percentage_sql = StudentWork.where('homework_common_id = homework_commons.id') + .select('count(compelete_status !=0 ) as finish, count(*) as total') + .having('finish > (total / 2)').to_sql + Shixun.joins(homework_commons_shixuns: :homework_common) + .where(homework_commons: { homework_type: 3 }) + .where('course_id in (?)', ids) + .where("exists (#{percentage_sql})") + .group('course_id').count + end + def record_agent_user_action # 记录是否是引流用户的行为 ip = request.remote_ip diff --git a/app/models/shixun.rb b/app/models/shixun.rb index 0d201ed3..35193f2d 100644 --- a/app/models/shixun.rb +++ b/app/models/shixun.rb @@ -32,7 +32,7 @@ class Shixun < ActiveRecord::Base has_many :users, :through => :shixun_members has_many :shixun_members, :dependent => :destroy has_one :repository, :dependent => :destroy - has_many :homework_commons_shixunses + has_many :homework_commons_shixuns, class_name: 'HomeworkCommonsShixuns' has_many :homework_challenge_settings, :dependent => :destroy has_many :challenges, :dependent => :destroy has_many :myshixuns, :dependent => :destroy diff --git a/app/views/competition_teams/show.html.erb b/app/views/competition_teams/show.html.erb index 129fa32a..f8e1f1c5 100644 --- a/app/views/competition_teams/show.html.erb +++ b/app/views/competition_teams/show.html.erb @@ -20,11 +20,23 @@ <% total_myshixun_count = 0 total_forked_myshixun_count = 0 + total_shixun_score = 0 %> <% @shixuns.each do |shixun| %> <% total_myshixun_count += shixun.myshixuns_count total_forked_myshixun_count += shixun['forked_myshixun_count'].to_i + + valid_course_count = @course_count_map.fetch(shixun.id, 0) + valid_student_count = @myshixun_count_map.fetch(shixun.id, 0) + score = + if shixun.fork_from.blank? + 500 + 50 * valid_course_count + 10 * valid_student_count + else + 100 + 10 * valid_course_count + 5 * valid_student_count + end + score += @forked_course_count_map.fetch(shixun.id, 0) + total_shixun_score += score %> <%= shixun.creator.show_real_name %> @@ -39,7 +51,7 @@ <%= shixun.myshixuns_count.to_i.zero? ? '--' : shixun.myshixuns_count.to_i %> <%= shixun['forked_myshixun_count'].to_i.zero? ? '--' : shixun['forked_myshixun_count'].to_i %> <%= @myshixun_count_map.fetch(shixun.id, '--') %> - -- + <%= score.zero? ? '--' : score %> <% end %> @@ -50,7 +62,7 @@ <%= total_myshixun_count %> <%= total_forked_myshixun_count %> <%= @myshixun_count_map.values.reduce(:+) %> - -- + <%= total_shixun_score %> @@ -73,11 +85,15 @@ <% total_members_count = 0 total_shixun_homework_count = 0 + total_course_score = 0 %> <% @courses.each do |course| %> <% total_members_count += course.members_count.to_i total_shixun_homework_count += course['shixun_homework_count'].to_i + + score = 500 + 5 * @course_shixun_count_map.fetch(course.id, 0) * @course_myshixun_map.fetch(course.id, 0) + total_course_score += score %> <%= course.teachers.where(user_id: @team_user_ids).first.user.show_real_name %> @@ -89,7 +105,7 @@ <%= course.members_count %> <%= course['shixun_homework_count'].presence || '--' %> <%= @course_myshixun_map.fetch(course.id, '--') %> - -- + <%= score.zero? ? '--' : score %> <% end %> @@ -99,8 +115,8 @@ <%= @courses.size %> <%= total_members_count %> <%= total_shixun_homework_count %> - <%= @course_myshixun_map.values.reduce(:+) %> - -- + <%= @course_myshixun_map.values.reduce(:+) || 0 %> + <%= total_course_score %> From 2c4ce7e049eaa70bbc2b016420e0438f1f8e1b5a Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 26 Jul 2019 10:24:48 +0800 Subject: [PATCH 07/30] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5737f99b..6a62503e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -628,17 +628,19 @@ module ApplicationHelper return end =end - if !User.current.profile_completed? - redirect_to my_account_path - Rails.logger.info("check_authentication end") - elsif User.current.certification != 1 # 系统没有授权 - day_cer = UserDayCertification.where(:user_id => User.current.id).last - unless (Time.now.to_i - day_cer.try(:created_at).to_i) < 86400 - redirect_to my_account_path - Rails.logger.info("check_authentication end") - return - end - end + + # 暂时不需要试用授权 + # if !User.current.profile_completed? + # redirect_to my_account_path + # Rails.logger.info("check_authentication end") + # elsif User.current.certification != 1 # 系统没有授权 + # day_cer = UserDayCertification.where(:user_id => User.current.id).last + # unless (Time.now.to_i - day_cer.try(:created_at).to_i) < 86400 + # redirect_to my_account_path + # Rails.logger.info("check_authentication end") + # return + # end + # end end def match_specific_symbol(str) From a264ce6ea24af5965c832f0832a700c48175117d Mon Sep 17 00:00:00 2001 From: p31729568 Date: Fri, 26 Jul 2019 10:52:53 +0800 Subject: [PATCH 08/30] add user profile completed check --- app/controllers/libraries_controller.rb | 2 ++ app/controllers/project_packages_controller.rb | 5 +++-- .../competitions/_qg_second_opensource.html.erb | 13 +++++++++++++ app/views/competitions/enroll.html.erb | 16 ++++++++++++++-- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/app/controllers/libraries_controller.rb b/app/controllers/libraries_controller.rb index ac861841..a1e8a56c 100644 --- a/app/controllers/libraries_controller.rb +++ b/app/controllers/libraries_controller.rb @@ -1,7 +1,9 @@ class LibrariesController < ApplicationController + include ApplicationHelper layout 'base_library' before_filter :require_login, :except => [:index, :show] + before_filter :check_authentication, except: [:index, :show] after_filter :increment_visit_count, only: [:show, :create, :edit, :update] def index diff --git a/app/controllers/project_packages_controller.rb b/app/controllers/project_packages_controller.rb index 6721c1c4..7a0990f3 100644 --- a/app/controllers/project_packages_controller.rb +++ b/app/controllers/project_packages_controller.rb @@ -1,10 +1,11 @@ # encoding=utf-8 # For react class ProjectPackagesController < ApplicationController - before_filter :require_login, :except => [:index, :show] - include ApplicationHelper + before_filter :require_login, except: [:index] + before_filter :check_authentication, except: [:index] + def show render_react end diff --git a/app/views/competitions/_qg_second_opensource.html.erb b/app/views/competitions/_qg_second_opensource.html.erb index 8aef0390..47fc814b 100644 --- a/app/views/competitions/_qg_second_opensource.html.erb +++ b/app/views/competitions/_qg_second_opensource.html.erb @@ -57,6 +57,14 @@ %> var userEnrolled = <%= user_enrolled %>; + var userProfileModal = function(url, str) { + var htmlvalue = '
提示
'+ + '

' + str + '

' + + '
'; + pop_box_new(htmlvalue, 480, 205); + } + $(".enroll-btn.active").on("click", function(){ var url = $(this).data("url"); @@ -65,6 +73,11 @@ return; } + if (<%= !@user.profile_completed? %>) { + userProfileModal('/my/account', '您需要去完善您的个人资料,才能使用此功能'); + return + } + if (!userEnrolled) { $.ajax({ url: "/api/courses/apply_to_join_course.json", diff --git a/app/views/competitions/enroll.html.erb b/app/views/competitions/enroll.html.erb index ee439267..c2a3d029 100644 --- a/app/views/competitions/enroll.html.erb +++ b/app/views/competitions/enroll.html.erb @@ -5,8 +5,10 @@ <% if @maximum_staff > 1 %>

<%= @competition.sub_title %>

- <% unless User.current.logged? %> + <% if !User.current.logged? %> <%= link_to "创建战队", signin_path, :remote => true, :class => "enroll-in-b enroll-in-b-green fr" %> + <% elsif !User.current.try(:profile_completed?) %> + <%= link_to "创建战队", 'javascript:void(0)', :class => "enroll-in-b enroll-in-b-green fr", onclick: "userProfileModal()" %> <% else %> <% unless @competition.enroll_end_time.present? && @competition.enroll_end_time < Time.now %> <% if !@can_enroll %> @@ -19,8 +21,10 @@ <% end %> <% end %> - <% unless User.current.logged? %> + <% if !User.current.logged? %> <%= link_to "加入战队", signin_path, :remote => true, :class => "enroll-in-b fr" %> + <% elsif !User.current.try(:profile_completed?) %> + <%= link_to "加入战队", 'javascript:void(0)', :class => "enroll-in-b fr", onclick: "userProfileModal()" %> <% else %> <% unless @competition.enroll_end_time.present? && @competition.enroll_end_time < Time.now %> <% if !@can_enroll %> @@ -153,6 +157,14 @@ pop_box_new(htmlvalue, 500, 205); } + function userProfileModal() { + var htmlvalue = '

提示
'+ + '

您需要去完善您的个人资料,才能使用此功能

' + + '
'; + pop_box_new(htmlvalue, 480, 205); + } + function joinSure() { if ($("#codeinput").val().trim() == "") { $("#codeInput-notice").html("请输入邀请码"); From a7606d41dd63bdab08ed1f5f27a50250fcae2ba9 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Fri, 26 Jul 2019 10:55:57 +0800 Subject: [PATCH 09/30] add flag to redirect user profile --- app/helpers/application_helper.rb | 2 +- app/views/competitions/_qg_second_opensource.html.erb | 2 +- app/views/competitions/enroll.html.erb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5737f99b..10e64bcf 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -629,7 +629,7 @@ module ApplicationHelper end =end if !User.current.profile_completed? - redirect_to my_account_path + redirect_to my_account_path(need_profile_completed: true) Rails.logger.info("check_authentication end") elsif User.current.certification != 1 # 系统没有授权 day_cer = UserDayCertification.where(:user_id => User.current.id).last diff --git a/app/views/competitions/_qg_second_opensource.html.erb b/app/views/competitions/_qg_second_opensource.html.erb index 47fc814b..87847a46 100644 --- a/app/views/competitions/_qg_second_opensource.html.erb +++ b/app/views/competitions/_qg_second_opensource.html.erb @@ -74,7 +74,7 @@ } if (<%= !@user.profile_completed? %>) { - userProfileModal('/my/account', '您需要去完善您的个人资料,才能使用此功能'); + userProfileModal('/my/account?need_profile_completed=true', '您需要去完善您的个人资料,才能使用此功能'); return } diff --git a/app/views/competitions/enroll.html.erb b/app/views/competitions/enroll.html.erb index c2a3d029..d5dde153 100644 --- a/app/views/competitions/enroll.html.erb +++ b/app/views/competitions/enroll.html.erb @@ -161,7 +161,7 @@ var htmlvalue = '
提示
'+ '

您需要去完善您的个人资料,才能使用此功能

' + '
'; + '立即完善'; pop_box_new(htmlvalue, 480, 205); } From 3275a3fff05d6aaeb337171ff6b4d332945c658a Mon Sep 17 00:00:00 2001 From: p31729568 Date: Fri, 26 Jul 2019 11:04:08 +0800 Subject: [PATCH 10/30] add user profile check to join course btn --- app/views/competitions/enroll.html.erb | 2 +- app/views/layouts/_logined_header.html.erb | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/views/competitions/enroll.html.erb b/app/views/competitions/enroll.html.erb index d5dde153..4afb4ceb 100644 --- a/app/views/competitions/enroll.html.erb +++ b/app/views/competitions/enroll.html.erb @@ -161,7 +161,7 @@ var htmlvalue = '
提示
'+ '

您需要去完善您的个人资料,才能使用此功能

' + '
'; + '立即完善'; pop_box_new(htmlvalue, 480, 205); } diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index 6b9cde10..e0bb5701 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -85,7 +85,13 @@
  • <%= link_to '新建项目', new_project_path() %>
    • -
    • <%= link_to "加入课堂", join_private_courses_path, :remote => true %>
    • +
    • + <% if User.current.profile_completed? %> + <%= link_to "加入课堂", join_private_courses_path, :remote => true %> + <% else %> + <%= link_to "加入课堂", 'javascript:void(0)', onclick: 'showUserProfileModal()' %> + <% end %> +
    @@ -154,4 +160,12 @@ <% end %> }); + + function showUserProfileModal() { + var htmlvalue = '
    提示
    '+ + '

    您需要去完善您的个人资料,才能使用此功能

    ' + + '
    '; + pop_box_new(htmlvalue, 480, 205); + } \ No newline at end of file From f4e70aa7a8acc7dd42b60b36b4ab47871641e4b1 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 26 Jul 2019 13:52:31 +0800 Subject: [PATCH 11/30] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 8 ++++++++ app/controllers/libraries_controller.rb | 2 +- app/controllers/project_packages_controller.rb | 2 +- app/controllers/projects_controller.rb | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0e783c74..90041420 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1188,4 +1188,12 @@ class ApplicationController < ActionController::Base logger.info "----------------------- handle_flag: #{flag} -------------------------" flag end + + # 用户是否完善资料 + def check_account + if !User.current.profile_completed? + redirect_to my_account_path(need_profile_completed: true) + end + end + end diff --git a/app/controllers/libraries_controller.rb b/app/controllers/libraries_controller.rb index a1e8a56c..457eb8ce 100644 --- a/app/controllers/libraries_controller.rb +++ b/app/controllers/libraries_controller.rb @@ -3,7 +3,7 @@ class LibrariesController < ApplicationController layout 'base_library' before_filter :require_login, :except => [:index, :show] - before_filter :check_authentication, except: [:index, :show] + before_filter :check_account, only: [:new, :create] after_filter :increment_visit_count, only: [:show, :create, :edit, :update] def index diff --git a/app/controllers/project_packages_controller.rb b/app/controllers/project_packages_controller.rb index 7a0990f3..b9aaa269 100644 --- a/app/controllers/project_packages_controller.rb +++ b/app/controllers/project_packages_controller.rb @@ -4,7 +4,7 @@ class ProjectPackagesController < ApplicationController include ApplicationHelper before_filter :require_login, except: [:index] - before_filter :check_authentication, except: [:index] + before_filter :check_account, only: [:new, :create] def show render_react diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 5e01aa62..f096a23b 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -30,6 +30,7 @@ class ProjectsController < ApplicationController skip_before_filter :verify_authenticity_token, :only => [:training_task_status] skip_before_filter :check_if_login_required, :only => [:training_task_status] before_filter :check_authentication + before_filter :check_account, only: [:new, :create] before_filter :find_project, :except => [ :index, :search,:list, :new, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise, :view_homework_attaches,:join_project, :project_home, :training_execute, :training_task_status] before_filter :authorize, :only => [:show, :settings, :edit, :sort_project_members, :update, :modules, :close, :reopen,:view_homework_attaches,:course] From 167cbbcd9c4367eb547f8ef1724d94fe86e23f43 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 26 Jul 2019 14:31:06 +0800 Subject: [PATCH 12/30] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/managements_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb index bfd4b8be..06b29c9f 100644 --- a/app/controllers/managements_controller.rb +++ b/app/controllers/managements_controller.rb @@ -3032,6 +3032,7 @@ end user.certification = 1 user.grade = 0 user.password = "12345678" + user.phone = list[5] if user.save ue = UserExtensions.new(:user_id => user.id, :gender => 0, :school_id => school_id, :location => school.province, :location_city => school.city, :identity => list[3], :student_id => list[0], :department_id => department.try(:id)) if list[3] && list[3].to_i == 0 From 8c79d2f33c835dc93e45b49f33bb21e0a6f4fd9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 26 Jul 2019 15:33:36 +0800 Subject: [PATCH 13/30] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E6=96=87=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_gq_second_code_competition.html.erb | 340 +++++++++--------- 1 file changed, 170 insertions(+), 170 deletions(-) diff --git a/app/views/competitions/_gq_second_code_competition.html.erb b/app/views/competitions/_gq_second_code_competition.html.erb index 0baf1fe4..7e681b2e 100644 --- a/app/views/competitions/_gq_second_code_competition.html.erb +++ b/app/views/competitions/_gq_second_code_competition.html.erb @@ -1,171 +1,171 @@ -<% index = 0 %> -

    -<% index += 1%> -

    -<% index += 1 %> - -<% - challenge_description_extra = [ - "模拟赛选择了第一届标注大赛正式赛第一阶段的三个项目供大家体验熟悉平台、学习其他人的标注,模拟赛标注不计分。", - "第一阶段比赛得分占正赛总比分的30%。", - "第二阶段比赛得分占正赛总比分的70%。" - ] - data = [ - [ - { - name: 'Java项目', - description: "Weka是基于Java的机器学习与数据挖掘平台,汇集了最前沿的机器学习算法,包括处理标准数据挖掘问题的几乎所有方法:回归、分类、聚类、关联规则以及属性选择等,是Java机器学习入门的首选平台。

    本项目的Clusters目录中包含了K-Means、层次聚类等多种聚类算法以及相应的聚类效果评估方法的java实现", - task: '标注../weka/clusterers/目录下的所有代码文件。', - link_name: 'CSDN,经典聚类算法', - link_url: 'https://blog.csdn.net/qq_30262201/article/details/78799926' - }, - { - name: 'C++项目', - description: "该项目是GitHub上最受欢迎的C++语言实现经典算法与数据结构的项目之一,内容涵盖排序、链表、树结构、图搜索、贪心算法等。学习这些算法的代码实现,可以深刻理解和掌握算法的核心思想,感受算法之美,代码之美,是人工智能时代的基础入门一课。

    本项目的sort_search_problems目录涵盖了冒泡排序、快速排序等各类经典排序算法的C++实现。", - task: '标注../sort_search_problems目录下的所有代码文件及对应引用的../include目录中自定义的头文件。', - link_name: 'CSDN,十大经典排序算法', - link_url: 'https://blog.csdn.net/wfq784967698/article/details/79551476' - }, - { - name: 'Python项目', - description: "该项目是GitHub上最受欢迎的Python语言实现经典算法的项目之一,包含了前沿的神经网络和经典数据结构及算法的Python实现。项目具有兼顾经典和前沿的特点。学习经典算法的源码实现,感受经典算法的思想之美、代码之美。

    本项目的Sorts目录中包含了冒泡排序、快速排序等各类经典排序算法的Python实现。", - task: '标注../sorts/目录下的所有代码文件。', - link_name: 'CSDN,十大经典排序算法', - link_url: 'https://blog.csdn.net/wfq784967698/article/details/79551476' - }, - ], - [{ - name: 'Java项目', - description: "CoreNLP是一个Java自然语言分析库,是斯坦福大学自然语言处理小组的研究成果,它集成了所有的自然语言处理工具:分词、词性标注、依存句法分析、命名实体识别等。

    本项目的stanford/nlp/parser/目录中包含了Lexparser、nndep以及Shiftreduce等句法分析算法的Java实现。", - task: '标注../stanford/nlp/parser/目录下的所有代码文件(包括子目录)。', - link_name: 'CSDN, 使用Stanford Parser进行句法分析', - link_url: 'https://blog.csdn.net/u010239102/article/details/78111760' - },{ - name: 'C++项目', - description: "Sentencepiece是Google公司开发的一个C++自然语言处理工具包,它实现了数据驱动、跨语言、高性能、轻量级的面向神经网络文本生成系统的无监督文本词条化工具。

    本项目的src/目录中包含了BPE、Unigram以及Char等文本分词算法的C++实现。", - task: '标注../src/目录下的所有.cc和.h代码文件(不包括子目录)。(注:其中模型训练、测试相关代码可以去掉:*_test.cc, *_trainer.cc, *_trainer.h)', - link_name: 'CSDN, sentencePiece入门小结', - link_url: 'https://blog.csdn.net/sinat_33455447/article/details/90265938' - },{ - name: 'Python项目', - description: "NLTK是宾西法尼亚大学计算机和信息科学系开发的一个Python自然语言处理工具包,它提供了易于使用的接口,通过这些接口可以访问超过50个语料库和词汇资源(如WordNet),还有一套用于分类、标记化、词干标记、解析和语义推理的文本处理库。

    本项目的nltk/stem/目录中包含了Lancaster、Porter以及Snowball等文本分词算法的Python实现。", - task: '标注../nltk/stem/目录下的所有代码文件。', - link_name: 'CSDN, 英文分词的算法和原理', - link_url: 'https://blog.csdn.net/wisdom77/article/details/79446674' - }], - [{ - name: 'Java项目', - description: "Deeplearning4j是Eclipse公司开发的支持各种深度学习算法的运算框架,它可以实施的技术包括受限玻尔兹曼机、深度置信网络、深度自动编码器、堆叠式降噪自动编码器、循环神经张量网络,以及word2vec、doc2vec和GloVe等。

    本项目的nn/layers/recurrent/目录中包含了循环神经网络RNN中LSTM、Bidirectional LSTM等算法的Java实现。", - task: '标注../nn/layers/recurrent/目录下的所有代码文件。', - link_name: '官方,DL4J快速入门指南', - link_url: 'https://deeplearning4j.org/cn/quickstart' - },{ - name: 'C++项目', - description: "TensorFlow是谷歌人工智能团队开发的用于机器学习和深度神经网络研究的开源框架,它在图形分类、音频处理、推荐系统和自然语言处理等场景下都有丰富的应用,提供了丰富的API,包括基本的向量矩阵计算、各种优化算法、各种卷积神经网络和循环神经网络基本单元的实现、以及可视化的辅助工具等。

    本项目的core/kernels/rnn/目录中包含了循环神经网络RNN中卷积GEMM、LSTM以及GRU算法的C++实现。", - task: '标注../core/kernels/rnn/目录下的所有代码文件。', - link_name: 'CSDN, 深度学习之RNN(循环神经网络)', - link_url: 'https://blog.csdn.net/qq_32241189/article/details/80461635' - },{ - name: 'Python项目', - description: "Keras是Google公司开发的高度模块化的神经网络学习框架,它是一个高层神经网络API,能够支持简易和快速的原型设计,支持CNN和RNN或二者的结合,且能够支持无缝CPU和GPU切换。

    本项目的keras/layers/目录中包含了神经网络运算层中Embedding、CNN以及RNN等算法的Python实现。", - task: '标注../keras/layers/目录下的所有代码文件。', - link_name: '官方, Keras说明文档', - link_url: 'https://keras.io/layers/about-keras-layers/' - }] - ] -%> - -<% @competition.competition_stages.includes(:competition_stage_sections).each_with_index do |stage, i| %> -
    - <% - first_section = stage.competition_stage_sections[0] - second_section = stage.competition_stage_sections[1] - %> -
    "> -

    <%= stage.name %>

    -
      -
    • - <%= first_section.try(:name) %> - <%= format_time first_section.start_time %> ~ <%= com_end_time first_section.end_time %> -
    • -
    • - <%= second_section.try(:name) %> - <%= format_time second_section.try(:start_time) %> ~ <%= com_end_time second_section.try(:end_time) %> -
    • -
    -

    - 标注说明:每个小组选择一种编程语言的题目,针对标注任务中指定的标注模块,要求对代码模块、模块中的代码文件, 以及文件中的函数必须进行标注,关键代码块、代码行及关键变量等由参赛者自由选择进行标注。 正式赛第一阶段的比赛在标注阶段就开放查看所有人的标注,请大家根据个人理解,写出自己的风格。我们将综合考虑标注的原创性、准确性、 完整性和多样性等不同的维度对标注质量进行评分。<%= challenge_description_extra[i] %> -

    - -
      - <% first_section.competition_entries.each_with_index do |entry, j| %> - <% row_data = data[i][j] %> -
    • -

      <%= row_data[:name] || entry.name %>

      -

      - <% - is_start = Time.now > first_section.start_time - competition_url = User.current.logged? ? "#{entry.url}?eid=#{User.current.id}" : "#{entry.url}" - btn_url = is_start ? "#{competition_url}" : "javascript:void(0);" - %> - <%= entry.name %> -

      - - <% if row_data.present? %> -

      项目简介

      -

      <%= raw row_data[:description] %>

      -

      标注任务

      - <% if index ==2 %> -

      <%= row_data[:task] %>

      - <% else %> -

      <%= row_data[:task] %>

      - <% end %> -

      经典算法解读:

      - -

      - 点击进入代标注模块 -

      - <% end %> -
    • - <% end %> -
    -
    -
    - <% index += 1 %> -<% end %> - -

    -<% index += 1 %> -

    -<% index += 1 %> -

    - - \ No newline at end of file From f3b5cc5952b249a691e0c464f1d9b21b63e172c1 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 26 Jul 2019 15:57:04 +0800 Subject: [PATCH 14/30] =?UTF-8?q?=E6=9C=AA=E7=99=BB=E5=BD=95=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=E7=9A=84=E6=96=B0=E5=BB=BA=E5=85=A5=E5=8F=A3?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E5=BC=B9=E7=99=BB=E5=BD=95=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_unlogin_header.html.erb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/layouts/_unlogin_header.html.erb b/app/views/layouts/_unlogin_header.html.erb index d54b65f5..11aabde9 100644 --- a/app/views/layouts/_unlogin_header.html.erb +++ b/app/views/layouts/_unlogin_header.html.erb @@ -66,9 +66,9 @@
      -
    • <%= link_to '新建实训', new_shixun_path() %>
    • -
    • <%= link_to '新建实践课程', new_subject_path() %>
    • -
    • <%= link_to '新建项目', new_project_path() %>
    • +
    • <%= link_to "新建实训", signin_path, :remote => true %>
    • +
    • <%= link_to "新建实践课程", signin_path, :remote => true %>
    • +
    • <%= link_to "新建项目", signin_path, :remote => true %>
    • <%= link_to "加入课堂", signin_path, :remote => true %>
    • From 70739f0c0e71554deba39d1ee22829df8f5dd267 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 26 Jul 2019 16:02:16 +0800 Subject: [PATCH 15/30] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E8=BA=AB=E4=BB=BD?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=96=B0=E5=BB=BA=E8=AF=BE=E5=A0=82=E5=85=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_logined_header.html.erb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index e0bb5701..35e39ac6 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -79,7 +79,9 @@
        -
      • <%= link_to '新建课堂', new_course_path() %>
      • + <% unless User.current.identity == "学生" %> +
      • <%= link_to '新建课堂', new_course_path() %>
      • + <% end %>
      • <%= link_to '新建实训', new_shixun_path() %>
      • <%= link_to '新建实践课程', new_subject_path() %>
      • <%= link_to '新建项目', new_project_path() %>
      • From 25d4cac572c902031e1df6691ea0edfcc6dff6d4 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 26 Jul 2019 16:11:09 +0800 Subject: [PATCH 16/30] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E9=87=8C=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/careers_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/careers_service.rb b/app/services/careers_service.rb index a548c74d..290c3a7d 100644 --- a/app/services/careers_service.rb +++ b/app/services/careers_service.rb @@ -506,7 +506,7 @@ class CareersService {username: current_user.show_name, login: current_user.login, user_id: current_user.id, image_url: url_to_avatar(current_user), admin: current_user.admin?, is_teacher: current_user.user_extensions.try(:identity) == 0, - tidding_count: count, phone: current_user.phone} + tidding_count: count, phone: current_user.phone, is_student: current_user.user_extensions.try(:identity) == 1} end def find_career id From 02146f7dcb866976cb4a094dcde971c2b6a5be5c Mon Sep 17 00:00:00 2001 From: p31729568 Date: Fri, 26 Jul 2019 16:46:36 +0800 Subject: [PATCH 17/30] modify library show page praise style when user unlogged --- app/views/libraries/index.html.erb | 2 +- app/views/praise_tread/_new_praise.html.erb | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/views/libraries/index.html.erb b/app/views/libraries/index.html.erb index 3a277f0b..f5bf570c 100644 --- a/app/views/libraries/index.html.erb +++ b/app/views/libraries/index.html.erb @@ -18,7 +18,7 @@
      <%= hidden_field_tag(:type, params[:type]) %> - +
      diff --git a/app/views/praise_tread/_new_praise.html.erb b/app/views/praise_tread/_new_praise.html.erb index facdabad..34a969ca 100644 --- a/app/views/praise_tread/_new_praise.html.erb +++ b/app/views/praise_tread/_new_praise.html.erb @@ -2,8 +2,12 @@ praised = PraiseTread.praised(object) praise_num = get_praise_num(object) || 0 %> -


      <%= praise_num %>

      -

      已赞
      <%= praise_num %>

      +<% if User.current.try(:logged?) %> +


      <%= praise_num %>

      +

      已赞
      <%= praise_num %>

      +<% else %> +


      <%= praise_num %>

      +<% end %>