[Cpan-forum-commit] rev 282 - in trunk: . lib/CPAN lib/CPAN/Forum lib/CPAN/Forum/DB lib/CPAN/Forum/RM
svn at pti.co.il
svn at pti.co.il
Sat Jul 21 18:17:37 EEST 2007
Author: gabor
Date: 2007-07-21 18:17:37 +0300 (Sat, 21 Jul 2007)
New Revision: 282
Modified:
trunk/
trunk/lib/CPAN/Forum.pm
trunk/lib/CPAN/Forum/DB/Groups.pm
trunk/lib/CPAN/Forum/DB/Users.pm
trunk/lib/CPAN/Forum/DBI.pm
trunk/lib/CPAN/Forum/RM/Search.pm
Log:
replace a search_like in Groups by groups_by_name
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4274
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4275
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/lib/CPAN/Forum/DB/Groups.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Groups.pm 2007-07-21 15:17:04 UTC (rev 281)
+++ trunk/lib/CPAN/Forum/DB/Groups.pm 2007-07-21 15:17:37 UTC (rev 282)
@@ -31,5 +31,20 @@
return $self->_dump($sql);
}
+sub groups_by_gtype {
+ my ($self, $value) = @_;
+ #return {} if not %args; # ?
+ my $sql = "SELECT id, name FROM groups WHERE gtype=?";
+ return $self->_fetch_hashref($sql, $value);
+}
+sub groups_by_name {
+ my ($self, $value) = @_;
+ #return {} if not %args; # ?
+ $value = '%' . $value . '%';
+ my $sql = "SELECT id, name FROM groups WHERE name LIKE ?";
+ return $self->_fetch_hashref($sql, $value);
+}
+
+
1;
Modified: trunk/lib/CPAN/Forum/DB/Users.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Users.pm 2007-07-21 15:17:04 UTC (rev 281)
+++ trunk/lib/CPAN/Forum/DB/Users.pm 2007-07-21 15:17:37 UTC (rev 282)
@@ -7,15 +7,8 @@
__PACKAGE__->columns(All => qw/id username password email fname lname status
update_on_new_user/);
__PACKAGE__->has_many(posts => "CPAN::Forum::DB::Posts");
-#__PACKAGE__->has_many(usergroups => "CPAN::Forum::DB::UserInGroup");
-__PACKAGE__->add_trigger(before_create => sub {
- $_[0]->{password} = _generate_pw(7);
- $_[0]->{email} = lc $_[0]->{email};
- $_[0]->{username} = lc $_[0]->{username};
- });
-
sub add_user {
my ($self, $args) = @_;
Modified: trunk/lib/CPAN/Forum/DBI.pm
===================================================================
--- trunk/lib/CPAN/Forum/DBI.pm 2007-07-21 15:17:04 UTC (rev 281)
+++ trunk/lib/CPAN/Forum/DBI.pm 2007-07-21 15:17:37 UTC (rev 282)
@@ -98,6 +98,8 @@
return $self->_fetch_single_value("SELECT COUNT(*) FROM $table");
}
+# TODO this selectall_hashref and the _fetch_hashref seem to server very similar
+# purposes
sub _selectall_hashref {
my ($self, $sql, $key, @args) = @_;
my $dbh = CPAN::Forum::DBI::db_Main();
@@ -109,7 +111,7 @@
# returns a hash reference where the keys are built from
# the first column and the values from the second column
sub _fetch_hashref {
- my ($self, $sql, @args);
+ my ($self, $sql, @args) = @_;
my $dbh = CPAN::Forum::DBI::db_Main();
my $sth = $dbh->prepare($sql);
Modified: trunk/lib/CPAN/Forum/RM/Search.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Search.pm 2007-07-21 15:17:04 UTC (rev 281)
+++ trunk/lib/CPAN/Forum/RM/Search.pm 2007-07-21 15:17:37 UTC (rev 282)
@@ -53,14 +53,9 @@
$txt =~ s/::/-/g;
$txt = '%' . $txt . '%';
- my $it = CPAN::Forum::DB::Groups->search_like(name => $txt);
- my $cnt = CPAN::Forum::DB::Groups->sql_count_like("name", $txt)->select_val;
- my @group_names;
- my @group_ids;
- while (my $group = $it->next) {
- push @group_names, $group->name;
- push @group_ids, $group->id;
- }
+ my $groups_hr = CPAN::Forum::DB::Groups->groups_by_name($txt); # SQL
+ my @group_names = values %$groups_hr;
+ my @group_ids = keys %$groups_hr;
if (not @group_names) {
return $self->module_search_form(['no_module_found']);
}
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2007-07-21 15:17:04 UTC (rev 281)
+++ trunk/lib/CPAN/Forum.pm 2007-07-21 15:17:37 UTC (rev 282)
@@ -497,7 +497,7 @@
sub config {
my ($self, $field) = @_;
- CPAN::Forum::DB::Configure->param($field);
+ CPAN::Forum::DB::Configure->param($field); # SQL
}
# modes that can be accessed without a valid session
@@ -734,7 +734,7 @@
my @resp;
my @threads = map {$_->thread} @$it;
- my $threads = CPAN::Forum::DB::Posts->count_threads(@threads);
+ my $threads = CPAN::Forum::DB::Posts->count_threads(@threads); #SQL
foreach my $post (@$it) {
#warn "called for each post";
@@ -861,7 +861,7 @@
}
my $user = eval {
- CPAN::Forum::DB::Users->add_user({
+ CPAN::Forum::DB::Users->add_user({ # SQL
username => $q->param('nickname'),
email => $q->param('email'),
});
@@ -914,7 +914,6 @@
sub _group_selector {
my ($self, $group_name, $group_id) = @_;
my $q = $self->query;
-
my %group_labels;
my @group_ids;
@@ -928,12 +927,14 @@
}
}
- if (not @group_ids) {
- my @groups = CPAN::Forum::DB::Groups->search(gtype => $CPAN::Forum::DBI::group_types{Distribution});
- foreach my $g (@groups) {
- push @group_ids, $g->id;
- $group_labels{$g->id} = $g->name;
- }
+# if (not @group_ids) {
+ #my @groups = CPAN::Forum::DB::Groups->search(gtype => $CPAN::Forum::DBI::group_types{Distribution});
+# my $groups = CPAN::Forum::DB::Groups->groups_by_gtype($CPAN::Forum::DBI::group_types{Distribution});
+#warn Dumper $groups;
+# %group_labels = %$groups;
+ # id => name
+# @group_ids = keys %$groups;
+ #@group_ids = sort { $groups->{$a} cmp $groups->{$b} } keys %$groups;
# @groups = (
# "Global",
@@ -942,7 +943,7 @@
# "----",
# (sort map {$_->name} CPAN::Forum::DB::Groups->search(gtype => $CPAN::Forum::DBI::group_types{Distribution})),
# );
- }
+# }
@group_ids = sort {$group_labels{$a} cmp $group_labels{$b}} @group_ids;
return $q->popup_menu(-name => "new_group", -values => \@group_ids, -labels => \%group_labels);
More information about the Cpan-forum-commit
mailing list