Я хотел бы добавить настраиваемое поле фильтра на страницу «Добавить новость» в Redmine, чтобы при добавлении новой новости я мог выбрать группу пользователей, которым должно быть отправлено электронное письмо.
Само поле представляет собой список групп пользователей Redmine, и каждый пользователь относится как минимум к одной из них.
Кто-нибудь сделал это? Мы ценим любые предложения
Я нашел 3 файла, связанных с проблемой:
- /приложение/контроллер/news_controller.rb
- /app/models/news.rb
- /app/views/новости/_form.html.erb
Environment: Redmine version 2.2.1.stable.11156 Ruby version 1.8.7 (x86_64-linux) Rails version 3.2.11 Environment production Database adapter MySQL Redmine plugins: no plugin installed
Пока сделал только 1 модификацию в Redmine, которая рассылает добавленные новости всем зарегистрированным пользователям. Файл: /app/modelsmailer.rb
Обзор:
РЕДАКТИРОВАТЬ: Следуя вашему совету, я перенес функцию рассылки на контроллер:
def create
@news = News.new(:project => @project, :author => User.current)
@news.safe_attributes = params[:news]
@news.save_attachments(params[:attachments])
if @news.save
#news_added(@news)
if params[:group]
mail :to => GroupsUser.find(params[:group][:ids]).joins(:users).select("users.mail").compact,
:subject => "[#{@news.project.name}] #{l(:label_news)}: #{@news.title}"
else
render :new
end
end
end
Но я получаю сообщение об ошибке: NameError (неинициализированная константа NewsController::GroupsUser): указывает на строку
mail :to => GroupsUser.find
View
для отображения окна множественного выбора? Или вам просто нужна помощь с контроллером, чтобы ограничить круг получателей электронных писем? - person Geoff   schedule 22.01.2013