diff options
author | Florian Pritz <bluewind@xinu.at> | 2018-06-07 18:02:54 +0200 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2018-06-07 18:02:56 +0200 |
commit | 45b92f47435cc138c2f0724bf263d5ffc783e951 (patch) | |
tree | aff5ff549a9b8f9a992aad6cb5fd36d55cbf407c | |
parent | 7579bd1b9961f63280d6a5a7a52d9325ad429085 (diff) | |
download | bugzilla-45b92f47435cc138c2f0724bf263d5ffc783e951.tar.gz bugzilla-45b92f47435cc138c2f0724bf263d5ffc783e951.tar.xz |
Flyspray: Mark duplicate bugs only once all bugs are imported
Sometimes eariler bugs are marked as duplicate of later ones so doing it
before all are imported won't work.
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r-- | Bugzilla/Migrate/Flyspray.pm | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/Bugzilla/Migrate/Flyspray.pm b/Bugzilla/Migrate/Flyspray.pm index 52f6b8855..e8d294036 100644 --- a/Bugzilla/Migrate/Flyspray.pm +++ b/Bugzilla/Migrate/Flyspray.pm @@ -16,6 +16,8 @@ use parent qw(Bugzilla::Migrate); use Bugzilla::Constants; use Bugzilla::Util qw(validate_email_syntax); use Bugzilla::DB; +use Bugzilla::User; +use Bugzilla::Bug; use IO::File; use List::Util qw(first none); @@ -406,20 +408,6 @@ sub _read_bugs { who => $self->_get_username($history->{user_id}), bug_when => $self->parse_date($history->{event_date}), }; - - push @{$bug->{comments}}, { - type => CMT_DUPE_OF, - extra_data => int($1), - who => $self->_get_username($history->{user_id}), - bug_when => $self->parse_date($history->{event_date}), - }; - - push @{$self->{bug_map}->{int($1)}->{comments}}, { - type => CMT_HAS_DUPE, - extra_data => $row->{task_id}, - who => $self->_get_username($history->{user_id}), - bug_when => $self->parse_date($history->{event_date}), - } if defined $self->{bug_map}->{int($1)}; } } } elsif ($history->{event_type} == 3) { @@ -538,10 +526,25 @@ sub after_insert { my ($self) = @_; $self->debug("Marking duplicate bugs"); - $self->debug($self->{dupes}, 3); for my $entry (@{$self->{dupes}}) { my $dupeOf_bug = Bugzilla::Bug->new($entry->{dupe_of}); $self->{dbh}->do("INSERT INTO duplicates (dupe_of, dupe) VALUES (?, ?)", undef, $entry->{dupe_of}, $entry->{dupe}) unless defined $dupeOf_bug->{error}; + + my $dupe_bug = Bugzilla::Bug->new($entry->{dupe}); + + $self->_insert_comments($dupe_bug, [{ + type => CMT_DUPE_OF, + extra_data => $entry->{dupe_of}, + who => $entry->{who}, + bug_when => $entry->{bug_when}, + }]); + + $self->_insert_comments($dupeOf_bug, [{ + type => CMT_HAS_DUPE, + extra_data => $entry->{dupe}, + who => $entry->{who}, + bug_when => $entry->{bug_when}, + }]); } } |