=over 4
-=item *
+=item 1
L<Introduction|Catalyst::Manual::Tutorial::Intro>
-=item *
+=item 2
L<Catalyst Basics|Catalyst::Manual::Tutorial::CatalystBasics>
-=item *
+=item 3
+
+L<More Catalyst Basics|Catalyst::Manual::Tutorial::MoreCatalystBasics>
+
+=item 4
L<Basic CRUD|Catalyst::Manual::Tutorial::BasicCRUD>
-=item *
+=item 5
L<Authentication|Catalyst::Manual::Tutorial::Authentication>
-=item *
+=item 6
L<Authorization|Catalyst::Manual::Tutorial::Authorization>
-=item *
+=item 7
L<Debugging|Catalyst::Manual::Tutorial::Debugging>
-=item *
+=item 8
L<Testing|Catalyst::Manual::Tutorial::Testing>
-=item *
+=item 9
L<Advanced CRUD|Catalyst::Manual::Tutorial::AdvancedCRUD>
-=item *
+=item 10
L<Appendices|Catalyst::Manual::Tutorial::Appendices>
=head1 Detailed Table of Contents
+
=head2 L<Part 1: Introduction|Catalyst::Manual::Tutorial::Intro>
=over 4
=item *
-CREATE A SQLITE DATABASE
+HELLO WORLD
+
+=over 4
=item *
-EDIT THE LIST OF CATALYST PLUGINS
+The Simplest Way
=item *
-DATABASE ACCESS WITH DBIx::Class
-
+Hello, World! Using a View and a Template
-=over 4
+=back
=item *
-Create a DBIC Schema File
+CREATE A SIMPLE CONTROLLER AND AN ACTION
+
+=back
-=item *
-Create the DBIC ``Result Source'' Files
+=head2 L<Part 3: More Catalyst Basics|Catalyst::Manual::Tutorial::MoreCatalystBasics>
+
+
+=over 4
=item *
-Use Catalyst::Model::DBIC::Schema to Load the Model Class
+CREATE A NEW APPLICATION
-=back
+=item *
+EDIT THE LIST OF CATALYST PLUGINS
=item *
=item *
-Using RenderView for the Default View
+Globally Customize Every View
=item *
-Globally Customize Every View
+Create a TT Template Page
+
+=back
=item *
-Create a TT Template Page
+CREATE A SQLITE DATABASE
+
+=item *
+
+DATABASE ACCESS WITH DBIx::Class
+
+=over 4
+
+=item *
+
+Create a Dynamic DBIC Model
=back
+=item *
+
+RUN THE APPLICATION
+
+=item *
+
+A STATIC DATABASE MODEL WITH DBIx::Class
+
+=over 4
+
+=item *
+
+Create Static DBIC Schema Files
+
+=item *
+
+Updating the Generated DBIC Schema Files
+
+=back
=item *
=item *
-USING THE DEFAULT TEMPLATE NAME
+RUNNING THE APPLICATION FROM THE COMMAND LINE
+
+=item *
+
+UPDATING THE VIEW
+
+=over 4
+
+=item *
+
+Using RenderView for the Default View
+
+=item *
+
+Using The Default Template Name
+
+=item *
+
+Return To A Manually-Specified Template
+
+=back
=back
-=head2 L<Part 3: Basic CRUD|Catalyst::Manual::Tutorial::BasicCRUD>
+
+=head2 L<Part 4: Basic CRUD|Catalyst::Manual::Tutorial::BasicCRUD>
=over 4
Try the Delete Feature
+=item *
+
+Fixing a Dangerous URL
+
+=item *
+
+Try the Delete and Redirect Logic
+
+=item *
+
+Using uri_for to Pass Query Parameters
+
+=item *
+
+Try the Delete and Redirect With Query Param Logic
+
=back
=back
-=head2 L<Part 4: Authentication|Catalyst::Manual::Tutorial::Authentication>
+
+=head2 L<Part 5: Authentication|Catalyst::Manual::Tutorial::Authentication>
=over 4
=item *
-Create New ``Result Source Objects''
-
-=item *
-
Sanity-Check Reload of Development Server
=item *
=back
+=item *
+
+USING THE SESSION FOR FLASH
+
+=over 4
+
+=item *
+
+Try Out Flash
+
+=item *
+
+Switch To Flash-To-Stash
+
=back
-=head2 L<Part 5: Authorization|Catalyst::Manual::Tutorial::Authorization>
+=back
+
+
+=head2 L<Part 6: Authorization|Catalyst::Manual::Tutorial::Authorization>
=over 4
=back
-=head2 L<Part 6: Debugging|Catalyst::Manual::Tutorial::Debugging>
+
+=head2 L<Part 7: Debugging|Catalyst::Manual::Tutorial::Debugging>
=over 4
=back
-=head2 L<Part 7: Testing|Catalyst::Manual::Tutorial::Testing>
+
+=head2 L<Part 8: Testing|Catalyst::Manual::Tutorial::Testing>
=over 4
=back
-=head2 L<Part 8: Advanced CRUD|Catalyst::Manual::Tutorial::AdvancedCRUD>
-
-=over 4
-
-=item *
-HTML::WIDGET FORM CREATION
+=head2 L<Part 9: Advanced CRUD|Catalyst::Manual::Tutorial::AdvancedCRUD>
=over 4
=item *
-Add the HTML::Widget Plugin
-
-=item *
-
-Add a Form Creation Helper Method
-
-=item *
-
-Add Actions to Display and Save the Form
-
-=item *
-
-Update the CSS
-
-=item *
-
-Create a Template Page To Display The Form
-
-=item *
-
-Add Links for Create and Update via HTML::Widget
-
-=item *
-
-Test The <HTML::Widget> Create Form
-
-=back
-
-=item *
-
-HTML::WIDGET VALIDATION AND FILTERING
-
-=over 4
-
-=item *
-
-Add Constraints and Filters to the Widget Creation Method
-
-=item *
-
-Rebuild the Form Submission Method to Include Validation
-
-=item *
-
-Try Out the Form
+ADVANCED CRUD OPTIONS
=back
-=item *
-
-Enable DBIx::Class::HTMLWidget Support
-
-=over 4
-
-=item *
-
-Add DBIx::Class::HTMLWidget to DBIC Model
-
-=item *
-
-Use populate_from_widget in hw_create_do
-=back
-
-=back
-
-=head2 L<Part 9: Appendices|Catalyst::Manual::Tutorial::Appendices>
+=head2 L<Part 10: Appendices|Catalyst::Manual::Tutorial::Appendices>
=over 4
Other Catalyst documentation folks like Kieren Diment, Gavin Henry,
and Jess Robinson (including their work on the original Catalyst
-tutorial).
+tutorial).
+
+=item *
+
+Kieren Diment for currently maintaining this document on CPAN.
=item *
=item *
+Louis Moore (who thanks Marcello Romani and Tom Lanyon) for the
+PostgreSQL content in the Appendix.
+
+=item *
+
People who have emailed me with corrections and suggestions on the
tutorial. As of the most recent release, this include: Florian Ragwitz,
Mauro Andreolini, Jim Howard, Giovanni Gigante, William Moreno,
Bryan Roach, Ashley Berlin, David Kamholz, Kevin Old, Henning Sprang,
-Jeremy Jones, David Kurtz, and Ingo Wichmann.
+Jeremy Jones, David Kurtz, Ingo Wichmann, and Shlomi Fish. I'm sure I
+am missing some names here... apologies for that (please let me know
+if you name should be here).
=back
Please report any errors, issues or suggestions to the author. The
most recent version of the Catalyst Tutorial can be found at
-L<http://dev.catalyst.perl.org/repos/Catalyst/trunk/Catalyst-Runtime/lib/Catalyst/Manual/Tutorial/>.
+L<http://dev.catalyst.perl.org/repos/Catalyst/trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/>.
-Copyright 2006, Kennedy Clark, under Creative Commons License
+Copyright 2006-2008, Kennedy Clark, under Creative Commons License
(L<http://creativecommons.org/licenses/by-nc-sa/2.5/>).