Changeset 1182
- Timestamp:
- 2008-09-23 09:34:24 (4 months ago)
- Files:
-
- trunk/lib/multiversion.rb (modified) (2 diffs)
- trunk/lib/parser/lib/rules/zena.rb (modified) (1 diff)
- trunk/test/unit/multiversion_test.rb (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/multiversion.rb
r1139 r1182 480 480 end 481 481 if ok && publish_after_save && version.status != Zena::Status[:pub] 482 ok = publish482 ok = can_apply?(:publish) ? apply(:publish) : apply(:propose) 483 483 elsif ok 484 484 ok = update_max_status && update_publish_from … … 515 515 if v == nil && can_write? 516 516 # create new redaction or redit current publication 517 if publish_after_save && version[:status] == Zena::Status[:pub] && version[:user_id] == visitor[:id] && version[:lang] == lang && (Time.now < version[:updated_at] + current_site[:redit_time].to_i)517 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 518 # re-edit publication 519 519 redit = true trunk/lib/parser/lib/rules/zena.rb
r1180 r1182 1955 1955 def r_context 1956 1956 # DRY ! (build_finder_for, block) 1957 method = @params[:method] 1957 return parser_error("missing 'method' parameter") unless method = @params[:method] 1958 1958 1959 context = node_class.zafu_known_contexts[method] 1959 1960 if context && @params.keys == [:method] trunk/test/unit/multiversion_test.rb
r1181 r1182 793 793 end 794 794 795 def test_auto_publish_in_redit_time 795 def test_auto_publish_in_redit_time_can_publish 796 796 # set site.auto_publish ===> publish 797 797 # now < updated + redit_time ===> update current publication 798 798 Site.connection.execute "UPDATE sites set auto_publish = 1, redit_time = 7200 WHERE id = #{sites_id(:zena)}" 799 Version.connection.execute "UPDATE versions set updated_at = '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}' WHERE id = #{versions_id(:tiger_en)}" 800 login(:tiger) 801 visitor.lang = 'en' 802 node = secure!(Node) { nodes(:tiger) } 803 assert_equal Zena::Status[:pub], node.v_status 804 assert_equal 'Tiger', node.v_title 805 assert_equal 1, node.v_number 806 assert_equal users_id(:tiger), node.v_user_id 807 assert node.v_updated_at < Time.now + 600 808 assert node.v_updated_at > Time.now - 600 809 node.update_attributes(:v_title => "Puma") 810 assert_equal Zena::Status[:pub], node.v_status 811 assert_equal 1, node.v_number 812 assert_equal versions_id(:tiger_en), node.v_id 813 assert_equal 'Puma', node.v_title 814 end 815 816 def test_publish_after_save_in_redit_time_can_publish 817 # set site.auto_publish ===> publish 818 # now < updated + redit_time ===> update current publication 819 Site.connection.execute "UPDATE sites set auto_publish = 0, redit_time = 7200 WHERE id = #{sites_id(:zena)}" 820 Version.connection.execute "UPDATE versions set updated_at = '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}' WHERE id = #{versions_id(:tiger_en)}" 821 login(:tiger) 822 visitor.lang = 'en' 823 node = secure!(Node) { nodes(:tiger) } 824 assert_equal Zena::Status[:pub], node.v_status 825 assert_equal 'Tiger', node.v_title 826 assert_equal 1, node.v_number 827 assert_equal users_id(:tiger), node.v_user_id 828 assert node.v_updated_at < Time.now + 600 829 assert node.v_updated_at > Time.now - 600 830 node.update_attributes(:v_title => "Puma", :v_status => Zena::Status[:pub]) 831 assert_equal Zena::Status[:pub], node.v_status 832 assert_equal 1, node.v_number 833 assert_equal versions_id(:tiger_en), node.v_id 834 assert_equal 'Puma', node.v_title 835 end 836 837 def test_auto_publish_in_redit_time 838 # set site.auto_publish ===> publish 839 # now < updated + redit_time ===> update current proposition 840 Site.connection.execute "UPDATE sites set auto_publish = 1, redit_time = 7200 WHERE id = #{sites_id(:zena)}" 799 841 Version.connection.execute "UPDATE versions set updated_at = '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}' WHERE id = #{versions_id(:status_en)}" 800 842 login(:ant) … … 805 847 assert_equal 1, node.v_number 806 848 assert_equal users_id(:ant), node.v_user_id 849 assert !node.can_publish? 807 850 assert node.v_updated_at < Time.now + 600 808 851 assert node.v_updated_at > Time.now - 600 809 852 node.update_attributes(:v_title => "Statues are better") 810 assert_equal Zena::Status[:p ub], node.v_status811 assert_equal 1, node.v_number853 assert_equal Zena::Status[:prop], node.v_status 854 assert_equal 2, node.v_number 812 855 assert_equal versions_id(:status_en), node.v_id 813 856 assert_equal 'Statues are better', node.v_title … … 816 859 def test_publish_after_save_in_redit_time 817 860 # set site.auto_publish ===> publish 818 # now < updated + redit_time ===> update current p ublication861 # now < updated + redit_time ===> update current proposition 819 862 Site.connection.execute "UPDATE sites set auto_publish = 0, redit_time = 7200 WHERE id = #{sites_id(:zena)}" 820 Version.connection.execute "UPDATE versions set updated_at = '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}' WHERE id = #{versions_id(:status_en)}"821 login(:ant) 822 visitor.lang = 'en' 823 node = secure!(Node) { nodes(:status) } 824 assert_equal Zena::Status[:p ub], node.v_status863 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)}" 864 login(:ant) 865 visitor.lang = 'en' 866 node = secure!(Node) { nodes(:status) } 867 assert_equal Zena::Status[:prop], node.v_status 825 868 assert_equal 'status title', node.v_title 826 869 assert_equal 1, node.v_number … … 829 872 assert node.v_updated_at > Time.now - 600 830 873 node.update_attributes(:v_title => "Statues are better", :v_status => Zena::Status[:pub]) 831 assert_equal Zena::Status[:p ub], node.v_status874 assert_equal Zena::Status[:prop], node.v_status 832 875 assert_equal 1, node.v_number 833 876 assert_equal versions_id(:status_en), node.v_id … … 868 911 assert_equal Zena::Status[:rep], old_version.status 869 912 end 913 914 def test_v_status_no_publish_rights 915 login(:ant) 916 node = secure!(Node) { nodes(:cleanWater) } 917 assert !node.can_publish? 918 assert node.can_write? 919 assert node.update_attributes(:v_title => 'bloated waters', :v_status => Zena::Status[:pub]) 920 assert_equal Zena::Status[:prop], node.v_status 921 end 922 923 def test_auto_publish_no_publish_rights 924 Site.connection.execute "UPDATE sites set auto_publish = 1, redit_time = 0 WHERE id = #{sites_id(:zena)}" 925 login(:ant) 926 node = secure!(Node) { nodes(:cleanWater) } 927 assert !node.can_publish? 928 assert node.update_attributes(:v_title => 'bloated waters') 929 assert_equal Zena::Status[:prop], node.v_status 930 end 870 931 end
