<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/controllers/icebreakers_controller.rb</filename>
    </added>
    <added>
      <filename>app/helpers/icebreakers_helper.rb</filename>
    </added>
    <added>
      <filename>app/models/icebreaker.rb</filename>
    </added>
    <added>
      <filename>app/views/icebreakers/_form.html.erb</filename>
    </added>
    <added>
      <filename>app/views/icebreakers/edit.html.erb</filename>
    </added>
    <added>
      <filename>app/views/icebreakers/index.html.erb</filename>
    </added>
    <added>
      <filename>app/views/icebreakers/new.html.erb</filename>
    </added>
    <added>
      <filename>app/views/icebreakers/show.html.erb</filename>
    </added>
    <added>
      <filename>db/migrate/20091101231404_create_icebreakers.rb</filename>
    </added>
    <added>
      <filename>features/icebreakers.feature</filename>
    </added>
    <added>
      <filename>features/step_definitions/icebreaker_steps.rb</filename>
    </added>
    <added>
      <filename>spec/controllers/icebreakers_controller_spec.rb</filename>
    </added>
    <added>
      <filename>spec/fixtures/icebreakers.yml</filename>
    </added>
    <added>
      <filename>spec/models/icebreaker_spec.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -14,7 +14,8 @@ class IdeasController &lt; ApplicationController
       :order         =&gt; &quot;@relevance DESC, adjusted_rating DESC, active_projects_count DESC, watchers_count DESC, created_at DESC&quot; 
   
     else
-      @ideas = Idea.get('active', 'id DESC', params[:page])
+      # activation code ensures only only ideas from activated (activation after registeration) users are shown
+      @ideas = Idea.get('ideas.active and users.activation_code is Null', 'ideas.id DESC', params[:page])
     end
 
     @ideas.compact! # removes any nil objects  </diff>
      <filename>app/controllers/ideas_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,14 +2,16 @@ class UsersController &lt; ApplicationController
   before_filter :login_required, :update_login_time, :except =&gt; [ :new, :create, :activate, :forgot_password, :reset_password, :resend_activation_link ]
   # render new.rhtml
   def new
-    @user = User.new
+    @user = User.new
+    @idea = Idea.new
   end
 
   def create
     logout_keeping_session!
     # check passcode to confirm this person was invited.  This is basic hard coded thing, will need to be replaced.
-      @user = User.new(params[:user])
-
+      @user = User.new(params[:user])
+      @idea = Idea.new(params[:idea])
+      
     # will need to add javascript support to make the lookups via user browser possible, to reduce number of requests from single IP
       @new_location = params[:location_select] || params[:new_location].strip
 
@@ -41,22 +43,38 @@ class UsersController &lt; ApplicationController
                   return
                 end
               end             
-              
-              success = @user &amp;&amp; @user.save
-              if success &amp;&amp; @user.errors.empty?
+     
+              # add industry
+              @idea.industries &lt;&lt; (Industry.find_by_name(&quot;Just for fun&quot;) || Industry.find(:first)) # prevents an error if name changes
+              # check if idea is valid
+              unless @idea.valid?
+                if @idea.errors[:title]
+                  @user.errors.add_to_base(&quot;Idea title &quot; + @idea.errors[:title])
+                end
+
+                if @idea.errors[:description]
+                  @user.errors.add_to_base(&quot;Idea description &quot; + @idea.errors[:description])
+                end
+              end
+
+              
+              if @user.errors.empty? and @user.save
                 flash[:notice] = &quot;Thank you for registering.  An activation email will be sent to &quot; + @user.email + &quot; shortly.  You will be able to log in only after you activate your account.&quot;
+
+                @user.ideas &lt;&lt; @idea
+                @idea.save(false) # validations already done above
                 redirect_to :login
-              else
+              else                
                 flash[:error]  = &quot;Your registration attempt failed.  Try again.&quot;
                 render :action =&gt; :new
               end
            else
-                flash[:error]  = &quot;ReCaptcha test failed.&quot;
+                flash[:error]  = &quot;You failed the ReCaptcha test.&quot;
                 render :action =&gt; :new
            end
        else
           flash[:error]  = &quot;Could not register.  You must be invited to join this network before you can register.&quot;
