diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 6c62c642a..397235f4b 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -598,6 +598,113 @@ class AdminController < ApplicationController format.html end end + + # 获取申请的高校列表 + # status: 0 未审批; 1 已批阅; + def applied_schools + @name = params[:name] + @apply_status = ApplyAddSchools.where(:status => 0).order('created_at desc') + @apply_count = @apply_status.count + + @apply_pages = Paginator.new @apply_count, 30, params['page'] || 1 + @apply_status = paginateHelper @apply_status, 30 + + @page = (params['page'] || 1).to_i - 1 + respond_to do |format| + format.html + end + end + + def has_applied_schools + @name = params[:name] + @has_apply_status = ApplyAddSchools.where("status = 1 or status = 2").order('created_at desc') + @has_apply_count = @has_apply_status.count + + @has_apply_pages = Paginator.new @has_apply_count, 30, params['page'] || 1 + @has_apply_status = paginateHelper @has_apply_status, 30 + + @page = (params['page'] || 1).to_i - 1 + respond_to do |format| + format.html + end + end + + # 批准未审批的高校 + # 消息发送,发送对象为申请人 + # status: 0表示未批准; status:1表示已批准; status: 2表示已更改; status: 3表示已拒绝 + def approve_applied_schools + applied_school = ApplyAddSchools.find params[:id] + applied_school.update_column('status', 1) unless applied_school.nil? + school = applied_school.school + school.update_attribute("province", applied_school.province) + AppliedMessage.create(:user_id => applied_school.user_id, :status => 1, :viewed => true, :applied_id => applied_school.id, :applied_type => "ApplyAddSchools", :name => applied_school.name ) + # School.create(:user_id => applied_school.user_id, :status => 1, :viewed => true, :applied_id => applied_school.id, :applied_type => "ApplyAddSchools", :name => applied_school.name ) + respond_to do |format| + format.html{ redirect_to unapplied_schools_url } + end + end + + # 更改申请的高校名称 + # REDO: 修改该字段 + # REDO: 同步修改使用了改名称的用户单位 + def edit_applied_schools + aas = ApplyAddSchools.find(params[:applied_id]) + # aas.update_attribute(:name, params[:name]) + #applied_add_school = ApplyAddSchools.where(:name => aas.name) + school = School.find params[:school_id] + begin + aas.update_attribute(:status, 2) + AppliedMessage.create(:user_id => aas.user_id, :status => 2, :viewed => true, :applied_id => aas.id, :applied_type => "ApplyAddSchools", :name => school[0].name ) + users = UserExtensions.where("school_id = #{aas.school_id}") + users.each do |user| + user.update_column("school_id", school[0].id) + end + aas.school.destroy + aas.update_attribute(:school_id, school[0].id) + rescue Exception => e + puts e + end + # applied_schools = ApplyAddSchools.find params[:applied_id] + # applied_schools.update_column('name', params[:name]) + redirect_to unapplied_schools_url + end + + def all_schools + apply_schools = ApplyAddSchools.where("status != 1") + apply_school_ids = apply_schools.empty? ? "(-1)" : "(" + apply_schools.map{|sc| sc.school_id}.join(',') + ")" + if !params[:search].nil? + search = "%#{params[:search].to_s.strip.downcase}%" + @schools = School.where("id not in #{apply_school_ids} and #{School.table_name}.name like :p",:p=>search) + #@schools = School.all + else + #@course = @user.courses.where("is_delete = 0 and #{Course.table_name}.id != #{homework.course_id}").select { |course| @user.allowed_to?(:as_teacher,course)} + @schools = School.where("id not in #{apply_school_ids}") + end + @edit_id = params[:school_id] + @search = params[:search] + respond_to do |format| + format.js + end + end + + # 删除申请的高校 + # REDO: destroy关联删除 + # REDO: 删除确认提示,是否删除 + # REDO: 给申请人发送消息 + def delete_applied_schools + applied_school = ApplyAddSchools.find(params[:id]) + applied_school.update_attribute(:status, 3) + AppliedMessage.create(:user_id => applied_school.user_id, :status => 3, :viewed => true, :applied_id => applied_school.id, :applied_type => "ApplyAddSchools", :name => applied_school.name ) + users = UserExtensions.where("school_id = #{applied_school.school_id}") + users.each do |user| + user.update_column("school_id", nil) + end + applied_school.school.destroy + respond_to do |format| + format.html{ redirect_to unapplied_schools_url } + end + end + #移动端版本管理 def mobile_version @versions = PhoneAppVersion.reorder('created_at desc') diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb index d02a7d859..dd3169905 100644 --- a/app/controllers/school_controller.rb +++ b/app/controllers/school_controller.rb @@ -169,6 +169,7 @@ class SchoolController < ApplicationController school = School.new school.name = params[:name].strip school.pinyin = Pinyin.t(params[:name].strip, splitter: '') + school.province = params[:province] #status 0未处理 1通过 2拒绝 applyschool = ApplyAddSchools.new @@ -180,7 +181,7 @@ class SchoolController < ApplicationController applyschool.city = params[:city] applyschool.address = params[:address] applyschool.remarks = params[:remarks] - + applyschool.user_id = User.current.id if applyschool.save data[:school_id] = school.id else diff --git a/app/models/applied_message.rb b/app/models/applied_message.rb new file mode 100644 index 000000000..de07dae22 --- /dev/null +++ b/app/models/applied_message.rb @@ -0,0 +1,21 @@ +class AppliedMessage < ActiveRecord::Base + # status: 0表示未批准; status:1表示已批准; status: 2表示已拒绝 + attr_accessible :applied_id, :applied_type, :status, :user_id, :viewed, :name + belongs_to :applied ,:polymorphic => true + belongs_to :apply_add_schools + belongs_to :user + has_many :message_alls, :class_name => 'MessageAll', :as =>:message, :dependent => :destroy + + validates :user_id,presence: true + validates :applied_id,presence: true + validates :applied_type, presence: true + after_create :add_user_message + + # 因为要排序所以需要写入总表 + def add_user_message + if MessageAll.where("message_type = '#{self.class.to_s}' and message_id = '#{self.id}'").first.nil? + self.message_alls << MessageAll.new(:user_id => self.user_id, :viewed => false) + end + end + +end diff --git a/app/models/apply_add_schools.rb b/app/models/apply_add_schools.rb index efa56e808..573a494ef 100644 --- a/app/models/apply_add_schools.rb +++ b/app/models/apply_add_schools.rb @@ -1,4 +1,16 @@ class ApplyAddSchools < ActiveRecord::Base + # status:0 未审批 ; 1 已批阅 attr_accessible :address, :city, :name, :province, :remarks, :school_id, :status + has_many :applied_messages, :class_name =>'AppliedMessage', :as => :applied belongs_to :school + + after_create :send_massage + + #给系统所有管理发送消息 + def send_massage + users = User.where(:admin => 1) + users.each do |user| + self.applied_messages << AppliedMessage.new(:user_id => user.id, :viewed => false, :status => false) + end + end end diff --git a/app/views/admin/_all_schools.html.erb b/app/views/admin/_all_schools.html.erb new file mode 100644 index 000000000..0ecb38544 --- /dev/null +++ b/app/views/admin/_all_schools.html.erb @@ -0,0 +1,56 @@ +<%= stylesheet_link_tag 'css/common','css/popup' %> + +
+
更改为
+
+ +
+ + +
+
+ <%= render :partial => "admin/update_school_form", :locals => {:schools => schools, :edit_id => edit_id} %> +
+
+ \ No newline at end of file diff --git a/app/views/admin/_tab_has_applied_applied.erb b/app/views/admin/_tab_has_applied_applied.erb new file mode 100644 index 000000000..6ae501b0c --- /dev/null +++ b/app/views/admin/_tab_has_applied_applied.erb @@ -0,0 +1,6 @@ +
+ +
\ No newline at end of file diff --git a/app/views/admin/_update_school_form.html.erb b/app/views/admin/_update_school_form.html.erb new file mode 100644 index 000000000..f006dcdc0 --- /dev/null +++ b/app/views/admin/_update_school_form.html.erb @@ -0,0 +1,27 @@ +<%= form_tag admin_edit_applied_schools_path(:applied_id =>edit_id), :id => 'schools_list_form' %> +
+ <%#= hidden_field_tag(:send_id, edit_id) %> +
+ <% if !schools.empty? %> + <% schools.each do |school| %> + + <% end %> + <% end %> +
+
+
+ +
+
+ 确定 +
+
+ 取消 +
+
+
\ No newline at end of file diff --git a/app/views/admin/all_schools.js.erb b/app/views/admin/all_schools.js.erb new file mode 100644 index 000000000..7a53a25dc --- /dev/null +++ b/app/views/admin/all_schools.js.erb @@ -0,0 +1,11 @@ +<% if params[:search].nil? %> +$("#ajax-modal").html('<%= escape_javascript( render :partial => 'admin/all_schools', :locals => {:schools => @schools, :edit_id => @edit_id}) %>'); +showModal('ajax-modal', '452px'); +$('#ajax-modal').siblings().remove(); +$('#ajax-modal').before(""); +$('#ajax-modal').parent().css("top","50%").css("left","50%"); +$('#ajax-modal').parent().addClass("popbox").addClass("resourceUploadPopup"); +$('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); +<% else %> +$("#schools_list").html("<%= escape_javascript(render :partial => 'admin/update_school_form', :locals => {:schools => @schools, :edit_id => @edit_id}) %>"); +<% end %> \ No newline at end of file diff --git a/app/views/admin/applied_schools.html.erb b/app/views/admin/applied_schools.html.erb new file mode 100644 index 000000000..4f48897ce --- /dev/null +++ b/app/views/admin/applied_schools.html.erb @@ -0,0 +1,90 @@ +

+ <%=l(:label_applied_shcools)%> +

+ +<%= render 'tab_has_applied_applied' %> + +<%= form_tag({}, :method => :get) do %> +
+ + <%= text_field_tag 'name', params[:name], :size => 30, :placeholder => '输入单位名称进行搜索' %> + <%= submit_tag l(:button_apply ), :class => "small", :name => nil %> + <%= link_to l(:button_clear), {:controller => 'admin', :action => 'applied_shcools'}, :class => 'icon icon-reload' %> +
+<% end %> +  + +
+ + + + + + + + + + + + + + <% @apply_status.each do |apply| %> + <% if apply.status == 0 %> + "> + + + + + + + + + <% unless apply.remarks.empty? %> + + + + + <% end %> + <% end %> + <% end %> + +
+ 序号 + + 单位名称 + + 地区 + + 详细地址 + + 用户 + + 创建时间 + + 操作 +
+ <%= apply.id %> + + <%= apply.name %> + + <%= apply.province + apply.city %> + + <%= apply.address %> + + <% count = UserExtensions.where("school_id = #{apply.school_id}").count %> + <%= count %> + + <%= format_date(apply.created_at) %> + + <%= link_to( l(:label_approve), { :controller => 'admin', :action => 'approve_applied_schools', :id => apply.id }, :class => 'icon-del') %> + <%= link_to( l(:button_delete), { :controller => 'admin', :action => 'delete_applied_schools', :id => apply.id },:method => :delete, :confirm => l(:text_are_you_sure), :class => 'icon-del') %> + <%=link_to '更改', admin_all_schools_path(:school_id =>apply.id), :remote => true %> + +
+ + + <%= apply.remarks %> +
+
\ No newline at end of file diff --git a/app/views/admin/has_applied_schools.html.erb b/app/views/admin/has_applied_schools.html.erb new file mode 100644 index 000000000..07459fa0f --- /dev/null +++ b/app/views/admin/has_applied_schools.html.erb @@ -0,0 +1,86 @@ +

+ <%=l(:label_applied_shcools)%> +

+ +<%= render 'tab_has_applied_applied' %> + +<%= form_tag({}, :method => :get) do %> +
+ + <%= text_field_tag 'name', params[:name], :size => 30, :placeholder => '输入单位名称进行搜索' %> + <%= submit_tag l(:button_apply ), :class => "small", :name => nil %> + <%= link_to l(:button_clear), {:controller => 'admin', :action => 'applied_shcools'}, :class => 'icon icon-reload' %> +
+<% end %> +  + +
+ + + + + + + + + + + + + + <% @has_apply_status.each do |apply| %> + <% if apply.status == 1 || apply.status == 2%> + "> + + + + + + + + + <% unless apply.remarks.empty? %> + + + + + <% end %> + <% end %> + <% end %> + +
+ 序号 + + 单位名称 + + 地区 + + 详细地址 + + 原名 + + 创建时间 + + 操作 +
+ <%= apply.id %> + + <%= (School.find apply.school_id).name %> + + <%= (School.find apply.school_id).province %> + + <%= apply.address %> + + <%= apply.name %> + + <%= format_date(apply.created_at) %> + + <%= link_to( l(:button_delete), { :controller => 'admin', :action => 'delete_applied_schools', :id => apply.id },:method => :delete, :confirm => l(:text_are_you_sure), :class => 'icon-del') %> +
+ + + <%= apply.remarks %> +
+
\ No newline at end of file diff --git a/app/views/users/_user_message_applied.html.erb b/app/views/users/_user_message_applied.html.erb new file mode 100644 index 000000000..0a4924c27 --- /dev/null +++ b/app/views/users/_user_message_applied.html.erb @@ -0,0 +1,34 @@ +<% if ma.class == AppliedMessage %> + + <% if ma.applied_type == "ApplyAddSchools" %> + + <% end %> +<% end %> \ No newline at end of file diff --git a/app/views/users/user_messages.html.erb b/app/views/users/user_messages.html.erb index 1ff8adc57..2baa9f2f2 100644 --- a/app/views/users/user_messages.html.erb +++ b/app/views/users/user_messages.html.erb @@ -34,6 +34,8 @@ <%= render :partial => 'users/user_message_org', :locals => {:ma => ma} %> + <%# 申请类消息 %> + <%= render :partial => 'users/user_message_applied', :locals => {:ma => ma} %> <% end %>