# 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 # 获取两种类型的隐藏状态,数量大于0说明是可见 def double_field_show org OrgSubfield.find_by_sql("SELECT * FROM `org_subfields` where organization_id = #{org.id} and (field_type = 'Compstu' or field_type = 'Comptec') and hide = 0;").count end def get_attach_org2(field) org_attachments = field.attachments attachments = User.current.admin? ? org_attachments.first(5) : visable_attachemnts(org_attachments).first(5) attachments.sort_by{|x| x.created_on}.reverse 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 org_user_by_type obj case obj.act_type when "Message" obj.act.author when "News" obj.act.author when "HomeworkCommon" obj.act.user when "Issue" obj.act.author end end def org_title_by_type obj case obj.act_type when "Message" obj.act.parent_id.nil? ? obj.act.subject : obj.act.parent.subject when "News" obj.act.title when "HomeworkCommon" obj.act.name when "Issue" obj.act.subject end end def org_content_by_type obj case obj.act_type when "Message" obj.act.parent_id.nil? ? obj.act.content : obj.act.parent.content when "News" obj.act.description when "HomeworkCommon" obj.act.description when "Issue" obj.act.description end end def org_time_by_type obj case obj.act_type when "Message" obj.act.created_on when "News" obj.act.created_on when "HomeworkCommon" obj.act.created_at when "Issue" obj.act.created_on end end def org_reply_count_type obj case obj.act_type when "HomeworkCommon" obj.act.journals_for_messages.count when "Issue" obj.act.journals.count when "Message" obj.act.children.count when "News" obj.act.comments_count end end # 组织的栏目类型标题 def subfield_title_type obj case obj.org_act_type when "OrgDocumentComment" obj.org_act.title when "Message" obj.org_act.parent_id.nil? ? obj.org_act.subject : obj.org_act.parent.subject when "News" obj.org_act.title when "Issue" obj.org_act.subject end end # 组织的栏目类型时间 def subfield_time_type obj case obj.org_act_type when "OrgDocumentComment" obj.org_act.updated_at when "Message" obj.org_act.updated_on when "News" obj.org_act.created_on end end def subfield_reply_count_type obj case obj.org_act_type when "OrgDocumentComment" obj.org_act.children.count when "Message" obj.org_act.children.count when "News" obj.org_act.comments_count 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 type end # 课程和项目不参与某些模块的排列 def subfield_status_option_default type = [] option1 = [] option1 << "左一" option1 << "1" type << option1 option2 = [] option2 << "左二" option2 << "2" type << option2 option3 = [] option3 << "左三" option3 << "2" type << option3 option4 = [] option4 << "右一" option4 << "3" type << option4 option5 = [] option5 << "右二" option5 << "5" type << option5 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 = "右三" end end # 系统栏目只有管理员才能看到 def subfield_to_addmin?(org) # if User.current.admin? @organization.org_subfields.order("priority") # else # @organization.org_subfields.select { |os| (os.field_type != "Comptec" && os.field_type != "Compstu" && os.field_type != "Comppro" && os.field_type != "Compcou" && os.field_type != "Compact") }.sort_by {|os| os.priority} # end end def get_subfield_acts field unless field.nil? 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') end end def allow_to_create?(org, type) !org_subfield_had_created?(org, type) && User.current.admin? 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 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 = "综合" when "Compcou" result = "课程" when "Comppro" result = "项目" when "Compact" result = "动态" end end # 获取最新动态 # def get_latest_acts # acts = UserActivity.find_by_sql("SELECT * FROM `user_activities` where act_type in ('HomeworkCommon', 'news', 'message', 'Issue') and (container_type = 'Course' or container_type = 'Project') order by created_at limit 10;") # 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").first(5) end def excellent_students 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 = 1 and u.excellent_student = 1 order by course_count desc").first(5) end def excellent_teachers_hide? org org.org_subfields.where(:field_type => "Comptec").first.hide end def excellent_students_hide? org org.org_subfields.where(:field_type => "Compstu").first.hide end #当前学期(2015春季学期) def current_time_and_term course str = "" term = cur_course_term if (course.time == course.end_time && course.term == course.end_term) || (course.end_term.nil? && course.end_time.nil?) || course.time > Time.now.year str = course.time.to_s + course.term.to_s elsif course.time == Time.now.year && set_term_value(cur_course_term) <= set_term_value(course.term) str = course.time.to_s + course.term.to_s elsif course.end_time < Time.now.year || (course.end_time == Time.now.year && set_term_value(cur_course_term) >= set_term_value(course.term)) str = course.end_time.to_s + course.end_term.to_s else str = Time.now.year.to_s + cur_course_term.to_s end str end end