diff --git a/app/helpers/emailer_helper.rb b/app/helpers/emailer_helper.rb index ba47416e62..5aba7ed2d1 100644 --- a/app/helpers/emailer_helper.rb +++ b/app/helpers/emailer_helper.rb @@ -107,7 +107,7 @@ def task_status_style(task) styles.join(";") end - def task_due_on_style(task, options) + def task_due_on_style(task, options={}) styles = [] styles << "font-size: 12px" styles << "display: table-cell" diff --git a/app/models/task/scopes.rb b/app/models/task/scopes.rb index f0e8e52829..78af99cf2b 100644 --- a/app/models/task/scopes.rb +++ b/app/models/task/scopes.rb @@ -10,6 +10,7 @@ class Task joins(:assigned => :project).where(:people => {:user_id => user.id}).where(:projects => {:archived => false}) } + scope :urgent, :conditions => { :urgent => true }, :include => [:project, :task_list, :assigned] scope :due_sooner_than_two_weeks, lambda { { :conditions => ['tasks.due_on < ?', 2.weeks.from_now] } } @@ -32,4 +33,4 @@ class Task scope :from_pivotal_tracker, lambda { |story_id| { :conditions => ['name LIKE ?', "%[PT#{story_id}]%"] } } -end \ No newline at end of file +end diff --git a/app/models/user/task_reminders.rb b/app/models/user/task_reminders.rb index 0c9178fde5..b02b784d98 100644 --- a/app/models/user/task_reminders.rb +++ b/app/models/user/task_reminders.rb @@ -26,8 +26,8 @@ def assigned_tasks(max_date = nil) def tasks_for_daily_reminder_email tasks = assigned_tasks.due_sooner_than_two_weeks.all(:order => 'tasks.due_on') tasks_by_dueness = Hash.new { |h, k| h[k] = Array.new } - - tasks.each_with_object(tasks_by_dueness) do |task, all| + + tasks_with_date = tasks.each_with_object(tasks_by_dueness) do |task, all| due_identifier = if Date.today == task.due_on :today elsif Date.today + 1 == task.due_on @@ -37,8 +37,10 @@ def tasks_for_daily_reminder_email else :for_next_two_weeks end - + all[due_identifier] << task end + tasks_with_date[:urgent] = assigned_tasks.urgent + tasks_with_date end -end \ No newline at end of file +end diff --git a/app/views/emailer/_tasks_for_daily_reminder.html.haml b/app/views/emailer/_tasks_for_daily_reminder.html.haml index 1c3300fcb6..295260d63a 100644 --- a/app/views/emailer/_tasks_for_daily_reminder.html.haml +++ b/app/views/emailer/_tasks_for_daily_reminder.html.haml @@ -8,6 +8,9 @@ - if task.due_on %span{ :style => task_due_on_style(task, :late => task.overdue?) } = due_on(task) + - elsif task.urgent? + %span{ :style => task_due_on_style(task) } + = t('emailer.daily_task_reminder_email.urgent') %td{ :style => "width:530px; font-size: 12px;" } %table{ :style => "border-spacing: 5px 0", :border => 0 } %tr diff --git a/app/views/emailer/daily_task_reminder.html.haml b/app/views/emailer/daily_task_reminder.html.haml index 5e4deb91a6..fc20b53b07 100644 --- a/app/views/emailer/daily_task_reminder.html.haml +++ b/app/views/emailer/daily_task_reminder.html.haml @@ -1,6 +1,7 @@ .email{ :style => email_global } %p= t('users.daily_task_reminder_email.daily_task_reminder_from_teambox') + = tasks_for_daily_reminder(@tasks[:urgent], @user, t('users.daily_task_reminder_email.urgent_tasks')) = tasks_for_daily_reminder(@tasks[:late], @user, t('users.daily_task_reminder_email.late_tasks')) = tasks_for_daily_reminder(@tasks[:today], @user, t('users.daily_task_reminder_email.tasks_for_today')) = tasks_for_daily_reminder(@tasks[:tomorrow], @user, t('users.daily_task_reminder_email.tasks_for_tomorrow')) diff --git a/app/views/emailer/daily_task_reminder.text.erb b/app/views/emailer/daily_task_reminder.text.erb index f21a256974..3bd626b368 100644 --- a/app/views/emailer/daily_task_reminder.text.erb +++ b/app/views/emailer/daily_task_reminder.text.erb @@ -1,5 +1,6 @@ <%= t('users.daily_task_reminder_email.daily_task_reminder_from_teambox') %> +<%= tasks_for_daily_reminder(@tasks[:urgent], @user, t('users.daily_task_reminder_email.urgent_tasks')) %> <%= tasks_for_daily_reminder(@tasks[:late], @user, t('users.daily_task_reminder_email.late_tasks')) %> <%= tasks_for_daily_reminder(@tasks[:today], @user, t('users.daily_task_reminder_email.tasks_for_today')) %> <%= tasks_for_daily_reminder(@tasks[:tomorrow], @user, t('users.daily_task_reminder_email.tasks_for_tomorrow')) %> @@ -7,4 +8,4 @@ <%= tasks_for_daily_reminder(@tasks[:no_due_date], @user, t('users.daily_task_reminder_email.tasks_without_a_due_date')) %> <%= t('users.daily_task_reminder_email.you_receive_this_message_html', :link => t('users.daily_task_reminder_email.settings_page')) %> -<%= account_notifications_url %> \ No newline at end of file +<%= account_notifications_url %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 6bbb9b426a..b368e0140e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -434,8 +434,10 @@ en: wrong_email_html: "Wrong address? If you mistyped your email address, you can change it now." problems_html: "If you're still having problems, please contact us at %{support}" daily_task_reminder_email: + urgent: Urgent daily_task_reminder: "Daily task reminder" daily_task_reminder_from_teambox: "This is the daily task reminder email from Teambox" + urgent_tasks: "Urgent tasks" late_tasks: "Late tasks" tasks_for_today: "Tasks for today" tasks_for_tomorrow: "Tasks for tomorrow"