[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