Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
Conflicts: db/schema.rb
This commit is contained in:
commit
56aa2fb8dc
|
@ -119,8 +119,8 @@ class AccountController < ApplicationController
|
||||||
@user = User.new
|
@user = User.new
|
||||||
@user.safe_attributes = user_params
|
@user.safe_attributes = user_params
|
||||||
if params[:identity] == "2" # 2 企业
|
if params[:identity] == "2" # 2 企业
|
||||||
#@user.firstname = params[:enterprise_name]
|
@user.firstname = params[:enterprise_name]
|
||||||
#@user.lastname = l(:field_enterprise)
|
@user.lastname = l(:field_enterprise)
|
||||||
end
|
end
|
||||||
@user.admin = false
|
@user.admin = false
|
||||||
@user.register
|
@user.register
|
||||||
|
|
|
@ -893,6 +893,18 @@ class ProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def exit_project
|
||||||
|
@project = Project.find params[:id]
|
||||||
|
if User.current.login?
|
||||||
|
members = Member.where(:user_id => User.current.id, :project_id=>params[:id]).first
|
||||||
|
if members != nil
|
||||||
|
members.destroy
|
||||||
|
end
|
||||||
|
respond_to do |format|
|
||||||
|
format.js
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
private
|
private
|
||||||
|
|
||||||
def memberAccess
|
def memberAccess
|
||||||
|
@ -1039,4 +1051,5 @@ class ProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
#gcmend
|
#gcmend
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1300,10 +1300,10 @@ module ApplicationHelper
|
||||||
start_of_week = start_of_week.to_i % 7
|
start_of_week = start_of_week.to_i % 7
|
||||||
|
|
||||||
tags = javascript_tag(
|
tags = javascript_tag(
|
||||||
"var datepickerOptions={dateFormat: 'yy-mm-dd', firstDay: #{start_of_week}, " +
|
"var datepickerOptions={dateFormat: 'yy-mm-dd',minDate: new Date(), firstDay: #{start_of_week}, " +
|
||||||
"showOn: 'button', buttonImageOnly: true, buttonImage: '" +
|
"showOn: 'button', buttonImageOnly: true, buttonImage: '" +
|
||||||
path_to_image('/images/calendar.png') +
|
path_to_image('/images/calendar.png') +
|
||||||
"', showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true};")
|
"', showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true, onClose: function(dateText, inst) {TimeClose(dateText,inst);}, beforeShow : function(input){TimeBeforeShow(input);} };")
|
||||||
jquery_locale = l('jquery.locale', :default => current_language.to_s)
|
jquery_locale = l('jquery.locale', :default => current_language.to_s)
|
||||||
unless jquery_locale == 'en'
|
unless jquery_locale == 'en'
|
||||||
tags << javascript_include_tag("i18n/jquery.ui.datepicker-#{jquery_locale}.js")
|
tags << javascript_include_tag("i18n/jquery.ui.datepicker-#{jquery_locale}.js")
|
||||||
|
|
|
@ -246,4 +246,7 @@ module WatchersHelper
|
||||||
link_to text, url, :remote => true, :method => method ,:class=>css
|
link_to text, url, :remote => true, :method => method ,:class=>css
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
def exit_project_link(project)
|
||||||
|
link_to("退出项目",exit_cur_project_path(project.id),:remote => true )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -231,12 +231,12 @@ module WelcomeHelper
|
||||||
# modif by nwb
|
# modif by nwb
|
||||||
def find_all_new_hot_course limit = 9 ,school_id = 0
|
def find_all_new_hot_course limit = 9 ,school_id = 0
|
||||||
#sort_project_by_hot_rails 1, 'course_ac_para DESC', limit
|
#sort_project_by_hot_rails 1, 'course_ac_para DESC', limit
|
||||||
time_now = Time.new.strftime("%Y");
|
time_now = Time.new.strftime("%Y")
|
||||||
if school_id
|
if school_id
|
||||||
courses = Course.visible.joins(:course_status).where("#{Course.table_name}.created_at like '%#{time_now}%' and #{Course.table_name}.school_id <>
|
courses = Course.includes(:school, :members).visible.joins(:course_status).where("#{Course.table_name}.created_at like '%#{time_now}%' and #{Course.table_name}.school_id <>
|
||||||
?", school_id).order("course_ac_para DESC").limit(limit).all
|
?", school_id).order("course_ac_para DESC").limit(limit).all
|
||||||
else
|
else
|
||||||
courses = Course.visible.joins(:course_status).where("#{Course.table_name}.created_at like '%#{time_now}%' and #{Course.table_name}.school_id is not NULL
|
courses = Course.includes(:school, :members).visible.joins(:course_status).where("#{Course.table_name}.created_at like '%#{time_now}%' and #{Course.table_name}.school_id is not NULL
|
||||||
").order("course_ac_para DESC").limit(limit).all
|
").order("course_ac_para DESC").limit(limit).all
|
||||||
end
|
end
|
||||||
courses
|
courses
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
class CourseAttachment < ActiveRecord::Base
|
||||||
|
attr_accessible :attachtype, :author_id, :content_type, :description, :digest, :disk_directory, :disk_filename, :downloads, :filename, :filesize, :integer, :is_public
|
||||||
|
end
|
|
@ -0,0 +1,4 @@
|
||||||
|
class ProjectScore < ActiveRecord::Base
|
||||||
|
attr_accessible :project_id, :score
|
||||||
|
belongs_to :project, foreign_key: :project_id
|
||||||
|
end
|
|
@ -1,45 +1,45 @@
|
||||||
<div class="contextual">
|
<div class="contextual">
|
||||||
<%= link_to l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add' %>
|
<%= link_to l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add' %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3><%=l(:label_project_plural)%></h3>
|
<h3><%=l(:label_project_plural)%></h3>
|
||||||
|
|
||||||
<%= form_tag({}, :method => :get) do %>
|
<%= form_tag({}, :method => :get) do %>
|
||||||
<fieldset><legend><%= l(:label_filter_plural) %></legend>
|
<fieldset><legend><%= l(:label_filter_plural) %></legend>
|
||||||
<label for='status'><%= l(:field_status) %> :</label>
|
<label for='status'><%= l(:field_status) %> :</label>
|
||||||
<%= select_tag 'status', project_status_options_for_select(@status), :class => "small", :onchange => "this.form.submit(); return false;" %>
|
<%= select_tag 'status', project_status_options_for_select(@status), :class => "small", :onchange => "this.form.submit(); return false;" %>
|
||||||
<label for='name'><%= l(:label_project) %>:</label>
|
<label for='name'><%= l(:label_project) %>:</label>
|
||||||
<%= text_field_tag 'name', params[:name], :size => 30 %>
|
<%= text_field_tag 'name', params[:name], :size => 30 %>
|
||||||
<%= submit_tag l(:button_apply), :class => "small", :name => nil %>
|
<%= submit_tag l(:button_apply), :class => "small", :name => nil %>
|
||||||
<%= link_to l(:button_clear), {:controller => 'admin', :action => 'projects'}, :class => 'icon icon-reload' %>
|
<%= link_to l(:button_clear), {:controller => 'admin', :action => 'projects'}, :class => 'icon icon-reload' %>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
<div class="autoscroll">
|
<div class="autoscroll">
|
||||||
<table class="list">
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
<thead><tr>
|
<thead><tr>
|
||||||
<th><%=l(:label_project)%></th>
|
<th><%=l(:label_project)%></th>
|
||||||
<th><%=l(:field_is_public)%></th>
|
<th><%=l(:field_is_public)%></th>
|
||||||
<th><%=l(:field_created_on)%></th>
|
<th><%=l(:field_created_on)%></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr></thead>
|
</tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<% project_tree(@projects) do |project, level| %>
|
<% project_tree(@projects) do |project, level| %>
|
||||||
<tr class="<%= cycle("odd", "even") %> <%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
|
<tr class="<%= cycle("odd", "even") %> <%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
|
||||||
<td class="name"><span><%= link_to_project_settings(project, {}, :title => project.short_description) %></span></td>
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=project.name%>'><span><%= link_to_project_settings(project, {}) %></span></td>
|
||||||
<td align="center"><%= checked_image project.is_public? %></td>
|
<td align="center"><%= checked_image project.is_public? %></td>
|
||||||
<td align="center"><%= format_date(project.created_on) %></td>
|
<td align="center"><%= format_date(project.created_on) %></td>
|
||||||
<td class="buttons">
|
<td class="buttons">
|
||||||
<%= link_to(l(:button_archive), { :controller => 'projects', :action => 'archive', :id => project, :status => params[:status] }, :data => {:confirm => l(:text_are_you_sure)}, :method => :post, :class => 'icon icon-lock') unless project.archived? %>
|
<%= link_to(l(:button_archive), { :controller => 'projects', :action => 'archive', :id => project, :status => params[:status] }, :data => {:confirm => l(:text_are_you_sure)}, :method => :post, :class => 'icon icon-lock') unless project.archived? %>
|
||||||
<%= link_to(l(:button_unarchive), { :controller => 'projects', :action => 'unarchive', :id => project, :status => params[:status] }, :method => :post, :class => 'icon icon-unlock') if project.archived? && (project.parent.nil? || !project.parent.archived?) %>
|
<%= link_to(l(:button_unarchive), { :controller => 'projects', :action => 'unarchive', :id => project, :status => params[:status] }, :method => :post, :class => 'icon icon-unlock') if project.archived? && (project.parent.nil? || !project.parent.archived?) %>
|
||||||
<%= link_to(l(:button_copy), { :controller => 'projects', :action => 'copy', :id => project }, :class => 'icon icon-copy') %>
|
<%= link_to(l(:button_copy), { :controller => 'projects', :action => 'copy', :id => project }, :class => 'icon icon-copy') %>
|
||||||
<%= link_to(l(:button_delete), project_path(project), :method => :delete, :class => 'icon icon-del') %>
|
<%= link_to(l(:button_delete), project_path(project), :method => :delete, :class => 'icon icon-del') %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% html_title(l(:label_project_plural)) -%>
|
<% html_title(l(:label_project_plural)) -%>
|
||||||
|
|
|
@ -40,13 +40,13 @@
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<col style="width: 20%" />
|
|
||||||
<col style="width: 10%" />
|
<col style="width: 10%" />
|
||||||
<col style="width: 5%" />
|
<col style="width: 5%" />
|
||||||
<col style="width: 20%" />
|
|
||||||
<col style="width: 5%" />
|
<col style="width: 5%" />
|
||||||
<col style="width: 15%" />
|
<col style="width: 10%" />
|
||||||
<col style="width: 15%" />
|
<col style="width: 5%" />
|
||||||
|
<col style="width: 10%" />
|
||||||
|
<col style="width: 10%" />
|
||||||
<col style="width: 5%" />
|
<col style="width: 5%" />
|
||||||
<col style="width: 5%" />
|
<col style="width: 5%" />
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -46,6 +46,43 @@
|
||||||
<p><%= f.text_field :estimated_hours, :size => 3, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('estimated_hours') %> <%= l(:field_hours) %></p>
|
<p><%= f.text_field :estimated_hours, :size => 3, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('estimated_hours') %> <%= l(:field_hours) %></p>
|
||||||
<% end %>
|
<% end %>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
// window.onload=function(){
|
||||||
|
// var img=$("#issue_due_date").next("img");
|
||||||
|
// img.attr("onclick","SetMinValue();");
|
||||||
|
// }
|
||||||
|
function TimeClose(dateText, inst) {
|
||||||
|
if(inst.id=="issue_start_date"){
|
||||||
|
time=dateText;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var time=new Date();
|
||||||
|
function TimeBeforeShow(input){
|
||||||
|
if(input.id=="issue_due_date"){
|
||||||
|
//var minDate = $(input).datepicker('option', 'minDate');
|
||||||
|
var tempdata=$("#issue_start_date").attr("value");
|
||||||
|
|
||||||
|
$(input).datepicker('option', 'minDate',new Date(tempdata.replace(/-/g, "/")));
|
||||||
|
//$('.selector').datepicker('option', 'minDate', '12/25/2012');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function SetMinValue(){
|
||||||
|
/// var tempdata=$("#issue_start_date").attr("value");
|
||||||
|
//$('.selector').datepicker('option', 'minDate', '12/25/2012');
|
||||||
|
//alert(tempdata);
|
||||||
|
//$("#issue_due_date").datepicker({
|
||||||
|
// minDate: new Date(2014,08,23)
|
||||||
|
//var datepickerOptions=
|
||||||
|
//{dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true};
|
||||||
|
//alert( $('.issue_due_date').length);
|
||||||
|
//$('.selector')[1].datepicker('option', 'minDate', new Date(2014, 0 - 8, 23));
|
||||||
|
//$("#issue_due_date").datepicker(datepickerOptions);
|
||||||
|
//$("##{issue_due_date}").datepicker(datepickerOptions);
|
||||||
|
//$("#issue_due_date").datepicker(
|
||||||
|
// {dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true}
|
||||||
|
//)
|
||||||
|
//});
|
||||||
|
}
|
||||||
function PrecentChange(obj){
|
function PrecentChange(obj){
|
||||||
var _v= obj;
|
var _v= obj;
|
||||||
if(_v==100)
|
if(_v==100)
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<div style="margin-left: 20px;">
|
||||||
|
|
||||||
|
<% if ( !(User.current.member_of? @project) && User.current.login?) %> <!--added by linchun-->
|
||||||
|
<span class="icon-fav icon"></span><%= watcher_link(@project, User.current) %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<!--添加项目申请-->
|
||||||
|
<div style="margin-left: 20px;">
|
||||||
|
<% if ( !(User.current.member_of? @project) && User.current.login?) %>
|
||||||
|
<span class="icon-fav icon"></span>
|
||||||
|
<%= applied_link(@project, User.current) %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--添加退出项目-->
|
||||||
|
<div style="margin-left: 20px;">
|
||||||
|
<% if ((User.current.member_of? @project) && User.current.login?) %>
|
||||||
|
<%= exit_project_link(@project) %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
|
@ -74,20 +74,9 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<!-- end -->
|
<!-- end -->
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-left: 20px;">
|
<div id="join_exit_project_div">
|
||||||
|
<%= render 'layouts/join_exit_project' %>
|
||||||
<% if ( !(User.current.member_of? @project) && User.current.login?) %> <!--added by linchun-->
|
|
||||||
<span class="icon-fav icon"></span><%= watcher_link(@project, User.current) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<!--添加项目申请-->
|
|
||||||
<div style="margin-left: 20px;">
|
|
||||||
<% if ( !(User.current.member_of? @project) && User.current.login?) %>
|
|
||||||
<span class="icon-fav icon"></span>
|
|
||||||
<%= applied_link(@project, User.current) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -161,7 +161,8 @@
|
||||||
|
|
||||||
<td class="comments">
|
<td class="comments">
|
||||||
<div class="wiki">
|
<div class="wiki">
|
||||||
<%= textilizable message, :content, :attachments => message.attachments %>
|
<%#= textilizable message,:content,:attachments => message.attachments %>
|
||||||
|
<%= message.content.html_safe %>
|
||||||
</div>
|
</div>
|
||||||
<%= link_to_attachments message, :author => false %> </td>
|
<%= link_to_attachments message, :author => false %> </td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<% if @project %>
|
<% if @project %>
|
||||||
<%= render :partial => 'project_show', locals: {project: @project} %>
|
<%= render :partial => 'project_show', locals: {project: @project} %>
|
||||||
<% elsif @course %>
|
<% elsif @course %>
|
||||||
<%= render :partial => 'course_show', locals: {course: @course} %>
|
<%= render :partial => 'course_show', locals: {course: @course} %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
<p><label for="new_password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label>
|
<p><label for="new_password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label>
|
||||||
<%= password_field_tag 'new_password_confirmation', nil, :size => 25 %></p>
|
<%= password_field_tag 'new_password_confirmation', nil, :size => 25 %></p>
|
||||||
<%= submit_tag l(:button_apply) %>
|
<%= submit_tag l(:label_button_ok) %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
$('#join_exit_project_div').html("<%= escape_javascript(render(:partial => 'layouts/join_exit_project')) %>");
|
|
@ -0,0 +1,28 @@
|
||||||
|
<% course_list.map do |course| %>
|
||||||
|
<li class='<%= cycle("odd", "even") %>' title=<%= course.description.to_s.gsub(/<\/?.*?>/,"") %>>
|
||||||
|
<div class='avatar'>
|
||||||
|
<%= image_tag(get_course_avatar(course), :class => "avatar-4") %>
|
||||||
|
</div>
|
||||||
|
<!-- 上左下右 -->
|
||||||
|
<div class='desc_item'>
|
||||||
|
<span class=''>
|
||||||
|
<% if (course.school == nil) %>
|
||||||
|
|
||||||
|
<% else %>
|
||||||
|
<%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course', :school_id => course.school.id}, html_options={:method => 'get'} %>
|
||||||
|
<% end %>
|
||||||
|
</span>
|
||||||
|
<span class='font_bolder'>
|
||||||
|
<%= link_to(course.try(:teacher).try(:realname), user_path(course.teacher)) %>
|
||||||
|
<%#=course.try(:teacher).try(:name)%>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class='desc_item text_nowrap'>
|
||||||
|
[<%= get_course_term course %>]
|
||||||
|
<%= link_to(course.name.truncate(30, omission: '...'), course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %>
|
||||||
|
(<%= course.members.count %>人)
|
||||||
|
<%# files_count = course.attachments.count.to_s %>
|
||||||
|
(<%= link_to "#{course.attachments.count.to_s}份", course_files_path(course) %>资料)
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<h1></h1>
|
||||||
|
<p id="errorExplanation">
|
||||||
|
<%= course_title%>
|
||||||
|
</p>
|
||||||
|
<h1></h1>
|
|
@ -88,51 +88,20 @@
|
||||||
<span><%= link_to "更多>>", {:controller => 'courses', :action => 'index', :school_id => nil} %></span>
|
<span><%= link_to "更多>>", {:controller => 'courses', :action => 'index', :school_id => nil} %></span>
|
||||||
|
|
||||||
<div class="d-p-projectlist-box">
|
<div class="d-p-projectlist-box">
|
||||||
<ul class="d-p-projectlist">
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
<ul class="d-p-projectlist">
|
<ul class="d-p-projectlist">
|
||||||
|
|
||||||
<% if User.current.logged? %>
|
<% if User.current.logged? %>
|
||||||
<h1></h1>
|
<li>
|
||||||
<p id="errorExplanation">
|
<%= render :partial => 'no_course_title', :locals => {:course_title => l(:lable_school_no_course)} %>
|
||||||
该学校未开设任何课程,您可以查看其他学校课程
|
|
||||||
</p>
|
|
||||||
<h1></h1>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% find_all_new_hot_course(9, @school_id).map do |course| %>
|
|
||||||
<li class='<%= cycle("odd", "even") %>' title=<%= course.description.to_s.gsub(/<\/?.*?>/,"") %>>
|
|
||||||
<div class='avatar'>
|
|
||||||
<%= image_tag(get_course_avatar(course), :class => "avatar-4") %>
|
|
||||||
</div>
|
|
||||||
<!-- 上左下右 -->
|
|
||||||
<div class='desc_item'>
|
|
||||||
<span class=''>
|
|
||||||
<% if (course.school == nil) %>
|
|
||||||
|
|
||||||
<% else %>
|
|
||||||
<%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course', :school_id => course.school.id}, html_options={:method => 'get'} %>
|
|
||||||
<% end %>
|
|
||||||
</span>
|
|
||||||
<span class='font_bolder'>
|
|
||||||
<%= link_to(course.try(:teacher).try(:realname), user_path(course.teacher)) %>
|
|
||||||
<%#=course.try(:teacher).try(:name)%>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class='desc_item text_nowrap'>
|
|
||||||
[<%= get_course_term course %>]
|
|
||||||
<%= link_to(course.name.truncate(30, omission: '...'), course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %>
|
|
||||||
(<%= "#{memberCount(course)}人" %>)
|
|
||||||
<% files_count = course.attachments.count.to_s %>
|
|
||||||
(<%= link_to "#{files_count}份", course_files_path(course) %>资料)
|
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
|
<%= render :partial => 'course_list', :locals => {:course_list => find_all_new_hot_course(9, @school_id)} %>
|
||||||
|
<% else %>
|
||||||
|
<%= render :partial => 'course_list', :locals => {:course_list => find_all_new_hot_course(10, @school_id)} %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<% if school_course.count < 9 %>
|
<% if school_course.count < 10 %>
|
||||||
<span>
|
<span>
|
||||||
<%= link_to "更多>>", {:controller => 'courses', :action => 'index', :school_id => nil} %>
|
<%= link_to "更多>>", {:controller => 'courses', :action => 'index', :school_id => nil} %>
|
||||||
</span>
|
</span>
|
||||||
|
@ -143,80 +112,12 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="d-p-projectlist-box">
|
<div class="d-p-projectlist-box">
|
||||||
<ul class="d-p-projectlist">
|
<ul class="d-p-projectlist">
|
||||||
|
<%= render :partial => 'course_list', :locals => {:course_list => school_course} %>
|
||||||
</ul>
|
<% if school_course.count < 10 %>
|
||||||
<ul class="d-p-projectlist">
|
|
||||||
<% school_course.map do |course| %>
|
|
||||||
<% if course.school%>
|
|
||||||
<li class='<%= cycle("odd", "even") %>' title=<%= course.description.to_s.gsub(/<\/?.*?>/,"") %>>
|
|
||||||
<div class='avatar'>
|
|
||||||
<%= image_tag(get_course_avatar(course), :class => "avatar-4") %>
|
|
||||||
</div>
|
|
||||||
<!-- 上左下右 -->
|
|
||||||
<div class='desc_item'>
|
|
||||||
<span class=''>
|
|
||||||
<%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course', :school_id => course.school.id}, html_options={:method => 'get'} %>
|
|
||||||
</span>
|
|
||||||
<span class='font_bolder'>
|
|
||||||
<%= link_to(course.try(:teacher).try(:realname), user_path(course.teacher)) %>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class='desc_item text_nowrap'>
|
|
||||||
[<%= get_course_term course %>]
|
|
||||||
<%= link_to(course.name.truncate(30, omission: '...'), course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %>
|
|
||||||
(<%= "#{memberCount(course)}人" %>)
|
|
||||||
<% files_count = course.attachments.count.to_s %>
|
|
||||||
(<%= link_to "#{files_count}份", course_files_path(course) %>资料)
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<div class='join_course_link'>
|
|
||||||
<%# if !course_endTime_timeout?(course) %>
|
|
||||||
<div>
|
|
||||||
<%#= join_in_course(course, User.current) %>
|
|
||||||
</div>
|
|
||||||
<%# end %>
|
|
||||||
</div>
|
|
||||||
-->
|
|
||||||
</li>
|
|
||||||
<%end%>
|
|
||||||
<% end; reset_cycle %>
|
|
||||||
<% if school_course.count < 9 %>
|
|
||||||
<li>
|
<li>
|
||||||
<h1></h1>
|
<%= render :partial => 'no_course_title', :locals => {:course_title => l(:lable_school_less_course)} %>
|
||||||
|
|
||||||
<p id="errorExplanation">
|
|
||||||
该学校开设课程较少,您可以查看其他学校课程
|
|
||||||
</p>
|
|
||||||
</li>
|
</li>
|
||||||
<% find_all_new_hot_course(9 - school_course.count, @school_id).map do |course| %>
|
<%= render :partial => 'course_list', :locals => {:course_list => find_all_new_hot_course(9 - school_course.count, @school_id)} %>
|
||||||
<li class='<%= cycle("odd", "even") %>' title=<%= course.description.to_s.gsub(/<\/?.*?>/,"") %>>
|
|
||||||
<div class='avatar'>
|
|
||||||
<%= image_tag(get_course_avatar(course), :class => "avatar-4") %>
|
|
||||||
</div>
|
|
||||||
<!-- 上左下右 -->
|
|
||||||
<div class='desc_item'>
|
|
||||||
<span class=''>
|
|
||||||
<% if (course.school == nil) %>
|
|
||||||
|
|
||||||
<% else %>
|
|
||||||
<!-- modified by zjc 添加超链接 -->
|
|
||||||
<%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course', :school_id => course.school.id}, html_options={:method => 'get'} %>
|
|
||||||
<% end %>
|
|
||||||
</span>
|
|
||||||
<span class='font_bolder'>
|
|
||||||
<%= link_to(course.try(:teacher).try(:name), user_path(course.teacher)) %>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class='desc_item text_nowrap'>
|
|
||||||
[<%= get_course_term course %>]
|
|
||||||
<%= link_to(course.name.truncate(30, omission: '...'), course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %>
|
|
||||||
(<%= "#{memberCount(course)}人" %> )
|
|
||||||
<% files_count = course.attachments.count.to_i.to_s %>
|
|
||||||
(<%= link_to "#{files_count}份", course_files_path(course) %>资料)
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<div class="wiki wiki-page">
|
<div class="wiki wiki-page">
|
||||||
<%= textilizable content, :text, :attachments => content.page.attachments,
|
<%= textilizable content, :text, :attachments => content.page.attachments,
|
||||||
:edit_section_links => (@sections_editable && {:controller => 'wiki', :action => 'edit', :project_id => @page.project, :id => @page.title}) %>
|
:edit_section_links => (@sections_editable && {:controller => 'wiki', :action => 'edit', :project_id => @page.project, :id => @page.title}) %>
|
||||||
|
<%#= content.text.html_safe %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<%= wiki_page_breadcrumb(@page) %>
|
<%= wiki_page_breadcrumb(@page) %>
|
||||||
|
|
||||||
|
<script src="/javascripts/ckeditor/ckeditor.js?1404953555" type="text/javascript"></script>
|
||||||
<h3><%= h @page.pretty_title %></h3>
|
<h3><%= h @page.pretty_title %></h3>
|
||||||
|
|
||||||
<%= form_for @content, :as => :content,
|
<%= form_for @content, :as => :content,
|
||||||
|
@ -12,8 +13,15 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= error_messages_for 'content' %>
|
<%= error_messages_for 'content' %>
|
||||||
|
|
||||||
|
<div class="actions" style="max-width:680px">
|
||||||
|
<p style="max-width:680px;"><%=text_area_tag 'content[text]', @text, :required => true, :id => 'editor02', :cols => 100, :rows => 25 %></p>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var ckeditor=CKEDITOR.replace('editor02');
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="box tabular">
|
<div class="box tabular">
|
||||||
<%= text_area_tag 'content[text]', @text, :cols => 100, :rows => 25,
|
<%#= text_area_tag 'content[text]', @text, :cols => 100, :rows => 25,
|
||||||
:class => 'wiki-edit', :accesskey => accesskey(:edit) %>
|
:class => 'wiki-edit', :accesskey => accesskey(:edit) %>
|
||||||
|
|
||||||
<!--p style="max-width:680px"><input id="editor02" required="true" /><%#= f.text_area :comments, :required => true, :id => 'editor02' %></p>
|
<!--p style="max-width:680px"><input id="editor02" required="true" /><%#= f.text_area :comments, :required => true, :id => 'editor02' %></p>
|
||||||
|
@ -31,7 +39,7 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<p><label><%= l(:field_comments) %></label><%= f.text_field :comments, :size => 120 %></p>
|
<p style="width: 100%;"><label><%= l(:field_comments) %></label><%= f.text_field :comments, :style => "width:75%;" %></p>
|
||||||
<p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p>
|
<p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1197,6 +1197,7 @@ en:
|
||||||
label_tags_issue_description: issue description
|
label_tags_issue_description: issue description
|
||||||
label_tags_all_objects: all objects
|
label_tags_all_objects: all objects
|
||||||
label_apply_project: Apply Project
|
label_apply_project: Apply Project
|
||||||
|
label_exit_project: Exit Project
|
||||||
label_apply_project_waiting: "Application has been submitted, please wait for administrator review."
|
label_apply_project_waiting: "Application has been submitted, please wait for administrator review."
|
||||||
label_unapply_project: Unsubscribe
|
label_unapply_project: Unsubscribe
|
||||||
|
|
||||||
|
|
|
@ -1409,6 +1409,7 @@ zh:
|
||||||
label_tags_issue_description: 问题描述
|
label_tags_issue_description: 问题描述
|
||||||
label_tags_all_objects: 所有
|
label_tags_all_objects: 所有
|
||||||
label_apply_project: 申请加入
|
label_apply_project: 申请加入
|
||||||
|
label_exit_project: 退出项目
|
||||||
label_apply_project_waiting: 已处理申请,请等待管理员审核
|
label_apply_project_waiting: 已处理申请,请等待管理员审核
|
||||||
label_unapply_project: 取消申请
|
label_unapply_project: 取消申请
|
||||||
|
|
||||||
|
@ -2100,4 +2101,7 @@ zh:
|
||||||
# ajax异步验证
|
# ajax异步验证
|
||||||
modal_valid_passing: 可以使用
|
modal_valid_passing: 可以使用
|
||||||
label_bug: 漏洞
|
label_bug: 漏洞
|
||||||
|
|
||||||
|
lable_school_no_course: 该学校未开设任何课程,您可以查看其他学校课程
|
||||||
|
lable_school_less_course: 该学校开设课程较少,您可以查看其他学校课程
|
||||||
|
|
|
@ -510,6 +510,7 @@ RedmineApp::Application.routes.draw do
|
||||||
|
|
||||||
get 'projects/:id/repository/:repository_id', :to => 'repositories#show', :path => nil
|
get 'projects/:id/repository/:repository_id', :to => 'repositories#show', :path => nil
|
||||||
get 'projects/:id/repository', :to => 'repositories#show', :path => nil
|
get 'projects/:id/repository', :to => 'repositories#show', :path => nil
|
||||||
|
get 'projects/:id/exit', :to => 'projects#exit_project', :as => 'exit_cur_project'
|
||||||
|
|
||||||
# additional routes for having the file name at the end of url
|
# additional routes for having the file name at the end of url
|
||||||
get 'attachments/:id/:filename', :to => 'attachments#show', :id => /\d+/, :filename => /.*/, :as => 'named_attachment'
|
get 'attachments/:id/:filename', :to => 'attachments#show', :id => /\d+/, :filename => /.*/, :as => 'named_attachment'
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
class CreateProjectScores < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :project_scores do |t|
|
||||||
|
t.string :project_id
|
||||||
|
t.integer :score
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,20 @@
|
||||||
|
class CreateCourseAttachments < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :course_attachments do |t|
|
||||||
|
t.string :filename
|
||||||
|
t.string :disk_filename
|
||||||
|
t.integer :filesize
|
||||||
|
t.string :content_type
|
||||||
|
t.string :digest
|
||||||
|
t.integer :downloads
|
||||||
|
t.string :author_id
|
||||||
|
t.string :integer
|
||||||
|
t.string :description
|
||||||
|
t.string :disk_directory
|
||||||
|
t.integer :attachtype
|
||||||
|
t.integer :is_public
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddColunToCourseAttachments < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :course_attachments, :container_id, :integer, :default => 0
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,29 @@
|
||||||
|
class UpdateCourseAttachments < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
attachments = Attachment.where(" container_type = 'Course'")
|
||||||
|
attachments.each do |attachment|
|
||||||
|
course_attachment = CourseAttachment.new
|
||||||
|
course_attachment.container_id = attachment.container_id
|
||||||
|
course_attachment.filename = attachment.filename
|
||||||
|
course_attachment.disk_filename = attachment.disk_filename
|
||||||
|
course_attachment.filesize = attachment.filesize
|
||||||
|
course_attachment.content_type = attachment.content_type
|
||||||
|
course_attachment.digest = attachment.digest
|
||||||
|
course_attachment.downloads = attachment.downloads
|
||||||
|
course_attachment.author_id = attachment.author_id
|
||||||
|
course_attachment.created_at = attachment.created_on
|
||||||
|
course_attachment.description = attachment.description
|
||||||
|
course_attachment.disk_directory = attachment.disk_directory
|
||||||
|
course_attachment.attachtype = attachment.attachtype
|
||||||
|
course_attachment.is_public = attachment.is_public
|
||||||
|
course_attachment.save(:validate => false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
coll = CourseAttachment.all
|
||||||
|
coll.each do |model|
|
||||||
|
model.destroy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
||||||
|
|
||||||
|
one:
|
||||||
|
project_id: MyString
|
||||||
|
score: 1
|
||||||
|
|
||||||
|
two:
|
||||||
|
project_id: MyString
|
||||||
|
score: 1
|
|
@ -0,0 +1,7 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class ProjectScoreTest < ActiveSupport::TestCase
|
||||||
|
# test "the truth" do
|
||||||
|
# assert true
|
||||||
|
# end
|
||||||
|
end
|
Loading…
Reference in New Issue