191 lines
5.8 KiB
Ruby
191 lines
5.8 KiB
Ruby
# encoding: utf-8
|
|
module OrganizationsHelper
|
|
include ApplicationHelper
|
|
include FilesHelper
|
|
|
|
|
|
def find_user_not_in_current_org_by_name org
|
|
if params[:q] && params[:q].lstrip.rstrip != ""
|
|
scope = Principal.active.sorted.not_member_of_org(org).like(params[:q])
|
|
else
|
|
scope = []
|
|
end
|
|
principals = paginateHelper scope,10
|
|
s = content_tag('ul', project_member_check_box_tags_ex('membership[user_ids][]', principals), :class => 'mb5', :id => 'principals')
|
|
links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true){|text, parameters, options|
|
|
link_to text, org_member_autocomplete_org_member_index_path( parameters.merge(:q => params[:q],:flag => true,:org=>org, :format => 'js')), :remote => true
|
|
}
|
|
s + content_tag('ul', links,:class => 'wlist',:style=>'float:left !important', :id => "org_member_pagination_links" )
|
|
end
|
|
|
|
def get_default_name field
|
|
case field.name
|
|
when 'activity' then
|
|
return '动态'
|
|
when 'course' then
|
|
return '课程'
|
|
when 'project' then
|
|
return '项目'
|
|
end
|
|
end
|
|
|
|
def get_message_org(org_id, field_id)
|
|
OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and org_subfield_id = #{field_id} and parent_id is null order by updated_at desc limit 8;")
|
|
end
|
|
|
|
def get_message_reply_org(org_id, ids)
|
|
# OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and parent_id is not null order by updated_at desc limit 1;")
|
|
OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and parent_id in (#{ids}) order by updated_at desc limit 1;")
|
|
end
|
|
|
|
def get_attach_org(field_id)
|
|
Attachment.find_by_sql("SELECT * FROM `attachments` where container_id =#{field_id} and container_type = 'OrgSubfield' and is_public =1 order by created_on limit 6;")
|
|
end
|
|
|
|
def get_attach_org2(field)
|
|
org_attachments = field.attachments
|
|
attachments = User.current.admin? ? org_attachments : visable_attachemnts(org_attachments)
|
|
return attachments.sort_by{|x| x.created_on}.reverse.first(6)
|
|
# Attachment.find_by_sql("SELECT * FROM `attachments` where container_id =#{field_id} and container_type = 'OrgSubfield' and is_public =1 order by created_on limit 6;")
|
|
end
|
|
|
|
# 从内容中获取路径
|
|
def get_image_path_from_content content
|
|
r = Regexp.new(/src="\/files\/uploads\/image(.+?)"/)
|
|
if r.match(content).nil?
|
|
image_path = nil
|
|
else
|
|
image_path = r.match(content)[1]
|
|
end
|
|
end
|
|
|
|
#排列下拉框
|
|
def subfield_status_option
|
|
type = []
|
|
option1 = []
|
|
option1 << "左一"
|
|
option1 << "1"
|
|
type << option1
|
|
# option2 = []
|
|
# option2 << "中一"
|
|
# option2 << "2"
|
|
# type << option2
|
|
option3 = []
|
|
option3 << "左二"
|
|
option3 << "3"
|
|
type << option3
|
|
option4 = []
|
|
option4 << "左三"
|
|
option4 << "4"
|
|
type << option4
|
|
option5 = []
|
|
option5 << "左四"
|
|
option5 << "5"
|
|
type << option5
|
|
option6 = []
|
|
option6 << "右一"
|
|
option6 << "6"
|
|
type << option6
|
|
option7 = []
|
|
option7 << "右二"
|
|
option7 << "7"
|
|
type << option7
|
|
option8 = []
|
|
option8 << "右三"
|
|
option8 << "8"
|
|
type << option8
|
|
type
|
|
end
|
|
|
|
# 课程和项目不参与某些模块的排列
|
|
def subfield_status_option_default
|
|
type = []
|
|
option1 = []
|
|
option1 << "左一"
|
|
option1 << "1"
|
|
type << option1
|
|
option3 = []
|
|
option3 << "左二"
|
|
option3 << "3"
|
|
type << option3
|
|
option4 = []
|
|
option4 << "左三"
|
|
option4 << "4"
|
|
type << option4
|
|
option6 = []
|
|
option6 << "右一"
|
|
option6 << "6"
|
|
type << option6
|
|
type
|
|
end
|
|
|
|
def subfield_list_type subfield
|
|
case subfield.to_i
|
|
when 1
|
|
resulet = "左一"
|
|
when 2
|
|
resulet = "左二"
|
|
when 3
|
|
resulet = "左二"
|
|
when 4
|
|
resulet = "左三"
|
|
when 5
|
|
resulet = "左四"
|
|
when 6
|
|
resulet = "右一"
|
|
when 7
|
|
resulet = "右二"
|
|
when 8
|
|
resulet = "右三"
|
|
end
|
|
end
|
|
|
|
|
|
def get_subfield_acts field
|
|
org_subfield = OrgSubfield.find(field.id)
|
|
org_subfield_ids = org_subfield.org_document_comments.map(&:id) << 0
|
|
org_acts = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{org_subfield.id})").order('updated_at desc')
|
|
org_acts
|
|
end
|
|
|
|
def org_subfield_had_created?(org, type)
|
|
sub_field = org.org_subfields.select{|subfield| subfield.field_type == type}
|
|
result = sub_field.length > 0 ? true : false
|
|
result
|
|
end
|
|
|
|
def org_subfield_type(field)
|
|
case field.field_type
|
|
when "Post"
|
|
result = "帖子"
|
|
when "Resource"
|
|
result = "资源"
|
|
when "Compstu"
|
|
result = "学生"
|
|
when "Comptec"
|
|
result = "教师"
|
|
when "Complex"
|
|
result = "综合"
|
|
end
|
|
end
|
|
|
|
def org_teacher_resource_count user
|
|
results = Attachment.find_by_sql("SELECT * FROM attachments where author_id = #{user.id};").count
|
|
end
|
|
|
|
def org_teacher_course_count user
|
|
results = Course.find_by_sql("select * from courses where courses.tea_id = #{user.id}").count
|
|
end
|
|
|
|
def org_student_course_count user
|
|
course_ids = user.courses.map { |c| c.is_delete == 0 && c.id}
|
|
results = Member.find_by_sql("select id from courses where courses.tea_id = #{user.id}").count
|
|
end
|
|
|
|
def excellent_teachers
|
|
User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count
|
|
from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 and u.excellent_teacher =1 order by course_count desc")
|
|
end
|
|
|
|
end
|