Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/controllers/release_log_configurations_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ class ReleaseLogConfigurationsController < ReleaseLogsBaseController

helper :release_logs

before_filter :authorize_global
before_filter :load_configuration, :only => [:edit, :update, :destroy]
before_filter :load_dependencies, :only => [:new, :edit]
before_action :authorize_global
before_action :load_configuration, :only => [:edit, :update, :destroy]
before_action :load_dependencies, :only => [:new, :edit]

def index
@release_log_configurations = ReleaseLogConfiguration.all
Expand Down
8 changes: 4 additions & 4 deletions app/controllers/release_log_previews_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ class ReleaseLogPreviewsController < ReleaseLogsBaseController

helper :release_logs

before_filter :load_project
before_filter :authorize
before_filter :find_attachments
before_filter :load_release_log
before_action :load_project
before_action :authorize
before_action :find_attachments
before_action :load_release_log

layout false

Expand Down
4 changes: 2 additions & 2 deletions app/controllers/release_log_queues_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ class ReleaseLogQueuesController < ReleaseLogsBaseController

include ReleaseLogsHelper

before_filter :authorize_global
before_filter :load_release_log_queue, :only => [:edit, :update, :destroy]
before_action :authorize_global
before_action :load_release_log_queue, :only => [:edit, :update, :destroy]

def index
@release_log_queues = ReleaseLogQueue.all
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/release_logs_base_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ class ReleaseLogsBaseController < ApplicationController

helper :application

before_filter :set_title
before_action :set_title

protected

Expand Down
31 changes: 24 additions & 7 deletions app/controllers/release_logs_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ class ReleaseLogsController < ReleaseLogsBaseController
helper :attachments
helper :release_logs

before_filter :load_project
before_filter :authorize
before_filter :load_configuration
before_filter :load_release_log, :only => [:edit, :show, :update, :destroy, :clone, :send_notification]
before_action :load_project
before_action :authorize
before_action :load_configuration
before_action :load_release_log, :only => [:edit, :show, :update, :destroy, :clone, :send_notification]

def index
@limit = params[:limit] || DEFAULT_LIMIT
Expand Down Expand Up @@ -197,11 +197,28 @@ def release_log_params
end

def send_release_log_notification(type)
message = ReleaseLogMailer.send(:"release_log_#{type}_notification", @release_log)
message.deliver

@release_log_configuration = @release_log.project.release_log_configuration
@release_log_queue = @release_log_configuration.release_log_queue
recipient_addresses = @release_log_configuration.recipient_addresses
recipient_addresses << @release_log_queue.recipient_addresses if @release_log_queue.present?
recipient_addresses = recipient_addresses.flatten.uniq
logger.info "Recipient Addresses: #{recipient_addresses}"
for email in recipient_addresses
found_emails = EmailAddress.where(["address = ?", email.strip])
for found_email in found_emails
found_users = User.where(["id = ?", found_email.user_id])
message = ReleaseLogMailer.send(:"release_log_#{type}_notification", found_users.first, @release_log)
message.deliver_later
end
end
#message = ReleaseLogMailer.release_log_successful_release_notification(users.first, @release_log)

#ReleaseLogMailer.deliver_release_log_successful_release_notification(@release_log)

notification = @release_log.release_log_notifications.build(:notification_type => type, :sent_at => Time.now)
notification.release_log_queue_id = @project.release_log_configuration.release_log_queue.id if @project.queue_release_log_enabled?
notification.message_id = message.message_id
notification.message_id = message.message_id
notification.title = @release_log.title
notification.save!
true
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/release_logs_home_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class ReleaseLogsHomeController < ReleaseLogsBaseController

helper :release_logs

before_filter :authorize_global
before_action :authorize_global

def index
@release_logs = ReleaseLog.latest
Expand Down
6 changes: 3 additions & 3 deletions app/models/release_log.rb
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@ class ReleaseLog < ActiveRecord::Base
}

validates :title, :presence => true, :length => { :maximum => 255 }
validates :released_at, :presence => { :unless => 'release_upon_publish' }
validates :released_at, :presence => { :unless => lambda { release_upon_publish } }
validates :release_log_entries, :association_count => { :minimum => 1 }
validates :rollback_reason, :presence => { :if => 'rolled_back_at.present?' }
validates :cancellation_reason, :presence => { :if => 'cancelled_at.present?' }
validates :rollback_reason, :presence => { :if => lambda { rolled_back_at.present? } }
validates :cancellation_reason, :presence => { :if => lambda { cancelled_at.present? } }
validate :unique_issues

