Skip to content

Commit

Permalink
25-odds-and-ends.patch
Browse files Browse the repository at this point in the history
# Odds and ends

We're now going to work through some more easy but very valuable enhancements to the app. We're going to add:

 * A menu for story statuses. The free-form text field is a bit poor after all. We'll do this first with a hard-wired set of options, and then add the ability to manage the set of available statuses.

 * Add filtering of stories by status to the project page

 * Drag and drop re-ordering of tasks. This effectively gives us prioritisation of tasks.

 * Markdown or textile formatting of stories. This is implemented by changing *one symbol* in the source code.

Off we go.



## Story status menu

We're going to do this in two stages - first a fixed menu that would require a source-code change if you ever need to alter the available statuses. We'll then remove that restriction by adding a StoryStatus model. We'll also see the migration generator in action again.

The fixed menu is brain-dead simple. Track down the declaration of the status field in `story.rb` (it's in the `fields do ... end` block), and change it to read something like:

SHOW_PATCH

Job done. If you want the gory details, `enum_string` is a *type constructor*. It creates an anonymous class that represents this enumerated type (a subclass of String). You can see this in action by trying this in the console:

	>> Story.find(:first).status.class
{: .ruby}
  • Loading branch information
iox committed Aug 12, 2013
1 parent 39a466e commit 62c5cf7
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion app/models/story.rb
Expand Up @@ -5,7 +5,7 @@ class Story < ActiveRecord::Base
fields do fields do
title :string title :string
body :text body :text
status :string status enum_string(:new, :accepted, :discussion, :implementation)
tasks_count :integer, :default => 0, :null => false tasks_count :integer, :default => 0, :null => false
timestamps timestamps
end end
Expand Down

0 comments on commit 62c5cf7

Please sign in to comment.