Changeset 1183

Show
Ignore:
Timestamp:
2008-09-23 11:53:38 (4 months ago)
Author:
gaspard
Message:

commit cce1336195f01ce05bf3fc285b6aac5fa3fe8d17
Author: Gaspard Bucher <gaspard@teti.ch>

Hot fixed a bug where included [context] replaced by [with] would loose the finder (method).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/multiversion.rb

    r1182 r1183  
    479479            end 
    480480          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 
    483487          elsif ok 
    484488            ok = update_max_status && update_publish_from 
     
    512516            lang ||= visitor.lang 
    513517            # is there a current redaction ? 
    514             v = versions.find(:first, :conditions=>["status >= #{Zena::Status[:red]} AND status < #{Zena::Status[:pub]} AND lang=?", lang]) 
     518            v = versions.find(:first, :conditions=>["status >= #{Zena::Status[:red]} AND status < #{Zena::Status[:prop]} AND lang=?", lang]) 
    515519            if v == nil && can_write? 
    516520              # create new redaction or redit current publication 
    517521              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 
    521527              end 
    522528               
  • trunk/lib/parser/lib/parser.rb

    r1171 r1183  
    123123   
    124124  # 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'. 
    125126  def replace_with(obj) 
    126127    # keep @method (obj's method is always 'with') 
    127128    @blocks   = obj.blocks.empty? ? @blocks : obj.blocks 
    128     @params   = obj.params.empty? ? @params : obj.params 
     129    @params.merge!(obj.params) 
    129130  end 
    130131   
  • trunk/test/helpers/zena_parser/basic.yml

    r1180 r1183  
    787787  src: "include_named: <r:include template='/id/name'><r:with part='bob'>John</r:with></r:include>" 
    788788  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 
     791context_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 
     795include_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" 
    789798 
    790799content_for_layout: 
  • trunk/test/unit/multiversion_test.rb

    r1182 r1183  
    807807    assert node.v_updated_at < Time.now + 600 
    808808    assert node.v_updated_at > Time.now - 600 
    809     node.update_attributes(:v_title => "Puma") 
     809    assert node.update_attributes(:v_title => "Puma") 
    810810    assert_equal Zena::Status[:pub], node.v_status 
    811811    assert_equal 1, node.v_number 
     
    828828    assert node.v_updated_at < Time.now + 600 
    829829    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]) 
    831831    assert_equal Zena::Status[:pub], node.v_status 
    832832    assert_equal 1, node.v_number 
     
    835835  end 
    836836   
    837   def test_auto_publish_in_redit_time 
     837  def test_auto_publish_in_redit_time_new_proposition 
    838838    # set site.auto_publish      ===> publish 
    839839    # now < updated + redit_time ===> update current proposition 
     
    850850    assert node.v_updated_at < Time.now + 600 
    851851    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") 
    853853    assert_equal Zena::Status[:prop], node.v_status 
    854     assert_equal 2, node.v_number 
    855     assert_equal versions_id(:status_en), node.v_id 
     854    assert_equal 3, node.v_number 
     855    assert_not_equal versions_id(:status_en), node.v_id 
    856856    assert_equal 'Statues are better', node.v_title 
    857857  end 
    858  
    859   def test_publish_after_save_in_redit_time 
     858   
     859  def test_auto_publish_in_redit_time_updates_proposition 
    860860    # set site.auto_publish      ===> publish 
    861861    # 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)}" 
    864864    login(:ant) 
    865865    visitor.lang = 'en' 
     
    869869    assert_equal 1, node.v_number 
    870870    assert_equal users_id(:ant), node.v_user_id 
     871    assert !node.can_publish? 
    871872    assert node.v_updated_at < Time.now + 600 
    872873    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"
    874875    assert_equal Zena::Status[:prop], node.v_status 
    875876    assert_equal 1, node.v_number 
  • trunk/test/unit/node_test.rb

    r1125 r1183  
    161161    test_page = secure!(Node) { nodes(:status) } 
    162162    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") 
    164164    assert_equal 3, test_page.v_number 
    165     assert_equal Zena::Status[:red], test_page.v_status 
     165    assert_equal Zena::Status[:prop], test_page.v_status 
    166166  end 
    167167