Commit 534173a0 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 300532: Update editversions.cgi to use routines from Version.pm and…

Bug 300532: Update editversions.cgi to use routines from Version.pm and Product.pm - Patch by Tiago R. Mello <timello@async.com.br> r=LpSolit a=myk
parent 0b6e8545
...@@ -205,6 +205,33 @@ sub get_products_by_classification ($) { ...@@ -205,6 +205,33 @@ sub get_products_by_classification ($) {
return $products; return $products;
} }
sub get_all_products () {
my $dbh = Bugzilla->dbh;
my $ids = $dbh->selectcol_arrayref(q{
SELECT id FROM products ORDER BY name});
my @products;
foreach my $id (@$ids) {
push @products, new Bugzilla::Product($id);
}
return @products;
}
sub check_product ($) {
my ($product_name) = @_;
unless ($product_name) {
ThrowUserError('product_not_specified');
}
my $product = new Bugzilla::Product({name => $product_name});
unless ($product) {
ThrowUserError('product_doesnt_exist',
{'product' => $product_name});
}
return $product;
}
1; 1;
__END__ __END__
...@@ -326,11 +353,28 @@ Product.pm represents a product object. ...@@ -326,11 +353,28 @@ Product.pm represents a product object.
Description: Returns all products for a specific classification id. Description: Returns all products for a specific classification id.
Params: none. Params: $class_id - Integer with classification id.
Returns: A hash with product id as key and a Bugzilla::Product Returns: A hash with product id as key and a Bugzilla::Product
object as value. object as value.
=item C<get_all_products()>
Description: Returns all products from the database.
Params: none.
Returns: Bugzilla::Product object list.
=item C<check_product($product_name)>
Description: Checks if the product name was passed in and if is a valid
product.
Params: $product_name - String with a product name.
Returns: Bugzilla::Product object.
=back =back
=cut =cut
...@@ -73,11 +73,24 @@ sub _init { ...@@ -73,11 +73,24 @@ sub _init {
return $self; return $self;
} }
sub bug_count {
my $self = shift;
my $dbh = Bugzilla->dbh;
if (!defined $self->{'bug_count'}) {
$self->{'bug_count'} = $dbh->selectrow_array(qq{
SELECT COUNT(*) FROM bugs
WHERE product_id = ? AND version = ?}, undef,
($self->product_id, $self->name)) || 0;
}
return $self->{'bug_count'};
}
############################### ###############################
##### Accessors #### ##### Accessors ####
############################### ###############################
sub value { return $_[0]->{'value'}; } sub name { return $_[0]->{'value'}; }
sub product_id { return $_[0]->{'product_id'}; } sub product_id { return $_[0]->{'product_id'}; }
############################### ###############################
...@@ -103,12 +116,24 @@ sub get_versions_by_product ($) { ...@@ -103,12 +116,24 @@ sub get_versions_by_product ($) {
SELECT value FROM versions SELECT value FROM versions
WHERE product_id = ?}, undef, $product_id); WHERE product_id = ?}, undef, $product_id);
my $versions; my @versions;
foreach my $value (@$values) { foreach my $value (@$values) {
$versions->{$value} = new Bugzilla::Version($product_id, push @versions, new Bugzilla::Version($product_id, $value);
$value); }
return @versions;
}
sub check_version ($$) {
my ($product, $version_name) = @_;
$version_name || ThrowUserError('version_not_specified');
my $version = new Bugzilla::Version($product->id, $version_name);
unless ($version) {
ThrowUserError('version_not_valid',
{'product' => $product->name,
'version' => $version_name});
} }
return $versions; return $version;
} }
1; 1;
...@@ -131,6 +156,9 @@ Bugzilla::Version - Bugzilla product version class. ...@@ -131,6 +156,9 @@ Bugzilla::Version - Bugzilla product version class.
my $hash_ref = Bugzilla::Version::get_versions_by_product(1); my $hash_ref = Bugzilla::Version::get_versions_by_product(1);
my $version = $hash_ref->{'version_value'}; my $version = $hash_ref->{'version_value'};
my $version = Bugzilla::Version::check_version($product_obj,
'acme_version');
=head1 DESCRIPTION =head1 DESCRIPTION
Version.pm represents a Product Version object. Version.pm represents a Product Version object.
...@@ -144,11 +172,19 @@ Version.pm represents a Product Version object. ...@@ -144,11 +172,19 @@ Version.pm represents a Product Version object.
Description: The constructor is used to load an existing version Description: The constructor is used to load an existing version
by passing a product id and a version value. by passing a product id and a version value.
Params: $product_id - Integer with a Bugzilla product id. Params: $product_id - Integer with a product id.
$value - String with a version value. $value - String with a version value.
Returns: A Bugzilla::Version object. Returns: A Bugzilla::Version object.
=item C<bug_count()>
Description: Returns the total of bugs that belong to the version.
Params: none.
Returns: Integer with the number of bugs.
=back =back
=head1 SUBROUTINES =head1 SUBROUTINES
...@@ -157,13 +193,21 @@ Version.pm represents a Product Version object. ...@@ -157,13 +193,21 @@ Version.pm represents a Product Version object.
=item C<get_versions_by_product($product_id)> =item C<get_versions_by_product($product_id)>
Description: Returns all Bugzilla product versions that belong Description: Returns all product versions that belong
to the supplied product. to the supplied product.
Params: $product_id - Integer with a Bugzilla product id. Params: $product_id - Integer with a product id.
Returns: Bugzilla::Version object list.
=item C<check_version($product, $version_name)>
Description: Checks if the version name exists for the product name.
Params: $product - A Bugzilla::Product object.
$version_name - String with a version name.
Returns: A hash with version value as key and a Bugzilla::Version Returns: Bugzilla::Version object.
objects as value.
=back =back
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment