new course table
This commit is contained in:
parent
4d82cad51d
commit
1e7d127998
|
@ -88,10 +88,12 @@ class AccountController < ApplicationController
|
||||||
# create a new token for password recovery
|
# create a new token for password recovery
|
||||||
token = Token.new(:user => user, :action => "recovery")
|
token = Token.new(:user => user, :action => "recovery")
|
||||||
if token.save
|
if token.save
|
||||||
Mailer.lost_password(token).deliver
|
Thread.new do
|
||||||
flash[:notice] = l(:notice_account_lost_email_sent)
|
Mailer.lost_password(token).deliver
|
||||||
redirect_to signin_path
|
end
|
||||||
return
|
flash[:notice] = l(:notice_account_lost_email_sent)
|
||||||
|
redirect_to signin_path
|
||||||
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -148,18 +148,26 @@ class ProjectsController < ApplicationController
|
||||||
@trackers = Tracker.sorted.all
|
@trackers = Tracker.sorted.all
|
||||||
@project = Project.new
|
@project = Project.new
|
||||||
@project.safe_attributes = params[:project]
|
@project.safe_attributes = params[:project]
|
||||||
|
##add by xianbo
|
||||||
|
@course=Course.new
|
||||||
|
@course.safe_attributes = params[:course]
|
||||||
|
##end
|
||||||
render :layout => 'base'
|
render :layout => 'base'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@course_tag = params[:project][:project_type]
|
@course_tag = params[:project][:project_type]
|
||||||
|
@course = Course.new
|
||||||
|
@course.extra=params[:project][:identifier]
|
||||||
|
@course.safe_attributes = params[:project][:course]
|
||||||
|
|
||||||
@issue_custom_fields = IssueCustomField.sorted.all
|
@issue_custom_fields = IssueCustomField.sorted.all
|
||||||
@trackers = Tracker.sorted.all
|
@trackers = Tracker.sorted.all
|
||||||
@project = Project.new
|
@project = Project.new
|
||||||
@project.safe_attributes = params[:project]
|
@project.safe_attributes = params[:project]
|
||||||
|
@course.save
|
||||||
if validate_parent_id && @project.save
|
if validate_parent_id && @project.save
|
||||||
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
|
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
|
||||||
# Add current user as a project member if he is not admin
|
# Add current user as a project member if he is not admin
|
||||||
unless User.current.admin?
|
unless User.current.admin?
|
||||||
|
@ -174,8 +182,9 @@ class ProjectsController < ApplicationController
|
||||||
flash[:notice] = l(:notice_successful_create)
|
flash[:notice] = l(:notice_successful_create)
|
||||||
if params[:continue]
|
if params[:continue]
|
||||||
attrs = {:parent_id => @project.parent_id}.reject {|k,v| v.nil?}
|
attrs = {:parent_id => @project.parent_id}.reject {|k,v| v.nil?}
|
||||||
redirect_to new_project_path(attrs)
|
redirect_to new_project_path(attrs, :course => '1')
|
||||||
#Added by young
|
#Added by young
|
||||||
|
|
||||||
elsif params[:course_continue]
|
elsif params[:course_continue]
|
||||||
redirect_to new_project_path(:course => '1')
|
redirect_to new_project_path(:course => '1')
|
||||||
#Ended by young
|
#Ended by young
|
||||||
|
@ -233,9 +242,7 @@ class ProjectsController < ApplicationController
|
||||||
@subprojects = @project.children.visible.all
|
@subprojects = @project.children.visible.all
|
||||||
@news = @project.news.limit(5).includes(:author, :project).reorder("#{News.table_name}.created_on DESC").all
|
@news = @project.news.limit(5).includes(:author, :project).reorder("#{News.table_name}.created_on DESC").all
|
||||||
@trackers = @project.rolled_up_trackers
|
@trackers = @project.rolled_up_trackers
|
||||||
|
|
||||||
cond = @project.project_condition(Setting.display_subprojects_issues?)
|
cond = @project.project_condition(Setting.display_subprojects_issues?)
|
||||||
|
|
||||||
@open_issues_by_tracker = Issue.visible.open.where(cond).count(:group => :tracker)
|
@open_issues_by_tracker = Issue.visible.open.where(cond).count(:group => :tracker)
|
||||||
@total_issues_by_tracker = Issue.visible.where(cond).count(:group => :tracker)
|
@total_issues_by_tracker = Issue.visible.where(cond).count(:group => :tracker)
|
||||||
|
|
||||||
|
@ -329,6 +336,8 @@ class ProjectsController < ApplicationController
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@project.safe_attributes = params[:project]
|
@project.safe_attributes = params[:project]
|
||||||
|
@Course.safe_attributes=params[:project][:course]
|
||||||
|
@Course.save
|
||||||
if validate_parent_id && @project.save
|
if validate_parent_id && @project.save
|
||||||
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
|
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
|
|
@ -40,7 +40,7 @@ module ProjectsHelper
|
||||||
|
|
||||||
#Added by young
|
#Added by young
|
||||||
def course_settings_tabs
|
def course_settings_tabs
|
||||||
tabs = [{:name => 'info', :action => :edit_project, :partial => 'projects/edit', :label => :label_information_plural},
|
tabs = [{:name => 'info', :action => :edit_project, :partial => 'projects/edit', :label => :label_information_plural, :course=>'1'},
|
||||||
{:name => 'boards', :action => :manage_boards, :partial => 'projects/settings/boards', :label => :label_board_plural},
|
{:name => 'boards', :action => :manage_boards, :partial => 'projects/settings/boards', :label => :label_board_plural},
|
||||||
{:name => 'repositories', :action => :manage_repository, :partial => 'projects/settings/repositories', :label => :label_repository_plural}
|
{:name => 'repositories', :action => :manage_repository, :partial => 'projects/settings/repositories', :label => :label_repository_plural}
|
||||||
]
|
]
|
||||||
|
|
|
@ -4,6 +4,7 @@ class Bid < ActiveRecord::Base
|
||||||
include Redmine::SafeAttributes
|
include Redmine::SafeAttributes
|
||||||
|
|
||||||
belongs_to :author, :class_name => 'User', :foreign_key => :author_id
|
belongs_to :author, :class_name => 'User', :foreign_key => :author_id
|
||||||
|
belongs_to :course
|
||||||
has_many :biding_projects, :dependent => :destroy
|
has_many :biding_projects, :dependent => :destroy
|
||||||
has_many :projects, :through => :biding_projects
|
has_many :projects, :through => :biding_projects
|
||||||
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
||||||
|
|
|
@ -58,7 +58,11 @@ class Project < ActiveRecord::Base
|
||||||
has_many :project_infos, :dependent => :destroy
|
has_many :project_infos, :dependent => :destroy
|
||||||
#end
|
#end
|
||||||
has_one :wiki, :dependent => :destroy
|
has_one :wiki, :dependent => :destroy
|
||||||
# Custom field for the project issues
|
##added by xianbo
|
||||||
|
has_one :course, :dependent => :destroy
|
||||||
|
accepts_nested_attributes_for :course
|
||||||
|
##end
|
||||||
|
# Custom field for the project issues
|
||||||
has_and_belongs_to_many :issue_custom_fields,
|
has_and_belongs_to_many :issue_custom_fields,
|
||||||
:class_name => 'IssueCustomField',
|
:class_name => 'IssueCustomField',
|
||||||
:order => "#{CustomField.table_name}.position",
|
:order => "#{CustomField.table_name}.position",
|
||||||
|
@ -683,6 +687,7 @@ class Project < ActiveRecord::Base
|
||||||
'tracker_ids',
|
'tracker_ids',
|
||||||
'issue_custom_field_ids',
|
'issue_custom_field_ids',
|
||||||
'project_type'
|
'project_type'
|
||||||
|
|
||||||
|
|
||||||
safe_attributes 'enabled_module_names',
|
safe_attributes 'enabled_module_names',
|
||||||
:if => lambda {|project, user| project.new_record? || user.allowed_to?(:select_project_modules, project) }
|
:if => lambda {|project, user| project.new_record? || user.allowed_to?(:select_project_modules, project) }
|
||||||
|
@ -1027,6 +1032,9 @@ class Project < ActiveRecord::Base
|
||||||
def update_position_under_parent
|
def update_position_under_parent
|
||||||
set_or_update_position_under(parent)
|
set_or_update_position_under(parent)
|
||||||
end
|
end
|
||||||
|
def course
|
||||||
|
@course
|
||||||
|
end
|
||||||
|
|
||||||
# Inserts/moves the project so that target's children or root projects stay alphabetically sorted
|
# Inserts/moves the project so that target's children or root projects stay alphabetically sorted
|
||||||
def set_or_update_position_under(target_parent)
|
def set_or_update_position_under(target_parent)
|
||||||
|
|
|
@ -150,8 +150,11 @@ class User < Principal
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_mail_notification
|
def set_mail_notification
|
||||||
|
##add byxianbo
|
||||||
|
thread=Thread.new do
|
||||||
self.mail_notification = Setting.default_notification_option if self.mail_notification.blank?
|
self.mail_notification = Setting.default_notification_option if self.mail_notification.blank?
|
||||||
true
|
true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_hashed_password
|
def update_hashed_password
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
<!--informations-->
|
<!--informations-->
|
||||||
<div class="inf_user_image">
|
<div class="inf_user_image">
|
||||||
<% @project = Project.find_by_id(@project.id)%>
|
<% @project = Project.find_by_id(@project.id)%>
|
||||||
|
<% @course= Course.find_by_extra(@project.identifier)%>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%= link_to image_tag(url_to_avatar(@project), :class => 'avatar2') %></td>
|
<td><%= link_to image_tag(url_to_avatar(@project), :class => 'avatar2') %></td>
|
||||||
|
@ -114,10 +115,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<div>教师名称:XXX</div>
|
<div>教师名称:<%= @course.name%></div>
|
||||||
<div>所在单位:并行与分布重点实验室</div>
|
<div>所在单位:并行与分布重点实验室</div>
|
||||||
<div>课程学分:X学分</div>
|
<div>课程学分:<%=@course.code%></div>
|
||||||
<div>课程学时:XX学时</div>
|
<div>课程学时:<%=@course.time%></div>
|
||||||
<div>XXXX:XXXXXXXX</div>
|
<div>XXXX:XXXXXXXX</div>
|
||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -11,6 +11,11 @@
|
||||||
<em class="info"><%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %></em>
|
<em class="info"><%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %></em>
|
||||||
<% end %></p>
|
<% end %></p>
|
||||||
<p style="margin-left:-10px;"><%= f.text_field :homepage, :size => 60, :style => "width:488px;margin-left: 10px;" %></p>
|
<p style="margin-left:-10px;"><%= f.text_field :homepage, :size => 60, :style => "width:488px;margin-left: 10px;" %></p>
|
||||||
|
<%= f.fields_for @course do |m| %>
|
||||||
|
<p style="margin-left:-10px;"><%= m.text_field :time, :size => 60, :style => "width:488px;margin-left: 10px;" %></p>
|
||||||
|
<p style="margin-left:-10px;"><%= m.text_field :code, :size => 60, :style => "width:488px;margin-left: 10px;" %></p>
|
||||||
|
<p style="margin-left:-10px;"><%= m.text_field :name, :size => 60, :style => "width:488px;margin-left: 10px;" %></p>
|
||||||
|
<% end %>
|
||||||
<p style="margin-left:-10px;"><%= f.check_box :is_public, :style => "margin-left:10px;" %></p>
|
<p style="margin-left:-10px;"><%= f.check_box :is_public, :style => "margin-left:10px;" %></p>
|
||||||
<p style="display:none;"><%= f.text_field :project_type, :value => 1 %></p>
|
<p style="display:none;"><%= f.text_field :project_type, :value => 1 %></p>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
<div class="box tabular" style="margin-right:10px;" >
|
<div class="box tabular" style="margin-right:10px;" >
|
||||||
<%= labelled_form_for @project do |f| %>
|
<%= labelled_form_for @project do |f| %>
|
||||||
<%= render :partial => 'form', :locals => { :f => f } %>
|
|
||||||
<%= submit_tag l(:button_save) %>
|
<%= render :partial => 'form', :locals => { :f => f } %>
|
||||||
|
<%= submit_tag l(:button_save) %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
|
@ -252,6 +252,8 @@ zh:
|
||||||
field_principal: 用户/用户组
|
field_principal: 用户/用户组
|
||||||
field_role: 角色
|
field_role: 角色
|
||||||
field_homepage: 主页
|
field_homepage: 主页
|
||||||
|
field_time: 课时
|
||||||
|
field_code: 学分
|
||||||
field_is_public: 公开
|
field_is_public: 公开
|
||||||
field_parent: 上级项目
|
field_parent: 上级项目
|
||||||
field_is_in_roadmap: 在路线图中显示
|
field_is_in_roadmap: 在路线图中显示
|
||||||
|
|
31
db/schema.rb
31
db/schema.rb
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20130827003308) do
|
ActiveRecord::Schema.define(:version => 20130904075504) do
|
||||||
|
|
||||||
create_table "a_user_watchers", :force => true do |t|
|
create_table "a_user_watchers", :force => true do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
|
@ -161,6 +161,17 @@ ActiveRecord::Schema.define(:version => 20130827003308) do
|
||||||
add_index "comments", ["author_id"], :name => "index_comments_on_author_id"
|
add_index "comments", ["author_id"], :name => "index_comments_on_author_id"
|
||||||
add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type"
|
add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type"
|
||||||
|
|
||||||
|
create_table "courses", :force => true do |t|
|
||||||
|
t.integer "tea_id"
|
||||||
|
t.string "name"
|
||||||
|
t.integer "state"
|
||||||
|
t.string "code"
|
||||||
|
t.integer "time"
|
||||||
|
t.string "extra"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "custom_fields", :force => true do |t|
|
create_table "custom_fields", :force => true do |t|
|
||||||
t.string "type", :limit => 30, :default => "", :null => false
|
t.string "type", :limit => 30, :default => "", :null => false
|
||||||
t.string "name", :limit => 30, :default => "", :null => false
|
t.string "name", :limit => 30, :default => "", :null => false
|
||||||
|
@ -565,10 +576,11 @@ ActiveRecord::Schema.define(:version => 20130827003308) do
|
||||||
t.string "title"
|
t.string "title"
|
||||||
t.string "share_type"
|
t.string "share_type"
|
||||||
t.string "url"
|
t.string "url"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at", :null => false
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
|
t.string "description"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "students", :force => true do |t|
|
create_table "students", :force => true do |t|
|
||||||
|
@ -594,6 +606,16 @@ ActiveRecord::Schema.define(:version => 20130827003308) do
|
||||||
t.string "name"
|
t.string "name"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "teachers", :force => true do |t|
|
||||||
|
t.string "tea_name"
|
||||||
|
t.string "location"
|
||||||
|
t.integer "couurse_time"
|
||||||
|
t.integer "course_code"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
t.string "extra"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "time_entries", :force => true do |t|
|
create_table "time_entries", :force => true do |t|
|
||||||
t.integer "project_id", :null => false
|
t.integer "project_id", :null => false
|
||||||
t.integer "user_id", :null => false
|
t.integer "user_id", :null => false
|
||||||
|
@ -663,6 +685,9 @@ ActiveRecord::Schema.define(:version => 20130827003308) do
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count"
|
||||||
|
add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count"
|
||||||
|
|
||||||
create_table "user_tags", :force => true do |t|
|
create_table "user_tags", :force => true do |t|
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.integer "tag_id"
|
t.integer "tag_id"
|
||||||
|
|
Loading…
Reference in New Issue