<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -13,13 +13,16 @@ class PostsController &lt; ApplicationController
   end
   
   def admin
-    @posts = Post.find :all, :conditions =&gt; ['published = ?', false], :order =&gt; 'id DESC'
+    @posts = Post.find_all_by_published(false, :order =&gt; 'id DESC')
     @posts += Post.published.paginate(:per_page =&gt; 20, :page =&gt; params[:page])
   end
   
   def show
-    @post = Post.published.find(:first, params[:id], :include =&gt; [:comments, :user])
-    redirect_to posts_url and return if  @post.blank?
+    begin
+      @post = Post.published.find(params[:id], :include =&gt; [:comments, :user])
+    rescue ActiveRecord::RecordNotFound =&gt; ex
+      redirect_to posts_url and return if  @post.blank?
+    end
 
     respond_to do |format|
       format.html # show.html.erb
@@ -40,8 +43,12 @@ class PostsController &lt; ApplicationController
   end
 
   def create
-    create_guest(params[:user]) unless logged_in?
-    @post = current_user.posts.new(params[:post])
+    @post = Post.new(params[:post])
+    unless logged_in?
+      @user = create_guest(params[:user])
+      render :action =&gt; :new and return if @user.new_record?
+    end
+    @post.user = current_user
     @post.published = params[:post][:published] if current_user.moderator?
 
     respond_to do |format|</diff>
      <filename>app/controllers/posts_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,12 +17,15 @@ class SitesController &lt; ApplicationController
   
   def admin
     @sites = Site.find_all_by_published(false, :limit =&gt; 10)
-    @sites += Site.published(:per_page =&gt; 10, :page =&gt; params[:page])
+    @sites += Site.published.paginate(:per_page =&gt; 10, :page =&gt; params[:page])
   end
 
   def show
-    @site = Site.find_by_id_and_published(params[:id], true, :include =&gt; [:comments, :assets])
-    redirect_to sites_url and return unless @site
+    begin
+      @site = Site.published(params[:id], :include =&gt; [:comments, :user, :assets])
+    rescue ActiveRecord::RecordNotFound =&gt; ex
+      redirect_to sites_url and return unless @site
+    end
 
     respond_to do |format|
       format.html # show.html.erb
@@ -43,8 +46,12 @@ class SitesController &lt; ApplicationController
   end
 
   def create
-    create_guest(params[:user]) unless logged_in?
-    @site = current_user.sites.new(params[:site])
+    @site = Site.new(params[:site])
+    unless logged_in?
+      @user = create_guest(params[:user])
+      render :action =&gt; :new and return if @user.new_record?
+    end
+    @site.user = current_user
     @site.published = params[:site][:published] if current_user.moderator?
     respond_to do |format|
       if @site.save</diff>
      <filename>app/controllers/sites_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,8 +24,8 @@ class Post &lt; ActiveRecord::Base
   end
 
   def excerpt
+    return self[:excerpt] unless self[:excerpt].blank?
     return self[:body] if self[:body].length &lt; 150
     return self[:body][/.{0,150}\w*/] + &quot;...&quot; if self[:excerpt].blank?
-    self[:excerpt]
   end
 end</diff>
      <filename>app/models/post.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@ class Site &lt; ActiveRecord::Base
 #  validates_length_of :description, :minimum =&gt; 40
   
   def before_validation
-    self.permalink = PermalinkFu.escape(self.url_short) if self.permalink.blank?
+    self.permalink = PermalinkFu.escape(self.url_short.gsub('www.', '')) if self.permalink.blank?
     self.thumbnail_filename = self.screenshot.nil? ? nil : self.screenshot.public_filename(:thumb) 
   end
 
@@ -36,6 +36,7 @@ class Site &lt; ActiveRecord::Base
   end
   
   def thumbnail_url(request)
+    return false if self.thumbnail_filename.blank?
     request.protocol + request.host_with_port + self.thumbnail_filename
   end
   </diff>
      <filename>app/models/site.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-&lt;h1&gt;New post&lt;/h1&gt;
+&lt;% @page_title = 'Add a new post' %&gt;
 
 &lt;%= error_messages_for :post %&gt;
 
@@ -10,15 +10,7 @@
   &lt;legend&gt;Your data&lt;/data&gt;
   &lt;p&gt;You are not logged in but if you already have an account, you may &lt;%= link_to 'login', login_url %&gt; first. If you don't have an account yet, you can type in your email address and &lt;em&gt;we will create an account for you&lt;/em&gt;.&lt;/p&gt;
   &lt;% fields_for :user do |fu| %&gt;
