[Cpan-forum-commit] rev 283 - in trunk: . lib/CPAN lib/CPAN/Forum/DB lib/CPAN/Forum/RM
svn at pti.co.il
svn at pti.co.il
Sat Jul 21 18:18:10 EEST 2007
Author: gabor
Date: 2007-07-21 18:18:10 +0300 (Sat, 21 Jul 2007)
New Revision: 283
Modified:
trunk/
trunk/Changes
trunk/TODO
trunk/lib/CPAN/Forum.pm
trunk/lib/CPAN/Forum/DB/Groups.pm
trunk/lib/CPAN/Forum/RM/Update.pm
Log:
add CPAN::Forum::DB::Groups->info_by method
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4275
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4276
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/Changes
===================================================================
--- trunk/Changes 2007-07-21 15:17:37 UTC (rev 282)
+++ trunk/Changes 2007-07-21 15:18:10 UTC (rev 283)
@@ -1,4 +1,6 @@
Added option to disable all e-mail notifications
+ Enable adding tags to CPAN modules
+ Replace Class::DBI by plain SQL calls in most of the application
v0.12
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2007-07-21 15:17:37 UTC (rev 282)
+++ trunk/TODO 2007-07-21 15:18:10 UTC (rev 283)
@@ -1,6 +1,23 @@
Tests * Tests * Tests
+ stop using Class::DBI, use plain SQL calls
+
+ move database to PostgreSQL
+
+ move to mod_perl
+
+ Session information: remember logged in user,
+ have check-box on the main form to say user wants to be remembered
+
+ Enable users to connect their CPAN::Forum id with their PAUSE id:
+ Let logged in user type in their PAUSEid
+ send an e-mail with code to PAUSEID at cpan.org and save the same id in
+ the session object
+ tell the user to check their e-mail and copy the code to the approval form
+
+
+
Unite and clean up the code that fetches list of people who need to be
notified. Test both the interface to manage this and the the actually
retreival of addresses to be notified.
Modified: trunk/lib/CPAN/Forum/DB/Groups.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Groups.pm 2007-07-21 15:17:37 UTC (rev 282)
+++ trunk/lib/CPAN/Forum/DB/Groups.pm 2007-07-21 15:18:10 UTC (rev 283)
@@ -17,12 +17,14 @@
#use Data::Dumper;
#__PACKAGE__->add_trigger(before_update => sub {warn Dumper $_[0]});
-sub info {
- my ($self, $group_id) = @_;
+sub info_by {
+ my ($self, $field, $value) = @_;
+ Carp::croak("Invalid field '$field'") if $field ne 'id' and $field ne 'name';
+
my $sql = "SELECT id, name, status
FROM groups
- WHERE id=?";
- return $self->_fetch_single_hashref($sql, $group_id);
+ WHERE $field=?";
+ return $self->_fetch_single_hashref($sql, $value);
}
sub dump_groups {
Modified: trunk/lib/CPAN/Forum/RM/Update.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Update.pm 2007-07-21 15:17:37 UTC (rev 282)
+++ trunk/lib/CPAN/Forum/RM/Update.pm 2007-07-21 15:18:10 UTC (rev 283)
@@ -20,7 +20,7 @@
my $q = $self->query;
my $group_id = $q->param('group_id');
- my $group = CPAN::Forum::DB::Groups->info($group_id);
+ my $group = CPAN::Forum::DB::Groups->info_by(id => $group_id); # SQL
my $new_tags = $q->param('new_tags');
$self->log->debug("_update_tags in group '$group_id' tags='$new_tags'");
$new_tags =~ s/^\s+//;
@@ -31,17 +31,17 @@
my $uid = $self->session->param('uid');
# TODO: let the client side decide which tags need to be added and removed
- my $tags_hr = CPAN::Forum::DB::Tags->get_tags_hash_of($group_id, $uid);
+ my $tags_hr = CPAN::Forum::DB::Tags->get_tags_hash_of($group_id, $uid); # SQL
foreach my $tag (@tags) {
if ($tags_hr->{$tag}) {
delete $tags_hr->{$tag};
} else {
- CPAN::Forum::DB::Tags->attach_tag($uid, $group_id, $tag);
+ CPAN::Forum::DB::Tags->attach_tag($uid, $group_id, $tag); # SQL
}
}
foreach my $old_tag (keys %$tags_hr) {
- CPAN::Forum::DB::Tags->remove_tag($uid, $group_id, $tags_hr->{$old_tag});
+ CPAN::Forum::DB::Tags->remove_tag($uid, $group_id, $tags_hr->{$old_tag}); # SQL
}
return $self->notes('tags_updated', dist_name => $group->{name});
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2007-07-21 15:17:37 UTC (rev 282)
+++ trunk/lib/CPAN/Forum.pm 2007-07-21 15:18:10 UTC (rev 283)
@@ -1006,9 +1006,9 @@
if ($new_group) {
if ($new_group =~ /^([\w-]+)$/) {
$new_group = $1;
- my ($gr) = CPAN::Forum::DB::Groups->search(name => $new_group);
+ my ($gr) = CPAN::Forum::DB::Groups->info_by(name => $new_group); # SQL
if ($gr) {
- $new_group_id = $gr->id;
+ $new_group_id = $gr->{id};
} else {
return $self->internal_error(
"Group '$new_group' was not in database",
@@ -1020,9 +1020,9 @@
);
}
} elsif ($new_group_id) {
- my ($gr) = CPAN::Forum::DB::Groups->retrieve($new_group_id);
+ my ($gr) = CPAN::Forum::DB::Groups->info_by(id => $new_group_id); # SQL
if ($gr) {
- $new_group = $gr->name;
+ $new_group = $gr->{name};
} else {
return $self->internal_error(
"Group '$new_group_id' was not in database",
@@ -1046,9 +1046,9 @@
if ($new_group_id =~ /^(\d+)$/) {
$new_group_id = $1;
- my ($grp) = CPAN::Forum::DB::Groups->retrieve($new_group_id);
+ my ($grp) = CPAN::Forum::DB::Groups->info_by(id => $new_group_id);
if ($grp) {
- $new_group = $grp->name;
+ $new_group = $grp->{name};
} else {
return $self->internal_error(
"Bad value for new_group (id) '$new_group_id' ?",
More information about the Cpan-forum-commit
mailing list