From 8f94985186b1faa812a0e6701656fe60d71b0b3d Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 6 Jun 2014 10:28:37 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E4=BD=9C=E4=B8=9A=E6=97=B6?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD=202.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=88=90=E5=91=98tab=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_attach_controller.rb | 56 ++++---- app/helpers/homework_attach_helper.rb | 24 ++++ app/helpers/projects_helper.rb | 1 - .../homework_attach/_edit_homework.html.erb | 23 +++ .../homework_attach/_homework_member.html.erb | 131 ++++++++++++++++++ config/locales/zh.yml | 1 + 6 files changed, 209 insertions(+), 27 deletions(-) create mode 100644 app/views/homework_attach/_edit_homework.html.erb create mode 100644 app/views/homework_attach/_homework_member.html.erb diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index 1c3e8cabe..f7564a2de 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -20,36 +20,40 @@ class HomeworkAttachController < ApplicationController def create bid = Bid.find params[:bid_id] if User.current.admin? || User.current.member_of?(bid.courses.first) - user_id = params[:user_id] - bid_id = params[:bid_id] - sta = 0 - name = params[:new_form][:name] - description = params[:new_form][:description] - options = { - :user_id => user_id, - :state => sta, - :name => name, - :description => description, - :bid_id => bid_id - } - - - #@homework_list = @bid.homeworks - - @homework = HomeworkAttach.new(options) - @homework.save_attachments(params[:attachments]) - render_attachment_warning_if_needed(@homework) - - if @homework.save - respond_to do |format| - format.html { redirect_to project_for_bid_path @homework.bid } - format.json { head :no_content } + if bid.homeworks.where("user_id = ?",User.current).count == 0 + user_id = params[:user_id] + bid_id = params[:bid_id] + sta = 0 + name = params[:new_form][:name] + description = params[:new_form][:description] + options = { + :user_id => user_id, + :state => sta, + :name => name, + :description => description, + :bid_id => bid_id + } + + + #@homework_list = @bid.homeworks + + @homework = HomeworkAttach.new(options) + @homework.save_attachments(params[:attachments]) + render_attachment_warning_if_needed(@homework) + + if @homework.save + respond_to do |format| + format.html { redirect_to project_for_bid_path @homework.bid } + format.json { head :no_content } + end + else + render_403 :message => :notice_not_authorized end else - render_403 :message => :notice_not_authorized + render_403 :message => :notice_has_homework end else - + render_403 :message => :notice_not_authorized end end diff --git a/app/helpers/homework_attach_helper.rb b/app/helpers/homework_attach_helper.rb index 1abac35d6..8dc3eadb3 100644 --- a/app/helpers/homework_attach_helper.rb +++ b/app/helpers/homework_attach_helper.rb @@ -1,10 +1,34 @@ module HomeworkAttachHelper + #判断是否具有删除的权限 def attach_delete(project) if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.roles&Role.where('id = ? or id = ?', 3, 7)).size >0) || project.user_id == User.current.id) true else false end + end + #作业添加、编辑界面的tab页 + def homework_settings_tabs f + @project = Project.find 205 + @f = f + tabs = [{:name => 'info', :action => :edit_homework, :partial => 'homework_attach/edit_homework', :label => :label_information_plural}, + {:name => 'members', :action => :homework_member, :partial => 'homework_attach/homework_member', :label => :label_member_plural} + ] + #tabs.select {|tab| User.current.allowed_to?(tab[:action], @homework)} + end + + def render_principals_for_new_members(project) + scope = Principal.active.sorted.not_member_of(project).like(params[:q]) + principal_count = scope.count + principal_pages = Redmine::Pagination::Paginator.new principal_count, 10, params['page'] #by young + principals = scope.offset(principal_pages.offset).limit(principal_pages.per_page).all + + s = content_tag('div', principals_check_box_tags_ex('membership[user_ids][]', principals), :id => 'principals') + + links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) {|text, parameters, options| + link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q], :format => 'js')), :remote => true + } + s + content_tag('div', content_tag('ul', links), :class => 'pagination_new') end end \ No newline at end of file diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 085035a2c..c859fec23 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -150,7 +150,6 @@ module ProjectsHelper {:name => 'members', :action => :manage_members, :partial => 'projects/settings/members', :label => :label_member_plural} ] tabs.select {|tab| User.current.allowed_to?(tab[:action], @project)} - end #Ended by young diff --git a/app/views/homework_attach/_edit_homework.html.erb b/app/views/homework_attach/_edit_homework.html.erb new file mode 100644 index 000000000..25f90f186 --- /dev/null +++ b/app/views/homework_attach/_edit_homework.html.erb @@ -0,0 +1,23 @@ +
+ 标 题: + <%= @f.text_field "name", :required => true, :size => 60, :style => "width:490px;" %> +
++ 描 述: + + <%= @f.text_area "description", :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;margin-left:10px;" %> + +
++
+ +<%= l(:label_user) %> | +<%= l(:label_role_plural) %> | ++ <%= call_hook(:view_projects_settings_members_table_header, :project => @project) %> + | ||
---|---|---|---|---|
<%= link_to_user member.principal %> | +
+
+ <%= h member.roles.sort.collect(&:to_s).join(', ') %>
+
+ <%= form_for(member, {:as => :membership, :remote => true, :url => membership_path(member),
+ :method => :put,
+ :html => {:id => "member-#{member.id}-roles-form", :class => 'hol'}}
+ ) do |f| %>
+
+
+ <% roles.each do |role| %>
+ <%= submit_tag l(:button_change), :class => "small" %> + <%= link_to_function l(:button_cancel), + "$('#member-#{member.id}-roles').show(); $('#member-#{member.id}-roles-form').hide(); return false;" + %> + <% end %> + |
+
+ <% if @project.project_type == 1 %>
+ <% if member.roles.first.to_s == "Manager" %>
+ + <% else %> + | + <%= link_to_function l(:button_edit), + "$('#member-#{member.id}-roles').hide(); $('#member-#{member.id}-roles-form').show(); return false;", + :class => 'icon icon-edit' %> + <%= delete_link membership_path(member), + :remote => true, + :data => (!User.current.admin? && member.include?(User.current) ? {:confirm => l(:text_own_membership_delete_confirmation)} : {}) if member.deletable? %> + | + <% end %> + <% else %> ++ <%= link_to_function l(:button_edit), + "$('#member-#{member.id}-roles').hide(); $('#member-#{member.id}-roles-form').show(); return false;", + :class => 'icon icon-edit' %> + <%= delete_link membership_path(member), + :remote => true, + :data => (!User.current.admin? && member.include?(User.current) ? {:confirm => l(:text_own_membership_delete_confirmation)} : {}) if member.deletable? %> + | + <% end %> + + <%= call_hook(:view_projects_settings_members_table_row, {:project => @project, :member => member}) %> +
<%= l(:label_no_data) %>
+ <% end %> +