-  &lt;p&gt;&lt;%= fu.label :name, 'Name' %&gt;&lt;br /&gt;
-    &lt;%= fu.text_field :name %&gt;
-  &lt;/p&gt;
-  &lt;p&gt;&lt;%= fu.label :email, 'E-Mail' %&gt;&lt;br /&gt;
-    &lt;%= fu.text_field :email %&gt;
-  &lt;/p&gt;
-  &lt;p&gt;&lt;%= fu.label :website, 'Website' %&gt;&lt;br /&gt;
-    &lt;%= fu.text_field :website %&gt;
-  &lt;/p&gt;
+    &lt;%= render :partial =&gt; '/users/form', :locals =&gt; {:f =&gt; fu} %&gt;
   &lt;% end %&gt;
   &lt;/fieldset&gt;
   &lt;% end %&gt;</diff>
      <filename>app/views/posts/new.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -2,9 +2,10 @@
 &lt;div class=&quot;post&quot;&gt;
 &lt;div class=&quot;meta&quot;&gt;
   posted by &lt;%= link_to h(@post.user.name), user_url(@post.user) %&gt; on &lt;%= @post.published_at.to_formatted_s(:long) %&gt;&lt;br /&gt;
-  tags: &lt;span class=&quot;tags&quot;&gt;&lt;%= link_to_tags(@post.cached_tag_list, :posts) %&gt;&lt;/span&gt;
-&lt;/div&gt;
-&lt;%= textilize(@post.body) %&gt;
+  tags: &lt;span class=&quot;tags&quot;&gt;&lt;%= @post.cached_tag_list %&gt;&lt;/span&gt;
+  &lt;/div&gt;
+  &lt;%= textilize(@post.excerpt) %&gt;
+  &lt;%= textilize(@post.body) %&gt;
 
 &lt;div id=&quot;comments&quot;&gt;
 &lt;h3&gt;Comments&lt;/h3&gt;</diff>
      <filename>app/views/posts/show.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 &lt;p&gt;
-&lt;%= image_tag(site.thumbnail_url(request), :style =&gt; &quot;float:left;&quot;) %&gt;
+&lt;%= image_tag(site.thumbnail_url(request), :style =&gt; &quot;float:left;&quot;) if site.thumbnail_url %&gt;
 &lt;%= textilize site.description %&gt;
 &lt;/p&gt;</diff>
      <filename>app/views/sites/_feed_content.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,8 @@
 &lt;% if latest_sites(14).blank? %&gt;
 &lt;p&gt;No sites so far&lt;/p&gt;
 &lt;% else %&gt;
-  &lt;% latest_sites(14).each do |site| %&gt;
+  &lt;% latest_sites(14).each do |site| 
+    next if site.screenshot.nil? %&gt;
   &lt;%= link_to image_tag(site.screenshot.public_filename(:tiny), :alt =&gt; site.title), site_url(site), :title =&gt; [site.title, site.description].join(&quot; - &quot;) %&gt;
   &lt;% end %&gt;
 &lt;% end %&gt;</diff>
      <filename>app/views/sites/_sidebar_right.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -5,5 +5,7 @@
   &lt;h3&gt;&lt;%= link_to h(site.title), site %&gt;&lt;/h3&gt;
 
   &lt;%= textilize(site.description) %&gt;
+
+  &lt;%= link_to site.url_short, site.url %&gt; //
   &lt;%= link_to pluralize(site.comments_count, 'comment'), site_path(site) + '#comments' %&gt;
 &lt;/div&gt;</diff>
      <filename>app/views/sites/_site.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;% @page_title = 'sites administration' %&gt;
 
 &lt;% @sites.each do |site| %&gt;
