[prev] [thread] [next] [lurker] [Date index for 2003/11/25]
Author: gabor
Date: 2003-11-25 09:08:59 +0200 (Tue, 25 Nov 2003)
New Revision: 39
Modified:
lib/YAPC/Organizer.pm
lib/YAPC/Person.pm
t/03-web-adduser.t
t/10-use-html-template.t
t/lib/YAPC/Test/Data.pm
templates/registration.tmpl
Log:
fixing the registration form that gave error message
the first time it was accessed
Modified: lib/YAPC/Organizer.pm
===================================================================
--- lib/YAPC/Organizer.pm 2003-11-25 06:27:33 UTC (rev 38)
+++ lib/YAPC/Organizer.pm 2003-11-25 07:08:59 UTC (rev 39)
@@ -410,42 +410,31 @@
sub registration {
my $self = shift;
my $q = $self->query;
- #warn $q->param('run');
+ my $t = $self->_server_page('registration');
my $person;
- eval {
- $person = YAPC::Person->new($q->Vars);
- };
- if ($@) {
- my $msg = $@;
- # cannot register (duplicate email ?, other problem ?)
- my $t = $self->_server_page('registration');
- $t->param(MESSAGE => 'There was an error in the provided data.');
- return $t->output;
- } else {
+ if ($q->param('submit')) {
+ eval {
+ $person = YAPC::Person->new($q->Vars);
+ };
+ if ($@) {
+ my $msg = $@;
+ # cannot register (duplicate email ?, other problem ?)
+ $t->param(MESSAGE => 'There was an error in the provided data.');
+ return $t->output;
+ } else {
+ }
+ } else { # first time on this page
+ return $t->output;
+ }
- $self->send_email_with_validation_code($person);
+ # success
+ $self->send_email_with_validation_code($person);
+ $self->send_email_to_admin_about_new_registration($person);
-
- # send e-mail to administrator
- my $text = "Registrant\n";
- $text .= sprintf "Name: %s %s <%s>\n", $person->fname, $person->lname, $person->email;
- $text .= sprintf "Phone: %s\n", $person->phone if defined $person->phone;
- $text .= sprintf "Company: %s\n", $person->company if defined $person->company;
-
- my %spymail = (
- To => $YAPC::Config::email_address,
- From => $YAPC::Config::email_address,
- Subject => "new YAPC::Israel::2004 registration received",
- Message => $text,
- );
- sendmail(%spymail) or die $Mail::Sendmail::error unless $ENV{YAPCOM_NOMAIL};
-
-
- my $t = $self->_server_page('validation');
- $t->param('run' => 'validation');
- return $t->output;
- }
+ $t = $self->_server_page('validation');
+ $t->param('run' => 'validation');
+ return $t->output;
}
sub validation {
@@ -529,6 +518,27 @@
}
+ # send e-mail to administrator
+sub send_email_to_admin_about_new_registration {
+ my $self = shift;
+ my $person = shift;
+
+ my $text = "Registrant\n";
+ $text .= sprintf "Name: %s %s <%s>\n", $person->fname, $person->lname, $person->email;
+ $text .= sprintf "Phone: %s\n", $person->phone if defined $person->phone;
+ $text .= sprintf "Company: %s\n", $person->company if defined $person->company;
+
+ my %spymail = (
+ To => $YAPC::Config::email_address,
+ From => $YAPC::Config::email_address,
+ Subject => "new YAPC::Israel::2004 registration received",
+ Message => $text,
+ );
+ sendmail(%spymail) or die $Mail::Sendmail::error unless $ENV{YAPCOM_NOMAIL};
+}
+
+
+
1;
Modified: lib/YAPC/Person.pm
===================================================================
--- lib/YAPC/Person.pm 2003-11-25 06:27:33 UTC (rev 38)
+++ lib/YAPC/Person.pm 2003-11-25 07:08:59 UTC (rev 39)
@@ -17,6 +17,7 @@
my $self = shift;
my %arg = @_;
delete $arg{run}; # was added for CGI::Application
+ delete $arg{submit}; # was added for CGI::Application
croak("acked should not be defined\n") if defined $arg{acked};
croak("authcode should not be defined\n") if defined $arg{authcode};
Modified: t/03-web-adduser.t
===================================================================
--- t/03-web-adduser.t 2003-11-25 06:27:33 UTC (rev 38)
+++ t/03-web-adduser.t 2003-11-25 07:08:59 UTC (rev 39)
@@ -61,10 +61,24 @@
}
+##### access the registration page for the first time
{
local $ENV{REQUEST_URI} = '/registration.html';
+ my $q = CGI->new();
+ my $webapp = YAPC::Organizer->new;
+ $webapp->query($q);
+ my $result = $webapp->run();
+ unlike($result, qr/There was an error in the provided data./, 'no error message');
+ like($result, qr@<h2>Registration Form</h2>@, 'no error message');
+}
+
+
+##### register a user
+{
+ local $ENV{REQUEST_URI} = '/registration.html';
my %user = %user1;
$user{pauseid} = 'MYPAUSEID';
+ $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
$webapp->query($q);
@@ -87,6 +101,7 @@
local $ENV{REQUEST_URI} = '/registration.html';
my %user = %user1;
$user{email} = 'dudu@tomtom';
+ $user{submit} = 1;
$user{notexisting_field} = 'bad value';
my $q = CGI->new(\%user);
@@ -104,6 +119,7 @@
my %user = %user1;
$user{email} = 'dudu@bad-id';
$user{id} = 100;
+ $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
@@ -116,6 +132,7 @@
my %user = %user1;
$user{email} = 'dudu@bad-acked';
$user{acked} = 100;
+ $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
@@ -128,6 +145,7 @@
my %user = %user1;
$user{email} = 'dudu@bad-authcode';
$user{authcode} = 100;
+ $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
@@ -142,6 +160,7 @@
{
local $ENV{REQUEST_URI} = '/login.html';
my %user = %user1;
+# $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
@@ -394,12 +413,13 @@
-###### registeriong wihtout validation
+###### registering without validation
{
local $ENV{REQUEST_URI} = '/registration.html';
my %user = %{$people[1]};
$user{run} = 'registration';
$user{pauseid} = 'MYPAUSEID';
+ $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
$webapp->query($q);
Modified: t/10-use-html-template.t
===================================================================
--- t/10-use-html-template.t 2003-11-25 06:27:33 UTC (rev 38)
+++ t/10-use-html-template.t 2003-11-25 07:08:59 UTC (rev 39)
@@ -35,6 +35,7 @@
$ENV{REQUEST_URI} = '/registration.html';
my %user = %user1;
$user{pauseid} = 'MYPAUSEID';
+ $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
$webapp->query($q);
Modified: t/lib/YAPC/Test/Data.pm
===================================================================
--- t/lib/YAPC/Test/Data.pm 2003-11-25 06:27:33 UTC (rev 38)
+++ t/lib/YAPC/Test/Data.pm 2003-11-25 07:08:59 UTC (rev 39)
@@ -73,6 +73,7 @@
{
local $ENV{REQUEST_URI} = '/registration.html';
my %user = %{$people[$i]};
+ $user{submit} = 1;
my $q = CGI->new(\%user);
my $webapp = YAPC::Organizer->new;
$webapp->query($q);
Modified: templates/registration.tmpl
===================================================================
--- templates/registration.tmpl 2003-11-25 06:27:33 UTC (rev 38)
+++ templates/registration.tmpl 2003-11-25 07:08:59 UTC (rev 39)
@@ -21,7 +21,7 @@
<tr><td>Home page:</td><td><input size=40 name="url" value="<TMPL_VAR NAME=url>" /></td></tr>
<tr><td>Mongers Group:</td><td><input size=40 name="mongers" value="<TMPL_VAR NAME=mongers>" /></td></tr>
<tr><td>Bio:</td><td><textarea cols=40 rows=10 name="bio"><TMPL_VAR NAME=bio></textarea></td></tr>
-<tr><td></td><td><input type="submit" value="Register"></td></tr>
+<tr><td></td><td><input type="submit" name="submit" value="Register"></td></tr>
</table>
</form>
Generated at 11:06 on 25 Nov 2003 by mariachi 0.51