]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Bug.pm
support usertags in Debbugs::Bug and Debbugs::Bug::Tag
[debbugs.git] / Debbugs / Bug.pm
index bff73c7aaaabfb1affd033836655b3023b75439d..4af9b735f071041adf7b73827d8fc41ea6a73dc6 100644 (file)
@@ -72,6 +72,31 @@ sub _build_status {
     return $status;
 }
 
+has log => (is => 'bare', isa => 'Debbugs::Log',
+            lazy => 1,
+            builder => '_build_log',
+            handles => {_read_record => 'read_record',
+                        log_records => 'read_all_records',
+                       },
+           );
+
+sub _build_log {
+    my $self = shift;
+    return Debbugs::Log->new(bug_num => $self->id,
+                             inner_file => 1,
+                            );
+}
+
+has spam => (is => 'bare', isa => 'Debbugs::Log::Spam',
+             lazy => 1,
+             builder => '_build_spam',
+             handles => ['is_spam'],
+            );
+sub _build_spam {
+    my $self = shift;
+    return Debbugs::Log::Spam->new(bug_num => $self->id);
+}
+
 has 'package_collection' => (is => 'ro',
                             isa => 'Debbugs::Collection::Package',
                             builder => '_build_package_collection',
@@ -421,13 +446,18 @@ sub _build_archived {
     return $_[0]->location eq 'archived'?1:0;
 }
 
-has tags => (is => 'ro', isa => 'Object',
+has tags => (is => 'ro',
+             isa => 'Debbugs::Bug::Tag',
             clearer => '_clear_tags',
             builder => '_build_tags',
             lazy => 1,
            );
 sub _build_tags {
-    return Debbugs::Bug::Tag->new($_[0]->status->{keywords});
+    my $self = shift;
+    return Debbugs::Bug::Tag->new(keywords => $self->status->{keywords},
+                                  bug => $self,
+                                  users => $self->bug_collection->users,
+                                 );
 }
 
 =item buggy