-  &lt;div id=&quot;site-&lt;%= site.id%&gt;&quot; class=&quot;&lt;%= 'featured ' if site.featured? %&gt;&lt;%= 'published' if site.published? %&gt;&quot;&gt;&lt;%= link_to h(site.title), site %&gt; by &lt;%= link_to site.user.name, user_url(site.user_id) %&gt; on &lt;%= site.created_at.to_s(:long) %&gt; is &lt;%= 'not' unless site.published? %&gt; published and has &lt;%= pluralize(site.comments_count, 'comment') %&gt;&lt;br /&gt;
+  &lt;div id=&quot;site-&lt;%= site.id%&gt;&quot; class=&quot;&lt;%= 'featured ' if site.featured? %&gt;&lt;%= 'published' if site.published? %&gt;&quot;&gt;&lt;%= link_to h(site.title), site %&gt; &lt;%= link_to h(site.url_short), site.url %&gt; by &lt;%= link_to site.user.name, user_url(site.user_id) %&gt; on &lt;%= site.created_at.to_s(:long) %&gt; is &lt;%= 'not' unless site.published? %&gt; published and has &lt;%= pluralize(site.comments_count, 'comment') %&gt;&lt;br /&gt;
   &lt;% unless site.published %&gt;
   &lt;%= link_to 'publish', publish_site_url(site), :method =&gt; :put %&gt; |
   &lt;% end %&gt;</diff>
      <filename>app/views/sites/admin.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;% @page_title = 'featured sites' %&gt;
 
 &lt;div id=&quot;sites&quot;&gt;
-  &lt;%= will_paginate @posts %&gt;
+
   &lt;%= render :partial =&gt; &quot;site&quot;, :collection =&gt; @sites %&gt;
-  &lt;%= will_paginate @posts %&gt;
+  &lt;%= will_paginate @sites %&gt;
 &lt;/div&gt;
\ No newline at end of file</diff>
      <filename>app/views/sites/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -10,15 +10,7 @@
   &lt;legend&gt;Your data&lt;/data&gt;
   &lt;p&gt;You are not logged in but if you already have an account, you may &lt;%= link_to 'login', login_url %&gt; first. If you don't have an account yet, you can type in your email address and &lt;em&gt;we will create an account for you&lt;/em&gt;.&lt;/p&gt;
   &lt;% fields_for :user do |fu| %&gt;
-  &lt;p&gt;&lt;%= fu.label :name, 'Name' %&gt;&lt;br /&gt;
-    &lt;%= fu.text_field :name %&gt;
-  &lt;/p&gt;
-  &lt;p&gt;&lt;%= fu.label :email, 'E-Mail' %&gt;&lt;br /&gt;
-    &lt;%= fu.text_field :email %&gt;
-  &lt;/p&gt;
-  &lt;p&gt;&lt;%= fu.label :website, 'Website' %&gt;&lt;br /&gt;
-    &lt;%= fu.text_field :website %&gt;
-  &lt;/p&gt;
+    &lt;%= render :partial =&gt; '/users/form', :locals =&gt; {:f =&gt; fu } %&gt;
   &lt;% end %&gt;
   &lt;/fieldset&gt;
   &lt;% end %&gt;</diff>
      <filename>app/views/sites/new.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 &lt;% @page_title = h(@site.title) %&gt;
+&lt;%= link_to @site.url_short, @site.url, :class =&gt; 'site_url' %&gt;
 &lt;div class=&quot;site&quot;&gt;
 &lt;div class=&quot;body&quot;&gt;&lt;%= textilize(@site.description) %&gt;&lt;/div&gt;
 </diff>
      <filename>app/views/sites/show.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ end
 
 module Goldberg
   class User
-    validates_uniqueness_of :name, :unless =&gt; Proc.new {|record| record.name == 'guest' }
+    validates_presence_of :email
     
     def is_guest?
       name =~ /^guest/</diff>
      <filename>lib/goldberg_user_extensions.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>661cb460d4f3834291ff8f74433f33b67a1d3d91</id>
    </parent>
  </parents>
  <author>
    <name>TomK32</name>
    <email>tomk32@tomk32.de</email>
  </author>
  <url>http://github.com/TomK32/plasticairships/commit/e5f4be827c43c9382f358be42e4989649511f101</url>
  <id>e5f4be827c43c9382f358be42e4989649511f101</id>
  <committed-date>2008-06-16T00:21:11-07:00</committed-date>
  <authored-date>2008-06-16T00:21:11-07:00</authored-date>
  <message>a few fixes for finders in the controllers
changed create_guest
* capture and display errors
* send registration mail
moved user form to partial
fixed post#excerpt
rescueing from sites with no assets</message>
  <tree>acff5ad7de2305b309b7e1cb6fc66339cdb57d82</tree>
  <committer>
    <name>TomK32</name>
    <email>tomk32@tomk32.de</email>
  </committer>
</commit>
