Permalink
Browse files

25-odds-and-ends.patch

# 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 Jun 3, 2013
1 parent 39a466e commit 62c5cf78bbd9f3ec80b6bb42f4ef57fa385d7f2f
Showing with 1 addition and 1 deletion.
  1. +1 −1 app/models/story.rb
View
@@ -5,7 +5,7 @@ class Story < ActiveRecord::Base
fields do
title :string
body :text
status :string
status enum_string(:new, :accepted, :discussion, :implementation)
tasks_count :integer, :default => 0, :null => false
timestamps
end

0 comments on commit 62c5cf7

Please sign in to comment.