summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/DesignDocument.md69
1 files changed, 38 insertions, 31 deletions
diff --git a/docs/DesignDocument.md b/docs/DesignDocument.md
index 1c256b0..4c2d4d4 100644
--- a/docs/DesignDocument.md
+++ b/docs/DesignDocument.md
@@ -154,10 +154,6 @@ users/new.html
: One for repeating the password, and one for email. This POST to
the Login controller.
-tournaments/new.html
- : A form that interacts with users who are either hosts or becoming
- hosts. This interacts with tournament controller.
-
tournaments/index.html
: A tree-like display of matches, where each match consists of a
pair of teams. All users can click on a match to go to that
@@ -166,11 +162,16 @@ tournaments/index.html
view. There will be an end button that will redirect to back to
the homepage after posting to the tournament controller. The
tournament will POST to the tournament controller.
-
+tournaments/show.html
+ : Shows the information for a single tournament. If the user is
+ authorized, it also shows an “edit” button that triggers a the
+ browser to GET `TournamentsController#edit()`.
+tournaments/new.html
+ : A form for creating a new tournament. The form is POSTed to
+ `TournamentsController#create()`.
tournaments/edit.html
- : This view is a list of settings. Some are form entries, and some
- are check-boxes. More settings will be added later in
- development. This view interacts with the tournament controller.
+ : A form for editing an existing tournament. The form is POSTed to
+ `TournamentsController#update()`.
matches/show.html
: A display of both teams. Each team's players are clickable which
@@ -193,6 +194,11 @@ users/show.html
### CONTROLLERS
+Any time "assuming the user has permission" it is mentioned, if the
+user doesn't have permission, it renders the
+`common/permission_denied` view. This also means that the method
+interacts with a `User` model to evaluate the permissions.
+
ApplicationController (abstract)
: The base controller class that all other controllers inherit from.
@@ -203,17 +209,12 @@ MainController
`main/homepage` view.
- `edit_settings()` Responds to GET requests by (if the user is
authenticated and is a host) rendering the `main/edit` view
- that presents the user with a form to edit the server settings.
- If the user is not authenticated, it renders the
- `common/permission_denied` view. This involves interacting with
- the `User` model to determine whether the user is authorized to
- see this.
+ that presents the user with a form to edit the server settings;
+ assuming the user has permission.
- `update_settings()` Responds to POST requests by updating the
- server configuration with the POSTed settings. It then either
- renders the `common/permission_denied` view, or the `main/edit`
- view with the updated settings. This involves interacting with
- the `User` model to determine whether the user is authorized to
- do this.
+ server configuration with the POSTed settings. It then renders
+ the `main/edit` view with the updated settings. This assumes
+ the user has the permissions.
LoginController
: This controller handles session management. It contains two
@@ -233,21 +234,27 @@ LoginController
TournamentsController
: This controller will have methods:
- - `new()` Renders the `tournaments/new` view, assuming the user
- has permission. Otherwise, renders `common/permission_denied`.
- - `create`
+ The following methods respond to GET requests by rendering the
+ `tournaments/*` view with the same name:
+
+ - `index()`
- `show()`
- - `edit()`
- - `update()`
- - `end()`
+ - `new()` (assuming the user has permission)
+ - `edit()` (assuming the user has permission)
+
+ The following methods respond to POST requests, assuming the user
+ has permission:
+
+ - `create()` Creates a new `Tournament` with the POSTed data.
+ Then renders the `tournaments/show` view.
+ - `update()` Updates the specified `Tournament` with the POSTed
+ data. Then renders the `tournaments/edit` view.
+ - `end()` Ends the specified `Tournament`. Then redirects to
+ `MainController#show_hompage()`.
- All of these methods will interact with the Tournament model, and all of
- its fields including users matches and TournamentSettings.
-
-Server
- : Rails’ Server class handles all HTTP events. Our Server class is
- the class that is the main program. It instantiates other classes,
- manages requests from Views, and runs static methods.
+ All of these methods will interact with the `Tournament` model,
+ and all of its fields including users matches and
+ TournamentSettings.
User
: A class that represents someone using the Views (HTML, JavaScript)