diff --git a/Gemfile b/Gemfile index f59c92077..b14c25664 100644 --- a/Gemfile +++ b/Gemfile @@ -20,8 +20,13 @@ gem "builder", "3.0.0" gem 'acts-as-taggable-on', '2.4.1' gem 'spreadsheet' gem 'ruby-ole' +<<<<<<< HEAD gem 'email_verifier', path: 'lib/email_verifier' +======= +#gem 'email_verifier', path: 'lib/email_verifier' +gem 'rufus-scheduler' +>>>>>>> szzh group :development do gem 'grape-swagger' gem 'grape-swagger-ui', git: 'https://github.com/guange2015/grape-swagger-ui.git' diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 9b1e045e3..aab9d7b69 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -283,4 +283,43 @@ class AdminController < ApplicationController end end + #企业主页定制 + def enterprise_page_made + @enterprise_page = FirstPage.find_by_page_type('enterprise') + if @enterprise_page.nil? + @enterprise_page = FirstPage.new + @enterprise_page.page_type = 'enterprise' + end + if request.get? + @first_page = FirstPage.find_by_page_type('project') + elsif request.post? + @first_page = FirstPage.find_by_page_type('project') + @first_page.web_title = params[:web_title] + @enterprise_page.web_title = params[:web_title] + @enterprise_page.title = params[:course_title] + @enterprise_page.image_width = params[:image_width] + @enterprise_page.image_height = params[:image_height] + @enterprise_page.description = params[:course_description] + if @first_page.save && @enterprise_page.save + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_update) + redirect_to enterprise_page_made_url + } + format.api { render_api_ok } + end + else + respond_to do |format| + flash.now[:error] = "#{l :label_first_page_create_fail}: #{@first_page.errors.full_messages[0]}\n\t#{@enterprise_page.errors.full_messages[0]}" + #flash.now[:error] = "#{l :label_first_page_create_fail}: #{@course_page.errors.full_messages[0]}" + format.html { + render :action => 'enterprise_page_made' + } + format.api { render_validation_errors(@first_page) } + format.api { render_validation_errors(@enterprise_page) } + end + end + end + end + end diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 7653be94d..a55abd123 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -5,6 +5,7 @@ class CoursesController < ApplicationController helper :members helper :words + before_filter :authorize1, :only => [:show, :feedback] menu_item :overview menu_item :feedback, :only => :feedback menu_item :homework, :only => :homework @@ -254,8 +255,8 @@ class CoursesController < ApplicationController end @is_remote = true @result_count = @results.count - @results = paginateHelper @results - + @results = paginateHelper @results, 10 + @search_name = q end def addgroups @@ -428,17 +429,34 @@ class CoursesController < ApplicationController # @results = paginateHelper @results@score_sort_by = "desc" @is_remote = true @score_sort_by = params[:sort_by] if params[:sort_by] + @search_name = params[:search_name] if params[:search_name] group_id = params[:group_id] - if group_id == '0' - page = params[:page].nil? ? 0 : (params['page'].to_i - 1) - @results = student_homework_score(0,page, 10,@score_sort_by) + if !@search_name.nil? + if group_id == '0' + page = params[:page].nil? ? 0 : (params['page'].to_i - 1) - @results = paginateHelper_for_members @results, 10 + @results = searchmember_by_name(student_homework_score(0,0,0,@score_sort_by), @search_name) + @result_count = @results.count + @results = paginateHelper @results, 10 + else + @group = CourseGroup.find(group_id) + @results = searchmember_by_name(student_homework_score(group_id, 0, 0,@score_sort_by),@search_name) + @result_count = @results.count + @results = paginateHelper @results, 10 + end else - @group = CourseGroup.find(group_id) - @results = student_homework_score(group_id, 0, 0,@score_sort_by) - @results = paginateHelper @results, 10 + if group_id == '0' + page = params[:page].nil? ? 0 : (params['page'].to_i - 1) + @results = student_homework_score(0,page, 10,@score_sort_by) + + @results = paginateHelper_for_members @results, 10 + else + @group = CourseGroup.find(group_id) + @results = student_homework_score(group_id, 0, 0,@score_sort_by) + @results = paginateHelper @results, 10 + end end + end # 显示每个学生的作业评分详情 def show_member_score diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 8d6943f02..d2a253c2a 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -17,6 +17,7 @@ class MessagesController < ApplicationController include ApplicationHelper + before_filter :authorize1, :only => [:show] menu_item :boards default_search_scope :messages before_filter :find_board, :only => [:new, :preview,:edit] diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index 2df17d73f..b44e8a348 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -17,6 +17,7 @@ class NewsController < ApplicationController layout 'base_projects'# by young + before_filter :authorize1, :only => [:show] default_search_scope :news model_object News before_filter :find_model_object, :except => [:new, :create, :index] diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 64706887b..5054fd5c1 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -19,12 +19,13 @@ # Description 封装代码,简化代码,格式化代码, class ProjectsController < ApplicationController layout :select_project_layout - - menu_item :overview + before_filter :authorize1, :only => [:show] + menu_item :overview, :only => :show menu_item :roadmap, :only => :roadmap menu_item :settings, :only => :settings menu_item :homework, :only => [:homework, :new_homework] menu_item :feedback, :only => :feedback + menu_item :share, :only => :share before_filter :find_project, :except => [ :index, :search,:list, :new, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise,:view_homework_attaches] diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 6704346a5..9001546dc 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -25,17 +25,30 @@ class WelcomeController < ApplicationController before_filter :entry_select, :only => [:index] def index - unless params[:project].nil? - @cur_projects = Project.find(params[:project]) - @organization = @cur_projects.enterprise_name - @organization_projects = Project.find_by_sql(["select * from projects where enterprise_name =? ", @organization]) + # 企业版定制: params[:project]为传过来的参数 + unless params[:organization].nil? + @cur_projects = Project.find(params[:organization]) + @organization = @cur_projects.enterprise_name + @organization_projects = current_user.admin? ? Project.where("enterprise_name =? ", @organization) : Project.all_public.where("enterprise_name =? ", @organization) @e_count = @organization_projects.count - if @e_count < 9 - part_count = 9 - @e_count - # @part_projects = find_all_hot_project part_count, order - @part_projects = find_miracle_project(part_count, 3,"score desc") + @part_projects = [] + # 取十个 + @organization_projects.each do |obj| + break if(@organization_projects[10] == obj) + @part_projects << Project.visible.find_by_id("#{obj.id}") unless obj.id.nil? end + # 不够十个的用最火项目替代 + @e_count < 9 ? @part_projects = find_miracle_project( 9 - @e_count, 3,"score desc") : @part_projects + # 配置文件首页定制 + @enterprise_page = FirstPage.find_by_page_type('enterprise') + if @enterprise_page.nil? + @enterprise_page = FirstPage.new + @enterprise_page.page_type = 'enterprise' + end + # 主页配置部分结束 + end + # end 企业版定制结束 if @first_page.nil? || @first_page.sort_type.nil? @projects = find_miracle_project(10, 3,"score desc") else diff --git a/app/models/forum.rb b/app/models/forum.rb index e47d18b02..baa8e6260 100644 --- a/app/models/forum.rb +++ b/app/models/forum.rb @@ -23,7 +23,7 @@ class Forum < ActiveRecord::Base acts_as_taggable scope :by_join_date, order("created_at DESC") - after_create :send_email + #after_create :send_email def reset_counters! self.class.reset_counters!(id) end diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index c71fbaf47..39618e43b 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -22,8 +22,8 @@ class JournalsForMessage < ActiveRecord::Base :foreign_key => 'jour_id', :conditions => "#{self.table_name}.jour_type = 'Project' " belongs_to :course, - :foreign_key => 'jour_id', - :conditions => "#{self.table_name}.jour_type = 'Course' " + :foreign_key => 'jour_id' + belongs_to :jour, :polymorphic => true belongs_to :user diff --git a/app/models/mailer.rb b/app/models/mailer.rb index f42c20acc..85ce46e8b 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -27,6 +27,80 @@ class Mailer < ActionMailer::Base { :host => Setting.host_name, :protocol => Setting.protocol } end + # author: alan + # 根据用户选择发送个人日报或周报 + # 发送内容: 项目【缺陷,讨论区,新闻】,课程【通知,留言,新闻】, 贴吧, 个人留言 + def send_for_user_activities(user, date_to, days) + date_from = date_to - days.days + + # 生成token用于直接点击登录 + token = Token.new(:user =>user , :action => 'autologin') + token.save + @token = token + + @user_url = url_for(my_account_url(user,:token => @token.value)) + # 查询user参加的项目及课程 + projects = user.projects + courses = user.courses + project_ids = projects.map{|project| project.id}.join(",") + course_ids = courses.map {|course| course.id}.join(",") + + # 查询user的缺陷,包括发布的,跟踪的以及被指派的缺陷 + @issues = Issue.find_by_sql("select DISTINCT i.* from issues i, watchers w + where (i.assigned_to_id = #{user.id} or i.author_id = #{user.id} + or (w.watchable_type = 'Issue' and w.watchable_id = i.id and w.user_id = #{user.id})) + and (i.created_on between #{date_from} and #{date_to}) order by i.created_on desc") + + # 查询课程作业,包括老师发布的作业,以及user提交作业 + @bids ||= [] # 老师发布的作业 + courses.each do |course| + @bids << course.homeworks.where("created_at between #{date_from} and #{date_to} order by i.created_on desc") + end + # user 提交的作业 + @homeworks = HomeworkAttach.where("user_id=#{user.id} and (created_at between #{date_from} and #{date_to})") + + # 查询user在课程。项目中发布的讨论帖子 + messages = Message.find_by_sql("select DISTINCT * from messages where author_id = #{user.id} and (created_on between #{date_from} and #{date_to}) order by i.created_on desc") + @course_messages ||= [] + @project_messages ||= [] + messages.each do |msg| + if msg.project + @project_messages << msg + elsif msg.course + @course_messages << msg + end + end + + # 查询user在课程中发布的通知,项目中发的新闻 + @course_news = News.find_by_sql("select DISTINCT n.* from news n + where n.course_id in (#{course_ids}) + and (created_on between #{date_from} and #{date_to}) order by i.created_on desc") + @project_news = News.find_by_sql("select DISTINCT n.* from news n where n.project_id in (#{project_ids}) + and (created_on between #{date_from} and #{date_to}) order by i.created_on desc") + + # 查询user在课程及个人中留言 + @course_journal_messages = JournalsForMessage.find_by_sql("select DISTINCT * from journals_for_messages where + jour_type='Course' and user_id = #{user.id} + and (created_on between #{date_from} and #{date_to}) order by i.created_on desc") + @user_journal_messages = user.journals_for_messages.where("m_parent_id IS NULL and (created_on between #{date_from} and #{date_to})").order('created_on DESC') + + # 查询课程课件更新 + @attachments ||= [] + courses.each do |course| + @attachments << course.attachments.where("created_on between #{date_from} and #{date_to}").order('created_at DESC') + end + # 查询user新建贴吧或发布帖子 + @forums = Forum.find_by_sql("select DISTINCT * from forums where creator_id = #{user.id} and (created_at between #{date_from} and #{date_to}) order by i.created_on desc") + @memos = Memo.find_by_sql("select DISTINCT m.* from memos m, forums f where (m.author_id = #{user.id} or (m.forum_id = f.id and f.creator_id = #{user.id})) + and (created_at between #{date_from} and #{date_to}) order by i.created_on desc") + if days == 1 + subject = "[ #{user.show_name} : #{date_from} - #{l(:label_day_mail)}]" + else + subject = "[ #{user.show_name} : #{l(:label_week_mail)}]" + end + mail :to => user.mail,:subject => "[ #{user.show_name} : #{l(:notice_successful_create)}]" + + end # 贴吧新建贴吧发送邮件 # example Mailer.forum(forum).deliver def forum_add(forum) @@ -50,10 +124,15 @@ class Mailer < ActionMailer::Base @forum_url = url_for(:controller => 'forums', :action => 'show', :id => @forum.id) @issue_author_url = url_for(user_activities_url(@author)) recipients ||= [] - mems = memo.self_and_siblings - mems.each do |mem| - recipients << mem.author.mail unless recipients.include? mem.author.mail - end + # if !memo.parent_id.nil? + # mems = memo.self_and_siblings + # mems.each do |mem| + # recipients << mem.author.mail unless recipients.include? mem.author.mail + # end + # else + # recipients << memo.author.mail + # end + recipients << @author.mail # cc = wiki_content.page.wiki.watcher_recipients - recipients @memo_url = url_for(forum_memo_url(@forum, (@memo.parent_id.nil? ? @memo : @memo.parent_id))) @@ -98,10 +177,7 @@ class Mailer < ActionMailer::Base #收件人邮箱 @recipients ||= [] @members.each do |teacher| - @recipients << teacher.user.mail - - end mail :to => @recipients, :subject => "#{l(:label_your_course)}#{journals_for_message.jour.name}#{l(:label_have_message)} " @@ -138,7 +214,6 @@ class Mailer < ActionMailer::Base @author = issue.author @issue = issue user = User.find_by_mail(recipients) - token = Token.new(:user =>user , :action => 'autologin') token.save @token = token diff --git a/app/models/memo.rb b/app/models/memo.rb index 165f8e144..7d463c28b 100644 --- a/app/models/memo.rb +++ b/app/models/memo.rb @@ -47,7 +47,7 @@ class Memo < ActiveRecord::Base "parent_id", "replies_count" - after_create :add_author_as_watcher, :reset_counters!, :sendmail#,:be_user_score -- 公共区发帖暂不计入得分 + after_create :add_author_as_watcher, :reset_counters! #, :sendmail#,:be_user_score -- 公共区发帖暂不计入得分 # after_update :update_memos_forum after_destroy :reset_counters!#,:down_user_score -- 公共区发帖暂不计入得分 # after_create :send_notification diff --git a/app/models/user.rb b/app/models/user.rb index bef65fe54..cdda07c54 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -24,7 +24,7 @@ class User < Principal DEVELOPER = 3 include Redmine::SafeAttributes - + seems_rateable_rater # Different ways of displaying/sorting users USER_FORMATS = { :firstname_lastname => { @@ -149,7 +149,7 @@ class User < Principal scope :by_join_date, order("created_on DESC") ############################# added by liuping 关注 acts_as_watchable - seems_rateable_rater + has_one :user_extensions,:dependent => :destroy ## end diff --git a/app/views/admin/_tab_partial.html.erb b/app/views/admin/_tab_partial.html.erb index 6b8788a90..917d7dd3f 100644 --- a/app/views/admin/_tab_partial.html.erb +++ b/app/views/admin/_tab_partial.html.erb @@ -4,5 +4,6 @@
  • <%= link_to l(:label_course_first_page), {:action => 'course_page_made'}, class: "#{current_page?(course_page_made_path)? 'selected' : nil }" %>
  • <%= link_to l(:label_contest_first_page), {:action => 'contest_page_made'}, class: "#{current_page?(contest_page_made_path)? 'selected' : nil }" %>
  • <%= link_to l(:label_web_footer_page), {:action => 'web_footer_made'}, class: "#{current_page?(web_footer_made_path)? 'selected' : nil }" %>
  • +
  • <%= link_to l(:label_enterprise_page_made), {:action => 'enterprise_page_made'}, class: "#{current_page?(enterprise_page_made_path)? 'selected' : nil }" %>
  • \ No newline at end of file diff --git a/app/views/admin/enterprise_page_made.html.erb b/app/views/admin/enterprise_page_made.html.erb new file mode 100644 index 000000000..566f09bb8 --- /dev/null +++ b/app/views/admin/enterprise_page_made.html.erb @@ -0,0 +1,39 @@ +

    <%=l(:label_first_page_made)%>

    + +<%= form_tag(:controller => 'admin', :action => 'enterprise_page_made') do %> +

    + + <%= text_field_tag 'web_title', params[:wbe_title],:value => @first_page.web_title, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %> +

    + <%= render 'tab_partial' %> +

    <%=l(:label_enterprise_page_made)%>

    +

    + +

    +
    + <%= render :partial=>"avatar/avatar_form",:style => "display:inline",:locals=> {source:@enterprise_page} %> +
    +

    + + <%= text_field_tag 'image_width', params[:label_image_width],:value => @enterprise_page.image_width,:size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %> +

    +

    + + <%= text_field_tag 'image_height', params[:label_imgae_height], :value => @enterprise_page.image_height,:size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %> +

    +

    + + <%= text_field_tag 'course_title', params[:label_site_title], :value => @enterprise_page.title,:size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %> +

    +

    + + <%= text_area_tag 'course_description',@enterprise_page.description,:rows => 8, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %> +

    + + <%= submit_tag l(:button_save), :class => "small", :name => nil %> +<% end %> +
    + + + +
    \ No newline at end of file diff --git a/app/views/attachments/_links.html.erb b/app/views/attachments/_links.html.erb index 2954adbcb..e604409d3 100644 --- a/app/views/attachments/_links.html.erb +++ b/app/views/attachments/_links.html.erb @@ -1,14 +1,15 @@
    <% for attachment in attachments %>

    - - <% if options[:length] %> - <%= link_to_short_attachment attachment, :class => 'icon icon-attachment', :download => true,:length => options[:length] -%> - <% else %> - <%= link_to_short_attachment attachment, :class => 'icon icon-attachment', :download => true -%> - <% end %> - - +

    + + <% if options[:length] %> + <%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true,:length => options[:length] -%> + <% else %> + <%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true -%> + <% end %> + +
    <% if attachment.is_text? %> <%= link_to image_tag('magnifier.png'), :controller => 'attachments', @@ -19,8 +20,9 @@ <%= h(truncate(" - #{attachment.description}", length: options[:length] ? options[:length]:15, omission: '...')) unless attachment.description.blank? %> - (<%= number_to_human_size attachment.filesize %>) - + ( + <%= number_to_human_size attachment.filesize %>) + <% if options[:deletable] %> <% if attachment.container_type == 'HomeworkAttach' %> <%= link_to image_tag('delete.png'), {:controller => 'attachments', :action => 'delete_homework', :id => attachment.id}, @@ -39,8 +41,8 @@ <% end %> <% end %> <% if options[:wrap] %> -
    -   +
    +   <% end %> <% if options[:author] %> diff --git a/app/views/courses/_member_list.html.erb b/app/views/courses/_member_list.html.erb index dd543ec2c..11bfd9f81 100644 --- a/app/views/courses/_member_list.html.erb +++ b/app/views/courses/_member_list.html.erb @@ -25,7 +25,7 @@
      <% if @subPage_title == l(:label_student_list) %> -
    • <%= link_to '作业积分', member_score_sort_course_path(:sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0)) ,:result => members,method: 'get', remote: true%> +
    • <%= link_to '作业积分', member_score_sort_course_path(:sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true%> <% if @score_sort_by == 'desc' %> <% else %> diff --git a/app/views/layouts/_base_feedback.html.erb b/app/views/layouts/_base_feedback.html.erb index 2039735bc..c4479b43a 100644 --- a/app/views/layouts/_base_feedback.html.erb +++ b/app/views/layouts/_base_feedback.html.erb @@ -8,7 +8,7 @@ html{ overflow-x:hidden;} .custom_service p img {display: inline; margin-top:-5px; vertical-align:middle;} -.scrollsidebar{position:absolute; z-index:999; top:150px;} +.scrollsidebar{position:absolute; z-index:999; top:150px;background:none !important;} .side_content{width:154px; height:auto; overflow:hidden; float:left; } .side_content .side_list {width:154px;overflow:hidden;} .show_btn{ width:0; height:112px; overflow:hidden; margin-top:50px; float:left; cursor:pointer;} diff --git a/app/views/mailer/send_for_user_activities.html.erb b/app/views/mailer/send_for_user_activities.html.erb new file mode 100644 index 000000000..22b071a1f --- /dev/null +++ b/app/views/mailer/send_for_user_activities.html.erb @@ -0,0 +1,337 @@ + + + + + +
      +
      +

      <%= l(:label_course_overview)%>

      + <% unless @course_news.first.nil? %> +
        + +

        + <%= l(:label_course_news) %> + (<%= @course_news.count %>) +

        + + <% @course_news.each do |course_new|%> +
      • + + [ + + <%= link_to course_new.course.name, [:controller => 'courses', :action => 'show', :id => course_new.course_id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to course_new.author, user_activities_url(course_new.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_project_notice) %> + + <%= link_to course_new.title, [:controller => 'news', :action => 'show', :id => course_new.id,:token => @token.value], + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= course_new.created_on %> +
      • + <% end %> + +
        +
      + <% end %> + <% if !@bids.first.nil? || !@homeworks.first.nil? %> +
        + +

        <%= l(:label_homework_overview) %>>(<%= @bids.count %>)

        + <% unless @bids.first.nil?%> + <% @bids.each do |bid| %> +
      • + + [ + + <%= link_to bid.courses.first.name, [:controller => 'courses', :action => 'show', :id => bid.courses.first.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to bid.author, user_activities_url(bid.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_course_homework) %> + + <%= link_to bid.name, course_for_bid(:id => bid.id,:token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= bid.created_on %> +
      • + <% end %> + <% end %> + <% unless @homeworks.first.nil? %> + <% @homeworks.each do |homework| %> +
      • + + [ + + <%= link_to homework.bid.courses.first.name, [:controller => 'courses', :action => 'show', :id => homework.bid.courses.first.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to homework.user, user_activities_url(homework.user,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_course_submit_homework) %> + + <%= link_to homework.name, course_for_bid(:id => homework.bid.id,:token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= homework.created_on %> +
      • + <% end %> + <% end %> + +
        +
      + <% end %> + + <% unless @course_journal_messages.first.nil? %> +
        + +

        + <%= l(:view_course_journals_for_messages) %> + (<%= @course_journal_messages.count %>) +

        + + <% @course_journal_messages.each do |course_journal_message|%> +
      • + + [ + + <%= link_to course_journal_message.course.name, [:controller => 'courses', :action => 'show', :id => course_journal_message.jour_id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to course_journal_message.user, user_activities_url(course_journal_message.user,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_send_course_journals_for_messages) %> + + <%= link_to course_journal_message.notes, [:controller => 'courses', :action => 'feedback', :id => course_journal_message.jour_id,:token => @token.value], + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= course_journal_message.created_on %> +
      • + <% end %> + +
        +
      + <% end %> + + <% unless @course_messages.first.nil? %> +
        + +

        + <%= l(:view_borad_course) %> + (<%= @course_journal_messages.count %>) +

        + + <% @course_messages.each do |course_message|%> +
      • + + [ + + <%= link_to course_message.course.name, [:controller => 'courses', :action => 'show', :id => course_message.course.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to course_message.author, user_activities_url(course_message.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_send_course_messages) %> + + <%= link_to course_message.subject,url_for(course_message.event_url(:token => @token.value)), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= course_message.created_on %> +
      • + <% end %> + +
        +
      + <% end %> + + <% unless @attachments.first.nil? %> +
        +

        + <%= l(:label_course_attendingcontestwork_download) %> + (<%= @attachments.count %>) +

        + + <% @attachments.each do |attachment|%> +
      • + + [ + + <%= link_to attachment.course.name, [:controller => 'courses', :action => 'show', :id => attachment.course.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to attachment.author, user_activities_url(attachment.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_course_file_upload) %> + + <%= link_to attachment.filename,course_files_path(@course,:token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= course_message.created_on %> +
      • + <% end %> + +
      + <% end %> +
      + + +
      +

      <%= l(:label_project_overview)%>

      + <% unless @issues.first.nil? %> +
        +

        + <%= l(:label_issue_tracking) %> + (<%= @issues.count %>) +

        + + <% @issues.each do |issue|%> +
      • + + [ + + <%= link_to issue.project.name, [:controller => 'projects', :action => 'show', :id => issue.project.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to issue.author, user_activities_url(issue.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_project_issue) %> + + <%= link_to issue.subject,url_for(:controller => 'issues', :action => 'show', :id => issue.id, :token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= issue.created_on %> +
      • + <% end %> + +
        +
      + <% end %> + + <% unless @project_messages.first.nil? %> +
        +

        + <%= l(:project_moule_boards_show) %> + (<%= @course_journal_messages.count %>) +

        + + <% @project_messages.each do |project_message|%> +
      • + + [ + + <%= link_to project_message.project.name, [:controller => 'projects', :action => 'show', :id => project_message.project.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to project_message.author, user_activities_url(project_message.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_send_course_messages) %> + + <%= link_to project_message.subject,url_for(project_message.event_url(:token => @token.value)), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= project_message.created_on %> +
      • + <% end %> + +
        +
      + <% end %> + + + +
      + +
      +

      <%= l(:label_activities) %>

      + <% unless @user_journal_messages.first.nil? %> +
        +

        + <%= l(:label_user_message) %> + (<%= @user_journal_messages.count %>) +

        + + <% @user_journal_messages.each do |user_journal_message|%> +
      • + + + <%= link_to user_journal_message.user, user_activities_url(course_journal_message.user,:token => @token.value), + :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + <%= l(:label_show_your_message) %> + + <%= link_to user_journal_message.notes, [:controller => 'courses', :action => 'feedback', :id => course_journal_message.jour_id,:token => @token.value], + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= user_journal_message.created_on %>
      • + + <% end %> + +
        +
      + <% end %> +
      +
      + <%= link_to l(:mail_footer), @user_url, :style => "margin-top:20px;color:#2775d2; margin-left:10px;" %> +
      + + +
      + diff --git a/app/views/mailer/send_for_user_activities.text.erb b/app/views/mailer/send_for_user_activities.text.erb new file mode 100644 index 000000000..03ea31ec3 --- /dev/null +++ b/app/views/mailer/send_for_user_activities.text.erb @@ -0,0 +1,253 @@ +<%= l(:label_course_overview)%> + <% unless @course_news.first.nil? %> + <%= l(:label_course_news) %> + (<%= @course_news.count %>) + + + <% @course_news.each do |course_new|%> + + ▪ + [ + + <%= link_to course_new.course.name, [:controller => 'courses', :action => 'show', :id => course_new.course_id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to course_new.author, user_activities_url(course_new.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_project_notice) %> + + <%= link_to course_new.title, [:controller => 'news', :action => 'show', :id => course_new.id,:token => @token.value], + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> <%= course_new.created_on %> + + <% end %> + + <% end %> + <% if !@bids.first.nil? || !@homeworks.first.nil? %> + <%= l(:label_homework_overview) %><%= @bids.count %> + <% unless @bids.first.nil?%> + <% @bids.each do |bid| %> + ▪ + [ + + <%= link_to bid.courses.first.name, [:controller => 'courses', :action => 'show', :id => bid.courses.first.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to bid.author, user_activities_url(bid.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_course_homework) %> + + <%= link_to bid.name, course_for_bid(:id => bid.id,:token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= bid.created_on %> + + <% end %> + <% end %> + <% unless @homeworks.first.nil? %> + <% @homeworks.each do |homework| %> + ▪[ + + <%= link_to homework.bid.courses.first.name, [:controller => 'courses', :action => 'show', :id => homework.bid.courses.first.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to homework.user, user_activities_url(homework.user,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_course_submit_homework) %> + + <%= link_to homework.name, course_for_bid(:id => homework.bid.id,:token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= homework.created_on %>
    • + <% end %> + <% end %> + + + + <% end %> + + <% unless @course_journal_messages.first.nil? %> + + <%= l(:view_course_journals_for_messages) %> (<%= @course_journal_messages.count %>) + + + <% @course_journal_messages.each do |course_journal_message|%> + + [ + + <%= link_to course_journal_message.course.name, [:controller => 'courses', :action => 'show', :id => course_journal_message.jour_id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to course_journal_message.user, user_activities_url(course_journal_message.user,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_send_course_journals_for_messages) %> + + <%= link_to course_journal_message.notes, [:controller => 'courses', :action => 'feedback', :id => course_journal_message.jour_id,:token => @token.value], + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= course_journal_message.created_on %> + + <% end %> + + + <% end %> + + <% unless @course_messages.first.nil? %> + + <%= l(:view_borad_course) %> + (<%= @course_journal_messages.count %>) + + + <% @course_messages.each do |course_message|%> + + ▪ + [ + + <%= link_to course_message.course.name, [:controller => 'courses', :action => 'show', :id => course_message.course.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to course_message.author, user_activities_url(course_message.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_send_course_messages) %> + + <%= link_to course_message.subject,url_for(course_message.event_url(:token => @token.value)), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= course_message.created_on %> + + <% end %> + + + <% end %> + + <% unless @attachments.first.nil? %> + + <%= l(:label_course_attendingcontestwork_download) %> + (<%= @attachments.count %>) + + + <% @attachments.each do |attachment|%> + ▪[ + + <%= link_to attachment.course.name, [:controller => 'courses', :action => 'show', :id => attachment.course.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to attachment.author, user_activities_url(attachment.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_course_file_upload) %> + + <%= link_to attachment.filename,course_files_path(@course,:token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= course_message.created_on %> + + <% end %> + +
    + <% end %> +
    + + +<%= l(:label_project_overview)%> + <% unless @issues.first.nil? %> + + <%= l(:label_issue_tracking) %> + (<%= @issues.count %>) + + <% @issues.each do |issue|%> + ▪ + [ + + <%= link_to issue.project.name, [:controller => 'projects', :action => 'show', :id => issue.project.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to issue.author, user_activities_url(issue.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_project_issue) %> + + <%= link_to issue.subject,url_for(:controller => 'issues', :action => 'show', :id => issue.id, :token => @token.value), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= issue.created_on %> + <% end %> + + + <% end %> + + <% unless @project_messages.first.nil? %> + + <%= l(:project_moule_boards_show) %> + (<%= @course_journal_messages.count %>) + + <% @project_messages.each do |project_message|%> + ▪[ + + <%= link_to project_message.project.name, [:controller => 'projects', :action => 'show', :id => project_message.project.id, :token => @token.value], + :class=> "wmail_column", + :style=> "width:90px; font-weight: bold; display:block; float:left; color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + ] + + <%= link_to project_message.author, user_activities_url(project_message.author,:token => @token.value), :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%> + <%= l(:label_send_course_messages) %> + + <%= link_to project_message.subject,url_for(project_message.event_url(:token => @token.value)), + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= project_message.created_on %> + <% end %> + + + <% end %> + + + +<%= l(:label_activities) %> + <% unless @user_journal_messages.first.nil? %> + + <%= l(:label_user_message) %> + (<%= @user_journal_messages.count %>) + + <% @user_journal_messages.each do |user_journal_message|%> + ▪ + + <%= link_to user_journal_message.user, user_activities_url(course_journal_message.user,:token => @token.value), + :class => "wmail_name", + :style => "color:#fe5722; float:left;display:block; margin-right:5px; margin-left:5px; width:50px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %> + <%= l(:label_show_your_message) %> + + <%= link_to user_journal_message.notes, [:controller => 'courses', :action => 'feedback', :id => course_journal_message.jour_id,:token => @token.value], + :class => 'wmail_info', + :style => "color:#5a5a5a; float:left; width:400px; margin-right:5px; display:block;color:#1b55a7;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" + %> + <%= user_journal_message.created_on %> + + <% end %> + + + <% end %> +< + + <%= link_to l(:mail_footer), @user_url, :style => "margin-top:20px;color:#2775d2; margin-left:10px;" %> diff --git a/app/views/organizations/index.html.erb b/app/views/organizations/index.html.erb index a5773ba2f..45813ced5 100644 --- a/app/views/organizations/index.html.erb +++ b/app/views/organizations/index.html.erb @@ -5,11 +5,11 @@ <% if @projects.count == 0 %>

    <%= l(:label_enterprise_nil) %>

    <% else %> - <% @projects.each do |project| %> - <% unless project.enterprise_name.blank? %> + <% @projects.each do |organization| %> + <% unless organization.enterprise_name.blank? %> <% end %> <% end %> diff --git a/app/views/poll/_poll.html.erb b/app/views/poll/_poll.html.erb index 644b678b8..33bff6258 100644 --- a/app/views/poll/_poll.html.erb +++ b/app/views/poll/_poll.html.erb @@ -46,7 +46,7 @@ <% else%> -
  • +
  • 发布问卷
  • <% end%> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index aac2c72b4..00543557d 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -158,14 +158,14 @@ <%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %>
    -
    - - <%= link_to l(:label_find_all_comments), respond_path(e.act_id) %> - - - <%= l(:label_comments_count, :count => e.act.commit) %> - -
    + + + + + + + + <% when 'Journal' %> diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 95efcdb0a..3e0a50ceb 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -38,7 +38,7 @@ <%= image_tag '/images/transparent.png', width:@first_page.image_width,height: @first_page.image_height %> <% end %> <% else %> - <%= image_tag '/images/avatars/Project/0', width:@first_page.image_width,height: @first_page.image_height %> + <%= image_tag(url_to_avatar(@enterprise_page), width:@first_page.image_width,height: @first_page.image_height) %> <% end %>
    @@ -47,10 +47,13 @@ <%= @first_page.description.html_safe %> <% end %> <% else %> - - <%= link_to @organization, options={:action => 'index', :enterprise => @organization}, html_options={ :method => 'get', :style => "color: #E8770D"} %> -
    - <%= @first_page.title %> + + <%= @organization %> + +
    + + <%= @enterprise_page.title %> + <% end %>