summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2017-12-27 17:30:03 +0100
committerFlorian Pritz <bluewind@xinu.at>2018-04-10 18:31:51 +0200
commit0468c97dd1d78f94ecb1537e77bc96e2f5acbbd4 (patch)
tree0186f285055c4bd4e46b0e905d8d4e473eb7b9be
parent36d332cb88bc027bb29495f6701d6a97ec4190fc (diff)
downloadbugzilla-0468c97dd1d78f94ecb1537e77bc96e2f5acbbd4.tar.gz
bugzilla-0468c97dd1d78f94ecb1537e77bc96e2f5acbbd4.tar.xz
WIP: misc fixes
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r--Bugzilla/Migrate.pm4
-rw-r--r--Bugzilla/Migrate/Flyspray.pm20
2 files changed, 17 insertions, 7 deletions
diff --git a/Bugzilla/Migrate.pm b/Bugzilla/Migrate.pm
index 973928397..da2d1a750 100644
--- a/Bugzilla/Migrate.pm
+++ b/Bugzilla/Migrate.pm
@@ -701,7 +701,6 @@ sub insert_bugs {
my $comments = delete $bug->{comments};
my $history = delete $bug->{history};
my $attachments = delete $bug->{attachments};
- my $dup_id = delete $bug->{dup_id};
$self->debug($bug, 3);
@@ -762,9 +761,6 @@ sub insert_bugs {
$reporter->{groups} = $super_user->groups;
Bugzilla->set_user($reporter);
my $created = Bugzilla::Bug->create($bug);
- if (defined $dup_id) {
- $dbh->do("INSERT INTO duplicates (dupe_of, dupe) VALUES (?, ?)", undef, $dup_id, $created->id);
- }
$self->debug('Created bug ' . $created->id);
Bugzilla->set_user($super_user);
diff --git a/Bugzilla/Migrate/Flyspray.pm b/Bugzilla/Migrate/Flyspray.pm
index cfc605832..701a71a94 100644
--- a/Bugzilla/Migrate/Flyspray.pm
+++ b/Bugzilla/Migrate/Flyspray.pm
@@ -386,7 +386,7 @@ sub _read_bugs {
};
if ($self->translate_value('resolution', $history->{resolution_name} // "") eq "DUPLICATE") {
if ($closure_comment =~ m/FS#(\d+)/) {
- $bug->{dup_id} = int($1);
+ $self->{dupes}->{$row->{task_id}} = int($1);
}
}
} elsif ($history->{event_type} == 3) {
@@ -417,18 +417,24 @@ sub _read_bugs {
while (my $attachment = $attachments_sth->fetchrow_hashref()) {
my $path = $attpath.'/'.$attachment->{file_name};
next unless -f $path;
- push @{$bug->{attachments}}, {
+ next unless -s $path;
+ my $attachment_item = {
submitter => $self->_get_username($attachment->{added_by}),
creation_ts => $attachment->{date_added},
description => $attachment->{file_desc} || $attachment->{orig_name},
filename => $attachment->{orig_name},
- mimetype => $attachment->{file_type} || mimetype($path),
+ #mimetype => $attachment->{file_type},
ispatch => $attachment->{file_type} =~ m/^text\/x-diff/ ? 1 : 0,
data_path => $path,
};
+ #$attachment_item->{mimetype} = mimetype($path) if $attachment_item->{mimetype} eq "" or $attachment_item->{mimetype} !~ m/.+\/.+/;
+ $attachment_item->{mimetype} = mimetype($path);
# TODO: set extra_data and type of comment when attachment is part of a comment.
# problem: how to get attachment id? not yet in db
# change _insert_attachments/_insert_comments?
+ push @{$bug->{attachments}}, $attachment_item;
+ #$self->debug($bug);
+ #die if $attachment->{date_added} == 1110715864;
}
push @result, $bug;
@@ -488,6 +494,14 @@ sub translate_bug {
return wantarray ? ($bug, $other_fields) : $bug;
}
+sub after_insert {
+ my ($self) = @_;
+
+ for my $dupe (keys %{$self->{dupes}}) {
+ $self->{dbh}->do("INSERT INTO duplicates (dupe_of, dupe) VALUES (?, ?)", undef, $self->{dupes}->{$dupe}, $$dupe);
+ }
+}
+
# Timestamps from flyspray are unix timestamps which Date::Parse
# can't parse so the original parse_date() sub will just die