Changeset 1183
- Timestamp:
- 2008-09-23 11:53:38 (4 months ago)
- Files:
-
- trunk/lib/multiversion.rb (modified) (2 diffs)
- trunk/lib/parser/lib/parser.rb (modified) (1 diff)
- trunk/test/helpers/zena_parser/basic.yml (modified) (1 diff)
- trunk/test/unit/multiversion_test.rb (modified) (5 diffs)
- trunk/test/unit/node_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/multiversion.rb
r1182 r1183 479 479 end 480 480 end 481 if ok && publish_after_save && version.status != Zena::Status[:pub] 482 ok = can_apply?(:publish) ? apply(:publish) : apply(:propose) 481 if ok && publish_after_save 482 if can_apply?(:publish) 483 ok = apply(:publish) 484 elsif can_apply?(:propose) 485 ok = apply(:propose) 486 end 483 487 elsif ok 484 488 ok = update_max_status && update_publish_from … … 512 516 lang ||= visitor.lang 513 517 # is there a current redaction ? 514 v = versions.find(:first, :conditions=>["status >= #{Zena::Status[:red]} AND status < #{Zena::Status[:p ub]} AND lang=?", lang])518 v = versions.find(:first, :conditions=>["status >= #{Zena::Status[:red]} AND status < #{Zena::Status[:prop]} AND lang=?", lang]) 515 519 if v == nil && can_write? 516 520 # create new redaction or redit current publication 517 521 if publish_after_save && version[:status] >= Zena::Status[:prop] && version[:user_id] == visitor[:id] && version[:lang] == lang && (Time.now < version[:updated_at] + current_site[:redit_time].to_i) 518 # re-edit publication 519 redit = true 520 v = version 522 if can_visible? || (can_manage? && private?) || version[:status] == Zena::Status[:prop] 523 # re-edit publication 524 redit = true 525 v = version 526 end 521 527 end 522 528 trunk/lib/parser/lib/parser.rb
r1171 r1183 123 123 124 124 # Hook called when replacing part of an included template with '<r:with part='main'>...</r:with>' 125 # This replaces the current object 'self' which is in the original included template, with the custom version 'obj'. 125 126 def replace_with(obj) 126 127 # keep @method (obj's method is always 'with') 127 128 @blocks = obj.blocks.empty? ? @blocks : obj.blocks 128 @params = obj.params.empty? ? @params : obj.params129 @params.merge!(obj.params) 129 130 end 130 131 trunk/test/helpers/zena_parser/basic.yml
r1180 r1183 787 787 src: "include_named: <r:include template='/id/name'><r:with part='bob'>John</r:with></r:include>" 788 788 res: "include_named: name_with_name: My name is <b>John</b>. I am happy." 789 790 # this test is a dummy used by include_context 791 context_dummy: 792 src: "CD: <r:pages in='site' where='name like \"s%\"' name='pages'><r:each join=', ' do='[name]'/></r:pages>" 793 res: "CD: skins, status" 794 795 include_context: 796 src: "IC: <r:include template='/context/dummy'><r:with part='pages'><r:each join=' / ' do='[name]'/></r:with></r:include>" 797 res: "IC: CD: skins / status" 789 798 790 799 content_for_layout: trunk/test/unit/multiversion_test.rb
r1182 r1183 807 807 assert node.v_updated_at < Time.now + 600 808 808 assert node.v_updated_at > Time.now - 600 809 node.update_attributes(:v_title => "Puma")809 assert node.update_attributes(:v_title => "Puma") 810 810 assert_equal Zena::Status[:pub], node.v_status 811 811 assert_equal 1, node.v_number … … 828 828 assert node.v_updated_at < Time.now + 600 829 829 assert node.v_updated_at > Time.now - 600 830 node.update_attributes(:v_title => "Puma", :v_status => Zena::Status[:pub])830 assert node.update_attributes(:v_title => "Puma", :v_status => Zena::Status[:pub]) 831 831 assert_equal Zena::Status[:pub], node.v_status 832 832 assert_equal 1, node.v_number … … 835 835 end 836 836 837 def test_auto_publish_in_redit_time 837 def test_auto_publish_in_redit_time_new_proposition 838 838 # set site.auto_publish ===> publish 839 839 # now < updated + redit_time ===> update current proposition … … 850 850 assert node.v_updated_at < Time.now + 600 851 851 assert node.v_updated_at > Time.now - 600 852 node.update_attributes(:v_title => "Statues are better")852 assert node.update_attributes(:v_title => "Statues are better") 853 853 assert_equal Zena::Status[:prop], node.v_status 854 assert_equal 2, node.v_number855 assert_ equal versions_id(:status_en), node.v_id854 assert_equal 3, node.v_number 855 assert_not_equal versions_id(:status_en), node.v_id 856 856 assert_equal 'Statues are better', node.v_title 857 857 end 858 859 def test_ publish_after_save_in_redit_time858 859 def test_auto_publish_in_redit_time_updates_proposition 860 860 # set site.auto_publish ===> publish 861 861 # now < updated + redit_time ===> update current proposition 862 Site.connection.execute "UPDATE sites set auto_publish = 0, redit_time = 7200 WHERE id = #{sites_id(:zena)}"863 Version.connection.execute "UPDATE versions set updated_at = '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}' status=#{Zena::Status[:prop]}WHERE id = #{versions_id(:status_en)}"862 Site.connection.execute "UPDATE sites set auto_publish = 1, redit_time = 7200 WHERE id = #{sites_id(:zena)}" 863 Version.connection.execute "UPDATE versions set status = #{Zena::Status[:prop]}, updated_at = '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}' WHERE id = #{versions_id(:status_en)}" 864 864 login(:ant) 865 865 visitor.lang = 'en' … … 869 869 assert_equal 1, node.v_number 870 870 assert_equal users_id(:ant), node.v_user_id 871 assert !node.can_publish? 871 872 assert node.v_updated_at < Time.now + 600 872 873 assert node.v_updated_at > Time.now - 600 873 node.update_attributes(:v_title => "Statues are better", :v_status => Zena::Status[:pub])874 assert node.update_attributes(:v_title => "Statues are better") 874 875 assert_equal Zena::Status[:prop], node.v_status 875 876 assert_equal 1, node.v_number trunk/test/unit/node_test.rb
r1125 r1183 161 161 test_page = secure!(Node) { nodes(:status) } 162 162 assert_equal 2, test_page.v_number 163 test_page.update_attributes( :v_status => Zena::Status[:pub], :v_title => "New funky title")163 assert test_page.update_attributes( :v_status => Zena::Status[:pub], :v_title => "New funky title") 164 164 assert_equal 3, test_page.v_number 165 assert_equal Zena::Status[: red], test_page.v_status165 assert_equal Zena::Status[:prop], test_page.v_status 166 166 end 167 167
