commit
c329d9f29e
@ -1,282 +0,0 @@
|
||||
PATH
|
||||
remote: lib/better_errors
|
||||
specs:
|
||||
better_errors (1.1.0)
|
||||
coderay (>= 1.0.0)
|
||||
erubis (>= 2.6.6)
|
||||
|
||||
PATH
|
||||
remote: lib/rack-mini-profiler
|
||||
specs:
|
||||
rack-mini-profiler (0.9.1)
|
||||
rack (>= 1.1.3)
|
||||
|
||||
PATH
|
||||
remote: lib/seems_rateable
|
||||
specs:
|
||||
seems_rateable (1.0.13)
|
||||
jquery-rails
|
||||
rails
|
||||
|
||||
GEM
|
||||
remote: http://ruby.taobao.org/
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
actionmailer (3.2.13)
|
||||
actionpack (= 3.2.13)
|
||||
mail (~> 2.5.3)
|
||||
actionpack (3.2.13)
|
||||
activemodel (= 3.2.13)
|
||||
activesupport (= 3.2.13)
|
||||
builder (~> 3.0.0)
|
||||
erubis (~> 2.7.0)
|
||||
journey (~> 1.0.4)
|
||||
rack (~> 1.4.5)
|
||||
rack-cache (~> 1.2)
|
||||
rack-test (~> 0.6.1)
|
||||
sprockets (~> 2.2.1)
|
||||
activemodel (3.2.13)
|
||||
activesupport (= 3.2.13)
|
||||
builder (~> 3.0.0)
|
||||
activerecord (3.2.13)
|
||||
activemodel (= 3.2.13)
|
||||
activesupport (= 3.2.13)
|
||||
arel (~> 3.0.2)
|
||||
tzinfo (~> 0.3.29)
|
||||
activeresource (3.2.13)
|
||||
activemodel (= 3.2.13)
|
||||
activesupport (= 3.2.13)
|
||||
activesupport (3.2.13)
|
||||
i18n (= 0.6.1)
|
||||
multi_json (~> 1.0)
|
||||
acts-as-taggable-on (2.4.1)
|
||||
rails (>= 3, < 5)
|
||||
arel (3.0.3)
|
||||
builder (3.0.0)
|
||||
capybara (2.4.1)
|
||||
mime-types (>= 1.16)
|
||||
nokogiri (>= 1.3.3)
|
||||
rack (>= 1.0.0)
|
||||
rack-test (>= 0.5.4)
|
||||
xpath (~> 2.0)
|
||||
celluloid (0.15.2)
|
||||
timers (~> 1.1.0)
|
||||
childprocess (0.5.3)
|
||||
ffi (~> 1.0, >= 1.0.11)
|
||||
climate_control (0.0.3)
|
||||
activesupport (>= 3.0)
|
||||
cocaine (0.5.4)
|
||||
climate_control (>= 0.0.3, < 1.0)
|
||||
coderay (1.0.9)
|
||||
coffee-rails (3.2.2)
|
||||
coffee-script (>= 2.2.0)
|
||||
railties (~> 3.2.0)
|
||||
coffee-script (2.3.0)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.7.1)
|
||||
erubis (2.7.0)
|
||||
execjs (2.2.1)
|
||||
factory_girl (4.4.0)
|
||||
activesupport (>= 3.0.0)
|
||||
fastercsv (1.5.5)
|
||||
ffi (1.9.3)
|
||||
ffi (1.9.3-x86-mingw32)
|
||||
formatador (0.2.5)
|
||||
guard (2.6.1)
|
||||
formatador (>= 0.2.4)
|
||||
listen (~> 2.7)
|
||||
lumberjack (~> 1.0)
|
||||
pry (>= 0.9.12)
|
||||
thor (>= 0.18.1)
|
||||
guard-rails (0.5.3)
|
||||
guard (~> 2.0)
|
||||
guard-spork (1.5.1)
|
||||
childprocess (>= 0.2.3)
|
||||
guard (>= 1.1)
|
||||
spork (>= 0.8.4)
|
||||
guard-test (1.0.0)
|
||||
guard (>= 1.8)
|
||||
test-unit (~> 2.2)
|
||||
hike (1.2.3)
|
||||
htmlentities (4.3.2)
|
||||
i18n (0.6.1)
|
||||
journey (1.0.4)
|
||||
jquery-rails (2.0.3)
|
||||
railties (>= 3.1.0, < 5.0)
|
||||
thor (~> 0.14)
|
||||
json (1.8.1)
|
||||
kaminari (0.16.1)
|
||||
actionpack (>= 3.0.0)
|
||||
activesupport (>= 3.0.0)
|
||||
libv8 (3.16.14.3)
|
||||
listen (2.7.9)
|
||||
celluloid (>= 0.15.2)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
lumberjack (1.0.9)
|
||||
mail (2.5.4)
|
||||
mime-types (~> 1.16)
|
||||
treetop (~> 1.4.8)
|
||||
metaclass (0.0.4)
|
||||
method_source (0.8.2)
|
||||
mime-types (1.25.1)
|
||||
mini_portile (0.6.0)
|
||||
mocha (1.1.0)
|
||||
metaclass (~> 0.0.1)
|
||||
multi_json (1.10.1)
|
||||
mysql2 (0.3.11)
|
||||
mysql2 (0.3.11-x86-mingw32)
|
||||
net-ldap (0.3.1)
|
||||
nokogiri (1.6.3)
|
||||
mini_portile (= 0.6.0)
|
||||
nokogiri (1.6.3-x86-mingw32)
|
||||
mini_portile (= 0.6.0)
|
||||
paperclip (3.5.4)
|
||||
activemodel (>= 3.0.0)
|
||||
activesupport (>= 3.0.0)
|
||||
cocaine (~> 0.5.3)
|
||||
mime-types
|
||||
polyglot (0.3.5)
|
||||
pry (0.9.12.6)
|
||||
coderay (~> 1.0)
|
||||
method_source (~> 0.8)
|
||||
slop (~> 3.4)
|
||||
pry (0.9.12.6-x86-mingw32)
|
||||
coderay (~> 1.0)
|
||||
method_source (~> 0.8)
|
||||
slop (~> 3.4)
|
||||
win32console (~> 1.3)
|
||||
pry-nav (0.2.3)
|
||||
pry (~> 0.9.10)
|
||||
rack (1.4.5)
|
||||
rack-cache (1.2)
|
||||
rack (>= 0.4)
|
||||
rack-openid (1.4.2)
|
||||
rack (>= 1.1.0)
|
||||
ruby-openid (>= 2.1.8)
|
||||
rack-raw-upload (1.1.1)
|
||||
multi_json
|
||||
rack-ssl (1.3.4)
|
||||
rack
|
||||
rack-test (0.6.2)
|
||||
rack (>= 1.0)
|
||||
rails (3.2.13)
|
||||
actionmailer (= 3.2.13)
|
||||
actionpack (= 3.2.13)
|
||||
activerecord (= 3.2.13)
|
||||
activeresource (= 3.2.13)
|
||||
activesupport (= 3.2.13)
|
||||
bundler (~> 1.0)
|
||||
railties (= 3.2.13)
|
||||
railties (3.2.13)
|
||||
actionpack (= 3.2.13)
|
||||
activesupport (= 3.2.13)
|
||||
rack-ssl (~> 1.3.2)
|
||||
rake (>= 0.8.7)
|
||||
rdoc (~> 3.4)
|
||||
thor (>= 0.14.6, < 2.0)
|
||||
rake (10.3.2)
|
||||
rb-fsevent (0.9.4)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
rdoc (3.12.2)
|
||||
json (~> 1.4)
|
||||
ref (1.0.5)
|
||||
rich (1.4.6)
|
||||
jquery-rails
|
||||
kaminari
|
||||
mime-types
|
||||
paperclip
|
||||
rack-raw-upload
|
||||
rails (>= 3.2.0)
|
||||
sass-rails
|
||||
rmagick (2.13.2)
|
||||
ruby-openid (2.1.8)
|
||||
rubyzip (1.1.6)
|
||||
sass (3.3.10)
|
||||
sass-rails (3.2.6)
|
||||
railties (~> 3.2.0)
|
||||
sass (>= 3.1.10)
|
||||
tilt (~> 1.3)
|
||||
selenium-webdriver (2.42.0)
|
||||
childprocess (>= 0.5.0)
|
||||
multi_json (~> 1.0)
|
||||
rubyzip (~> 1.0)
|
||||
websocket (~> 1.0.4)
|
||||
shoulda (3.5.0)
|
||||
shoulda-context (~> 1.0, >= 1.0.1)
|
||||
shoulda-matchers (>= 1.4.1, < 3.0)
|
||||
shoulda-context (1.2.1)
|
||||
shoulda-matchers (2.6.1)
|
||||
activesupport (>= 3.0.0)
|
||||
slop (3.5.0)
|
||||
spork (0.9.2)
|
||||
spork-testunit (0.0.8)
|
||||
spork (>= 0.6.0)
|
||||
sprockets (2.2.2)
|
||||
hike (~> 1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.0)
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
test-unit (2.5.5)
|
||||
therubyracer (0.12.1)
|
||||
libv8 (~> 3.16.14.0)
|
||||
ref
|
||||
thor (0.19.1)
|
||||
tilt (1.4.1)
|
||||
timers (1.1.0)
|
||||
treetop (1.4.15)
|
||||
polyglot
|
||||
polyglot (>= 0.3.1)
|
||||
tzinfo (0.3.40)
|
||||
uglifier (2.5.1)
|
||||
execjs (>= 0.3.0)
|
||||
json (>= 1.8.0)
|
||||
websocket (1.0.7)
|
||||
win32console (1.3.2-x86-mingw32)
|
||||
xpath (2.0.0)
|
||||
nokogiri (~> 1.3)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x86-mingw32
|
||||
|
||||
DEPENDENCIES
|
||||
activerecord-jdbc-adapter (= 1.2.5)
|
||||
activerecord-jdbcmysql-adapter
|
||||
acts-as-taggable-on (= 2.4.1)
|
||||
better_errors!
|
||||
builder (= 3.0.0)
|
||||
capybara (~> 2.4.1)
|
||||
coderay (~> 1.0.6)
|
||||
coffee-rails (~> 3.2.1)
|
||||
factory_girl (~> 4.4.0)
|
||||
fastercsv (~> 1.5.0)
|
||||
guard-rails (~> 0.5.3)
|
||||
guard-spork (~> 1.5.1)
|
||||
guard-test (~> 1.0.0)
|
||||
htmlentities
|
||||
i18n (~> 0.6.0)
|
||||
jquery-rails (~> 2.0.2)
|
||||
kaminari
|
||||
mocha (~> 1.1.0)
|
||||
mysql2 (= 0.3.11)
|
||||
net-ldap (~> 0.3.1)
|
||||
nokogiri (~> 1.6.3)
|
||||
paperclip (~> 3.5.4)
|
||||
pry
|
||||
pry-nav
|
||||
rack-mini-profiler!
|
||||
rack-openid
|
||||
rails (= 3.2.13)
|
||||
rich (= 1.4.6)
|
||||
rmagick (>= 2.0.0)
|
||||
ruby-openid (~> 2.1.4)
|
||||
sass-rails (~> 3.2.3)
|
||||
seems_rateable!
|
||||
selenium-webdriver (~> 2.42.0)
|
||||
shoulda (~> 3.5.0)
|
||||
spork-testunit (~> 0.0.8)
|
||||
therubyracer
|
||||
uglifier (>= 1.0.3)
|
@ -0,0 +1,3 @@
|
||||
class SeemsRateableRates < ActiveRecord::Base
|
||||
attr_accessible :rater_id, :rateable_id, :rateable_type, :stars, :dimension, :is_teacher_score
|
||||
end
|
@ -0,0 +1,12 @@
|
||||
<% if @subPage_title && @subPage_title == l(:label_student_list)%>
|
||||
<%= form_tag( searchmembers_course_path(@course), method: 'get',:class => "f_l",:style => "margin-left: 5px; ",:remote=>true) do %>
|
||||
<%= text_field_tag 'name', params[:name], name: "name", :class => 'f_1', :style => "height:15px; float: left;"%>
|
||||
<% if @group %>
|
||||
<%= hidden_field "search_group_id", params[:search_group_id],:value => "#{@group.id}", name: 'search_group_id' %>
|
||||
<%= submit_tag l(:label_search_member), :name => "ingroup",:class => "f_2", :style => "float: left "%>
|
||||
<% else %>
|
||||
<%= submit_tag l(:label_search_member),:style => "float: left", :name => 'incourse',:onclick => "checkclass('group_name_0')",:class => "f_2"%>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= link_to l(:label_export_excel), export_course_member_excel_course_path(@course,:format => 'xls'),:class=>'xls'%>
|
||||
<% end %>
|
@ -1,3 +1,9 @@
|
||||
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'join_private_course') %>');
|
||||
showModal('ajax-modal', '510px');
|
||||
$('#ajax-modal').css('height','330px');
|
||||
$('#ajax-modal').siblings().remove();
|
||||
$('#ajax-modal').before("<span style='float: right;cursor:pointer;padding-left: 513px;'>" +
|
||||
"<a href='#' onclick='hidden_join_course_form();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
||||
$('#ajax-modal').parent().removeClass("alert_praise");
|
||||
$('#ajax-modal').parent().css("top","").css("left","");
|
||||
$('#ajax-modal').parent().addClass("alert_box");
|
||||
|
@ -0,0 +1 @@
|
||||
$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @members})%>");
|
@ -1,4 +1,4 @@
|
||||
/**
|
||||
* Created by Administrator on 2014/12/3.
|
||||
*/
|
||||
$("#list_detail").html("<%= escape_javascript( render :partial => 'member_list_detail', :locals => {:members => @results})%>");
|
||||
$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>");
|
@ -1,4 +1,5 @@
|
||||
/**
|
||||
* Created by Administrator on 2014/12/3.
|
||||
*/
|
||||
$("#search_members").html("<%= escape_javascript( render :partial => 'searchmembers')%>");
|
||||
$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>");
|
@ -1,4 +1,4 @@
|
||||
$('#tbc_01').html('<%= escape_javascript(render(:partial => 'homeworks_list',
|
||||
:locals => {:homeworks => @homework_list, :homework_count => @obj_count, :bid => @bid, :remote => true} )) %>');
|
||||
:locals => {:homeworks => @homework_list, :homework_count => @obj_count, :bid => @bid, :remote => true,:is_batch_homeworks => @is_batch_homeworks} )) %>');
|
||||
for(var i=1;i<=4;i++){$("#tb_"+i).removeClass().addClass("normaltab");}
|
||||
$("#tb_2").removeClass().addClass("hovertab");
|
@ -1,4 +1,4 @@
|
||||
$('#tbc_01').html('<%= escape_javascript(render(:partial => 'homeworks_list',
|
||||
:locals => {:homeworks => @homework_list, :homework_count => @obj_count, :bid => @bid, :remote => true} )) %>');
|
||||
:locals => {:homeworks => @homework_list, :homework_count => @obj_count, :bid => @bid, :remote => true,:not_batch_homework => @not_batch_homework} )) %>');
|
||||
for(var i=1;i<=4;i++){$("#tb_"+i).removeClass().addClass("normaltab");}
|
||||
$("#tb_1").removeClass().addClass("hovertab");
|
@ -1,4 +1,5 @@
|
||||
# Add new mime types for use in respond_to blocks:
|
||||
|
||||
Mime::SET << Mime::CSV unless Mime::SET.include?(Mime::CSV)
|
||||
Mime::Type.register "text/excel", :xls
|
||||
|
||||
|
@ -0,0 +1,100 @@
|
||||
#encoding=UTF-8
|
||||
class SelectMemberScore < ActiveRecord::Migration
|
||||
def up
|
||||
sql = ("
|
||||
|
||||
CREATE
|
||||
|
||||
PROCEDURE `member_score`(IN courseid INT)
|
||||
|
||||
BEGIN
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS course_teachers (
|
||||
id INT
|
||||
|
||||
);
|
||||
TRUNCATE TABLE course_teachers;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mems (
|
||||
id INT ,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mems;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mem_home (
|
||||
id INT,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
home_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mem_home;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS t_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE t_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS s_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE s_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS scores (
|
||||
|
||||
user_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE scores;
|
||||
|
||||
INSERT INTO course_teachers (SELECT members.user_id FROM members WHERE members.user_id NOT IN (SELECT student_id FROM students_for_courses WHERE course_id = courseid));
|
||||
|
||||
|
||||
|
||||
INSERT INTO mems (id, user_id, course_id, created_on, course_group_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id
|
||||
FROM members WHERE course_id = courseid AND members.user_id NOT IN (SELECT id FROM course_teachers));
|
||||
|
||||
INSERT INTO mem_home (id, user_id, course_id, created_on, course_group_id,home_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id, homework_attaches.id
|
||||
FROM members, homework_attaches WHERE course_id = courseid
|
||||
AND members.user_id = homework_attaches.user_id AND members.user_id NOT IN (SELECT id FROM course_teachers)
|
||||
AND homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses WHERE course_id = courseid ));
|
||||
|
||||
INSERT INTO t_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND rater_id IN (SELECT id FROM course_teachers)
|
||||
GROUP BY rateable_id);
|
||||
|
||||
INSERT INTO s_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND rater_id NOT IN (SELECT id FROM course_teachers)
|
||||
GROUP BY rateable_id) ;
|
||||
|
||||
UPDATE mem_home, t_scores SET mem_home.score = t_scores.score WHERE mem_home.home_id = t_scores.home_id ;
|
||||
|
||||
UPDATE mem_home, s_scores SET mem_home.score = s_scores.score WHERE mem_home.home_id = s_scores.home_id AND mem_home.score = 0;
|
||||
|
||||
INSERT INTO scores (user_id, score) (SELECT user_id, SUM(score) FROM mem_home GROUP BY user_id);
|
||||
UPDATE mems, scores SET mems.score = scores.score WHERE mems.user_id = scores.user_id;
|
||||
|
||||
SELECT * FROM mems ORDER BY score DESC;
|
||||
END;
|
||||
|
||||
")
|
||||
execute(sql)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
@ -0,0 +1,5 @@
|
||||
class AddColumToSeemsRateableRates < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :seems_rateable_rates, :is_teacher_score, :integer, default: 0
|
||||
end
|
||||
end
|
@ -0,0 +1,27 @@
|
||||
class ChangeSeemsRateableRates < ActiveRecord::Migration
|
||||
def up
|
||||
Course.all.each do |course|
|
||||
teachers = []
|
||||
course.members.each do |m|
|
||||
teachers << m.user_id if m && m.user && m.user.allowed_to?(:as_teacher,course)
|
||||
end
|
||||
course.homeworks.each do |bid|
|
||||
bid.homeworks.each do |homework|
|
||||
SeemsRateableRates.where("rateable_type = 'HomeworkAttach' and rateable_id = #{homework.id}").each do |rate|
|
||||
if teachers.include?(rate.rater_id)
|
||||
rate.is_teacher_score = 1
|
||||
rate.save
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
SeemsRateableRates.where("is_teacher_score = 1").each do |rate|
|
||||
rate.is_teacher_score = 0
|
||||
rate.save
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,100 @@
|
||||
class ProMemberScore < ActiveRecord::Migration
|
||||
def up
|
||||
sql_delete = ("DROP PROCEDURE IF EXISTS `member_score`;")
|
||||
sql = ("
|
||||
CREATE PROCEDURE `member_score`(IN courseid INT, IN groupid INT,IN start_from INT, IN nums INT)
|
||||
BEGIN
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS course_teachers (
|
||||
id INT
|
||||
|
||||
);
|
||||
TRUNCATE TABLE course_teachers;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mems (
|
||||
id INT ,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mems;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mem_home (
|
||||
id INT,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
home_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mem_home;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS t_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE t_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS s_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE s_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS scores (
|
||||
|
||||
user_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE scores;
|
||||
|
||||
INSERT INTO course_teachers (SELECT members.user_id FROM members WHERE members.user_id NOT IN (SELECT student_id FROM students_for_courses WHERE course_id = courseid));
|
||||
|
||||
|
||||
|
||||
INSERT INTO mems (id, user_id, course_id, created_on, course_group_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id
|
||||
FROM members WHERE course_id = courseid AND members.user_id NOT IN (SELECT id FROM course_teachers));
|
||||
|
||||
INSERT INTO mem_home (id, user_id, course_id, created_on, course_group_id,home_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id, homework_attaches.id
|
||||
FROM members, homework_attaches WHERE course_id = courseid
|
||||
AND members.user_id = homework_attaches.user_id AND members.user_id NOT IN (SELECT id FROM course_teachers)
|
||||
AND homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses WHERE course_id = courseid ));
|
||||
|
||||
INSERT INTO t_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND rater_id IN (SELECT id FROM course_teachers)
|
||||
GROUP BY rateable_id);
|
||||
|
||||
INSERT INTO s_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND rater_id NOT IN (SELECT id FROM course_teachers)
|
||||
GROUP BY rateable_id) ;
|
||||
|
||||
UPDATE mem_home, t_scores SET mem_home.score = t_scores.score WHERE mem_home.home_id = t_scores.home_id ;
|
||||
|
||||
UPDATE mem_home, s_scores SET mem_home.score = s_scores.score WHERE mem_home.home_id = s_scores.home_id AND mem_home.score = 0;
|
||||
|
||||
INSERT INTO scores (user_id, score) (SELECT user_id, SUM(score) FROM mem_home GROUP BY user_id);
|
||||
UPDATE mems, scores SET mems.score = scores.score WHERE mems.user_id = scores.user_id;
|
||||
IF nums <> 0 THEN
|
||||
SELECT * FROM mems ORDER BY score DESC LIMIT start_from, nums;
|
||||
ELSE
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score DESC;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
")
|
||||
execute(sql_delete)
|
||||
execute(sql)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
@ -0,0 +1,108 @@
|
||||
class CreateProSelectMemberScore < ActiveRecord::Migration
|
||||
def up
|
||||
sql_delete = ("DROP PROCEDURE IF EXISTS `member_score`;")
|
||||
sql = ("
|
||||
CREATE PROCEDURE `member_score`(IN courseid INT, IN groupid INT,IN start_from INT, IN nums INT, IN sort_by VARCHAR(10))
|
||||
BEGIN
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS course_teachers (
|
||||
id INT
|
||||
|
||||
);
|
||||
TRUNCATE TABLE course_teachers;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mems (
|
||||
id INT ,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mems;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mem_home (
|
||||
id INT,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
home_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mem_home;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS t_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE t_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS s_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE s_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS scores (
|
||||
|
||||
user_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE scores;
|
||||
|
||||
INSERT INTO course_teachers (SELECT members.user_id FROM members WHERE members.user_id NOT IN (SELECT student_id FROM students_for_courses WHERE course_id = courseid));
|
||||
|
||||
|
||||
|
||||
INSERT INTO mems (id, user_id, course_id, created_on, course_group_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id
|
||||
FROM members WHERE course_id = courseid AND members.user_id NOT IN (SELECT id FROM course_teachers));
|
||||
|
||||
INSERT INTO mem_home (id, user_id, course_id, created_on, course_group_id,home_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id, homework_attaches.id
|
||||
FROM members, homework_attaches WHERE course_id = courseid
|
||||
AND members.user_id = homework_attaches.user_id AND members.user_id NOT IN (SELECT id FROM course_teachers)
|
||||
AND homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses WHERE course_id = courseid ));
|
||||
|
||||
INSERT INTO t_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND rater_id IN (SELECT id FROM course_teachers)
|
||||
GROUP BY rateable_id);
|
||||
|
||||
INSERT INTO s_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND rater_id NOT IN (SELECT id FROM course_teachers)
|
||||
GROUP BY rateable_id) ;
|
||||
|
||||
UPDATE mem_home, t_scores SET mem_home.score = t_scores.score WHERE mem_home.home_id = t_scores.home_id ;
|
||||
|
||||
UPDATE mem_home, s_scores SET mem_home.score = s_scores.score WHERE mem_home.home_id = s_scores.home_id AND mem_home.score = 0;
|
||||
|
||||
INSERT INTO scores (user_id, score) (SELECT user_id, SUM(score) FROM mem_home GROUP BY user_id);
|
||||
UPDATE mems, scores SET mems.score = scores.score WHERE mems.user_id = scores.user_id;
|
||||
IF sort_by = '' OR sort_by = 'desc' THEN
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score DESC ;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score DESC LIMIT start_from, nums;
|
||||
END IF;
|
||||
ELSE
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score ASC ;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score ASC LIMIT start_from, nums;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
")
|
||||
execute(sql_delete)
|
||||
execute(sql)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
@ -0,0 +1,104 @@
|
||||
class CreateNewSelectMemberScore < ActiveRecord::Migration
|
||||
def up
|
||||
sql_delete = ("DROP PROCEDURE IF EXISTS `member_score`;")
|
||||
sql = ("
|
||||
CREATE PROCEDURE `member_score`(IN courseid INT, IN groupid INT,IN start_from INT, IN nums INT, IN sort_by VARCHAR(10))
|
||||
BEGIN
|
||||
|
||||
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mems (
|
||||
id INT ,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mems;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mem_home (
|
||||
id INT,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
home_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mem_home;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS t_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE t_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS s_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE s_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS scores (
|
||||
|
||||
user_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE scores;
|
||||
|
||||
|
||||
|
||||
INSERT INTO mems (id, user_id, course_id, created_on, course_group_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id
|
||||
FROM members,students_for_courses WHERE members.course_id = courseid
|
||||
AND members.course_id = students_for_courses.course_id AND members.user_id =students_for_courses.student_id);
|
||||
|
||||
INSERT INTO mem_home (id, user_id, course_id, created_on, course_group_id,home_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id, homework_attaches.id
|
||||
FROM members, homework_attaches WHERE course_id = courseid
|
||||
AND members.user_id = homework_attaches.user_id AND members.user_id IN (SELECT student_id FROM students_for_courses WHERE course_id = courseid)
|
||||
AND homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses WHERE course_id = courseid ));
|
||||
|
||||
INSERT INTO t_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND is_teacher_score = 1
|
||||
GROUP BY rateable_id);
|
||||
|
||||
INSERT INTO s_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND is_teacher_score = 0
|
||||
GROUP BY rateable_id) ;
|
||||
|
||||
UPDATE mem_home, t_scores SET mem_home.score = t_scores.score WHERE mem_home.home_id = t_scores.home_id ;
|
||||
|
||||
UPDATE mem_home, s_scores SET mem_home.score = s_scores.score WHERE mem_home.home_id = s_scores.home_id AND mem_home.score = 0;
|
||||
|
||||
INSERT INTO scores (user_id, score) (SELECT user_id, SUM(score) FROM mem_home GROUP BY user_id);
|
||||
UPDATE mems, scores SET mems.score = scores.score WHERE mems.user_id = scores.user_id;
|
||||
IF sort_by = '' OR sort_by = 'desc' THEN
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score DESC ;
|
||||
END IF;
|
||||
ELSE
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score ASC LIMIT start_from, nums;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score ASC;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
")
|
||||
execute(sql_delete)
|
||||
execute(sql)
|
||||
end
|
||||
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
@ -0,0 +1,102 @@
|
||||
class CreateSelectMemberScore < ActiveRecord::Migration
|
||||
def up
|
||||
sql_delete = ("DROP PROCEDURE IF EXISTS `member_score`;")
|
||||
sql = ("CREATE PROCEDURE `member_score`(IN courseid INT, IN groupid INT,IN start_from INT, IN nums INT, IN sort_by VARCHAR(10))
|
||||
BEGIN
|
||||
|
||||
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mems (
|
||||
id INT ,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mems;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mem_home (
|
||||
id INT,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
home_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mem_home;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS t_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE t_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS s_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE s_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS scores (
|
||||
|
||||
user_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE scores;
|
||||
|
||||
|
||||
|
||||
INSERT INTO mems (id, user_id, course_id, created_on, course_group_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id
|
||||
FROM members,students_for_courses WHERE members.course_id = courseid
|
||||
AND members.course_id = students_for_courses.course_id AND members.user_id =students_for_courses.student_id);
|
||||
|
||||
INSERT INTO mem_home (id, user_id, course_id, created_on, course_group_id,home_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id, homework_attaches.id
|
||||
FROM members, homework_attaches WHERE course_id = courseid
|
||||
AND members.user_id = homework_attaches.user_id AND members.user_id IN (SELECT student_id FROM students_for_courses WHERE course_id = courseid)
|
||||
AND homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses WHERE course_id = courseid ));
|
||||
|
||||
INSERT INTO t_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND is_teacher_score = 1
|
||||
GROUP BY rateable_id);
|
||||
|
||||
INSERT INTO s_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND is_teacher_score = 0
|
||||
GROUP BY rateable_id) ;
|
||||
|
||||
UPDATE mem_home, t_scores SET mem_home.score = t_scores.score WHERE mem_home.home_id = t_scores.home_id ;
|
||||
|
||||
UPDATE mem_home, s_scores SET mem_home.score = s_scores.score WHERE mem_home.home_id = s_scores.home_id AND mem_home.score = 0;
|
||||
|
||||
INSERT INTO scores (user_id, score) (SELECT user_id, SUM(score) FROM mem_home GROUP BY user_id);
|
||||
UPDATE mems, scores SET mems.score = scores.score WHERE mems.user_id = scores.user_id;
|
||||
IF sort_by = '' OR sort_by = 'desc' THEN
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score ;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score DESC LIMIT start_from, nums ;
|
||||
END IF;
|
||||
ELSE
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score ASC ;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score ASC LIMIT start_from, nums;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
")
|
||||
execute(sql_delete)
|
||||
execute(sql)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
@ -0,0 +1,110 @@
|
||||
class CreateProForSearchMember < ActiveRecord::Migration
|
||||
def up
|
||||
sql_delete = ("DROP PROCEDURE IF EXISTS `member_score`;")
|
||||
sql = ("
|
||||
CREATE PROCEDURE `member_score`(IN courseid INT, IN groupid INT,IN start_from INT, IN nums INT, IN sort_by VARCHAR(10))
|
||||
BEGIN
|
||||
|
||||
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mems (
|
||||
id INT ,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mems;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS mem_home (
|
||||
id INT,
|
||||
user_id INT,
|
||||
course_id INT,
|
||||
created_on DATETIME,
|
||||
course_group_id INT,
|
||||
home_id INT,
|
||||
score FLOAT DEFAULT 0
|
||||
);
|
||||
TRUNCATE TABLE mem_home;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS t_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE t_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS s_scores (
|
||||
|
||||
home_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE s_scores;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS scores (
|
||||
|
||||
user_id INT,
|
||||
score FLOAT
|
||||
);
|
||||
TRUNCATE TABLE scores;
|
||||
|
||||
|
||||
|
||||
INSERT INTO mems (id, user_id, course_id, created_on, course_group_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id
|
||||
FROM members,students_for_courses WHERE members.course_id = courseid
|
||||
AND members.course_id = students_for_courses.course_id AND members.user_id =students_for_courses.student_id);
|
||||
|
||||
INSERT INTO mem_home (id, user_id, course_id, created_on, course_group_id,home_id)
|
||||
(SELECT members.id, members.user_id, members.course_id, members.created_on, members.course_group_id, homework_attaches.id
|
||||
FROM members, homework_attaches WHERE course_id = courseid
|
||||
AND members.user_id = homework_attaches.user_id AND members.user_id IN (SELECT student_id FROM students_for_courses WHERE course_id = courseid)
|
||||
AND homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses WHERE course_id = courseid ));
|
||||
|
||||
INSERT INTO t_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND is_teacher_score = 1
|
||||
GROUP BY rateable_id);
|
||||
|
||||
INSERT INTO s_scores (home_id, score) (SELECT rateable_id,AVG(seems_rateable_rates.stars)
|
||||
FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id IN (SELECT mem_home.home_id FROM mem_home)
|
||||
AND is_teacher_score = 0
|
||||
GROUP BY rateable_id) ;
|
||||
|
||||
UPDATE mem_home, t_scores SET mem_home.score = t_scores.score WHERE mem_home.home_id = t_scores.home_id ;
|
||||
|
||||
UPDATE mem_home, s_scores SET mem_home.score = s_scores.score WHERE mem_home.home_id = s_scores.home_id AND mem_home.score = 0;
|
||||
|
||||
INSERT INTO scores (user_id, score) (SELECT user_id, SUM(score) FROM mem_home GROUP BY user_id);
|
||||
UPDATE mems, scores SET mems.score = scores.score WHERE mems.user_id = scores.user_id;
|
||||
IF sort_by = '' OR sort_by = 'desc' THEN
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score DESC;
|
||||
ELSE
|
||||
IF nums <> 0 THEN
|
||||
SELECT * FROM mems ORDER BY score DESC LIMIT start_from, nums;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score DESC;
|
||||
end IF;
|
||||
END if;
|
||||
ELSE
|
||||
IF groupid <> 0 THEN
|
||||
SELECT * FROM mems WHERE course_group_id = groupid ORDER BY score ASC ;
|
||||
ELSE
|
||||
IF nums <> 0 THEN
|
||||
SELECT * FROM mems ORDER BY score ASC LIMIT start_from, nums;
|
||||
ELSE
|
||||
SELECT * FROM mems ORDER BY score ASC;
|
||||
end IF;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
")
|
||||
execute(sql_delete)
|
||||
execute(sql)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
@ -0,0 +1,6 @@
|
||||
class AddColumnToHomeworkattaches < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :homework_attaches, :score, :float, default: 0
|
||||
add_column :homework_attaches, :is_teacher_score, :integer, :default => 0
|
||||
end
|
||||
end
|
@ -0,0 +1,18 @@
|
||||
class UpdateScoreToHomeworkattaches < ActiveRecord::Migration
|
||||
def up
|
||||
sql = ("UPDATE homework_attaches set is_teacher_score = 1,
|
||||
score = (SELECT AVG(seems_rateable_rates.stars) FROM seems_rateable_rates
|
||||
WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id
|
||||
AND is_teacher_score = 1 GROUP BY rateable_id);")
|
||||
sql_student = ("UPDATE homework_attaches set is_teacher_score = 0,
|
||||
score = (SELECT AVG(seems_rateable_rates.stars) FROM seems_rateable_rates
|
||||
WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id
|
||||
AND is_teacher_score = 0 GROUP BY rateable_id) WHERE homework_attaches.score = 0 OR homework_attaches.score is NULL
|
||||
")
|
||||
execute(sql)
|
||||
execute(sql_student)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
@ -0,0 +1,13 @@
|
||||
class AddDataToStudentForCourse < ActiveRecord::Migration
|
||||
def change
|
||||
Course.all.each do |course|
|
||||
|
||||
course.members.each do |m|
|
||||
if m && m.user && m.user.allowed_to?(:student,course) && StudentsForCourse.find_by_student_id(m.user).nil?
|
||||
StudentsForCourse.create(:student_id => m.user_id, :course_id => course.id)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,15 @@
|
||||
class AddDataToStudentForCourseNew < ActiveRecord::Migration
|
||||
def change
|
||||
Course.all.each do |course|
|
||||
|
||||
course.members.each do |m|
|
||||
if m && m.user && m.user.allowed_to?(:as_student,course) &&
|
||||
StudentsForCourse.where(:student_id => m.user_id, :course_id => course.id).first.nil?
|
||||
student = StudentsForCourse.new(:student_id => m.user_id, :course_id => course.id)
|
||||
student.save!
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 1.0 KiB |
Loading…
Reference in new issue