Merge branch 'master' into master
|
@ -5,4 +5,4 @@ You are allowed to:
|
|||
2. Remove generators
|
||||
3. Add installed generators
|
||||
To add new installed generators automatically delete this file and reload the project.
|
||||
--><GeneratorsGroup><Generator name="assets" /><Generator name="coffee:assets" /><Generator name="controller" /><Generator name="generator" /><Generator name="helper" /><Generator name="integration_test" /><Generator name="jbuilder" /><Generator name="job" /><Generator name="js:assets" /><Generator name="mailer" /><Generator name="migration" /><Generator name="model" /><Generator name="resource" /><Generator name="scaffold" /><Generator name="scaffold_controller" /><Generator name="task" /><Generator name="test_unit:generator" /><Generator name="test_unit:job" /><Generator name="test_unit:plugin" /></GeneratorsGroup></Settings>
|
||||
--><GeneratorsGroup><Generator name="active_record:migration" /><Generator name="active_record:model" /><Generator name="active_record:observer" /><Generator name="active_record:session_migration" /><Generator name="controller" /><Generator name="erb:controller" /><Generator name="erb:mailer" /><Generator name="erb:scaffold" /><Generator name="generator" /><Generator name="helper" /><Generator name="integration_test" /><Generator name="mailer" /><Generator name="metal" /><Generator name="migration" /><Generator name="model" /><Generator name="model_subclass" /><Generator name="observer" /><Generator name="performance_test" /><Generator name="plugin" /><Generator name="resource" /><Generator name="scaffold" /><Generator name="scaffold_controller" /><Generator name="session_migration" /><Generator name="stylesheets" /><Generator name="test_unit:controller" /><Generator name="test_unit:helper" /><Generator name="test_unit:integration" /><Generator name="test_unit:mailer" /><Generator name="test_unit:model" /><Generator name="test_unit:observer" /><Generator name="test_unit:performance" /><Generator name="test_unit:plugin" /><Generator name="test_unit:scaffold" /></GeneratorsGroup></Settings>
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="CourseSelect_dev" type="RailsRunConfigurationType" factoryName="Rails">
|
||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
||||
<module name="vim" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="true" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="rbenv: 2.3.1" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<envs />
|
||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
||||
<COVERAGE_PATTERN ENABLED="true">
|
||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
||||
</COVERAGE_PATTERN>
|
||||
</EXTENSION>
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="default" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
|
@ -19,7 +19,7 @@
|
|||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="Default" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="default" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
||||
<method />
|
||||
|
|
127
.idea/vim.iml
|
@ -10,38 +10,14 @@
|
|||
</facet>
|
||||
</component>
|
||||
<component name="ModuleRunConfigurationManager">
|
||||
<configuration default="false" name="test: vim" type="RakeRunConfigurationType" factoryName="Rake">
|
||||
<configuration default="false" name="CourseSelect_dev" type="RailsRunConfigurationType" factoryName="Rails">
|
||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
||||
<module name="vim" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<envs>
|
||||
<env name="RAILS_ENV" value="test" />
|
||||
</envs>
|
||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
||||
<COVERAGE_PATTERN ENABLED="true">
|
||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
||||
</COVERAGE_PATTERN>
|
||||
</EXTENSION>
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="test" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":test_unit " />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="spec: vim" type="RakeRunConfigurationType" factoryName="Rake">
|
||||
<module name="vim" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="true" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="rbenv: 2.3.1" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<envs />
|
||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
||||
|
@ -50,12 +26,38 @@
|
|||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
||||
</COVERAGE_PATTERN>
|
||||
</EXTENSION>
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="spec" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":rspec " />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="default" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="Development: vim" type="RailsRunConfigurationType" factoryName="Rails">
|
||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
||||
<module name="vim" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<envs />
|
||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
||||
<COVERAGE_PATTERN ENABLED="true">
|
||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
||||
</COVERAGE_PATTERN>
|
||||
</EXTENSION>
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="default" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="Production: vim" type="RailsRunConfigurationType" factoryName="Rails">
|
||||
|
@ -83,14 +85,13 @@
|
|||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="Development: vim" type="RailsRunConfigurationType" factoryName="Rails">
|
||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
||||
<configuration default="false" name="spec: vim" type="RakeRunConfigurationType" factoryName="Rake">
|
||||
<module name="vim" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<envs />
|
||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
||||
|
@ -99,13 +100,37 @@
|
|||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
||||
</COVERAGE_PATTERN>
|
||||
</EXTENSION>
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="Default" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="spec" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":rspec " />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="test: vim" type="RakeRunConfigurationType" factoryName="Rake">
|
||||
<module name="vim" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
||||
<envs>
|
||||
<env name="RAILS_ENV" value="test" />
|
||||
</envs>
|
||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
||||
<COVERAGE_PATTERN ENABLED="true">
|
||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
||||
</COVERAGE_PATTERN>
|
||||
</EXTENSION>
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="test" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":test_unit " />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
|
|
1001
.idea/workspace.xml
|
@ -153,7 +153,7 @@ GEM
|
|||
activesupport (= 4.2.5.2)
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.18.1, < 2.0)
|
||||
rake (11.2.2)
|
||||
rake (11.3.0)
|
||||
rdoc (4.2.2)
|
||||
json (~> 1.4)
|
||||
remotipart (1.2.1)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
##([本组的heroku展示地址](https://courseselectofstormand.herokuapp.com/))
|
||||
目前完成修改:
|
||||
* 首页显示所有的课程,与其相关属性。
|
||||
* 首页显示所有的课程,与其相关属性。aaa
|
||||
|
||||
|
||||
### [中文教程1](http://blog.csdn.net/ppp8300885/article/details/52594839) [中文教程2](http://blog.csdn.net/ppp8300885/article/details/52601560) [中文教程3](http://blog.csdn.net/ppp8300885/article/details/52669749)
|
||||
|
@ -12,7 +12,7 @@
|
|||
|
||||
适合新学者的入手的第一个项目 ([演示Demo戳这里](https://courseselect.herokuapp.com/ )),入门者可以在这个样本系统上增加更多的功能:
|
||||
|
||||
* 处理选课冲突、控制选课人数
|
||||
* 处理选课冲突、控制选课人数(finish)
|
||||
* 统计选课学分,学位课等
|
||||
* 增加选课的开放、关闭功能
|
||||
* 自定义管理员后台
|
||||
|
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 876 KiB |
After Width: | Height: | Size: 332 KiB |
|
@ -61,20 +61,64 @@ class CoursesController < ApplicationController
|
|||
|
||||
def list
|
||||
@course=Course.all
|
||||
@course_open=Course.where("open = ?", true)
|
||||
@course_open=@course_open-current_user.courses
|
||||
@course_open=Course.where("open = ?", true)-current_user.courses
|
||||
@course_close=@course-@course_open
|
||||
@theparams=params
|
||||
@credit_isdegree, @credit_nodegree=cal_degree
|
||||
|
||||
end
|
||||
|
||||
def credit#add credit method
|
||||
|
||||
@course_isdegree=current_user.courses.where("degree= ?", true)
|
||||
@course_nodegree=current_user.courses.where("degree= ?", false)
|
||||
@credit_isdegree, @credit_nodegree=cal_degree
|
||||
|
||||
end
|
||||
|
||||
def isdegree #add isdegree method
|
||||
@course=Course.find_by_id(params[:id])
|
||||
@course.update_attributes(degree: true)
|
||||
redirect_to courses_path,flash: {:success=> "已经成功将 #{@course.name} 选为学位课"}
|
||||
end
|
||||
|
||||
def nodegree #add nodegree method
|
||||
@course=Course.find_by_id(params[:id])
|
||||
@course.update_attributes(degree: false)
|
||||
redirect_to courses_path,flash: {:success=> "已经成功将 #{@course.name} 选为非学位课"}
|
||||
end
|
||||
def select
|
||||
@course=Course.find_by_id(params[:id])
|
||||
current_user.courses<<@course
|
||||
flash={:success => "成功选择课程: #{@course.name}"}
|
||||
redirect_to courses_path, flash: flash
|
||||
if !@course.limit_num.nil? && @course.limit_num!=0
|
||||
if(@course.student_num < @course.limit_num)
|
||||
current_user.courses<<@course
|
||||
@course.student_num+=1
|
||||
@course.update_attributes(:student_num=>@course.student_num)
|
||||
flash={:success => "成功选择课程: #{@course.name}"}
|
||||
redirect_to courses_path, flash: flash
|
||||
else
|
||||
flash={:danger => "选课人数已满: #{@course.name}"}
|
||||
@course=Course.all
|
||||
@course_open=Course.where(:open=>true)
|
||||
@course_open=@course_open-current_user.courses
|
||||
redirect_to list_courses_path, flash: flash
|
||||
end
|
||||
else
|
||||
current_user.courses<<@course
|
||||
@course.student_num+=1
|
||||
@course.update_attributes(:student_num=>@course.student_num)
|
||||
flash={:success => "成功选择课程: #{@course.name}"}
|
||||
redirect_to courses_path, flash: flash
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
def quit
|
||||
@course=Course.find_by_id(params[:id])
|
||||
current_user.courses.delete(@course)
|
||||
@course.student_num-=1
|
||||
@course.update_attributes(:student_num=>@course.student_num)
|
||||
flash={:success => "成功退选课程: #{@course.name}"}
|
||||
redirect_to courses_path, flash: flash
|
||||
end
|
||||
|
@ -85,6 +129,20 @@ class CoursesController < ApplicationController
|
|||
def index
|
||||
@course=current_user.teaching_courses if teacher_logged_in?
|
||||
@course=current_user.courses if student_logged_in?
|
||||
@credit_isdegree, @credit_nodegree=cal_degree
|
||||
end
|
||||
|
||||
def cal_degree
|
||||
@credit_isdegree=0
|
||||
@credit_nodegree=0
|
||||
current_user.courses.each do |course|
|
||||
if course.degree
|
||||
@credit_isdegree=@credit_isdegree + course.credit.sub(/\d+\// , "").to_i
|
||||
else
|
||||
@credit_nodegree=@credit_nodegree + course.credit.sub(/\d+\// , "").to_i
|
||||
end
|
||||
end
|
||||
return @credit_isdegree, @credit_nodegree
|
||||
end
|
||||
|
||||
|
||||
|
@ -92,6 +150,42 @@ class CoursesController < ApplicationController
|
|||
@course=Course.find_by_id(params[:id])
|
||||
end
|
||||
|
||||
def search
|
||||
temp="%"+params[:name]+"%"
|
||||
@theparams=Course.find_by_id(1)
|
||||
@course=Course.all
|
||||
@course_open=Course.where("name like ? AND open =?", temp ,true)
|
||||
@course_close=Course.where("name like ? AND open =?", temp ,false)
|
||||
|
||||
if params[:teaching_type]!=""
|
||||
@course_open=@course_open.where("teaching_type =?", params[:teaching_type])
|
||||
@course_close=@course_close.where("teaching_type =?", params[:teaching_type])
|
||||
end
|
||||
if params[:course_type]!=""
|
||||
@course_open=@course_open.where("course_type =?", params[:course_type])
|
||||
@course_close=@course_close.where("course_type =?", params[:course_type])
|
||||
end
|
||||
if params[:credit]!=""
|
||||
@course_open=@course_open.where("credit =?", params[:credit])
|
||||
@course_close=@course_close.where("credit =?", params[:credit])
|
||||
end
|
||||
if params[:exam_type]!=""
|
||||
@course_open=@course_open.where("exam_type =?", params[:exam_type])
|
||||
@course_close=@course_close.where("exam_type =?", params[:exam_type])
|
||||
end
|
||||
@course_open=@course_open-current_user.courses
|
||||
@course_close=@course_close-current_user.courses
|
||||
@theparams=params
|
||||
render 'list'
|
||||
end
|
||||
|
||||
def refresh_search
|
||||
@course=Course.all
|
||||
@course_open=Course.where("open = ?", true)-current_user.courses
|
||||
@course_close=@course-@course_open
|
||||
@theparams=params
|
||||
render 'list'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
|
|
@ -2,8 +2,9 @@ class HomesController < ApplicationController
|
|||
|
||||
def index
|
||||
@course=Course.all
|
||||
@course1=Course.find_by_id(1)
|
||||
|
||||
@course_play_first=Course.order("student_num DESC").limit(1)
|
||||
@course_play=Course.order("student_num DESC").limit(3)-@course_play_first
|
||||
@course_play_first=@course_play_first.take
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -20,12 +20,12 @@ class AvatarUploader < CarrierWave::Uploader::Base
|
|||
def default_url
|
||||
# For Rails 3.1+ asset pipeline compatibility:
|
||||
# ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
|
||||
"fallback/" + [version_name, "default.jpg"].compact.join('_')
|
||||
#"fallback/" + [version_name, "default.jpg"].compact.join('_')
|
||||
end
|
||||
|
||||
|
||||
version :thumb do
|
||||
process :resize_to_fill => [1200, 300]
|
||||
process :resize_to_fill => [1910, 550]
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<%= render "shared/sidenav" %>
|
||||
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">已选学分共<%= @credit_isdegree+@credit_nodegree%>学分</h3>
|
||||
</div>
|
||||
<div class="panel-body" style="min-height: 450px">
|
||||
<p align="center">学位课</p>
|
||||
<p align="center">共<%= @credit_isdegree%>学分</p>
|
||||
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<th>课程编号</th>
|
||||
<th>课程名称</th>
|
||||
<th>课时/学分</th>
|
||||
<th>是否是学位课</th>
|
||||
<th>课程属性</th>
|
||||
<th>授课方式</th>
|
||||
<th>考试方式</th>
|
||||
<th>主讲教师</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @course_isdegree.each do |course| %>
|
||||
<tr>
|
||||
|
||||
<td><%= course.course_code %></td>
|
||||
<td><%= course.name %></td>
|
||||
<td><%= course.credit %></td>
|
||||
<td>是</td>
|
||||
<td><%= course.course_type %></td>
|
||||
<td><%= course.teaching_type %></td>
|
||||
<td><%= course.exam_type %></td>
|
||||
<td><%= course.teacher.name %></td>
|
||||
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<p align="center">非学位课</p>
|
||||
<p align="center">共<%= @credit_nodegree%>学分</p>
|
||||
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<th>课程编号</th>
|
||||
<th>课程名称</th>
|
||||
<th>课时/学分</th>
|
||||
<th>是否是学位课</th>
|
||||
<th>课程属性</th>
|
||||
<th>授课方式</th>
|
||||
<th>考试方式</th>
|
||||
<th>主讲教师</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @course_nodegree.each do |course| %>
|
||||
<tr>
|
||||
|
||||
<td><%= course.course_code %></td>
|
||||
<td><%= course.name %></td>
|
||||
<td><%= course.credit %></td>
|
||||
<td>否</td>
|
||||
<td><%= course.course_type %></td>
|
||||
<td><%= course.teaching_type %></td>
|
||||
<td><%= course.exam_type %></td>
|
||||
<td><%= course.teacher.name %></td>
|
||||
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -7,16 +7,58 @@
|
|||
<%= render "shared/sidenav" %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="col-md-offset-3 col-sm-6">
|
||||
<% if logged_in? %>
|
||||
<div class="col-md-offset-1 col-sm-6" >
|
||||
<% else %>
|
||||
<div class="col-md-offset-3 col-sm-6" >
|
||||
<% end %>
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<h3 class="text-center">课程: <%= @course.name %></h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<%= @course.course_introduction %>
|
||||
<%= image_tag @course.avatar, {width: "1000", height: "228"} %>
|
||||
<%= image_tag(@course.avatar_url(:thumb)) if @course.avatar %>
|
||||
<h1><%= @course.name %></h1>
|
||||
<%= image_tag(@course.avatar_url, class: "img-responsive" ) if !@course.avatar.blank? %>
|
||||
<%= image_tag "fallback/default_original.jpg" , class: "img-responsive" if @course.avatar.blank? %>
|
||||
|
||||
<h4>课程介绍:</h4>
|
||||
<p><%=@course.course_introduction if !@course.course_introduction.blank? %><%="暂无课程介绍" if @course.course_introduction.blank? %></p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<h4>课程属性</h4>
|
||||
<p><%=@course.course_type %></p>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<h4>授课方式</h4>
|
||||
<p><%=@course.teaching_type %></p>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<h4>考试方式</h4>
|
||||
<p><%=@course.exam_type %></p>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<h4>主讲教师</h4>
|
||||
<p><%=@course.teacher.name %></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<h4>限选/已选</h4>
|
||||
<p><%=@course.limit_num if !@course.limit_num.blank? %> <%="无限选" if @course.limit_num.blank? %>/<%=@course.student_num %></p>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<h4>课时/学分</h4>
|
||||
<p><%=@course.credit %></p>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<h4>时间/周数</h4>
|
||||
<p><%=@course.course_time %>/<%=@course.course_week %></p>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<h4>上课教室</h4>
|
||||
<p><%=@course.class_room %></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -22,6 +22,14 @@
|
|||
<th>课时/学分</th>
|
||||
<th>考试方式</th>
|
||||
<th>主讲教师</th>
|
||||
<% if teacher_logged_in? %>
|
||||
<th>编辑课程</th>
|
||||
<th>打开课程</th>
|
||||
<th>删除课程</th>
|
||||
<% elsif student_logged_in? %>
|
||||
<th>删除课程</th>
|
||||
<th>是否选为学位课</th>
|
||||
<% end %>
|
||||
</tr>
|
||||
|
||||
<tbody>
|
||||
|
@ -36,16 +44,19 @@
|
|||
|
||||
<% if teacher_logged_in? %>
|
||||
<td><%= link_to "编辑", edit_course_url(course), class: 'btn btn-xs btn-info' %></td>
|
||||
<% if course.open %>
|
||||
<td><%= link_to "关闭", close_course_url(course), class: 'btn btn-xs btn-info' %></td>
|
||||
<% else %>
|
||||
<% if course.open %>
|
||||
<td><%= link_to "关闭", close_course_url(course), class: 'btn btn-xs btn-danger' %></td>
|
||||
<% else %>
|
||||
<td><%= link_to "打开", open_course_url(course), class: 'btn btn-xs btn-info' %></td>
|
||||
<% end %>
|
||||
|
||||
|
||||
<% end %>
|
||||
<td><%= link_to "删除", course_path(course), :method => "delete", class: 'btn btn-xs btn-danger', :data => {confirm: '确定要删除此课程?'} %></td>
|
||||
<% elsif student_logged_in? %>
|
||||
<td><%= link_to "删除", quit_course_path(course), class: 'btn-sm btn-danger' %></td>
|
||||
<% if course.degree %>
|
||||
<td><%= link_to "否", nodegree_course_path(course), class: 'btn btn-xs btn-danger' %></td>
|
||||
<% else %>
|
||||
<td><%= link_to "是",isdegree_course_path(course), class: 'btn btn-xs btn-info' %></td>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</tr>
|
||||
<% end %>
|
||||
|
|
|
@ -9,6 +9,45 @@
|
|||
<div class="panel-heading">
|
||||
<h3 class="panel-title">选修课程</h3>
|
||||
</div>
|
||||
<br>
|
||||
<%= form_tag("/courses/search", method: "get") do %>
|
||||
<%= link_to '', refresh_search_courses_path, :class => "btn btn-md glyphicon glyphicon-refresh" %>
|
||||
<%= text_field_tag(:name, @theparams[:name] ) %>
|
||||
<select name="credit" id="credit">
|
||||
<option value="">所有课时学分</option>
|
||||
<% @course.select(:credit).distinct.each do |ct| %>
|
||||
|
||||
<option value=<%= ct.credit %> <%= selected="selected" if @theparams[:credit]==ct.credit %>><%= ct.credit %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
|
||||
<select name="course_type" id="course_type">
|
||||
<option value="">所有课程属性</option>
|
||||
<% @course.select(:course_type).distinct.each do |ct| %>
|
||||
<option value=<%= ct.course_type %> <%= selected="selected" if @theparams[:course_type]==ct.course_type %>><%= ct.course_type %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
|
||||
<select name="teaching_type" id="teaching_type">
|
||||
<option value="">所有授课方式</option>
|
||||
<% @course.select(:teaching_type).distinct.each do |ct| %>
|
||||
<option value=<%= ct.teaching_type %> <%= selected="selected" if @theparams[:teaching_type]==ct.teaching_type %>><%= ct.teaching_type %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
|
||||
<select name="exam_type" id="exam_type">
|
||||
<option value="">所有考试方式</option>
|
||||
<% @course.select(:exam_type).distinct.each do |ct| %>
|
||||
<option value=<%= ct.exam_type %> <%= selected="selected" if @theparams[:exam_type]==ct.exam_type %>><%= ct.exam_type %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
|
||||
<%= submit_tag("Search" ,class:"btn btn-md btn-primary") %>
|
||||
|
||||
|
||||
<% end %>
|
||||
|
||||
|
||||
<div class="panel-body" style="min-height: 450px">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
|
@ -40,7 +79,29 @@
|
|||
<td><%= course.teaching_type %></td>
|
||||
<td><%= course.exam_type %></td>
|
||||
<td><%= course.teacher.name %></td>
|
||||
<td><%= link_to "加入课程", select_course_path(course), class: 'btn-sm btn-info' %></td>
|
||||
<td>
|
||||
<%= link_to select_course_path(course) do %>
|
||||
<button type="button" class="btn btn-sm btn-primary" >加入课程</button>
|
||||
<% end %>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<% end %>
|
||||
<% @course_close.each do |course| %>
|
||||
<tr>
|
||||
|
||||
<td><%= course.course_code %></td>
|
||||
<td><%= link_to course.name, detail_course_path(course), class: 'btn-sm' %></td>
|
||||
<td><%= course.credit %></td>
|
||||
<td><%= course.limit_num %></td>
|
||||
<td><%= course.student_num %></td>
|
||||
<td><%= course.course_type %></td>
|
||||
<td><%= course.teaching_type %></td>
|
||||
<td><%= course.exam_type %></td>
|
||||
<td><%= course.teacher.name %></td>
|
||||
<td> <button type="button" class="btn btn-sm btn-default" disabled="disabled">
|
||||
加入课程
|
||||
</button></td>
|
||||
|
||||
</tr>
|
||||
<% end %>
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
<div class="container">
|
||||
|
||||
<div id="myCarousel" class="carousel slide">
|
||||
<div id="myCarousel" class="carousel slide">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
|
@ -8,24 +6,24 @@
|
|||
</ol>
|
||||
<!-- 轮播(Carousel)项目 -->
|
||||
<div class="carousel-inner">
|
||||
<div class="item active" >
|
||||
<%= link_to detail_course_path(@course1) do %>
|
||||
<%= image_tag(@course1.avatar_url(:thumb)) %>
|
||||
<div class="carousel-caption"><%= @course1.name %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="item">
|
||||
<%= link_to detail_course_path(@course1) do %>
|
||||
<%= image_tag(@course1.avatar_url(:thumb)) %>
|
||||
<div class="carousel-caption"><%= @course1.name %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="item">
|
||||
<%= link_to detail_course_path(@course1) do %>
|
||||
<%= image_tag(@course1.avatar_url(:thumb)) %>
|
||||
<div class="carousel-caption"><%= @course1.name %></div>
|
||||
<div class="item active">
|
||||
<%= link_to detail_course_path(@course_play_first) do %>
|
||||
<%= image_tag @course_play_first.avatar_url(:thumb) if !@course_play_first.avatar.blank? %>
|
||||
<%= image_tag "fallback/default.jpg" if @course_play_first.avatar.blank? %>
|
||||
<div class="carousel-caption"><%= @course_play_first.name %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% @course_play.each do |play| %>
|
||||
<div class="item" >
|
||||
<%= link_to detail_course_path(play) do %>
|
||||
<%= image_tag play.avatar_url(:thumb) if !play.avatar.blank? %>
|
||||
<%= image_tag "fallback/default.jpg" if play.avatar.blank? %>
|
||||
<div class="carousel-caption"><%= play.name %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
<!-- 轮播(Carousel)导航 -->
|
||||
<a class="carousel-control left" href="#myCarousel"
|
||||
|
@ -40,8 +38,15 @@
|
|||
|
||||
<hr>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
|
||||
|
||||
|
||||
<div class="col-sm-12">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel">
|
||||
|
||||
<div class="panel-body" style="min-height: 450px">
|
||||
<table class="table table-striped table-hover">
|
||||
|
@ -51,15 +56,11 @@
|
|||
<th>课程编号</th>
|
||||
<th>课程名称</th>
|
||||
<th>课时/学分</th>
|
||||
<th>限选</th>
|
||||
<th>已选</th>
|
||||
<th>课程属性</th>
|
||||
<th>授课方式</th>
|
||||
<th>考试方式</th>
|
||||
<th>主讲教师</th>
|
||||
<th>time</th>
|
||||
<th>week</th>
|
||||
<th>room</th>
|
||||
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -71,15 +72,10 @@
|
|||
<td><%= course.course_code %></td>
|
||||
<td><%= link_to course.name, detail_course_path(course), class: 'btn-sm' %></td>
|
||||
<td><%= course.credit %></td>
|
||||
<td><%= course.limit_num %></td>
|
||||
<td><%= course.student_num %></td>
|
||||
<td><%= course.course_type %></td>
|
||||
<td><%= course.teaching_type %></td>
|
||||
<td><%= course.exam_type %></td>
|
||||
<td><%= course.teacher.name %></td>
|
||||
<td><%= course.course_time %></td>
|
||||
<td><%= course.course_week %></td>
|
||||
<td><%= course.class_room %></td>
|
||||
|
||||
</tr>
|
||||
<% end %>
|
||||
|
@ -88,5 +84,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -46,6 +46,13 @@
|
|||
<span class="glyphicon glyphicon-chevron-right"></span> 已选课程
|
||||
<span class="label label-info pull-right"><%= current_user.courses.length %></span>
|
||||
<% end %>
|
||||
<li class="list-group-item">
|
||||
<%= link_to credit_courses_path do %>
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> 已选学分
|
||||
<span class="label label-info pull-right"><%= @credit_nodegree %></span>
|
||||
<span class="label label-default pull-right"><%= @credit_isdegree %></span>
|
||||
|
||||
<% end %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -24,9 +24,15 @@ Rails.application.routes.draw do
|
|||
get :detail
|
||||
get :open
|
||||
get :close
|
||||
get :isdegree #add route isdegree
|
||||
get :nodegree #add route nodegree
|
||||
end
|
||||
collection do
|
||||
get :list
|
||||
get :search
|
||||
get :refresh_search
|
||||
get :credit #add credit route
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,792 @@
|
|||
/* ==== Google font ==== */
|
||||
@import url('http://fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic|Montserrat:700|Merriweather:400italic');
|
||||
|
||||
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-family: 'Lato',sans-serif;
|
||||
font-weight: 300;
|
||||
color: #666;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
html {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0 0 30px;
|
||||
text-transform: uppercase;
|
||||
font-family: Montserrat,sans-serif;
|
||||
font-weight: 700;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 20px;
|
||||
font-size: 16px;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
p.lead {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #28c3ab;
|
||||
-webkit-transition: all .2s ease-in-out;
|
||||
-moz-transition: all .2s ease-in-out;
|
||||
transition: all .2s ease-in-out;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration: none;
|
||||
color: #176e61;
|
||||
}
|
||||
|
||||
.light {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.navbar {
|
||||
margin-bottom: 0;
|
||||
border-bottom: 1px solid rgba(255,255,255,.3);
|
||||
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-weight: 700;
|
||||
}
|
||||
.navbar-brand {
|
||||
height: 40px;
|
||||
padding: 5px 15px;
|
||||
font-size: 18px;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.navbar-brand h1{
|
||||
color: #fff;
|
||||
font-size: 20px;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
.navbar-brand:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.nav.navbar-nav {
|
||||
background-color: rgba(255,255,255,.4);
|
||||
}
|
||||
|
||||
.navbar-custom.top-nav-collapse .nav.navbar-nav {
|
||||
background-color: rgba(0,0,0,0);
|
||||
}
|
||||
|
||||
|
||||
.navbar-custom ul.nav li a {
|
||||
font-size: 12px;
|
||||
letter-spacing: 1px;
|
||||
color: #444;
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.navbar-custom.top-nav-collapse ul.nav li a {
|
||||
-webkit-transition: all .2s ease-in-out;
|
||||
-moz-transition: all .2s ease-in-out;
|
||||
transition: all .2s ease-in-out;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.navbar-custom ul.nav ul.dropdown-menu {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.navbar-custom ul.nav ul.dropdown-menu li {
|
||||
border-bottom: 1px solid #f5f5f5;
|
||||
|
||||
}
|
||||
|
||||
.navbar-custom ul.nav ul.dropdown-menu li:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.navbar-custom ul.nav ul.dropdown-menu li a {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.navbar-custom ul.nav ul.dropdown-menu li a:hover {
|
||||
background: #fefefe;
|
||||
}
|
||||
|
||||
.navbar-custom.top-nav-collapse ul.nav ul.dropdown-menu li a {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.navbar-custom .nav li a {
|
||||
-webkit-transition: background .3s ease-in-out;
|
||||
-moz-transition: background .3s ease-in-out;
|
||||
transition: background .3s ease-in-out;
|
||||
}
|
||||
|
||||
.navbar-custom .nav li a:hover,
|
||||
.navbar-custom .nav li a:focus,
|
||||
.navbar-custom .nav li.active {
|
||||
outline: 0;
|
||||
background-color: rgba(255,255,255,.2);
|
||||
}
|
||||
.navbar-custom .nav li a:hover,
|
||||
.navbar-custom .nav li a:focus,
|
||||
.navbar-custom .nav li.active {
|
||||
outline: 0;
|
||||
background-color: rgba(255,255,255,.2);
|
||||
}
|
||||
|
||||
.navbar-toggle {
|
||||
padding: 4px 6px;
|
||||
font-size: 14px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.navbar-toggle:focus,
|
||||
.navbar-toggle:active {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
|
||||
/* loader */
|
||||
#preloader {
|
||||
background: #ffffff;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
|
||||
#loaderInner {
|
||||
background:#ffffff url(../img/spinner.gif) center center no-repeat;
|
||||
height: 60px;
|
||||
left: 50%;
|
||||
margin: -50px 0 0 -50px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
@keyframes boxSpin{
|
||||
0%{
|
||||
transform: translate(-10px, 0px);
|
||||
}
|
||||
25%{
|
||||
transform: translate(10px, 10px);
|
||||
}
|
||||
50%{
|
||||
transform: translate(10px, -10px);
|
||||
}
|
||||
75%{
|
||||
transform: translate(-10px, -10px);
|
||||
}
|
||||
100%{
|
||||
transform: translate(-10px, 10px);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes shadowSpin{
|
||||
0%{
|
||||
box-shadow: 10px -10px #39CCCC, -10px 10px #FFDC00;
|
||||
}
|
||||
25%{
|
||||
box-shadow: 10px 10px #39CCCC, -10px -10px #FFDC00;
|
||||
}
|
||||
50%{
|
||||
box-shadow: -10px 10px #39CCCC, 10px -10px #FFDC00;
|
||||
}
|
||||
75%{
|
||||
box-shadow: -10px -10px #39CCCC, 10px 10px #FFDC00;
|
||||
}
|
||||
100%{
|
||||
box-shadow: 10px -10px #39CCCC, -10px 10px #FFDC00;
|
||||
}
|
||||
}
|
||||
|
||||
#load {
|
||||
z-index: 9999;
|
||||
background-color: #FF4136;
|
||||
opacity: 0.75;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin: -5px auto 0 auto;
|
||||
left: 0;
|
||||
right: 0;
|
||||
border-radius: 0px;
|
||||
border: 5px solid #FF4136;
|
||||
box-shadow: 10px 0px #39CCCC, 10px 0px #01FF70;
|
||||
animation: shadowSpin 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
/* misc */
|
||||
hr {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* margins */
|
||||
.marginbot-0{margin-bottom:0 !important;}
|
||||
.marginbot-10{margin-bottom:10px !important;}
|
||||
.marginbot-20{margin-bottom:20px !important;}
|
||||
.marginbot-30{margin-bottom:30px !important;}
|
||||
.marginbot-40{margin-bottom:40px !important;}
|
||||
.marginbot-50{margin-bottom:50px !important;}
|
||||
|
||||
/* ===========================
|
||||
--- General sections
|
||||
============================ */
|
||||
|
||||
.home-section {
|
||||
padding-top: 110px;
|
||||
padding-bottom: 110px;
|
||||
display:block;
|
||||
position:relative;
|
||||
z-index:120;
|
||||
}
|
||||
|
||||
|
||||
.section-heading h2 {
|
||||
font-size: 40px;
|
||||
}
|
||||
.section-heading i {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
/* --- section bg var --- */
|
||||
|
||||
.bg-white {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.bg-gray {
|
||||
background: #f8f8f8;
|
||||
}
|
||||
|
||||
|
||||
.bg-dark {
|
||||
background: #575757;
|
||||
}
|
||||
|
||||
/* --- section color var --- */
|
||||
|
||||
.text-light {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ===========================
|
||||
--- Intro
|
||||
============================ */
|
||||
|
||||
.intro {
|
||||
width:100%;
|
||||
position:relative;
|
||||
|
||||
background: url(../img/bg1.jpg) no-repeat top center;
|
||||
}
|
||||
|
||||
#intro.intro {
|
||||
padding:20% 0 0 0;
|
||||
}
|
||||
|
||||
.intro .slogan {
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
.intro .page-scroll {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.brand-heading {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.intro-text {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.intro .slogan h2 {
|
||||
color: #FFF;
|
||||
text-shadow: none;
|
||||
font-size: 60px;
|
||||
line-height: 60px;
|
||||
font-weight: 700;
|
||||
font-family: Montserrat, sans-serif;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
border-width: 0px;
|
||||
border-color: #000;
|
||||
border-style: none;
|
||||
text-shadow: -1px 0 1px #000;
|
||||
}
|
||||
|
||||
.intro .slogan h4 {
|
||||
color: #fff;
|
||||
text-shadow: -1px 1px 1px #000;
|
||||
}
|
||||
|
||||
|
||||
/* ===========================
|
||||
--- About
|
||||
============================ */
|
||||
|
||||
.boxed-grey {
|
||||
background: #f9f9f9;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.team h5 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.team p.subtitle {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.team-social {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
|
||||
}
|
||||
|
||||
.team-social {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.team-social li{
|
||||
display: inline-block;
|
||||
margin:0 !important;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
|
||||
.team-social a{
|
||||
margin:0;
|
||||
padding:0;
|
||||
display: block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
background: #3bbec0;
|
||||
color: #fff;
|
||||
-webkit-transition: background .3s ease-in-out;
|
||||
transition: background .3s ease-in-out;
|
||||
}
|
||||
.team-social a i{
|
||||
text-align: center;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
.team-social .social-facebook a{background: #3873ae;}
|
||||
.team-social .social-twitter a{background: #62c6f8;}
|
||||
.team-social .social-dribble a{background: #d74980;}
|
||||
.team-social .social-deviantart a{background: #8da356;}
|
||||
.team-social .social-google a{background: #000;}
|
||||
.team-social .social-vimeo a{background: #51a6d3;}
|
||||
.team-social .social-facebook a:hover{background: #4893ce;}
|
||||
.team-social .social-twitter a:hover{background: #82e6ff;}
|
||||
.team-social .social-dribble a:hover{background: #f769a0;}
|
||||
.team-social .social-deviantart a:hover{background: #adc376;}
|
||||
.team-social .social-google a:hover{background: #333;}
|
||||
.team-social .social-vimeo a:hover{background: #71c6f3;}
|
||||
|
||||
|
||||
/* ===========================
|
||||
--- Services
|
||||
============================ */
|
||||
|
||||
.service-icon {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ===========================
|
||||
--- Contact
|
||||
============================ */
|
||||
|
||||
form#contact-form .form-group label {
|
||||
text-align: left !important;
|
||||
display: block;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
font-size: 12px;
|
||||
}
|
||||
form#contact-form input,form#contact-form select,form#contact-form textarea {
|
||||
border-radius: 0;
|
||||
border: 1px solid #eee;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
form#contact-form input:focus,form#contact-form select:focus,form#contact-form textarea:focus {
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||
}
|
||||
.input-group-addon {
|
||||
background-color: #fefefe;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.widget-contact {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
.company-social {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.company-social {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.company-social li{
|
||||
display: inline-block;
|
||||
margin:0 !important;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
|
||||
.company-social a{
|
||||
margin:0;
|
||||
padding:0;
|
||||
display: block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
background: #3bbec0;
|
||||
color: #fff;
|
||||
-webkit-transition: background .3s ease-in-out;
|
||||
transition: background .3s ease-in-out;
|
||||
}
|
||||
.company-social a i{
|
||||
text-align: center;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
.company-social .social-facebook a{background: #3873ae;}
|
||||
.company-social .social-twitter a{background: #62c6f8;}
|
||||
.company-social .social-dribble a{background: #d74980;}
|
||||
.company-social .social-deviantart a{background: #8da356;}
|
||||
.company-social .social-google a{background: #000;}
|
||||
.company-social .social-vimeo a{background: #51a6d3;}
|
||||
.company-social .social-facebook a:hover{background: #4893ce;}
|
||||
.company-social .social-twitter a:hover{background: #82e6ff;}
|
||||
.company-social .social-dribble a:hover{background: #f769a0;}
|
||||
.company-social .social-deviantart a:hover{background: #adc376;}
|
||||
.company-social .social-google a:hover{background: #333;}
|
||||
.company-social .social-vimeo a:hover{background: #71c6f3;}
|
||||
|
||||
|
||||
|
||||
/* ===========================
|
||||
--- Footer
|
||||
============================ */
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
padding: 50px 0 ;
|
||||
|
||||
}
|
||||
|
||||
footer p {
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
/* ==========================
|
||||
Parallax
|
||||
============================= */
|
||||
|
||||
#parallax1{
|
||||
background-image: url(../img/parallax/1.jpg);
|
||||
}
|
||||
|
||||
#parallax1:after {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAEklEQVQImWNgYGD4z0AswK4SAFXuAf8EPy+xAAAAAElFTkSuQmCC);
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
opacity: 0.7;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
|
||||
#parallax2{
|
||||
background-image: url(../img/parallax/2.jpg);
|
||||
|
||||
}
|
||||
|
||||
#parallax2:after {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAEklEQVQImWNgYGD4z0AswK4SAFXuAf8EPy+xAAAAAElFTkSuQmCC);
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
opacity: 0.7;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
|
||||
/* ===========================
|
||||
--- Elements
|
||||
============================ */
|
||||
|
||||
.btn {
|
||||
border-radius: 0;
|
||||
text-transform: uppercase;
|
||||
font-family: Montserrat,sans-serif;
|
||||
font-weight: 400;
|
||||
-webkit-transition: all .3s ease-in-out;
|
||||
-moz-transition: all .3s ease-in-out;
|
||||
transition: all .3s ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
.btn-circle {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
margin-top: 15px;
|
||||
padding: 7px 16px;
|
||||
border: 2px solid #fff;
|
||||
border-radius: 50%;
|
||||
font-size: 40px;
|
||||
color: #fff;
|
||||
background: 0 0;
|
||||
-webkit-transition: background .3s ease-in-out;
|
||||
-moz-transition: background .3s ease-in-out;
|
||||
transition: background .3s ease-in-out;
|
||||
}
|
||||
|
||||
.btn-circle.btn-dark {
|
||||
border: 2px solid #666;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
|
||||
.btn-circle:hover,
|
||||
.btn-circle:focus {
|
||||
outline: 0;
|
||||
color: #fff;
|
||||
background: rgba(255,255,255,.1);
|
||||
}
|
||||
|
||||
.btn-circle.btn-dark :hover,
|
||||
.btn-circle.btn-dark :focus {
|
||||
outline: 0;
|
||||
color: #999;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.btn-circle.btn-dark :hover i,
|
||||
.btn-circle.btn-dark :focus i{
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.page-scroll .btn-circle i.animated {
|
||||
-webkit-transition-property: -webkit-transform;
|
||||
-webkit-transition-duration: 1s;
|
||||
-moz-transition-property: -moz-transform;
|
||||
-moz-transition-duration: 1s;
|
||||
}
|
||||
|
||||
.page-scroll .btn-circle:hover i.animated {
|
||||
-webkit-animation-name: pulse;
|
||||
-moz-animation-name: pulse;
|
||||
-webkit-animation-duration: 1.5s;
|
||||
-moz-animation-duration: 1.5s;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
}
|
||||
|
||||
@-webkit-keyframes pulse {
|
||||
0 {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1.2);
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes pulse {
|
||||
0 {
|
||||
-moz-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
-moz-transform: scale(1.2);
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#text {
|
||||
color: #fff;
|
||||
background: #ffcc00;
|
||||
}
|
||||
|
||||
#map {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
|
||||
.btn-skin:hover,
|
||||
.btn-skin:focus,
|
||||
.btn-skin:active,
|
||||
.btn-skin.active {
|
||||
color: #fff;
|
||||
background-color: #666;
|
||||
border-color: #666;
|
||||
}
|
||||
|
||||
|
||||
.btn-default:hover,
|
||||
.btn-default:focus {
|
||||
border: 1px solid #28c3ab;
|
||||
outline: 0;
|
||||
color: #000;
|
||||
background-color: #28c3ab;
|
||||
}
|
||||
|
||||
.btn-huge {
|
||||
padding: 25px;
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
.banner-social-buttons {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Media queries */
|
||||
|
||||
@media(min-width:767px) {
|
||||
|
||||
.navbar {
|
||||
padding: 20px 0;
|
||||
border-bottom: 0;
|
||||
letter-spacing: 1px;
|
||||
background: 0 0;
|
||||
-webkit-transition: background .5s ease-in-out,padding .5s ease-in-out;
|
||||
-moz-transition: background .5s ease-in-out,padding .5s ease-in-out;
|
||||
transition: background .5s ease-in-out,padding .5s ease-in-out;
|
||||
}
|
||||
|
||||
.top-nav-collapse {
|
||||
padding: 0;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.navbar-custom.top-nav-collapse {
|
||||
border-bottom: 1px solid rgba(255,255,255,.3);
|
||||
}
|
||||
|
||||
.intro {
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.brand-heading {
|
||||
font-size: 100px;
|
||||
}
|
||||
|
||||
|
||||
.intro-text {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@media (max-width:768px) {
|
||||
|
||||
.team.boxed-grey {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.boxed-grey {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@media (max-width:480px) {
|
||||
|
||||
.navbar-custom .nav.navbar-nav {
|
||||
background-color: rgba(255,255,255,.4);
|
||||
}
|
||||
|
||||
.navbar.navbar-custom.navbar-fixed-top {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.tp-banner-container {
|
||||
padding-top:40px;
|
||||
}
|
||||
|
||||
.page-scroll a.btn-circle {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-top: 10px;
|
||||
padding: 7px 0;
|
||||
border: 2px solid #fff;
|
||||
border-radius: 50%;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
class AddDegreeToCourse < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :courses, :degree ,:boolean,default:false
|
||||
end
|
||||
end
|
|
@ -11,7 +11,8 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20161109105023) do
|
||||
ActiveRecord::Schema.define(version: 20161207102921) do
|
||||
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -34,6 +35,8 @@ ActiveRecord::Schema.define(version: 20161109105023) do
|
|||
t.string "course_introduction"
|
||||
t.string "avatar"
|
||||
t.boolean "open", default: false
|
||||
t.boolean "degree", default: false
|
||||
|
||||
end
|
||||
|
||||
create_table "grades", force: :cascade do |t|
|
||||
|
|
After Width: | Height: | Size: 346 KiB |
Before Width: | Height: | Size: 238 KiB |
After Width: | Height: | Size: 175 KiB |
Before Width: | Height: | Size: 124 KiB |