-          @user.errors.add(:email, &quot; (#{ @user.email }) not found on open the invitation list.&quot;)
+          @user.errors.add(:email, &quot; #{ '(' + @user.email + ')' if @user.email.length &gt; 0 } not found on the invitation list.&quot;)
           render :action =&gt; 'new'
        end
     else
@@ -113,7 +131,7 @@ class UsersController &lt; ApplicationController
                 :conditions =&gt; &quot;active&quot;
                             
     unless @user
-      flash[:error] = &quot;Profile for #{ h(params[:id]) } is currently inactive or doesn't exist.&quot;
+      flash[:error] = &quot;Profile for #{params[:id] } is currently inactive or doesn't exist.&quot;
     end
 
   end</diff>
      <filename>app/controllers/users_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -482,25 +482,61 @@ module ApplicationHelper
     end
   end
   
-  
-  def show_recent_ideas_and_projects
-    items = Scorecard.recent(3) || []
+  def show_recent
+    ideas     = Idea.recent(3)      || []
+    projects  = Project.recent(3)   || []
+    jobs      = Job.recent(3)       || []
+    people    = User.recent(3)      || []
     
     html =[]
-    if items.size &gt; 0
-      items.each do |thing| 
-        html &lt;&lt; &quot;&lt;h3&gt;&quot; + link_to(h(thing.title), thing) + &quot;&lt;/h3&gt;&quot;     
-        html &lt;&lt; h(thing.description[0..150])
-        html &lt;&lt; &quot;...&quot; if thing.description.size &gt; 150
+    
+    if ideas.size &gt; 0
+      html &lt;&lt; &quot;&lt;h2&gt;New Ideas&lt;/h2&gt;&lt;h3&gt;&quot;
+      ideas.each do |idea|
+        html &lt;&lt; link_to(h(idea.title), idea_path(idea))
+        html &lt;&lt; &quot; || &quot; unless idea == ideas.last
       end
-    else
+      html &lt;&lt; &quot;&lt;/h3&gt;&quot;
+    end    
+
+    if projects.size &gt; 0
+      html &lt;&lt; &quot;&lt;h2&gt;New Projects&lt;/h2&gt;&lt;h3&gt;&quot;
+      projects.each do |project|
+        html &lt;&lt; link_to(h(project.title), project_path(project))
+        html &lt;&lt; &quot; || &quot; unless project == projects.last
+      end
+      html &lt;&lt; &quot;&lt;/h3&gt;&quot;
+    end    
+
+    if jobs.size &gt; 0
+      html &lt;&lt; &quot;&lt;h2&gt;New Jobs&lt;/h2&gt;&lt;h3&gt;&quot;
+      jobs.each do |job|
+        html &lt;&lt; link_to(h(job.title), job_path(job))
+        html &lt;&lt; &quot; || &quot; unless job == jobs.last
+      end
+      html &lt;&lt; &quot;&lt;/h3&gt;&quot;
+    end    
+
+    if people.size &gt; 0
+      html &lt;&lt; &quot;&lt;h2&gt;New People&lt;/h2&gt;&lt;h3&gt;&quot;
+      people.each do |person|
+        html &lt;&lt; link_to(h(person.login), user_path(person))
+        html &lt;&lt; &quot; || &quot; unless person == people.last
+      end
+      html &lt;&lt; &quot;&lt;/h3&gt;&quot;
+    end    
+    
+    if html == []
       html = &quot;There is no recent activity&quot;
     end
         
     html
+    
   end
 
 
+
+
   def display_dashboard
 
     unless current_user</diff>
      <filename>app/helpers/application_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,10 @@
 class Idea &lt; ActiveRecord::Base
   validates_presence_of  :title
+  validates_size_of :title, :maximum =&gt; 100
+  
   validates_presence_of  :description
+  validates_size_of      :description, :maximum =&gt; 1000
+
   validates_presence_of  :industries, :message =&gt; &quot;should be selected&quot;
   validates_size_of      :industries, :maximum =&gt; 5, :message =&gt; &quot;should not be more than 5.&quot;
 
@@ -87,7 +91,14 @@ class Idea &lt; ActiveRecord::Base
     updated_at &gt; timestamp # returns true if updated since date, false otherwise
   end
   
-
+  def self.recent(how_many = 3) # default is 3
+    # this is a class method
+    # usage =&gt; Idea.recent(5)
+    
+    find :all,  :limit =&gt; how_many.to_i, :include =&gt; :user,
+                :conditions =&gt; 'ideas.active = true and users.activation_code is Null',
+                :order =&gt; &quot;ideas.created_at DESC&quot;
+  end    
 
   private
 
@@ -123,7 +134,7 @@ class Idea &lt; ActiveRecord::Base
     if active
       # this was counted in user's idea counter
       # note: inactive projects are not counted
-      decrement_counter
+      decrement_counter if user
     end
   end
 </diff>
      <filename>app/models/idea.rb</filename>
    </modified>
    <modified>
      <diff>@@ -77,6 +77,17 @@ class Job &lt; ActiveRecord::Base
       ind.chop.strip
   end
 
+
+  def self.recent(how_many = 3) # default is 3
+    # this is a class method
+    # usage =&gt; Idea.recent(5)
+    
+    find :all,  :limit =&gt; how_many.to_i, :include =&gt; :user,
+                :conditions =&gt; 'jobs.active = true and jobs.open = true and users.activation_code is Null and users.active = true',
+                :order =&gt; &quot;jobs.created_at DESC&quot;
+  end    
+
+
   private
 
   # THE BELOW COUNTERS ARE MEANT TO TRACK OPEN JOBS POSTED BY USER</diff>
      <filename>app/models/job.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,10 @@
 class Project &lt; ActiveRecord::Base
   validates_presence_of  :title
+  validates_size_of :title, :maximum =&gt; 100
+  
   validates_presence_of  :description
+  validates_size_of      :description, :maximum =&gt; 1000
+
   validates_presence_of  :industries, :message =&gt; &quot;error: you must select at least one relevant industry&quot;
   validates_size_of      :industries, :maximum =&gt; 5, :message =&gt; &quot;error: you cannot select more than 5 industries&quot;
 
@@ -104,6 +108,14 @@ class Project &lt; ActiveRecord::Base
 
 
 
+  def self.recent(how_many = 3) # default is 3
+    # this is a class method
+    # usage =&gt; Project.recent(5)
+    
+    find :all,  :limit =&gt; how_many.to_i, :include =&gt; :user,
+                :conditions =&gt; 'projects.active = true and users.activation_code is Null',
+                :order =&gt; &quot;projects.created_at DESC&quot;
+  end    
 
 protected
 </diff>
      <filename>app/models/project.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,12 @@
 class Scorecard &lt; ActiveRecord::Base
   include Math
-  belongs_to :scorable, :polymorphic =&gt; true
-  has_many :ratings
-  
+
   validates_presence_of     :scorable_id
   validates_presence_of     :scorable_type
 
+  belongs_to :scorable, :polymorphic =&gt; true
+  has_many :ratings
+
   attr_accessible # nothing
 
 
@@ -33,23 +34,25 @@ class Scorecard &lt; ActiveRecord::Base
   end
 
 
-  def self.recent(how_many = 3) # default is 3
-    # this is a class method
-    # usage =&gt; Scorecard.recent(5)
-    
-    # find 3 most recent ideas and or proects
-    # (also ensures how_many is an integer)
-    scores = find :all, :limit =&gt; how_many.to_i, :order =&gt; &quot;created_at DESC&quot;, :conditions =&gt; { :scorable_type =&gt; [&quot;Idea&quot;, &quot;Project&quot;] }
-    # return the objects, not scorecard
-    items =[]
-    if scores
-      scores.each do |s|
-        items &lt;&lt; s.scorable unless s.scorable == nil
-      end
-    end
-         
-    return items
-  end    
+#  def self.recent(how_many = 3) # default is 3
+#    # this is a class method
+#    # usage =&gt; Scorecard.recent(5)
+#    
+#    # find 3 most recent ideas and or proects
+#    # (also ensures how_many is an integer)
+#    scores = find :all, :limit =&gt; how_many.to_i, :order =&gt; &quot;created_at DESC&quot;, :conditions =&gt; { :scorable_type =&gt; [&quot;Idea&quot;, &quot;Project&quot;] }
+#    # return the objects, not scorecard
+
+#    items =[]
+#    if scores
+#      scores.each do |s|
+#        items &lt;&lt; s.scorable unless s.scorable == nil
+#      end
+#    end
+
+
+#    return items
+#  end    
 
   define_index do
     indexes scorable_type</diff>
      <filename>app/models/scorecard.rb</filename>
    </modified>
    <modified>
      <diff>@@ -145,8 +145,10 @@ class User &lt; ActiveRecord::Base
   has_many :applications_for_jobs, :through =&gt; :job_openings, :source =&gt; :job_applications, :conditions =&gt; &quot;job_applications.user_id != #{id}&quot;
 
 
+  has_many :icebreakers
+
   before_create :make_activation_code
-  after_create :create_some_objects
+  after_create  :create_some_objects
   before_update :custom_counter_cache_before_update
   before_destroy :log   # decreaseing active member count on projects not needed
                         # because this will be handled through destroy of job application
@@ -173,7 +175,8 @@ class User &lt; ActiveRecord::Base
                   :password,
                   :password_confirmation,
                   :last_logon,
-                  :previous_logon
+                  :previous_logon,
+                  :idea_attributes # virtual attribute
 
 
   def self.get(conditions, order, page)
@@ -447,6 +450,17 @@ class User &lt; ActiveRecord::Base
     return { :mystuff =&gt; mystuff, :watching =&gt; watching }  
   end
   
+
+  def self.recent(how_many = 3) # default is 3
+    # this is a class method
+    # usage =&gt; User.recent(5)
+    
+    find :all,  :limit =&gt; how_many.to_i,
+                :conditions =&gt; 'active = true and activation_code is Null',
+                :order =&gt; &quot;created_at DESC&quot;
+  end    
+
+
  
   protected
 </diff>
      <filename>app/models/user.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@
           &lt;/h2&gt;
           &lt;%= render :partial =&gt; '/shared/stars', :locals =&gt; { :scorable =&gt; idea} %&gt;
           &lt;p&gt;&lt;%= show_description(idea) %&gt;&lt;/p&gt;
-          &lt;p&gt;posted &lt;%= time_ago_in_words(idea.created_at) %&gt; ago by &lt;%= link_to(idea.user.login, user_path(idea.user)) %&gt;&lt;/p&gt;
+          &lt;p&gt;posted &lt;%= time_ago_in_words(idea.created_at) %&gt; ago by &lt;%= idea.user ? link_to(idea.user.login, user_path(idea.user)) : &quot;Anonymous&quot; %&gt;&lt;/p&gt;
 
           &lt;p&gt;&lt;%= dashboard_for(idea) %&gt;&lt;/p&gt;
         &lt;/div&gt;</diff>
      <filename>app/views/ideas/_idea.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,12 @@
 &lt;% content_for :title do %&gt;Invitations&lt;% end %&gt;
 
-&lt;h1&gt;&lt;%= pluralize @invitations.total_entries, &quot;Invitation&quot; %&gt; | &lt;%= link_to &quot;Invite Another Person&quot;, new_invitation_path %&gt;&lt;/h1&gt;
+&lt;h1&gt;&lt;%= pluralize @invitations.total_entries, &quot;Invitation&quot; %&gt; | &lt;%= link_to &quot;Invite Another Person&quot;, new_invitation_path %&gt;
+  &lt;% if current_user.admin? %&gt;
+    | &lt;%= link_to &quot;Icebreakers&quot;, icebreakers_path %&gt;
+  &lt;% end %&gt;
+&lt;/h1&gt;
+
+
 &lt;% unless @invitations %&gt;
   You have not invited anyone yet,  &lt;%= link_to &quot;invite&quot;, new_invitation_path %&gt; someone!
 &lt;% end %&gt;</diff>
      <filename>app/views/invitations/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,12 @@
 &lt;tr&gt;
   &lt;td width=&quot;70%&quot; valign=&quot;top&quot;&gt;  
 
-      &lt;h1&gt;New Invitation | &lt;%= link_to &quot;View Past Invitations&quot;, invitations_path %&gt;&lt;/h1&gt;
+      &lt;h1&gt;New Invitation | &lt;%= link_to &quot;View Past Invitations&quot;, invitations_path %&gt;
+      &lt;% if current_user.admin? %&gt;
+        | &lt;%= link_to &quot;Icebreakers&quot;, icebreakers_path %&gt;
+      &lt;% end %&gt;
+      &lt;/h1&gt;
+      
       &lt;p&gt;&lt;i&gt;Commune2 is a closed network.  Without this invitation, the person will not be able to register.&lt;/i&gt;&lt;/p&gt;
       &lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; You can invite only one person at a time, and only 2 people per 24 hours.&lt;/p&gt;
       &lt;p&gt;&lt;h2&gt;You currently have &lt;%= pluralize current_user.available_invitations, &quot;available invitation&quot; %&gt;.&lt;/h2&gt; </diff>
      <filename>app/views/invitations/new.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@
           &lt;/h2&gt;
           &lt;%=h job.description[0..250] %&gt;&lt;% if job.description.length &gt; 250 %&gt;...&lt;% end %&gt;
 
-          &lt;p&gt;posted &lt;%= time_ago_in_words(job.created_at) %&gt; ago by &lt;%= link_to(job.user.login, user_path(job.user)) %&gt;&lt;/p&gt;
+          &lt;p&gt;posted &lt;%= time_ago_in_words(job.created_at) %&gt; ago by &lt;%= job.user ? link_to(job.user.login, user_path(job.user)) : &quot;Anonymous&quot; %&gt;&lt;/p&gt;
 
           &lt;%= dashboard_for(job) %&gt; 
 </diff>
      <filename>app/views/jobs/_job.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -38,8 +38,8 @@
                           &lt;%= section_icon %&gt;
                         &lt;/td&gt;
                         &lt;td valign=&quot;top&quot;&gt;
-                          &lt;p class=&quot;banner&quot;&gt;&lt;%= link_to image_tag(&quot;menu_icons/home_menu_icon.png&quot;, :border =&gt; &quot;0&quot;), root_path %&gt;&lt;/p&gt;
-                          &lt;p class=&quot;banner&quot;&gt;&lt;%= link_to image_tag(&quot;menu_icons/help_menu_icon.png&quot;, :border =&gt; &quot;0&quot;), help_path %&gt;&lt;/p&gt;
+                          &lt;p class=&quot;banner&quot;&gt;&lt;%= link_to &quot;home&quot;, root_path, :class=&gt; &quot;banner-no-block&quot;  %&gt;&lt;/p&gt;
+                          &lt;p class=&quot;banner&quot;&gt;&lt;%= link_to &quot;about&quot;, help_path, :class=&gt; &quot;banner-no-block&quot;  %&gt;&lt;/p&gt;
                         &lt;/td&gt;
                       &lt;/tr&gt;
                     &lt;/table&gt;</diff>
      <filename>app/views/layouts/application.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -29,7 +29,7 @@
           &lt;%= render :partial =&gt; '/shared/stars', :locals =&gt; { :scorable =&gt; project} %&gt;
 
           &lt;p&gt;&lt;%= show_description(project) %&gt;&lt;/p&gt;
-          &lt;p&gt;posted &lt;%= time_ago_in_words(project.created_at) %&gt; ago by &lt;%= link_to(project.user.login, user_path(project.user)) %&gt;&lt;/p&gt;
+          &lt;p&gt;posted &lt;%= time_ago_in_words(project.created_at) %&gt; ago by &lt;%= project.user ? link_to(project.user.login, user_path(project.user)) : &quot;Anonymous&quot; %&gt;&lt;/p&gt;
 
           &lt;p&gt;&lt;%= dashboard_for(project) %&gt;&lt;/p&gt;
         &lt;/div&gt;</diff>
      <filename>app/views/projects/_project.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;div id=&quot;login-splash&quot;&gt;
   &lt;% form_tag session_path do -%&gt;
 
-  &lt;h1&gt;If you have been invited to join, please &lt;%= link_to &quot;register&quot;, signup_path %&gt;.        What is this thing? Check out our &lt;%= link_to &quot;about&quot;, help_path %&gt; page. 
+  &lt;h1 style=&quot; text-transform: none;&quot;&gt;If you have been invited to join, please &lt;%= link_to &quot;register&quot;, signup_path %&gt;.        What is this thing? Check out our &lt;%= link_to &quot;about&quot;, help_path %&gt; page. 
       If your registration has been activated, you can log in.
  &lt;/h1&gt;
   </diff>
      <filename>app/views/sessions/_logon.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-        &lt;%= label_tag 'Add new location (city)' %&gt;&lt;br /&gt;&lt;%= text_field_tag :new_location, @new_location, :style=&gt;&quot;width:300px;&quot; %&gt;
+        &lt;%= label_tag 'Location' %&gt; (city)&lt;br /&gt;&lt;%= text_field_tag :new_location, @new_location, :style=&gt;&quot;width:300px;&quot; %&gt;
         
           &lt;% if @location &amp;&amp; @location.count &gt; 1 %&gt;
             &lt;p&gt;&lt;%= label_tag 'Multiple locations found, select one below or refine location above if none are right:' %&gt;</diff>
      <filename>app/views/shared/_add_location.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,84 +1,88 @@
 &lt;h1&gt;COMMUNE2&lt;/h2&gt;
 
-&lt;div id=&quot;section_header&quot;&gt;&lt;h2&gt;&amp;nbsp;ABOUT&lt;/h2&gt;&lt;/div&gt;
+&lt;div id=&quot;general-main&quot;&gt;
 
-&lt;p&gt;We believe that anyone with an idea should have the opportunity to let it grow, see where it can take them, and succeed.  People with ideas should not be hindered by lack of contacts or resources.  We all have something to contribute, to take, to give, to be a part of something; an idea... that grows and develops.  We all have a skill to contribute, we all have something to contribute, and in the end, our contributions can produce real results and change the way business is done.  Don't let your ideas or skills squander idly away.&lt;/p&gt;
+  &lt;div id=&quot;section_header&quot;&gt;&lt;h2&gt;&amp;nbsp;ABOUT&lt;/h2&gt;&lt;/div&gt;
 
-&lt;p&gt;Commune2 is for sharing thoughts and for social networking through collaboration.  It is a platform for people to learn from each other, turn ideas into projects, and turn projects into tangible accomplishments.  We measure our success by the number of good ideas, successful projects, and working relationships created by our members.  We encourage you to open up, think positive, and contribute something to the community.  Do not let ideas die.  Instead, turn them into reality, or let others do it.&lt;/p&gt;
+    &lt;p&gt;We believe that anyone with an idea should have the opportunity to let it grow, see where it can take them, and succeed.  People with ideas should not be hindered by lack of contacts or resources.  We all have something to contribute, to take, to give, to be a part of something; an idea... that grows and develops.  We all have a skill to contribute, we all have something to contribute, and in the end, our contributions can produce real results and change the way business is done.  Don't let your ideas or skills squander idly away.&lt;/p&gt;
 
-&lt;ul&gt;
-  &lt;li&gt;Think open, think often, and share thoughts.&lt;/li&gt;
-  &lt;li&gt;Help and be helped.&lt;/li&gt;
-  &lt;li&gt;Do not be paranoid (if it is your idea, you can do it better).&lt;/li&gt;
-  &lt;li&gt;If you want to do something, do something.&lt;/li&gt;
-&lt;/ul&gt;
+    &lt;p&gt;Commune2 is for sharing thoughts and for social networking through collaboration.  It is a platform for people to learn from each other, turn ideas into projects, and turn projects into tangible accomplishments.  We measure our success by the number of good ideas, successful projects, and working relationships created by our members.  We encourage you to open up, think positive, and contribute something to the community.  Do not let ideas die.  Instead, turn them into reality, or let others do it.&lt;/p&gt;
 
+    &lt;ul&gt;
+      &lt;li&gt;Think open, think often, and share thoughts.&lt;/li&gt;
+      &lt;li&gt;Help and be helped.&lt;/li&gt;
+      &lt;li&gt;Do not be paranoid (if it is your idea, you can do it better).&lt;/li&gt;
+      &lt;li&gt;If you want to do something, do something.&lt;/li&gt;
+    &lt;/ul&gt;
 
-&lt;div id=&quot;section_header&quot;&gt;&lt;h2&gt;&amp;nbsp;FAQ&lt;/h1&gt;&lt;/div&gt;
 
-&lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;General&lt;/h3&gt;&lt;/div&gt;
+    &lt;div id=&quot;section_header&quot;&gt;&lt;h2&gt;&amp;nbsp;FAQ&lt;/h2&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;What about my intellectual property?  Will people steal my ideas and get rich off of them?&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;Commune2 claims no right on your intellectual property or on any of your future profits.  If you are concerned about these issues, we suggest you contract a lawyer and protect yourself legally.  We are an open community, so everything you post here is considered public.  Keep in mind one thing: how good is your idea if no one ever hears about it, or if you cannot execute it alone?&lt;/p&gt;
+    &lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;General&lt;/h3&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;Okay, all this &#8220;here to help out fellow Commune2 members&#8221; is all feel good and everything, but does it really work?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;What about my intellectual property?  Will people steal my ideas and get rich off of them?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;Commune2 claims no right on your intellectual property or on any of your future profits.  If you are concerned about these issues, we suggest you contract a lawyer and protect yourself legally.  We are an open community, so everything you post here is considered public.  Keep in mind one thing: how good is your idea if no one ever hears about it, or if you cannot execute it alone?&lt;/p&gt;
 
-&lt;p&gt;Try it.  Have you ever had an idea or something you thought would be really great, but didn&#8217;t have all the skills to bring it to fruition?  Here, you can find help - or help others, and be a part of something great.&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;Okay, all this &#8220;here to help out fellow Commune2 members&#8221; is all feel good and everything, but does it really work?&lt;/b&gt;&lt;/p&gt;
 
+    &lt;p&gt;Try it.  Have you ever had an idea or something you thought would be really great, but didn&#8217;t have all the skills to bring it to fruition?  Here, you can find help - or help others, and be a part of something great.&lt;/p&gt;
 
-&lt;p&gt;&lt;b&gt;What is the difference between watching and showing interest?&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;If you show interest, other people will see you have shown interest (there will be a link to your profile from the idea / project). Watching is anonymous.&lt;/p&gt;
 
-&lt;p&gt;&lt;b&gt;I posted something a few months ago and now want to delete it.  Can I?&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;No.  But, you can edit the post and change the status to inactive.  Only you will be able to see the inactive post.&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;What is the difference between watching and showing interest?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;If you show interest, other people will see you have shown interest (there will be a link to your profile from the idea / project). Watching is anonymous.&lt;/p&gt;
 
+    &lt;p&gt;&lt;b&gt;I posted something a few months ago and now want to delete it.  Can I?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;No.  But, you can edit the post and change the status to inactive.  Only you will be able to see the inactive post.&lt;/p&gt;
 
-&lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;Ideas and Projects&lt;/h3&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;What the heck is the difference between an &quot;idea&quot; and a &quot;project?&quot;&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;Think of an idea as an interesting thought that is relatively general.  Think of a project as something somewhat specific that you or someone else is actively working on... to turn an idea into reality.  EXAMPLE: &quot;We need some alternative to mass-produced bland beer&quot; (idea); &quot;A microbrewery in Brooklyn&quot; (project).&lt;/p&gt;
+    &lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;Ideas and Projects&lt;/h3&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;I have a great project that I want to get started.  Do you recommend I post it as an idea first and then launch the project from there?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;What the heck is the difference between an &quot;idea&quot; and a &quot;project?&quot;&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;Think of an idea as an interesting thought that is relatively general.  Think of a project as something somewhat specific that you or someone else is actively working on... to turn an idea into reality.  EXAMPLE: &quot;We need some alternative to mass-produced bland beer&quot; (idea); &quot;A microbrewery in Brooklyn&quot; (project).&lt;/p&gt;
 
-&lt;p&gt;Yes!  If you post it as an idea first, you will allow people to spawn other projects from it.  This way you will get to see what other great projects come out of your idea.&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I have a great project that I want to get started.  Do you recommend I post it as an idea first and then launch the project from there?&lt;/b&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;b&gt;I saw an idea/project that I really like, how do I contact the poster to let them know I want to get involved?&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;Go to the user&#8217;s profile and send them a message or click on &#8220;show interest&#8221; in the left column of the idea/project.  And, of course, you can always simply leave a comment.&lt;/p&gt;
+    &lt;p&gt;Yes!  If you post it as an idea first, you will allow people to spawn other projects from it.  This way you will get to see what other great projects come out of your idea.&lt;/p&gt;
 
-&lt;p&gt;&lt;b&gt;I would like to get involved, but there isn&#8217;t a job or project that seems in need of my skills.  Is there a way I can post my skills and say that I am available to help?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I saw an idea/project that I really like, how do I contact the poster to let them know I want to get involved?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;Go to the user&#8217;s profile and send them a message or click on &#8220;show interest&#8221; in the left column of the idea/project.  And, of course, you can always simply leave a comment.&lt;/p&gt;
 
-&lt;p&gt;You could update your profile so that it is very specific to what you are looking for and when someone does a related search, your profile will come up.  Alternatively, you can post your own idea or project.&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I would like to get involved, but there isn&#8217;t a job or project that seems in need of my skills.  Is there a way I can post my skills and say that I am available to help?&lt;/b&gt;&lt;/p&gt;
 
+    &lt;p&gt;You could update your profile so that it is very specific to what you are looking for and when someone does a related search, your profile will come up.  Alternatively, you can post your own idea or project.&lt;/p&gt;
 
 
-&lt;p&gt;&lt;b&gt;I saw someone else&#8217;s project and would like to post a different project from it.  Can I post a new project based on someone else&#8217;s project?&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;You can only spawn a project from ideas (check if that project has an idea link).&lt;/p&gt;
 
+    &lt;p&gt;&lt;b&gt;I saw someone else&#8217;s project and would like to post a different project from it.  Can I post a new project based on someone else&#8217;s project?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;You can only spawn a project from ideas (check if that project has an idea link).&lt;/p&gt;
 
-&lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;Jobs&lt;/h3&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;I have a great idea/project and need help to get it started, but I can&#8217;t afford to pay someone.  Can I still post jobs for my project?&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;Yes!&lt;/p&gt;
+    &lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;Jobs&lt;/h3&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;I recently started learning a new skill, but am still in the &#8220;learning stage.&#8221;  I would like to develop this skill and work on a project that allows me to &#8220;learn on the job.&#8221;  Can I do this?&lt;/b&gt;&lt;/p&gt;
-&lt;p&gt;This is between you and the project manager.  However, we highly encourage such activity!&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I have a great idea/project and need help to get it started, but I can&#8217;t afford to pay someone.  Can I still post jobs for my project?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;Yes!&lt;/p&gt;
 
-&lt;p&gt;&lt;b&gt;I am only interested in jobs that can pay me.  Is there any way I can view only those jobs that are for pay or equity?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I recently started learning a new skill, but am still in the &#8220;learning stage.&#8221;  I would like to develop this skill and work on a project that allows me to &#8220;learn on the job.&#8221;  Can I do this?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;This is between you and the project manager.  However, we highly encourage such activity!&lt;/p&gt;
 
-&lt;p&gt;You will need to look at the job before knowing how or if it is paid - or even contact the project manager.  We see this as a positive.  Maybe, you will find a really great job that you will WANT to work on regardless of compensation.&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I am only interested in jobs that can pay me.  Is there any way I can view only those jobs that are for pay or equity?&lt;/b&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;b&gt;I have several open positions that are exactly the same.  Is there any way I can indicate from one job posting that this is for several openings or do I need to have separate posts for each job?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;You will need to look at the job before knowing how or if it is paid - or even contact the project manager.  We see this as a positive.  Maybe, you will find a really great job that you will WANT to work on regardless of compensation.&lt;/p&gt;
 
-&lt;p&gt;You need to have separate posts for each job, sorry.&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I have several open positions that are exactly the same.  Is there any way I can indicate from one job posting that this is for several openings or do I need to have separate posts for each job?&lt;/b&gt;&lt;/p&gt;
 
+    &lt;p&gt;You need to have separate posts for each job, sorry.&lt;/p&gt;
 
 
-&lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;Invitations&lt;/h3&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;I have a bunch of friends who want to join, but I can only send out two invitations a day.  Why can&#8217;t I just invite all my friends that want to join at once?&lt;/b&gt;&lt;/p&gt;
-  
-&lt;p&gt;We are still a work in progress and don&#8217;t want to overload the internets. Rest assured, you will be able to invite all your friends eventually.&lt;/p&gt;
+    &lt;div id=&quot;snippet_header&quot;&gt;&lt;h3&gt;&amp;nbsp;Invitations&lt;/h3&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;b&gt;I would like to know when people I invite join, is there any way to receive an update when this happens?&lt;/b&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I have a bunch of friends who want to join, but I can only send out two invitations a day.  Why can&#8217;t I just invite all my friends that want to join at once?&lt;/b&gt;&lt;/p&gt;
+      
+    &lt;p&gt;We are still a work in progress and don&#8217;t want to overload the internets. Rest assured, you will be able to invite all your friends eventually.&lt;/p&gt;
 
-&lt;p&gt;Not yet.  However, if you click on &#8220;invite,&#8221; you will see a link to view your past invitations and their status.&lt;/p&gt;
+    &lt;p&gt;&lt;b&gt;I would like to know when people I invite join, is there any way to receive an update when this happens?&lt;/b&gt;&lt;/p&gt;
+
+    &lt;p&gt;Not yet.  However, if you click on &#8220;invite,&#8221; you will see a link to view your past invitations and their status.&lt;/p&gt;
+
+&lt;/div&gt;</diff>
      <filename>app/views/static/help.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@
 
   &lt;table border=&quot;0&quot;  cellpadding=&quot;15&quot; align=&quot;center&quot;&gt;
     &lt;tr&gt;            
-      &lt;td valign=&quot;top&quot;&gt;
+      &lt;td valign=&quot;top&quot; style=&quot;height:175px;&quot;&gt;
         &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
           &lt;tr&gt;
             &lt;td&gt;
@@ -39,10 +39,8 @@
       &lt;td rowspan=&quot;2&quot; valign=&quot;top&quot;&gt;
         &lt;div id=&quot;recent-activity&quot; &gt;
 
-&lt;h2&gt;Recent Activity&lt;/h2&gt;
-          &lt;table border=&quot;0&quot; cellpadding=&quot;5&quot; cellspacing=&quot;5&quot;&gt;&lt;tr&gt;&lt;td&gt;
-            &lt;%= show_recent_ideas_and_projects %&gt;
-          &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+            &lt;h1&gt;Recent Activity&lt;/h1&gt;
+            &lt;%= show_recent %&gt;
         &lt;/div&gt;
       &lt;/td&gt;
 </diff>
      <filename>app/views/user/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,38 +1,76 @@
 &lt;% content_for :title do %&gt;New Account&lt;% end %&gt;
 
 &lt;% flash[:notice] = &quot;Registration by invitation only.&quot; %&gt;
+
 
+&lt;%= error_messages_for :user, :header_message =&gt; &quot;Could not create account&quot; %&gt;
 
 &lt;h1&gt;Registration&lt;/h1&gt;
+&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; If you are registered and just need to log in, please go &lt;%= link_to &quot;here&quot;, login_path %&gt;.&lt;/p&gt;
 
+    &lt;div id=&quot;show-main-container&quot;&gt;
 
-
-&lt;% form_for @user do |f| -%&gt;
-&lt;%= f.error_messages %&gt;
+&lt;div id=&quot;section_header&quot;&gt;&lt;h2&gt;&amp;nbsp;Basic account Information&lt;/h2&gt;&lt;/div&gt;
 
-&lt;p&gt;&lt;%= label_tag 'login (username)' %&gt;&lt;br/&gt;
-&lt;%= f.text_field :login, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
+  &lt;p&gt;You will be able to add a lot more to your profile once you activate your account.&lt;/p&gt;
 
-&lt;p&gt;&lt;%= label_tag 'email' %&gt;&lt;br/&gt;
-&lt;%= f.text_field :email, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
+  &lt;% form_for @user do |f| -%&gt;
 
 
-&lt;%= render :partial =&gt; '/shared/add_location' %&gt;
+    &lt;p&gt;&lt;%= label_tag 'login (username)' %&gt;&lt;br/&gt;
+    &lt;%= f.text_field :login, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;%= label_tag 'password' %&gt; (CaSe SeNsitIvE)&lt;br/&gt;
-&lt;%= f.password_field :password, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;%= label_tag 'password_confirmation', 'Confirm Password' %&gt; (CaSe SeNsitIvE)&lt;br/&gt;
-&lt;%= f.password_field :password_confirmation, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;%= label_tag 'email' %&gt;&lt;br/&gt;
+    &lt;%= f.text_field :email, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
 
 
+    &lt;%= render :partial =&gt; '/shared/add_location' %&gt;
 
-&lt;%= render :partial =&gt; '/shared/reCAPTCHA' %&gt;
-
-&lt;p&gt;&lt;%= submit_tag 'Register', :class=&gt;&quot;big_button&quot; %&gt;&lt;/p&gt;
-&lt;% end -%&gt;
-
+    &lt;p&gt;&lt;%= label_tag 'password' %&gt; (CaSe SeNsitIvE)&lt;br/&gt;
+    &lt;%= f.password_field :password, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; If you are registered and just need to log in, please go &lt;%= link_to &quot;here&quot;, login_path %&gt;.&lt;/p&gt;
+    &lt;p&gt;&lt;%= label_tag 'password_confirmation', 'Confirm Password' %&gt; (CaSe SeNsitIvE)&lt;br/&gt;
+    &lt;%= f.password_field :password_confirmation, :style=&gt;&quot;width:300px;&quot; %&gt;&lt;/p&gt;
+
+    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
+
+
+&lt;div id=&quot;section_header&quot;&gt;&lt;h2&gt;&amp;nbsp;An idea!&lt;/h2&gt;&lt;/div&gt;
+
+    &lt;p&gt;Commune2 is all about sharing ideas.  &lt;b&gt;We want you to be proactive, so start now!&lt;/b&gt;  If you don't have an idea yet, think of this as a brain teaser exercise.  Or, if you have a specific idea in mind already, great, use it here.&lt;/p&gt;
+
+    &lt;p&gt;&lt;b&gt;Still not sure?&lt;/b&gt;  Here are some teaser questions to get you thinking (&lt;b&gt;but your idea does NOT have to address these&lt;/b&gt;):&lt;/p&gt;
+
+    &lt;ul&gt;
+    &lt;% Icebreaker.random(3).each do | icebreaker | %&gt;
+      &lt;li&gt;&lt;%=h icebreaker.question %&gt;&lt;/li&gt;
+    &lt;% end %&gt;
+    &lt;/ul&gt;
+
+
+
+        &lt;p&gt;&lt;%= label_tag 'Title' %&gt;&lt;br /&gt;
+          &lt;%= text_field_tag 'idea[title]', @idea.title, :style=&gt;&quot;width:600px;&quot; %&gt;
+        &lt;/p&gt;
+   
+        &lt;p&gt;&lt;%= label_tag 'Description' %&gt;&lt;br/&gt;
+          &lt;%= text_area_tag 'idea[description]', @idea.description, :rows =&gt; 10 ,:style=&gt;&quot;width:600px;&quot; %&gt;
+        &lt;/p&gt;
+
+
+
+    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
+   
+
+&lt;div id=&quot;section_header&quot;&gt;&lt;h2&gt;&amp;nbsp;Almost there...&lt;/h2&gt;&lt;/div&gt;
+
+&lt;p&gt;...just checking to make sure you're not a spambot.&lt;/p&gt;
 
+    &lt;%= render :partial =&gt; '/shared/reCAPTCHA' %&gt;
 
+    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
+    
+    &lt;p&gt;&lt;%= submit_tag 'Register', :class=&gt;&quot;big_button&quot; %&gt;&lt;/p&gt;
+  &lt;% end -%&gt;
+
+&lt;/div&gt;</diff>
      <filename>app/views/users/new.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;% content_for :title do %&gt;Person &lt;% end %&gt;
 
 &lt;% if @user.blank? %&gt;
-  &lt;p&gt;Sorry, no idea to see here.&lt;/p&gt;
+  &lt;p&gt;Sorry, no one to see here.&lt;/p&gt;
 
 &lt;% else %&gt;
 </diff>
      <filename>app/views/users/show.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,6 @@
 ActionController::Routing::Routes.draw do |map|
+  map.resources :icebreakers
+
   
   map.root :controller =&gt; 'user', :action =&gt; 'index' # should change this
   map.resources :episodes # should remove this</diff>
      <filename>config/routes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@
 #
 # It's strongly recommended to check this file into your version control system.
 
-ActiveRecord::Schema.define(:version =&gt; 20090917011143) do
+ActiveRecord::Schema.define(:version =&gt; 20091101231404) do
 
   create_table &quot;comments&quot;, :force =&gt; true do |t|
     t.string   &quot;title&quot;,            :limit =&gt; 50, :default =&gt; &quot;&quot;
@@ -38,6 +38,14 @@ ActiveRecord::Schema.define(:version =&gt; 20090917011143) do
     t.datetime &quot;updated_at&quot;
   end
 
+  create_table &quot;icebreakers&quot;, :force =&gt; true do |t|
+    t.integer  &quot;user_id&quot;
+    t.string   &quot;question&quot;
+    t.boolean  &quot;approved&quot;
+    t.datetime &quot;created_at&quot;
+    t.datetime &quot;updated_at&quot;
+  end
+
   create_table &quot;ideas&quot;, :force =&gt; true do |t|
     t.boolean  &quot;active&quot;,                          :default =&gt; true, :null =&gt; false
     t.integer  &quot;user_id&quot;,                                           :null =&gt; false
@@ -155,10 +163,10 @@ ActiveRecord::Schema.define(:version =&gt; 20090917011143) do
   add_index &quot;logons&quot;, [&quot;user_id&quot;], :name =&gt; &quot;index_logons_on_user_id&quot;, :unique =&gt; true
 
   create_table &quot;messages&quot;, :force =&gt; true do |t|
-    t.integer  &quot;from_id&quot;,                   :null =&gt; false
-    t.integer  &quot;to_id&quot;,                     :null =&gt; false
+    t.integer  &quot;from_id&quot;,                  :null =&gt; false
+    t.integer  &quot;to_id&quot;,                    :null =&gt; false
     t.string   &quot;subject&quot;,    :limit =&gt; 50
-    t.text     &quot;body&quot;,       :limit =&gt; 255
+    t.text     &quot;body&quot;
     t.datetime &quot;created_at&quot;
     t.datetime &quot;updated_at&quot;
   end</diff>
      <filename>db/schema.rb</filename>
    </modified>
    <modified>
      <diff>@@ -49,6 +49,8 @@ Feature: Various mailer functionalities
       And I fill in &quot;user_password&quot; with &quot;password&quot;
       And I fill in &quot;user_password_confirmation&quot; with &quot;password&quot;
       And I fill in &quot;new_location&quot; with &quot;New York&quot;
+      And I fill in &quot;idea_title&quot; with &quot;Idea&quot;
+      And I fill in &quot;idea_description&quot; with &quot;Description&quot;
       And I press &quot;Register&quot;
     Then I should see &quot;Thank you for registering.&quot;
       And I should receive an email with &quot;Please activate your new account&quot; in subject</diff>
      <filename>features/mailer.feature</filename>
    </modified>
    <modified>
      <diff>@@ -9,6 +9,14 @@ Given /^the following additional user records?$/ do |table|
   parse_table_and_add_users(table)
 end
 
+
+Then /^a user with &quot;([^\&quot;]*)&quot; login should not exist$/ do |login|
+  User.find_by_login(login).should equal(nil)
+end
+
+
+
+
 def parse_table_and_add_users(table)
   table.hashes.each do |attributes|
 </diff>
      <filename>features/step_definitions/user_steps.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,13 +3,13 @@ require 'sham'
 require 'faker'
 
 
-Sham.first_name { Faker::Name.first_name }
-Sham.last_name { Faker::Name.last_name }
+Sham.first_name(:unique =&gt; false) { Faker::Name.first_name }
+Sham.last_name(:unique =&gt; false) { Faker::Name.last_name }
 Sham.login { Sham.first_name + '_' + Sham.last_name }
-Sham.company { Faker::Company.name }
+Sham.company(:unique =&gt; false) { Faker::Company.name }
 Sham.email { Faker::Internet.email }
-Sham.sentence { Faker::Lorem.sentence[0..49] }
-Sham.body { Faker::Lorem.paragraph[0..249] }
+Sham.sentence(:unique =&gt; false) { Faker::Lorem.sentence[0..49] }
+Sham.body(:unique =&gt; false) { Faker::Lorem.paragraph[0..249] }
 
 Sham.city(:unique =&gt; false) { Faker::Address.city }
 Sham.state(:unique =&gt; false) { Faker::Address.us_state }
@@ -123,6 +123,14 @@ PolymorphicGeneralSkill.blueprint do
   general_skill { skills[id] }
 end
 
+
+Icebreaker.blueprint do
+  # needs to be called with the create method below
+  question { Sham.sentence }
+  approved { true }
+end
+
+
 def create_user_with_associations!(attributes = {})
      
   user = User.make_unsaved(attributes[:user])
@@ -272,6 +280,23 @@ def create_rating!(attributes = {})
 end
 
 
+
+def create_icebreaker_with_author!(attributes = {})
+  # check if the user exists, find or create
+  # create uses blueprint
+
+  if attributes[:author] &amp;&amp; attributes[:author][:login]
+    user = User.find_by_login( attributes[:author][:login] ) || create_user_with_associations!( { :user=&gt; attributes[:author] } )  
+  else
+    user = create_user_with_associations!(:user =&gt; {:admin =&gt; true})
+  end
+  
+  icebreaker = user.icebreakers.make(attributes[:icebreaker])
+
+end
+
+
+
 def create_on_the_fly(class_name, attributes = {})
   class_name.capitalize!
 
@@ -289,3 +314,5 @@ def create_on_the_fly(class_name, attributes = {})
   end
 end
 
+
+</diff>
      <filename>features/support/blueprints.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,6 +53,9 @@ module NavigationHelpers
     when /invitations page/
       invitations_path
 
+    when /icebreakers page/
+      icebreakers_path
+
     when /new idea page/
       new_idea_path
   </diff>
      <filename>features/support/paths.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,6 +14,8 @@
       And I fill in &quot;user_password&quot; with &quot;password&quot;
       And I fill in &quot;user_password_confirmation&quot; with &quot;password&quot;
       And I fill in &quot;new_location&quot; with &quot;New York&quot;
+      And I fill in &quot;idea_title&quot; with &quot;Idea&quot;
+      And I fill in &quot;idea_description&quot; with &quot;Description&quot;
       And I press &quot;Register&quot;
     Then I should see &quot;Thank you for registering.&quot;
     
@@ -27,6 +29,8 @@
       And I fill in &quot;user_password&quot; with &quot;password&quot;
       And I fill in &quot;user_password_confirmation&quot; with &quot;password&quot;
       And I fill in &quot;new_location&quot; with &quot;New York&quot;
+      And I fill in &quot;idea_title&quot; with &quot;Idea&quot;
+      And I fill in &quot;idea_description&quot; with &quot;Description&quot;
       And I press &quot;Register&quot;
     Then I should see &quot;Thank you for registering.&quot;
     
@@ -40,6 +44,8 @@
       And I fill in &quot;user_password&quot; with &quot;password&quot;
       And I fill in &quot;user_password_confirmation&quot; with &quot;password&quot;
       And I fill in &quot;new_location&quot; with &quot;New York&quot;
+      And I fill in &quot;idea_title&quot; with &quot;Idea&quot;
+      And I fill in &quot;idea_description&quot; with &quot;Description&quot;
       And I press &quot;Register&quot;
     Then I should see &quot;Could not register&quot;
 
@@ -108,6 +114,8 @@
       And I fill in &quot;user_password&quot; with &quot;password&quot;
       And I fill in &quot;user_password_confirmation&quot; with &quot;password&quot;
       And I fill in &quot;new_location&quot; with &quot;Springfield&quot;
+      And I fill in &quot;idea_title&quot; with &quot;Idea&quot;
+      And I fill in &quot;idea_description&quot; with &quot;Description&quot;
       And I press &quot;Register&quot;
     Then I should not see &quot;Thank you for registering.&quot;
       But I should see &quot;Multiple locations found&quot;
@@ -163,3 +171,20 @@
     Then I should see &quot;Profile updated&quot;
       And my login should be &quot;monolith&quot;
 
+  Scenario: Need to post an idea while registering
+    Given I am on the registration page
+      And there are one or more users
+      And there is an invitation for &quot;invited_user@commune2.com&quot;
+    When I fill in &quot;user_login&quot; with &quot;invited_user&quot;
+      And I fill in &quot;user_email&quot; with &quot;invited_user@commune2.com&quot;
+      And I fill in &quot;user_password&quot; with &quot;password&quot;
+      And I fill in &quot;user_password_confirmation&quot; with &quot;password&quot;
+      And I fill in &quot;new_location&quot; with &quot;New York&quot;
+      And I press &quot;Register&quot;
+    Then I should not see &quot;Thank you for registering.&quot;
+      And I should see &quot;Idea title can't be blank&quot;
+      And I should see &quot;Idea description can't be blank&quot;
+      And a user with &quot;invited_user&quot; login should not exist
+      
+    
+</diff>
      <filename>features/users.feature</filename>
    </modified>
    <modified>
      <diff>@@ -909,6 +909,7 @@ h2 {
  letter-spacing:0.5px;
  margin: 0px;
  line-height: 40px;
+ text-transform: capitalize;
 
 }
 h3 {
@@ -920,9 +921,10 @@ h3 {
 
 }
 
-b {
+b, label  {
   color: #4f391a;
   font-size: medium;
+  font-weight:bold;
 }
 
 hr {
@@ -985,3 +987,17 @@ input.big_button {
 
 }
 
+
+
+
+#general-main{
+  position: relative;
+  float: left;
+  width: 100%;
+  background-image:url('/images/snippet_bg.jpg');
+  background-repeat: repeat-y;
+  background-position: top right;
+  padding: 10px;
+  padding-left: 0px;
+
+}</diff>
      <filename>public/stylesheets/style.css</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d53cf4d3223099c6a321c9cf1d55470073d8a4e2</id>
    </parent>
  </parents>
  <author>
    <name>Anatoly Sholomyansky</name>
    <email>anatoly@commune2.com</email>
  </author>
  <url>http://github.com/jaggederest/commune2/commit/5dd04049b21c8744e49fcdd99fe7698915ed42f8</url>
  <id>5dd04049b21c8744e49fcdd99fe7698915ed42f8</id>
  <committed-date>2009-11-07T07:27:21-08:00</committed-date>
  <authored-date>2009-11-07T07:27:21-08:00</authored-date>
  <message>icebreakers</message>
  <tree>d3ff2483a902efeb2fb2ecad95d5c385d5916bf7</tree>
  <committer>
    <name>Anatoly Sholomyansky</name>
    <email>anatoly@commune2.com</email>
  </committer>
</commit>
