mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-22 18:20:12 +01:00
Manual apply fix from 1.7_branch. Preserve database integrity for recurring todos when deleting project or context. Fixes #880. Fixes #895
This commit is contained in:
parent
f67dd416d1
commit
c3b3e3ea04
4 changed files with 8 additions and 0 deletions
|
|
@ -163,6 +163,7 @@ class ProjectsController < ApplicationController
|
|||
end
|
||||
|
||||
def destroy
|
||||
@project.recurring_todos.each {|rt| rt.remove_from_project!}
|
||||
@project.destroy
|
||||
@active_projects_count = current_user.projects.active.count
|
||||
@hidden_projects_count = current_user.projects.hidden.count
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
class Context < ActiveRecord::Base
|
||||
|
||||
has_many :todos, :dependent => :delete_all, :include => :project, :order => "todos.completed_at DESC"
|
||||
has_many :recurring_todos, :dependent => :delete_all
|
||||
belongs_to :user
|
||||
|
||||
named_scope :active, :conditions => { :hide => false }
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ class Project < ActiveRecord::Base
|
|||
:order => "show_from"
|
||||
|
||||
has_many :notes, :dependent => :delete_all, :order => "created_at DESC"
|
||||
has_many :recurring_todos
|
||||
|
||||
belongs_to :default_context, :class_name => "Context", :foreign_key => "default_context_id"
|
||||
belongs_to :user
|
||||
|
|
|
|||
|
|
@ -639,6 +639,11 @@ class RecurringTodo < ActiveRecord::Base
|
|||
starred?
|
||||
end
|
||||
|
||||
def remove_from_project!
|
||||
self.project = nil
|
||||
self.save
|
||||
end
|
||||
|
||||
def inc_occurences
|
||||
self.occurences_count += 1
|
||||
self.save
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue