6.2. Logging in and Using WhatWhat Status
To follow along with the code in the next few chapters, download and install WhatWhat Status. Although you can download the latest version from the WhatWhat Status website (www.cleverdevil.org/whatwhat/), you're better off downloading the exact version we're using from our website: www.TurboGearsBook.com/code/whatwhat.
WhatWhat Status has four main screens: Dashboard, Project, Recent Changes, and People. And the vast majority of the action takes place on the Project page, where individual projects are managed. There's one more screen in WhatWhat Status, for logging in to the application, but that isn't so much a WhatWhat Status feature as a module that we haven't had a chance to look at yet: TurboGears Identity.
The Identity module provides an easy way for you to restrict access to various parts of our application based on the user's login ID and whatever group membership or permissions you define. If you remember back to when we quickstarted our Bookmarker application, the quickstart script asked if we wanted to use Identity, and we said no.
If we had said yes, quickstart would have included some additional code on our newly created project. The model.py file would have included Users, Groups, and Permissions classes, where we could store information for what users exist in the system and what permissions they ought to have. Quickstart would also have updated our controllers.py file to include login and logout methods, and have thrown the necessary Kid templates into our templates directory for good measure.
Every page in WhatWhat Status checks to see that you are logged in before allowing you to access it; if you aren't logged in, you are redirected to the login page, as shown in Figure 6.1.
Figure 6.1. WhatWhat Status login
After you've logged in, you are redirected to the page you originally tried to get to. In most cases, this is the Dashboard; if you received an e-mail link to a particular project page, and you came into WhatWhat Status by clicking on that link, however, you are redirected there.
The Dashboard page shows a list of all the active projects in the system with a quick summary of the various elements of each project (Figure 6.2). Projects can contain any number of Risks, Issues, Notes, Files, Questions, and Answers. Another critical piece of any project is its current Status, which displays prominently in red if the status indicates that some additional attention is required. The Dashboard is intended as a way for developers to quickly communicate this information to each other and to other important stakeholders in the project.
Figure 6.2. Project Dashboard
If you click any of the projects on the Dashboard, you are taken directly to the project's page (as seen in Figure 6.3). As discussed in Chapter 8, "RSS, Cookies, and Dynamic Views in WhatWhat Status," the Project page relies on Ajax features to make creating and updating Risk, Notes, Issues, and so forth, simple and quick. Click Add Risk, and a new form appears right there in the page, allowing you to quickly update that piece of the project. When you click Save, the page is automatically updated, and you can go on adding more Risks, Questions, Files, or doing whatever other updates you need to do.
Figure 6.3. WhatWhat Status Project page
This highlights one of the key use cases for Ajax. If a process isn't efficient and easy to use, developers aren't going to waste their time "filling out paperwork." WhatWhat Status's use of a few well-placed Ajax forms means that updating a project status involves no page reloads and no waiting on the server.
And that brings us to another important feature of WhatWhat Status. Developers will see a project tracking system as a waste of time if they don't see people reading and responding to the information that goes into the system. So, WhatWhat Status steals a page from the wiki playbook and includes a Recent Changes page, which can be used to see all the new or updated Projects, Issues, Risks, Files, Questions, and Answers. The thing that makes this page most useful, however, is the RSS feed generator, which means that project team members, managers, and other stakeholders can just subscribe to the feed and see the changes in their favorite feed reader in near real time.