2013-08-01 10:33:49 +08:00
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2013 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
module AttachmentsHelper
# Displays view/delete links to the attachments of the given object
# Options:
# :author -- author names are not displayed if set to false
# :thumbails -- display thumbnails if enabled in settings
def link_to_attachments ( container , options = { } )
options . assert_valid_keys ( :author , :thumbnails )
if container . attachments . any?
options = { :deletable = > container . attachments_deletable? , :author = > true } . merge ( options )
render :partial = > 'attachments/links' ,
:locals = > { :attachments = > container . attachments , :options = > options , :thumbnails = > ( options [ :thumbnails ] && Setting . thumbnails_enabled? ) }
end
end
2013-09-18 22:56:01 +08:00
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
2013-08-01 10:33:49 +08:00
def render_api_attachment ( attachment , api )
api . attachment do
api . id attachment . id
api . filename attachment . filename
api . filesize attachment . filesize
api . content_type attachment . content_type
api . description attachment . description
api . content_url url_for ( :controller = > 'attachments' , :action = > 'download' , :id = > attachment , :filename = > attachment . filename , :only_path = > false )
api . author ( :id = > attachment . author . id , :name = > attachment . author . name ) if attachment . author
api . created_on attachment . created_on
end
end
2013-12-03 10:37:19 +08:00
def link_to_memo_attachments ( container , options = { } )
options . assert_valid_keys ( :author , :thumbnails )
if container . attachments . any?
options = { :deletable = > deletable? ( container ) , :author = > true } . merge ( options )
render :partial = > 'attachments/links' ,
:locals = > { :attachments = > container . attachments , :options = > options , :thumbnails = > ( options [ :thumbnails ] && Setting . thumbnails_enabled? ) }
end
end
private
def deletable? container , user = User . current
User . current . logged? && ( container . author == user || user . admin? )
end
2014-01-17 16:42:31 +08:00
def hadcommittedhomework ( cur , curb )
@attaches = HomeworkAttach . find_by_sql ( " select * from homework_attaches where(bid_id = #{ curb } ) " )
@attaches . each do | attach |
if attach . user_id == cur
retrun true
end
end
end
2013-12-03 10:37:19 +08:00
2014-03-01 10:14:01 +08:00
# this method is used to get all projects that tagged one tag
# added by william
def get_attachments_by_tag ( tag_name )
Attachment . tagged_with ( tag_name ) . order ( 'created_on desc' )
end
2013-08-01 10:33:49 +08:00
end