def created_on
Expand Down
2 changes: 1 addition & 1 deletion app/models/release_log_configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class ReleaseLogConfiguration < ActiveRecord::Base
scope :for_project, lambda { |project_id| where(:project_id => project_id) }

validates :project_id, :presence => true, :uniqueness => true
validates :email_notification_recipients, :presence => { :unless => 'release_log_queue_id.present?' }, :multiple_email_addresses => true
validates :email_notification_recipients, :presence => { :unless => lambda { release_log_queue_id.present? } }, :multiple_email_addresses => true

def enabled?
enabled
Expand Down
2 changes: 1 addition & 1 deletion app/models/release_log_queue.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class ReleaseLogQueue < ActiveRecord::Base

accepts_nested_attributes_for :release_log_entry_categories, :allow_destroy => true

validates :release_log_entry_categories, :association_count => { :minimum => 1, :unless => 'group_by_issue_type' }
validates :release_log_entry_categories, :association_count => { :minimum => 1, :unless => lambda { group_by_issue_type } }

validates :name,
:presence => true,
Expand Down
2 changes: 1 addition & 1 deletion init.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'monkey/patcher'

ActionDispatch::Callbacks.to_prepare do
ActiveSupport::Reloader.to_prepare do
ReleaseLogs::Patcher.register_patches
end

Expand Down
21 changes: 11 additions & 10 deletions lib/release_log_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ class ReleaseLogMailer < Mailer

helper :release_logs

def prepare_mail(release_log)
def prepare_mail(user, release_log)
@release_log = release_log

@release_log_configuration = release_log.project.release_log_configuration
Expand All @@ -28,34 +28,35 @@ def prepare_mail(release_log)
recipient_addresses << @release_log_queue.recipient_addresses if @release_log_queue.present?
recipient_addresses = recipient_addresses.flatten.uniq

mail(:to => recipient_addresses,

mail(:to => user,
:subject => "#{release_log.title} - #{I18n.translate(:release_logs_release_notifications)}") do |format|
format.html {
render :text => template
}
end
end

def release_log_publish_notification(release_log)
prepare_mail(release_log) do
def release_log_publish_notification(user, release_log)
prepare_mail(user, release_log) do
render_to_string(:template => 'release_log_mailer/release_log_publish_notification')
end
end

def release_log_rollback_notification(release_log)
prepare_mail(release_log) do
def release_log_rollback_notification(user, release_log)
prepare_mail(user, release_log) do
render_to_string(:template => 'release_log_mailer/release_log_rollback_notification')
end
end

def release_log_cancel_notification(release_log)
prepare_mail(release_log) do
def release_log_cancel_notification(user, release_log)
prepare_mail(user, release_log) do
render_to_string(:template => 'release_log_mailer/release_log_cancel_notification')
end
end

def release_log_successful_release_notification(release_log)
prepare_mail(release_log) do
def release_log_successful_release_notification(user, release_log)
prepare_mail(user, release_log) do
render_to_string(:template => 'release_log_mailer/release_log_successful_release_notification')
end
end
Expand Down
8 changes: 4 additions & 4 deletions lib/release_logs/searches/release_log_query.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,13 @@ def initialize(h)
:inclusion => RELEASE_LOG_STATUSES,
:allow_blank => true

validates :query_project, :presence => { :if => 'query_project_and_subprojects == "true"' }
validates :query_project, :presence => { :if => lambda { query_project_and_subprojects == "true" } }

validates :temporal_type, :presence => { :if => 'temporal_to.present? || temporal_from.present?'}
validates :temporal_type, :presence => { :if => lambda { temporal_to.present? || temporal_from.present? } }

validates :temporal_from, :presence => { :if => 'temporal_type.present? && !temporal_to.present?'}
validates :temporal_from, :presence => { :if => lambda { temporal_type.present? && !temporal_to.present? } }

validates :temporal_to, :presence => { :if => 'temporal_type.present? && !temporal_from.present?'}
validates :temporal_to, :presence => { :if => lambda { temporal_type.present? && !temporal_from.present? } }

def to_key
end
Expand Down