<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -26,7 +26,7 @@ class Admin::SectionsController &lt; Admin::BaseController
 
   def order
     if params[:id].to_i == 0
-      Section.order! params[:sorted_ids]
+      site.sections.order! params[:sorted_ids]
     else
       find_section
       @section.order! params[:sorted_ids]</diff>
      <filename>app/controllers/admin/sections_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -35,15 +35,6 @@ class Section &lt; ActiveRecord::Base
     def permalink_for(str)
       str.gsub(/[^\w\/]|[!\(\)\.]+/, ' ').strip.downcase.gsub(/\ +/, '-')
     end
-    
-    # orders sections in a site
-    def order!(*sorted_ids)
-      sorted_ids.flatten.each_with_index do |section_id, pos|
-        section = find(section_id)
-        section.position = pos
-        section.save
-      end
-    end
   end
 
   def find_comments(options = {})</diff>
      <filename>app/models/section.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,6 +8,15 @@ class Site &lt; ActiveRecord::Base
     def home
       find_by_path ''
     end
+
+    # orders sections in a site
+    def order!(*sorted_ids)
+      transaction do
+        sorted_ids.flatten.each_with_index do |section_id, pos|
+          Section.update_all ['position = ?', pos], ['id = ? and site_id = ?', section_id, proxy_owner.id]
+        end
+      end
+    end
   end
 
   has_many  :articles do</diff>
      <filename>app/models/site.rb</filename>
    </modified>
    <modified>
      <diff>@@ -113,11 +113,6 @@ class SectionTest &lt; Test::Unit::TestCase
       [contents(:about), contents(:site_map), contents(:welcome)]
   end
 
-  specify &quot;should order sections in site&quot; do
-    assert_reorder_sections [sections(:home), sections(:about), sections(:earth), sections(:europe), sections(:africa), sections(:bucharest), sections(:links)],
-                            [sections(:home), sections(:earth), sections(:europe), sections(:africa), sections(:bucharest), sections(:links), sections(:about)]
-  end
-
   protected
     def assert_reorder_articles(section, old_order, expected)
       assert_models_equal old_order, section.articles
@@ -125,12 +120,6 @@ class SectionTest &lt; Test::Unit::TestCase
       assert_models_equal expected, section.articles(true)
     end
     
-    def assert_reorder_sections(old_order, expected)
-      assert_models_equal old_order, sites(:first).sections
-      Section.order! expected.collect(&amp;:id)
-      assert_models_equal expected, sites(:first).sections(true)
-    end
-    
     def test_should_report_section_types
       assert sections(:home).blog?
       [:about, :cupcake_home, :cupcake_about].each { |s| assert sections(s).paged? }</diff>
      <filename>test/unit/section_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.dirname(__FILE__) + '/../test_helper'
 context &quot;Site&quot; do
-  fixtures :sites, :contents
+  fixtures :sites, :contents, :sections
 
   specify &quot;should create site without accepting comments&quot; do
     site = Site.new :host =&gt; 'foo.com', :comment_age =&gt; -1
@@ -54,6 +54,18 @@ context &quot;Site&quot; do
     assert_equal '/tags/foo',     sites(:first).tag_url('foo')
     assert_equal '/tags/foo/bar', sites(:first).tag_url('foo', 'bar')
   end
+
+  specify &quot;should order sections in site&quot; do
+    assert_reorder_sections [sections(:home), sections(:about), sections(:earth), sections(:europe), sections(:africa), sections(:bucharest), sections(:links)],
+                            [sections(:home), sections(:earth), sections(:europe), sections(:africa), sections(:bucharest), sections(:links), sections(:about)]
+  end
+
+  protected
+    def assert_reorder_sections(old_order, expected)
+      assert_models_equal old_order, sites(:first).sections
+      sites(:first).sections.order! expected.collect(&amp;:id)
+      assert_models_equal expected, sites(:first).sections(true)
+    end
 end
 
 context &quot;Site Membership&quot; do</diff>
      <filename>test/unit/site_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>09396e763e1d2b8dad71216c5b6a9b212a2ca72a</id>
    </parent>
  </parents>
  <author>
    <name>technoweenie</name>
    <email>technoweenie@567b1171-46fb-0310-a4c9-b4bef9110e78</email>
  </author>
  <url>http://github.com/francois/mephisto/commit/1da1ea5e583cb806314d4b7438c61d4af161c07e</url>
  <id>1da1ea5e583cb806314d4b7438c61d4af161c07e</id>
  <committed-date>2006-09-26T23:06:47-07:00</committed-date>
  <authored-date>2006-09-26T23:06:47-07:00</authored-date>
  <message>scope site section ordering to the current site object, so its called like site.sections.order instead of Section.order

git-svn-id: http://svn.techno-weenie.net/projects/mephisto/trunk@2292 567b1171-46fb-0310-a4c9-b4bef9110e78</message>
  <tree>d4590b6400e8bfc21c4eabc4be78fb817df3f605</tree>
  <committer>
    <name>technoweenie</name>
    <email>technoweenie@567b1171-46fb-0310-a4c9-b4bef9110e78</email>
  </committer>
</commit>
