Refactoring: explizites $rspec->delete_items vor ->copy_from inzwischen unnötig
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 3 May 2013 07:33:49 +0000 (09:33 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 1 Apr 2014 11:03:21 +0000 (13:03 +0200)
...seitdem die BEFORE-DELETE-Trigger für die Items richtig funktionieren.

SL/Controller/RequirementSpec.pm
SL/DB/RequirementSpec.pm

index aa259f6..b72a8c4 100644 (file)
@@ -185,7 +185,6 @@ sub action_revert_to {
 
   my $versioned_copy = SL::DB::RequirementSpec->new(id => $::form->{versioned_copy_id})->load;
 
-  $self->requirement_spec->delete_items;
   $self->requirement_spec->copy_from(
     $versioned_copy,
     version_id => $versioned_copy->version_id,
index 5cfb5dc..12afb24 100644 (file)
@@ -156,29 +156,6 @@ sub copy_from {
   return $self;
 }
 
-sub delete_items {
-  my ($self) = @_;
-
-  my $worker = sub {
-    # First convert all items to sections so that deleting won't
-    # violate foreign key constraints on parent_id.
-    SL::DB::Manager::RequirementSpecItem->update_all(
-      set   => { parent_id => undef, item_type => 'section' },
-      where => [
-        requirement_spec_id => $self->id,
-        '!parent_id'        => undef,
-      ]);
-
-    # Now delete all items in one go.
-    SL::DB::Manager::RequirementSpecItem->delete_all(where => [ requirement_spec_id => $self->id ]);
-
-    # Last clear values in ourself.
-    $self->items([]);
-  };
-
-  return $self->db->in_transaction ? $worker->() : $self->db->do_transaction($worker);
-}
-
 sub previous_version {
   my ($self) = @_;