7
|
1 package Benzin::Bugzilla::Bug;
|
|
2 use strict;
|
|
3
|
|
4 my @bugFields;
|
|
5
|
|
6 BEGIN {
|
|
7 @bugFields = qw(
|
|
8 id
|
|
9 summary
|
|
10 creation_time
|
|
11 last_change_time
|
|
12 creator
|
|
13 assigned_to
|
|
14 qa_contact
|
|
15 cc
|
|
16
|
|
17 status
|
|
18 resolution
|
|
19
|
|
20 priority
|
|
21 severity
|
|
22 url
|
|
23
|
|
24 blocks
|
|
25 depends_on
|
|
26
|
|
27
|
|
28 component
|
|
29 product
|
|
30 classification
|
|
31 version
|
|
32
|
|
33 actual_time
|
|
34 estimated_time
|
|
35 remaining_time
|
|
36 deadline
|
|
37
|
|
38 comments
|
|
39 );
|
|
40 }
|
|
41
|
|
42 use constant {
|
|
43 BUG_FIELDS => \@bugFields
|
|
44 };
|
|
45
|
|
46 use IMPL::declare {
|
|
47 base => [
|
|
48 'IMPL::Object::Fields' => undef
|
|
49 ]
|
|
50 };
|
|
51
|
|
52 use fields @bugFields;
|
|
53
|
|
54 sub CTOR {
|
|
55 my SELF $this = shift;
|
|
56 my $data = shift;
|
|
57
|
|
58 $this->{$_} = $data->{$_} foreach grep exists $data->{$_}, SELF->BUG_FIELDS;
|
|
59 }
|
|
60
|
|
61 sub GetEffort {
|
|
62 my SELF $this = shift;
|
|
63
|
|
64 return $this->{actual_time} + $this->{remaining_time};
|
|
65 }
|
|
66
|
|
67 1;
|