| app/controllers/tasks_controller.rb | |
| 75 | @@ -75,34 +75,11 @@ |
| 75 | |
| 76 | @title = '%s - create new task' % @project.name |
| 77 | @task = @project.tasks.create(params[:task]) |
| 78 | |
| 79 | respond_to do |format| |
| 80 | format.html do |
| 81 | if @task.valid? |
| 82 | # Send notification e-mail |
| 83 | begin |
| 84 | # FIXME: Move to observer |
| 85 | mail = TaskMailer.create_create_message( |
| 86 | CONFIGURATION['site_email'], CONFIGURATION['site_url'], |
| 87 | current_user, @task) |
| 88 | mail_status = TaskMailer.deliver(mail) |
| 89 | rescue |
| 90 | log_error($!) |
| 91 | mail_status = false |
| 92 | end |
| 93 | |
| 94 | if not mail_status |
| 95 | flash[:error] = 'Failed sending notification e-mail!' |
| 96 | end |
| 97 | |
| 98 | redirect_to(project_tasks_url(@project)) |
| 99 | else |
| 100 | # Get data required for editing |
| 101 | fill_edit_data |
| 102 | |
| 103 | render(:action => 'new') |
| 104 | end |
| 105 | end |
| 106 | if @task.valid? |
| 107 | redirect_to(project_tasks_url(@project)) |
| 108 | else |
| 109 | fill_edit_data |
| 110 | render(:action => 'new') |
| 111 | end |
| 112 | end |
| 113 | |
| ... | |
| config/environment.rb | |
| 56 | @@ -56,7 +56,7 @@ |
| 56 | # config.active_record.schema_format = :sql |
| 57 | |
| 58 | # Activate observers that should always be running |
| 59 | config.active_record.observers = :commit_set_observer, :task_change_set_observer |
| 60 | config.active_record.observers = :commit_set_observer, :task_observer, :task_change_set_observer |
| 61 | |
| 62 | # Make Active Record use UTC-base instead of local time |
| 63 | # config.active_record.default_timezone = :utc |
| ... | |
| app/models/task_observer.rb | |
| 1 | @@ -1,4 +1,12 @@ |
| 1 | # -*- coding: utf-8 -*- |
| 2 | |
| 3 | class TaskObserver < ActiveRecord::Observer |
| 4 | observe :task |
| 5 | |
| 6 | def after_create(task) |
| 7 | mail = TaskMailer.create_create_message( |
| 8 | CONFIGURATION['site_email'], CONFIGURATION['site_url'], |
| 9 | task.reporter, task) |
| 10 | TaskMailer.deliver(mail) |
| 11 | end |
| 12 | end |
| ... | |
| db/migrate/20100301185458_create_task_change_sets.rb | |
| 21 | @@ -21,8 +21,6 @@ |
| 21 | TaskChange.reset_column_information |
| 22 | TaskChangeSet.reset_column_information |
| 23 | |
| 24 | # FIXME: Iterate through all TaskChange with the same task_id/created_at |
| 25 | # and construct a new TaskChangeSet with those changes. |
| 26 | task_changes = TaskChange.find :all |
| 27 | task_changes.group_by(&:created_at).sort.each do |created_at, changes| |
| 28 | change = changes[0] |
| ... | |