Can you help me to make a plugin out of this "source" modification?
Added by Jorge S. over 11 years ago
First of all, I don't know almost anything about ruby, had to Google some syntax.
I know PHP and ActiveRecord framework Yii.
I needed to email people that is part of a project, whenever a version was closed.
It is really basic, not much of "I want to be notified" mark for it, but hardcoded for all users. I would like to make it part of a plugin.
models/mailer.rb
# Notificar version cerrada
def version_closed(version)
redmine_headers 'Project' => version.project.identifier
@author = User.current
@version = version
@version_url = url_for(:controller => 'versions', :action => 'show', :id => version.id)
mail :to => version.recipients,
:subject => "Version cerrada: #{version.name}"
end
models/version.rb
after_save :enviar_aviso_version_cerrada
def enviar_aviso_version_cerrada
logger.info(YAML::dump(self))
if closed?
then
Mailer.version_closed(self).deliver
end
end
def recipients
project.recipients_closed_project_version
end
models/project.rb
# Los mails de todos los usuarios del proyecto
def recipients_closed_project_version
notified_users_all.collect {|user| user.mail}
end
# Returns the users that should be notified on project events
def notified_users_all
members.select {|m| m.principal.present?}.collect {|m| m.principal}
end
views/mailer/version_closed.html.erb (empty for now)
views/mailer/version_closed.text.erb (Empty for now)
Thanks a lot!