This laboratory may be done individually or in pairs. I encourage you to do it in pairs.
If you have not already done so, read my Remote Access Notes on how best to work on grue from a Windows or Linux (or Mac OS X) PC. Reread my Unix and vi command summaries. (I strongly encourage you to learn vi (or vim); it really will make your life easier.)
Complete working through parts 1 to 4 of the Tutorial, following the instructions as you go. Refer back to Exercise 3 for instructions.
This time, implement both sections "Customize the admin look and feel" and "Using generic views", if you did not do so previously. "Using generic views" requires you to replace some of what you have previously done, so you should make a complete copy of your project directory before you start, and make these changes in the copy. To copy a complete directory from old to new:
$ cp -R old new
(You can also do this using your sftp application.)
Think about what you have just done. Reread all your code and ensure you understand it. Consider each aspect of your (admin and user) interface and recall what part of the implementation is responsible for that aspect.
Copy, study, install and test the guestbook project (~s352978/pub/guestbook.zip on dwarf). You can copy and unzip this file by giving the following commands in a terminal window on dwarf:
$ cp ~s352978/pub/guestbook.zip . $ unzip guestboook.zip
The first command copies the file into your current directory. The second command unzips the files in to a new guestbook subdirectory.
Change the format of the form from a table to an unordered list (to see how templates make change easy).
Change the URL patterns to all start with /guestbook/ instead of /messages/ (to see that views and templates should not refer to explicit URLs).
Change the home page so that it shows the 5 most recent messages, a link to show all messages, a form to enter a query to view those messages whose author or text contains the given query string, and a form to add a new message. (This is primarily an exercise in implementing queries.)
Start work on Assignment 1.