Patch #26747 ยป 26747-where_first-to-find_by.patch
app/helpers/application_helper.rb | ||
---|---|---|
964 | 964 |
link = link_to_project(p, {:only_path => only_path}, :class => 'project') |
965 | 965 |
end |
966 | 966 |
when 'user' |
967 |
u = User.visible.where(:id => oid, :type => 'User').first
|
|
967 |
u = User.visible.find_by(:id => oid, :type => 'User')
|
|
968 | 968 |
link = link_to_user(u, :only_path => only_path) if u |
969 | 969 |
end |
970 | 970 |
elsif sep == ':' |
... | ... | |
1025 | 1025 |
link = link_to_project(p, {:only_path => only_path}, :class => 'project') |
1026 | 1026 |
end |
1027 | 1027 |
when 'user' |
1028 |
u = User.visible.where("LOWER(login) = :s AND type = 'User'", :s => name.downcase).first
|
|
1028 |
u = User.visible.find_by("LOWER(login) = :s AND type = 'User'", :s => name.downcase)
|
|
1029 | 1029 |
link = link_to_user(u, :only_path => only_path) if u |
1030 | 1030 |
end |
1031 | 1031 |
elsif sep == "@" |
1032 | 1032 |
name = remove_double_quotes(identifier) |
1033 |
u = User.visible.where("LOWER(login) = :s AND type = 'User'", :s => name.downcase).first
|
|
1033 |
u = User.visible.find_by("LOWER(login) = :s AND type = 'User'", :s => name.downcase)
|
|
1034 | 1034 |
link = link_to_user(u, :only_path => only_path) if u |
1035 | 1035 |
end |
1036 | 1036 |
end |
app/models/attachment.rb | ||
---|---|---|
276 | 276 |
def self.find_by_token(token) |
277 | 277 |
if token.to_s =~ /^(\d+)\.([0-9a-f]+)$/ |
278 | 278 |
attachment_id, attachment_digest = $1, $2 |
279 |
attachment = Attachment.where(:id => attachment_id, :digest => attachment_digest).first
|
|
279 |
attachment = Attachment.find_by(:id => attachment_id, :digest => attachment_digest)
|
|
280 | 280 |
if attachment && attachment.container.nil? |
281 | 281 |
attachment |
282 | 282 |
end |
app/models/principal.rb | ||
---|---|---|
132 | 132 |
end |
133 | 133 | |
134 | 134 |
def visible?(user=User.current) |
135 |
Principal.visible(user).where(:id => id).first == self
|
|
135 |
Principal.visible(user).find_by(:id => id) == self
|
|
136 | 136 |
end |
137 | 137 | |
138 | 138 |
# Returns true if the principal is a member of project |
app/models/repository.rb | ||
---|---|---|
247 | 247 |
return nil if name.blank? |
248 | 248 |
s = name.to_s |
249 | 249 |
if s.match(/^\d*$/) |
250 |
changesets.where("revision = ?", s).first
|
|
250 |
changesets.find_by(:revision => s)
|
|
251 | 251 |
else |
252 | 252 |
changesets.where("revision LIKE ?", s + '%').first |
253 | 253 |
end |
app/models/repository/git.rb | ||
---|---|---|
45 | 45 |
return false if v.nil? |
46 | 46 |
v.to_s != '0' |
47 | 47 |
end |
48 |
|
|
48 | ||
49 | 49 |
def report_last_commit=(arg) |
50 | 50 |
merge_extra_info "extra_report_last_commit" => arg |
51 | 51 |
end |
... | ... | |
89 | 89 | |
90 | 90 |
def find_changeset_by_name(name) |
91 | 91 |
if name.present? |
92 |
changesets.where(:revision => name.to_s).first ||
|
|
92 |
changesets.find_by(:revision => name.to_s) ||
|
|
93 | 93 |
changesets.where('scmid LIKE ?', "#{name}%").first |
94 | 94 |
end |
95 | 95 |
end |
app/models/repository/mercurial.rb | ||
---|---|---|
99 | 99 |
if /[^\d]/ =~ s or s.size > 8 |
100 | 100 |
cs = changesets.where(:scmid => s).first |
101 | 101 |
else |
102 |
cs = changesets.where(:revision => s).first
|
|
102 |
cs = changesets.find_by(:revision => s)
|
|
103 | 103 |
end |
104 | 104 |
return cs if cs |
105 | 105 |
changesets.where('scmid LIKE ?', "#{s}%").first |
app/models/role.rb | ||
---|---|---|
293 | 293 |
end |
294 | 294 | |
295 | 295 |
def self.find_or_create_system_role(builtin, name) |
296 |
role = unscoped.where(:builtin => builtin).first
|
|
296 |
role = unscoped.find_by(:builtin => builtin)
|
|
297 | 297 |
if role.nil? |
298 | 298 |
role = unscoped.create(:name => name) do |r| |
299 | 299 |
r.builtin = builtin |
app/models/token.rb | ||
---|---|---|
112 | 112 |
key = key.to_s |
113 | 113 |
return nil unless action.present? && key =~ /\A[a-z0-9]+\z/i |
114 | 114 | |
115 |
token = Token.where(:action => action, :value => key).first
|
|
115 |
token = Token.find_by(:action => action, :value => key)
|
|
116 | 116 |
if token && (token.action == action) && (token.value == key) && token.user |
117 | 117 |
if validity_days.nil? || (token.created_on > validity_days.days.ago) |
118 | 118 |
token |
app/models/user.rb | ||
---|---|---|
492 | 492 |
user = where(:login => login).detect {|u| u.login == login} |
493 | 493 |
unless user |
494 | 494 |
# Fail over to case-insensitive if none was found |
495 |
user = where("LOWER(login) = ?", login.downcase).first
|
|
495 |
user = find_by("LOWER(login) = ?", login.downcase)
|
|
496 | 496 |
end |
497 | 497 |
user |
498 | 498 |
end |
... | ... | |
610 | 610 |
# eg. project.children.visible(user) |
611 | 611 |
Project.unscoped do |
612 | 612 |
return @project_ids_by_role if @project_ids_by_role |
613 |
|
|
613 | ||
614 | 614 |
group_class = anonymous? ? GroupAnonymous : GroupNonMember |
615 | 615 |
group_id = group_class.pluck(:id).first |
616 |
|
|
616 | ||
617 | 617 |
members = Member.joins(:project, :member_roles). |
618 | 618 |
where("#{Project.table_name}.status <> 9"). |
619 | 619 |
where("#{Member.table_name}.user_id = ? OR (#{Project.table_name}.is_public = ? AND #{Member.table_name}.user_id = ?)", self.id, true, group_id). |
620 | 620 |
pluck(:user_id, :role_id, :project_id) |
621 |
|
|
621 | ||
622 | 622 |
hash = {} |
623 | 623 |
members.each do |user_id, role_id, project_id| |
624 | 624 |
# Ignore the roles of the builtin group if the user is a member of the project |
625 | 625 |
next if user_id != id && project_ids.include?(project_id) |
626 |
|
|
626 | ||
627 | 627 |
hash[role_id] ||= [] |
628 | 628 |
hash[role_id] << project_id |
629 | 629 |
end |
630 |
|
|
630 | ||
631 | 631 |
result = Hash.new([]) |
632 | 632 |
if hash.present? |
633 | 633 |
roles = Role.where(:id => hash.keys).to_a |
... | ... | |
798 | 798 |
# Returns the anonymous user. If the anonymous user does not exist, it is created. There can be only |
799 | 799 |
# one anonymous user per database. |
800 | 800 |
def self.anonymous |
801 |
anonymous_user = AnonymousUser.unscoped.first
|
|
801 |
anonymous_user = AnonymousUser.unscoped.find_by(:lastname => 'Anonymous')
|
|
802 | 802 |
if anonymous_user.nil? |
803 | 803 |
anonymous_user = AnonymousUser.unscoped.create(:lastname => 'Anonymous', :firstname => '', :login => '', :status => 0) |
804 | 804 |
raise 'Unable to create the anonymous user.' if anonymous_user.new_record? |
app/models/wiki.rb | ||
---|---|---|
53 | 53 |
@page_found_with_redirect = false |
54 | 54 |
title = start_page if title.blank? |
55 | 55 |
title = Wiki.titleize(title) |
56 |
page = pages.where("LOWER(title) = LOWER(?)", title).first
|
|
56 |
page = pages.find_by("LOWER(title) = LOWER(?)", title)
|
|
57 | 57 |
if page.nil? && options[:with_redirect] != false |
58 | 58 |
# search for a redirect |
59 | 59 |
redirect = redirects.where("LOWER(title) = LOWER(?)", title).first |
lib/redmine/field_format.rb | ||
---|---|---|
155 | 155 |
def target_class |
156 | 156 |
nil |
157 | 157 |
end |
158 |
|
|
158 | ||
159 | 159 |
def possible_custom_value_options(custom_value) |
160 | 160 |
possible_values_options(custom_value.custom_field, custom_value.customized) |
161 | 161 |
end |
... | ... | |
625 | 625 |
value ||= label |
626 | 626 |
checked = (custom_value.value.is_a?(Array) && custom_value.value.include?(value)) || custom_value.value.to_s == value |
627 | 627 |
tag = view.send(tag_method, tag_name, value, checked, :id => nil) |
628 |
s << view.content_tag('label', tag + ' ' + label)
|
|
628 |
s << view.content_tag('label', tag + ' ' + label) |
|
629 | 629 |
end |
630 | 630 |
if custom_value.custom_field.multiple? |
631 | 631 |
s << view.hidden_field_tag(tag_name, '', :id => nil) |
... | ... | |
730 | 730 |
def reset_target_class |
731 | 731 |
@target_class = nil |
732 | 732 |
end |
733 |
|
|
733 | ||
734 | 734 |
def possible_custom_value_options(custom_value) |
735 | 735 |
options = possible_values_options(custom_value.custom_field, custom_value.customized) |
736 | 736 |
missing = [custom_value.value_was].flatten.reject(&:blank?) - options.map(&:last) |
... | ... | |
776 | 776 |
class EnumerationFormat < RecordList |
777 | 777 |
add 'enumeration' |
778 | 778 |
self.form_partial = 'custom_fields/formats/enumeration' |
779 |
|
|
779 | ||
780 | 780 |
def label |
781 | 781 |
"label_field_format_enumeration" |
782 | 782 |
end |
... | ... | |
964 | 964 |
end |
965 | 965 |
else |
966 | 966 |
if custom_value.value.present? |
967 |
attachment = Attachment.where(:id => custom_value.value.to_s).first
|
|
967 |
attachment = Attachment.find_by(:id => custom_value.value.to_s)
|
|
968 | 968 |
extensions = custom_value.custom_field.extensions_allowed |
969 | 969 |
if attachment && extensions.present? && !attachment.extension_in?(extensions) |
970 | 970 |
errors << "#{::I18n.t('activerecord.errors.messages.invalid')} (#{l(:setting_attachment_extensions_allowed)}: #{extensions})" |
... | ... | |
978 | 978 |
def after_save_custom_value(custom_field, custom_value) |
979 | 979 |
if custom_value.saved_change_to_value? |
980 | 980 |
if custom_value.value.present? |
981 |
attachment = Attachment.where(:id => custom_value.value.to_s).first
|
|
981 |
attachment = Attachment.find_by(:id => custom_value.value.to_s)
|
|
982 | 982 |
if attachment |
983 | 983 |
attachment.container = custom_value |
984 | 984 |
attachment.save! |
985 | 985 |
end |
986 | 986 |
end |
987 | 987 |
if custom_value.value_before_last_save.present? |
988 |
attachment = Attachment.where(:id => custom_value.value_before_last_save.to_s).first
|
|
988 |
attachment = Attachment.find_by(:id => custom_value.value_before_last_save.to_s)
|
|
989 | 989 |
if attachment |
990 | 990 |
attachment.destroy |
991 | 991 |
end |
lib/tasks/migrate_from_trac.rake | ||
---|---|---|
453 | 453 |
puts |
454 | 454 | |
455 | 455 |
# Trac 'resolution' field as a Redmine custom field |
456 |
r = IssueCustomField.where(:name => "Resolution").first
|
|
456 |
r = IssueCustomField.find_by(:name => "Resolution")
|
|
457 | 457 |
r = IssueCustomField.new(:name => 'Resolution', |
458 | 458 |
:field_format => 'list', |
459 | 459 |
:is_filter => true) if r.nil? |