OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/app/models/cost_query/query_utils.rb

39 lines
1.1 KiB

module CostQuery::QueryUtils
include Redmine::I18n
include Report::QueryUtils
def map_field(key, value)
case key.to_s
when "user_id" then value ? user_name(value.to_i) : ''
when "tweek", "tyear", "tmonth", /_id$/ then value.to_i
when "week" then value.to_i.divmod(100)
when /_(on|at)$/ then value ? value.to_dateish : Time.at(0)
when /^custom_field/ then value.to_s
when "singleton_value" then value.to_i
else super
end
end
def l(*values)
return values.first if values.size == 1 and values.first.respond_to? :to_str
I18n.t(*values)
end
def user_name(id)
# we have no identity map... :(
cache[:user_name][id] ||= User.find(id).name
end
##
# Graceful, internationalized quoted string.
#
# @see quote_string
# @param [Object] str String to quote/translate
# @return [Object] Quoted, translated version
def quoted_label(ident)
"'#{quote_string l(ident)}'"
end
propagate!
end