diff options
author | Eric Davis <edavis@littlestreamsoftware.com> | 2010-05-28 23:45:45 +0000 |
---|---|---|
committer | Eric Davis <edavis@littlestreamsoftware.com> | 2010-05-28 23:45:45 +0000 |
commit | 080dc2212efdb7c91c43ff672ca91cc55b75d6a0 (patch) | |
tree | 850adac3514de4d306d08f4776b2c68f502b014a /app/models/mail_handler.rb | |
parent | af726ea8f02a65dcce23bdde0074db9499a8642c (diff) | |
download | redmine-080dc2212efdb7c91c43ff672ca91cc55b75d6a0.tar.gz redmine-080dc2212efdb7c91c43ff672ca91cc55b75d6a0.zip |
Add 'Start date' and 'End date' keywords for incoming email. #5595
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3763 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/mail_handler.rb')
-rw-r--r-- | app/models/mail_handler.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb index ac0584746..1b30af637 100644 --- a/app/models/mail_handler.rb +++ b/app/models/mail_handler.rb @@ -120,13 +120,15 @@ class MailHandler < ActionMailer::Base category = (get_keyword(:category) && project.issue_categories.find_by_name(get_keyword(:category))) priority = (get_keyword(:priority) && IssuePriority.find_by_name(get_keyword(:priority))) status = (get_keyword(:status) && IssueStatus.find_by_name(get_keyword(:status))) + due_date = get_keyword(:due_date, :override => true) + start_date = get_keyword(:start_date, :override => true) # check permission unless @@handler_options[:no_permission_check] raise UnauthorizedAction unless user.allowed_to?(:add_issues, project) end - - issue = Issue.new(:author => user, :project => project, :tracker => tracker, :category => category, :priority => priority) + + issue = Issue.new(:author => user, :project => project, :tracker => tracker, :category => category, :priority => priority, :due_date => due_date, :start_date => start_date) # check workflow if status && issue.new_statuses_allowed_to(user).include?(status) issue.status = status @@ -163,6 +165,8 @@ class MailHandler < ActionMailer::Base # Adds a note to an existing issue def receive_issue_reply(issue_id) status = (get_keyword(:status) && IssueStatus.find_by_name(get_keyword(:status))) + due_date = get_keyword(:due_date, :override => true) + start_date = get_keyword(:start_date, :override => true) issue = Issue.find_by_id(issue_id) return unless issue @@ -179,6 +183,9 @@ class MailHandler < ActionMailer::Base if status && issue.new_statuses_allowed_to(user).include?(status) issue.status = status end + issue.start_date = start_date if start_date + issue.due_date = due_date if due_date + issue.save! logger.info "MailHandler: issue ##{issue.id} updated by #{user}" if logger && logger.info journal @@ -245,7 +252,7 @@ class MailHandler < ActionMailer::Base @keywords[attr] else @keywords[attr] = begin - if (options[:override] || @@handler_options[:allow_override].include?(attr.to_s)) && plain_text_body.gsub!(/^#{attr}[ \t]*:[ \t]*(.+)\s*$/i, '') + if (options[:override] || @@handler_options[:allow_override].include?(attr.to_s)) && plain_text_body.gsub!(/^#{attr.to_s.humanize}[ \t]*:[ \t]*(.+)\s*$/i, '') $1.strip elsif !@@handler_options[:issue][attr].blank? @@handler_options[:issue][attr] |