[prev] [thread] [next] [lurker] [Date index for 2003/11/27]
Author: gabor
Date: 2003-11-27 15:31:22 +0200 (Thu, 27 Nov 2003)
New Revision: 78
Added:
templates/person.tmpl
Modified:
lib/YAPC/Organizer.pm
t/03-web-adduser.t
templates/list_people.tmpl
templates/message.tmpl
Log:
show more details about the registered people
Modified: lib/YAPC/Organizer.pm
===================================================================
--- lib/YAPC/Organizer.pm 2003-11-27 12:05:47 UTC (rev 77)
+++ lib/YAPC/Organizer.pm 2003-11-27 13:31:22 UTC (rev 78)
@@ -27,7 +27,8 @@
my @admin_pages = qw(admin admin_list_people admin_list_proposals);
# other pages that can be directly access but which don't need any authentication
-my @other_pages = qw(list_people login registration validation lost_validation lost_password);
+my @other_pages = qw(list_people login registration validation lost_validation lost_password
+ person);
my @run_modes = map {$_, $_} @user_pages, @admin_pages, @other_pages;
@@ -328,6 +329,7 @@
url => $url,
pauseid => $p->pauseid,
mongers => $p->mongers,
+ id => $p->id,
};
}
my $t = $self->_server_page('list_people');
@@ -674,8 +676,37 @@
return $t->output;
}
+=head2 person
+Public view of details of a person
+=cut
+sub person {
+ my $self = shift;
+ my $q = $self->query;
+
+ my $id = $self->is_logged_in;
+ return $self->send_message('no_such_person') if not $q->param('id');
+ my $p;
+ eval {
+ ($p) = YAPC::Person->search(id => $q->param('id'), acked => 1);
+ };
+ return $self->send_message('no_such_person') if not $p;
+
+ my $url = $p->url;
+ $url = "http://$url" if ($url and substr($url, 0, 7) ne 'http://');
+
+ my $bio = $p->bio;
+ $bio =~ s@(http://\S+)@<a href="$1">$1</a>@g; # turn urls to links
+
+ my $t = $self->_server_page('person');
+ $t->param($_ => $p->get($_)) foreach (qw(fname lname pauseid mongers));
+ $t->param(url => $url);
+ $t->param(bio => $bio);
+ $t->param(owner => $id eq $q->param('id'));
+ return $t->output;
+}
+
1;
Modified: t/03-web-adduser.t
===================================================================
--- t/03-web-adduser.t 2003-11-27 12:05:47 UTC (rev 77)
+++ t/03-web-adduser.t 2003-11-27 13:31:22 UTC (rev 78)
@@ -168,7 +168,17 @@
#like($result, qr/There was an error in the provided data/, 'User registered');
}
+##### show information about one person before validation should fail
+{
+ local $ENV{REQUEST_URI} = '/person.html';
+ my $q = CGI->new({id => 1});
+ my $webapp = YAPC::Organizer->new;
+ $webapp->query($q);
+ my $result = $webapp->run();
+ like($result, qr/No such person/, 'Received error page');
+}
+
###### validation
{
local $ENV{REQUEST_URI} = '/validation.html';
@@ -194,6 +204,39 @@
};
+
+##### show information about one person (without id it fails)
+{
+ local $ENV{REQUEST_URI} = '/person.html';
+ my $webapp = YAPC::Organizer->new;
+ $webapp->query(CGI->new());
+ my $result = $webapp->run();
+ like($result, qr/No such person/, 'Received error page');
+}
+##### show information about one person (with not exiting id it fails)
+{
+ local $ENV{REQUEST_URI} = '/person.html';
+ my $q = CGI->new({id => 30});
+ my $webapp = YAPC::Organizer->new;
+ $webapp->query($q);
+ my $result = $webapp->run();
+ like($result, qr/No such person/, 'Received error page');
+}
+##### show information about one person after validation
+{
+ local $ENV{REQUEST_URI} = '/person.html';
+ my $q = CGI->new({id => 1});
+ my $webapp = YAPC::Organizer->new;
+ $webapp->query($q);
+ my $result = $webapp->run();
+ like($result, qr/$user1{fname}/, 'fname shown correctly');
+}
+
+
+
+
+
+
###### login page
{
local $ENV{REQUEST_URI} = '/login.html';
Modified: templates/list_people.tmpl
===================================================================
--- templates/list_people.tmpl 2003-11-27 12:05:47 UTC (rev 77)
+++ templates/list_people.tmpl 2003-11-27 13:31:22 UTC (rev 78)
@@ -8,12 +8,8 @@
<TMPL_LOOP NAME="users">
<tr>
<td>
- <TMPL_IF NAME="url">
- <a href="<TMPL_VAR NAME="url">"><TMPL_VAR NAME="fname"> <TMPL_VAR NAME="lname"></a>
- <TMPL_ELSE>
- <TMPL_VAR NAME="fname"> <TMPL_VAR NAME="lname">
- </TMPL_IF>
- </a></td>
+ <a href="person.html?id=<TMPL_VAR NAME="id">"><TMPL_VAR NAME="fname"> <TMPL_VAR NAME="lname"></a>
+ </td>
<td><TMPL_VAR NAME="mongers"></td>
<td><a href="http://search.cpan.org/author/<TMPL_VAR NAME="pauseid">"><TMPL_VAR NAME="pauseid"></a></td>
</tr>
Modified: templates/message.tmpl
===================================================================
--- templates/message.tmpl 2003-11-27 12:05:47 UTC (rev 77)
+++ templates/message.tmpl 2003-11-27 13:31:22 UTC (rev 78)
@@ -13,4 +13,7 @@
<TMPL_IF NAME="no_such_proposal">
We could not find this proposal.
</TMPL_IF>
+<TMPL_IF NAME="no_such_person">
+No such person.
+</TMPL_IF>
<TMPL_INCLUDE NAME="footer.tmpl">
Added: templates/person.tmpl
===================================================================
--- templates/person.tmpl 2003-11-27 12:05:47 UTC (rev 77)
+++ templates/person.tmpl 2003-11-27 13:31:22 UTC (rev 78)
@@ -0,0 +1,30 @@
+<TMPL_VALUE NAME="title" VALUE="Personal Information">
+<TMPL_INCLUDE NAME="header.tmpl">
+<p />
+<form method="post">
+<input type="hidden" name="submit" value="Register" />
+<table>
+<tr><td>Name:</td><td><TMPL_VAR NAME="fname"> <TMPL_VAR NAME="lname"></td></tr>
+<tr><td>PAUSE ID:</td><td><a href="http://search.cpan.org/author/<TMPL_VAR NAME="pauseid">"><TMPL_VAR NAME="pauseid"></a></td>
+<tr><td>Home page:</td><td><a href="<TMPL_VAR NAME="url">"><TMPL_VAR NAME="url"></a></td></tr>
+<tr><td>Mongers Group:</td><td><TMPL_VAR NAME="mongers"></td></tr>
+</table>
+<p />
+<b>Bio:</b>
+<table border="1" width="100%">
+<tr><td>
+<pre>
+<TMPL_VAR NAME="bio">
+</pre>
+</td></tr>
+</table>
+<p />
+<b>Accepted Talks:</b>
+<table border="1" width="100%">
+<tr><td>n/a</td></tr>
+</table>
+<p />
+<TMPL_IF NAME="owner"><a href=personal_info.html>change this page</a></TMPL_IF>
+<p />
+<TMPL_INCLUDE NAME="footer.tmpl">
+
Generated at 17:06 on 27 Nov 2003 by mariachi 0.51