pulitzer 0.14.4 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/pulitzer/arrangement_styles_controller.rb +1 -3
- data/app/controllers/pulitzer/background_styles_controller.rb +1 -3
- data/app/controllers/pulitzer/free_form_section_types_controller.rb +4 -4
- data/app/controllers/pulitzer/justification_styles_controller.rb +1 -3
- data/app/controllers/pulitzer/partial_types_controller.rb +0 -1
- data/app/controllers/pulitzer/post_type_content_element_types_controller.rb +4 -4
- data/app/controllers/pulitzer/post_type_versions_controller.rb +54 -0
- data/app/controllers/pulitzer/post_types_controller.rb +1 -5
- data/app/controllers/pulitzer/posts_controller.rb +3 -3
- data/app/controllers/pulitzer/sequence_flow_styles_controller.rb +1 -3
- data/app/controllers/pulitzer/versions_controller.rb +8 -2
- data/app/helpers/pulitzer/posts_helper.rb +7 -7
- data/app/interactions/pulitzer/create_free_form_section_partials.rb +2 -2
- data/app/interactions/pulitzer/create_post_type_content_elements.rb +3 -3
- data/app/interactions/pulitzer/create_post_type_free_form_sections.rb +3 -3
- data/app/interactions/pulitzer/create_singleton_post.rb +6 -6
- data/app/interactions/pulitzer/destroy_post_type_content_elements.rb +3 -3
- data/app/interactions/pulitzer/destroy_post_type_free_form_sections.rb +3 -3
- data/app/interactions/pulitzer/post_type_versions_controller/change_state.rb +15 -0
- data/app/interactions/pulitzer/post_type_versions_controller/create.rb +18 -0
- data/app/interactions/pulitzer/post_types_controller/create_singleton_post.rb +15 -0
- data/app/interactions/pulitzer/post_types_controller/create_template_version.rb +12 -0
- data/app/interactions/pulitzer/update_post_type_content_elements.rb +4 -4
- data/app/interactions/pulitzer/update_post_type_free_form_sections.rb +3 -3
- data/app/interactions/pulitzer/update_singleton_post.rb +6 -4
- data/app/models/pulitzer/arrangement_style.rb +1 -1
- data/app/models/pulitzer/background_style.rb +1 -1
- data/app/models/pulitzer/free_form_section_type.rb +1 -1
- data/app/models/pulitzer/justification_style.rb +1 -1
- data/app/models/pulitzer/partial.rb +8 -3
- data/app/models/pulitzer/post.rb +10 -2
- data/app/models/pulitzer/post_type.rb +10 -39
- data/app/models/pulitzer/post_type_content_element_type.rb +1 -1
- data/app/models/pulitzer/post_type_element.rb +1 -1
- data/app/models/pulitzer/post_type_version.rb +84 -0
- data/app/models/pulitzer/sequence_flow_style.rb +1 -1
- data/app/services/pulitzer/post_type_version/preview.rb +30 -0
- data/app/services/pulitzer/post_type_version/publish.rb +38 -0
- data/app/services/pulitzer/post_type_version/retire.rb +20 -0
- data/app/views/pulitzer/arrangement_styles/_new.html.erb +3 -3
- data/app/views/pulitzer/arrangement_styles/_show.html.erb +10 -6
- data/app/views/pulitzer/background_styles/_new.html.erb +3 -3
- data/app/views/pulitzer/background_styles/_show.html.erb +10 -6
- data/app/views/pulitzer/free_form_section_types/_new.html.erb +3 -3
- data/app/views/pulitzer/justification_styles/_new.html.erb +3 -3
- data/app/views/pulitzer/justification_styles/_show.html.erb +10 -6
- data/app/views/pulitzer/partials/_new.html.erb +8 -8
- data/app/views/pulitzer/post_type_content_element_types/_form.html.erb +0 -2
- data/app/views/pulitzer/post_type_content_element_types/_form_fields.html.erb +2 -2
- data/app/views/pulitzer/post_type_content_element_types/_new.html.erb +2 -2
- data/app/views/pulitzer/post_type_content_element_types/_show.html.erb +6 -2
- data/app/views/pulitzer/post_type_versions/_index.html.erb +15 -0
- data/app/views/pulitzer/post_type_versions/_show.html.erb +20 -0
- data/app/views/pulitzer/post_type_versions/_show_wrapper.html.erb +3 -0
- data/app/views/pulitzer/{post_types → post_type_versions}/_template.html.erb +34 -34
- data/app/views/pulitzer/post_types/_show.html.erb +3 -9
- data/app/views/pulitzer/post_types/index.html.erb +13 -10
- data/app/views/pulitzer/posts/_breadcrumbs.html.erb +4 -0
- data/app/views/pulitzer/posts/_edit.html.erb +5 -4
- data/app/views/pulitzer/posts/_index.html.erb +3 -3
- data/app/views/pulitzer/posts/_new.html.erb +1 -1
- data/app/views/pulitzer/posts/_show.html.erb +1 -1
- data/app/views/pulitzer/posts/_show_slug.html.erb +1 -1
- data/app/views/pulitzer/sequence_flow_styles/_new.html.erb +3 -3
- data/app/views/pulitzer/sequence_flow_styles/_show.html.erb +10 -6
- data/config/routes.rb +6 -4
- data/db/migrate/20170515230633_create_post_type_version.rb +9 -0
- data/db/migrate/20170515232938_reconnect_post_type_to_post.rb +13 -0
- data/lib/generators/pulitzer/post_type_generator.rb +24 -4
- data/lib/pulitzer.rb +1 -0
- data/lib/pulitzer/controller_helpers.rb +9 -0
- data/lib/pulitzer/version.rb +1 -1
- metadata +19 -4
- data/app/interactions/pulitzer/destroy_free_form_section_partials.rb +0 -17
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0df49a7939d9ace02ebfe847087de3131b1a965a
         | 
| 4 | 
            +
              data.tar.gz: f4f23a63b4f53dece53b66a4f0ed29a7952c1af1
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6bc0696eac392143c15aad0104e106e86802382dce526bf2a0c098e1ff57a4acd5d3b88df9c238e57e0403f98b0f5c74fcc05bde2d83bb97c02f00b93edd4d37
         | 
| 7 | 
            +
              data.tar.gz: fc751dcec13a5765799467e27c3d516bb26526fe1e9b93b942a61028561badcfb8df8e07111ba43eff832f0a03298775e13229de4556bbe7546936a06d179b33
         | 
| @@ -3,7 +3,6 @@ class Pulitzer::ArrangementStylesController < Pulitzer::ApplicationController | |
| 3 3 |  | 
| 4 4 | 
             
              def new
         | 
| 5 5 | 
             
                @arrangement_style = Pulitzer::ArrangementStyle.new(arrangement_style_params)
         | 
| 6 | 
            -
                @post_type = @arrangement_style.post_type
         | 
| 7 6 | 
             
                render partial: 'new', locals: {arrangement_style: @arrangement_style}
         | 
| 8 7 | 
             
              end
         | 
| 9 8 |  | 
| @@ -12,8 +11,7 @@ class Pulitzer::ArrangementStylesController < Pulitzer::ApplicationController | |
| 12 11 | 
             
                if @arrangement_style.errors.empty?
         | 
| 13 12 | 
             
                  render partial: 'show_wrapper', locals: {arrangement_style: @arrangement_style}
         | 
| 14 13 | 
             
                else
         | 
| 15 | 
            -
                   | 
| 16 | 
            -
                  render partial: 'new', locals: {arrangement_style: @arrangement_style}
         | 
| 14 | 
            +
                  render partial: 'new', locals: {arrangement_style: @arrangement_style}, status: 409
         | 
| 17 15 | 
             
                end
         | 
| 18 16 | 
             
              end
         | 
| 19 17 |  | 
| @@ -3,7 +3,6 @@ class Pulitzer::BackgroundStylesController < Pulitzer::ApplicationController | |
| 3 3 |  | 
| 4 4 | 
             
              def new
         | 
| 5 5 | 
             
                @background_style = Pulitzer::BackgroundStyle.new(background_style_params)
         | 
| 6 | 
            -
                @post_type = @background_style.post_type
         | 
| 7 6 | 
             
                render partial: 'new', locals: {background_style: @background_style}
         | 
| 8 7 | 
             
              end
         | 
| 9 8 |  | 
| @@ -12,8 +11,7 @@ class Pulitzer::BackgroundStylesController < Pulitzer::ApplicationController | |
| 12 11 | 
             
                if @background_style.errors.empty?
         | 
| 13 12 | 
             
                  render partial: 'show_wrapper', locals: {background_style: @background_style}
         | 
| 14 13 | 
             
                else
         | 
| 15 | 
            -
                   | 
| 16 | 
            -
                  render partial: 'new', locals: {background_style: @background_style}
         | 
| 14 | 
            +
                  render partial: 'new', locals: {background_style: @background_style}, status: 409
         | 
| 17 15 | 
             
                end
         | 
| 18 16 | 
             
              end
         | 
| 19 17 |  | 
| @@ -2,14 +2,14 @@ class Pulitzer::FreeFormSectionTypesController < Pulitzer::ApplicationController | |
| 2 2 | 
             
              before_action :get_ffst, only: [:show, :edit, :update, :destroy]
         | 
| 3 3 |  | 
| 4 4 | 
             
              def new
         | 
| 5 | 
            -
                @ | 
| 6 | 
            -
                @ffst = @ | 
| 5 | 
            +
                @post_type_version = Pulitzer::PostTypeVersion.find(params[:post_type_version_id])
         | 
| 6 | 
            +
                @ffst = @post_type_version.free_form_section_types.build
         | 
| 7 7 | 
             
                render partial: 'new', locals: {ffst: @ffst}
         | 
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 10 | 
             
              def create
         | 
| 11 | 
            -
                @ | 
| 12 | 
            -
                @ffst = @ | 
| 11 | 
            +
                @post_type_version = Pulitzer::PostTypeVersion.find(ffst_params[:post_type_version_id])
         | 
| 12 | 
            +
                @ffst = @post_type_version.free_form_section_types.create(ffst_params)
         | 
| 13 13 | 
             
                Pulitzer::CreatePostTypeFreeFormSections.new(@ffst).call
         | 
| 14 14 | 
             
                render partial: 'show_wrapper', locals: {ffst: @ffst}
         | 
| 15 15 | 
             
              end
         | 
| @@ -3,7 +3,6 @@ class Pulitzer::JustificationStylesController < Pulitzer::ApplicationController | |
| 3 3 |  | 
| 4 4 | 
             
              def new
         | 
| 5 5 | 
             
                @justification_style = Pulitzer::JustificationStyle.new(justification_style_params)
         | 
| 6 | 
            -
                @post_type = @justification_style.post_type
         | 
| 7 6 | 
             
                render partial: 'new', locals: {justification_style: @justification_style}
         | 
| 8 7 | 
             
              end
         | 
| 9 8 |  | 
| @@ -12,8 +11,7 @@ class Pulitzer::JustificationStylesController < Pulitzer::ApplicationController | |
| 12 11 | 
             
                if @justification_style.errors.empty?
         | 
| 13 12 | 
             
                  render partial: 'show_wrapper', locals: {justification_style: @justification_style}
         | 
| 14 13 | 
             
                else
         | 
| 15 | 
            -
                   | 
| 16 | 
            -
                  render partial: 'new', locals: {justification_style: @justification_style}
         | 
| 14 | 
            +
                  render partial: 'new', locals: {justification_style: @justification_style}, status: 409
         | 
| 17 15 | 
             
                end
         | 
| 18 16 | 
             
              end
         | 
| 19 17 |  | 
| @@ -2,14 +2,14 @@ class Pulitzer::PostTypeContentElementTypesController < Pulitzer::ApplicationCon | |
| 2 2 | 
             
              before_action :get_ptcet, only: [:show, :edit, :update, :destroy]
         | 
| 3 3 |  | 
| 4 4 | 
             
              def new
         | 
| 5 | 
            -
                @ | 
| 6 | 
            -
                @ptcet = @ | 
| 5 | 
            +
                @post_type_version = Pulitzer::PostTypeVersion.find(params[:post_type_version_id])
         | 
| 6 | 
            +
                @ptcet = @post_type_version.post_type_content_element_types.build
         | 
| 7 7 | 
             
                render partial: 'new', locals: {ptcet: @ptcet}
         | 
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 10 | 
             
              def create
         | 
| 11 | 
            -
                @ | 
| 12 | 
            -
                @ptcet = @ | 
| 11 | 
            +
                @post_type_version = Pulitzer::PostTypeVersion.find(ptcet_params[:post_type_version_id])
         | 
| 12 | 
            +
                @ptcet = @post_type_version.post_type_content_element_types.create(ptcet_params)
         | 
| 13 13 | 
             
                Pulitzer::CreatePostTypeContentElements.new(@ptcet).call
         | 
| 14 14 | 
             
                render partial: 'show_wrapper', locals: {ptcet: @ptcet}
         | 
| 15 15 | 
             
              end
         | 
| @@ -0,0 +1,54 @@ | |
| 1 | 
            +
            class Pulitzer::PostTypeVersionsController < Pulitzer::ApplicationController
         | 
| 2 | 
            +
              before_filter :get_post_type_version, except: [:index, :new, :create]
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              def index
         | 
| 5 | 
            +
                @post_type = Pulitzer::PostType.find(params[:post_type_id])
         | 
| 6 | 
            +
                @post_type_versions = @post_type.post_type_versions
         | 
| 7 | 
            +
                render_ajax
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def create
         | 
| 11 | 
            +
                @post_type_version = Create.new(post_type_version_params).call
         | 
| 12 | 
            +
                render partial: 'show_wrapper', locals: {post_type_version: @post_type_version}
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              def show
         | 
| 16 | 
            +
                render partial: 'show', locals: {post_type_version: @post_type_version}
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              def destroy
         | 
| 20 | 
            +
                @post_type_version.destroy
         | 
| 21 | 
            +
                render nothing: true
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              def template
         | 
| 25 | 
            +
                render_ajax locals: {post_type_version: @post_type_version}
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def change_state
         | 
| 29 | 
            +
                Pulitzer::PostTypeVersionsController::ChangeState.new(@post_type_version,params[:state_change]).call
         | 
| 30 | 
            +
                if @post_type_version.errors.empty?
         | 
| 31 | 
            +
                  render partial: 'show', locals: {post_type_version: @post_type_version}
         | 
| 32 | 
            +
                else
         | 
| 33 | 
            +
                  render json: {
         | 
| 34 | 
            +
                    flash_message: @post_type_version.errors.full_messages.join('<br>'),
         | 
| 35 | 
            +
                    html: render_to_string(partial: 'show', locals: {post_type_version: @post_type_version}) },
         | 
| 36 | 
            +
                    status: :conflict
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              protected
         | 
| 41 | 
            +
             | 
| 42 | 
            +
              def post_type_version_params
         | 
| 43 | 
            +
                params[:post_type_version].permit!
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              def post_params_name
         | 
| 47 | 
            +
                params[:post_type_version][:name]
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              def get_post_type_version
         | 
| 51 | 
            +
                @post_type_version = Pulitzer::PostTypeVersion.find(params[:id])
         | 
| 52 | 
            +
              end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            end
         | 
| @@ -20,7 +20,7 @@ class Pulitzer::PostTypesController < Pulitzer::ApplicationController | |
| 20 20 |  | 
| 21 21 | 
             
              def create
         | 
| 22 22 | 
             
                @post_type = Pulitzer::PostType.create(post_type_params)
         | 
| 23 | 
            -
                 | 
| 23 | 
            +
                CreateTemplateVersion.new(@post_type).call
         | 
| 24 24 | 
             
                render partial: 'show_wrapper', locals: {post_type: @post_type}
         | 
| 25 25 | 
             
              end
         | 
| 26 26 |  | 
| @@ -28,10 +28,6 @@ class Pulitzer::PostTypesController < Pulitzer::ApplicationController | |
| 28 28 | 
             
                render partial: 'show', locals: {post_type: @post_type}
         | 
| 29 29 | 
             
              end
         | 
| 30 30 |  | 
| 31 | 
            -
              def template
         | 
| 32 | 
            -
                render_ajax locals: {post_type: @post_type}
         | 
| 33 | 
            -
              end
         | 
| 34 | 
            -
             | 
| 35 31 | 
             
              def edit
         | 
| 36 32 | 
             
                render partial: 'form', locals: {post_type: @post_type}
         | 
| 37 33 | 
             
              end
         | 
| @@ -4,13 +4,13 @@ class Pulitzer::PostsController < Pulitzer::ApplicationController | |
| 4 4 | 
             
              before_action :get_version, only: [:edit_slug, :show_slug, :update_slug]
         | 
| 5 5 |  | 
| 6 6 | 
             
              def index
         | 
| 7 | 
            -
                @ | 
| 8 | 
            -
                @posts = Pulitzer::Post.where( | 
| 7 | 
            +
                @post_type_version = Pulitzer::PostTypeVersion.find params[:post_type_version_id]
         | 
| 8 | 
            +
                @posts = Pulitzer::Post.where(post_type_version_id: @post_type_version).order(id: :desc)
         | 
| 9 9 | 
             
                render_ajax
         | 
| 10 10 | 
             
              end
         | 
| 11 11 |  | 
| 12 12 | 
             
              def new
         | 
| 13 | 
            -
                @post = Pulitzer::Post.new( | 
| 13 | 
            +
                @post = Pulitzer::Post.new(post_type_version_id: params[:post_type_version_id])
         | 
| 14 14 | 
             
                render_ajax locals: { post: @post }
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| @@ -3,7 +3,6 @@ class Pulitzer::SequenceFlowStylesController < Pulitzer::ApplicationController | |
| 3 3 |  | 
| 4 4 | 
             
              def new
         | 
| 5 5 | 
             
                @sequence_flow_style = Pulitzer::SequenceFlowStyle.new(sequence_flow_style_params)
         | 
| 6 | 
            -
                @post_type = @sequence_flow_style.post_type
         | 
| 7 6 | 
             
                render partial: 'new', locals: {sequence_flow_style: @sequence_flow_style}
         | 
| 8 7 | 
             
              end
         | 
| 9 8 |  | 
| @@ -12,8 +11,7 @@ class Pulitzer::SequenceFlowStylesController < Pulitzer::ApplicationController | |
| 12 11 | 
             
                if @sequence_flow_style.errors.empty?
         | 
| 13 12 | 
             
                  render partial: 'show_wrapper', locals: {sequence_flow_style: @sequence_flow_style}
         | 
| 14 13 | 
             
                else
         | 
| 15 | 
            -
                   | 
| 16 | 
            -
                  render partial: 'new', locals: {sequence_flow_style: @sequence_flow_style}
         | 
| 14 | 
            +
                  render partial: 'new', locals: {sequence_flow_style: @sequence_flow_style}, status: 409
         | 
| 17 15 | 
             
                end
         | 
| 18 16 | 
             
              end
         | 
| 19 17 |  | 
| @@ -3,8 +3,14 @@ class Pulitzer::VersionsController < Pulitzer::ApplicationController | |
| 3 3 |  | 
| 4 4 | 
             
              def edit
         | 
| 5 5 | 
             
                if @version.preview?
         | 
| 6 | 
            -
                  route | 
| 7 | 
            -
                   | 
| 6 | 
            +
                  route = "#{Pulitzer.preview_namespace}_#{@post.post_type.name.parameterize('_')}_path"
         | 
| 7 | 
            +
                  if main_app.respond_to?(route)
         | 
| 8 | 
            +
                    if @post.plural?
         | 
| 9 | 
            +
                      @preview_path = main_app.public_send(route, @post.slug, {version_number: @post.post_type_version.version_number})
         | 
| 10 | 
            +
                    else
         | 
| 11 | 
            +
                      @preview_path = main_app.public_send(route, {version_number: @post.post_type_version.version_number})
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
                  end
         | 
| 8 14 | 
             
                end
         | 
| 9 15 | 
             
                render_ajax locals: { version: @version }
         | 
| 10 16 | 
             
              end
         | 
| @@ -1,17 +1,17 @@ | |
| 1 1 | 
             
            module Pulitzer
         | 
| 2 2 | 
             
              module PostsHelper
         | 
| 3 3 |  | 
| 4 | 
            -
                def link_to_posts( | 
| 5 | 
            -
                  if  | 
| 6 | 
            -
                    ajax_link plural_label, posts_path( | 
| 4 | 
            +
                def link_to_posts(post_type_version, plural_label, singular_label)
         | 
| 5 | 
            +
                  if post_type_version.plural?
         | 
| 6 | 
            +
                    ajax_link plural_label, posts_path(post_type_version_id: post_type_version.id), {}, '[data-tab-id="templates"]'
         | 
| 7 7 | 
             
                  else
         | 
| 8 | 
            -
                    ajax_link singular_label, edit_post_path( | 
| 8 | 
            +
                    ajax_link singular_label, edit_post_path(post_type_version.singleton_post), {}, '[data-tab-id="templates"]'
         | 
| 9 9 | 
             
                  end
         | 
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 | 
            -
                def link_back_to_posts( | 
| 13 | 
            -
                  if  | 
| 14 | 
            -
                    ajax_link plural_label, pulitzer.posts_path( | 
| 12 | 
            +
                def link_back_to_posts(post_type_version, plural_label, singular_label)
         | 
| 13 | 
            +
                  if post_type_version.plural?
         | 
| 14 | 
            +
                    ajax_link plural_label, pulitzer.posts_path(post_type_version_id: post_type_version.id), {}, '[data-tab-id="templates"]'
         | 
| 15 15 | 
             
                  else
         | 
| 16 16 | 
             
                    ajax_link singular_label, pulitzer.post_types_path, {}, '[data-tab-id="templates"]'
         | 
| 17 17 | 
             
                  end
         | 
| @@ -6,8 +6,8 @@ class Pulitzer::CreateFreeFormSectionPartials | |
| 6 6 |  | 
| 7 7 | 
             
              def call
         | 
| 8 8 | 
             
                free_form_section_type  = @partial_type.free_form_section_type
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 9 | 
            +
                post_type_version       = free_form_section_type.post_type_version
         | 
| 10 | 
            +
                post_type_version.posts.each do |post|
         | 
| 11 11 | 
             
                  if post.preview_version
         | 
| 12 12 | 
             
                    free_form_section = post.preview_version.free_form_sections.find_by(name: free_form_section_type.name)
         | 
| 13 13 | 
             
                    partial = free_form_section.partials.create do |p|
         | 
| @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            class Pulitzer::CreatePostTypeContentElements
         | 
| 2 | 
            -
              attr_accessor : | 
| 2 | 
            +
              attr_accessor :post_type_version, :ptcet, :old_label
         | 
| 3 3 |  | 
| 4 4 | 
             
              def initialize(ptcet)
         | 
| 5 | 
            -
                self. | 
| 5 | 
            +
                self.post_type_version  = ptcet.post_type_version
         | 
| 6 6 | 
             
                self.ptcet      = ptcet
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 9 | 
             
              def call
         | 
| 10 | 
            -
                 | 
| 10 | 
            +
                post_type_version.posts.each do |post|
         | 
| 11 11 | 
             
                  post.preview_version.content_elements.create do |ce|
         | 
| 12 12 | 
             
                    ce.label                          = ptcet.label
         | 
| 13 13 | 
             
                    ce.height                         = ptcet.height
         | 
| @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            class Pulitzer::CreatePostTypeFreeFormSections
         | 
| 2 | 
            -
              attr_accessor : | 
| 2 | 
            +
              attr_accessor :post_type_version, :ffst, :old_label
         | 
| 3 3 |  | 
| 4 4 | 
             
              def initialize(ffst)
         | 
| 5 | 
            -
                self. | 
| 5 | 
            +
                self.post_type_version  = ffst.post_type_version
         | 
| 6 6 | 
             
                self.ffst      = ffst
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 9 | 
             
              def call
         | 
| 10 | 
            -
                 | 
| 10 | 
            +
                post_type_version.posts.each do |post|
         | 
| 11 11 | 
             
                  if post.preview_version
         | 
| 12 12 | 
             
                    post.preview_version.free_form_sections.create do |ffs|
         | 
| 13 13 | 
             
                      ffs.name                   = ffst.name
         | 
| @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            class Pulitzer::CreateSingletonPost
         | 
| 2 | 
            -
              attr_accessor : | 
| 2 | 
            +
              attr_accessor :post_type_version, :title
         | 
| 3 3 |  | 
| 4 | 
            -
              def initialize( | 
| 5 | 
            -
                self. | 
| 6 | 
            -
                self.title =  | 
| 4 | 
            +
              def initialize(post_type_version)
         | 
| 5 | 
            +
                self.post_type_version = post_type_version
         | 
| 6 | 
            +
                self.title = post_type_version.name
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 9 | 
             
              def call
         | 
| 10 | 
            -
                if  | 
| 11 | 
            -
                  singleton_post =  | 
| 10 | 
            +
                if post_type_version.singular? && !post_type_version.posts.any?
         | 
| 11 | 
            +
                  singleton_post = post_type_version.posts.create(title: title)
         | 
| 12 12 | 
             
                  Pulitzer::CreatePostContentElements.new(singleton_post).call
         | 
| 13 13 | 
             
                end
         | 
| 14 14 | 
             
              end
         | 
| @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            class Pulitzer::DestroyPostTypeContentElements
         | 
| 2 | 
            -
              attr_accessor : | 
| 2 | 
            +
              attr_accessor :post_type_version, :ptcet
         | 
| 3 3 |  | 
| 4 4 | 
             
              def initialize(ptcet)
         | 
| 5 | 
            -
                self. | 
| 5 | 
            +
                self.post_type_version  = ptcet.post_type_version
         | 
| 6 6 | 
             
                self.ptcet      = ptcet
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 9 | 
             
              def call
         | 
| 10 | 
            -
                 | 
| 10 | 
            +
                post_type_version.posts.each do |post|
         | 
| 11 11 | 
             
                  post.preview_version.content_elements.where(label: ptcet.label).each do |ce|
         | 
| 12 12 | 
             
                    ce.destroy
         | 
| 13 13 | 
             
                  end
         | 
| @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            class Pulitzer::DestroyPostTypeFreeFormSections
         | 
| 2 | 
            -
              attr_accessor : | 
| 2 | 
            +
              attr_accessor :post_type_version, :ffst
         | 
| 3 3 |  | 
| 4 4 | 
             
              def initialize(ffst)
         | 
| 5 | 
            -
                self. | 
| 5 | 
            +
                self.post_type_version  = ffst.post_type_version
         | 
| 6 6 | 
             
                self.ffst      = ffst
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 9 | 
             
              def call
         | 
| 10 | 
            -
                 | 
| 10 | 
            +
                post_type_version.posts.each do |post|
         | 
| 11 11 | 
             
                  post.preview_version.free_form_sections.where(free_form_section_type_id: ffst.id).each do |ffs|
         | 
| 12 12 | 
             
                    ffs.destroy
         | 
| 13 13 | 
             
                  end
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            class Pulitzer::PostTypeVersionsController::ChangeState
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              def initialize(ptv,state_change)
         | 
| 4 | 
            +
                @ptv, @state_change = ptv, state_change.to_sym
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def call
         | 
| 8 | 
            +
                sanitize_state_change or return false
         | 
| 9 | 
            +
                @ptv.send @state_change
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              def sanitize_state_change
         | 
| 13 | 
            +
                return [:publish,:retire,:preview].include? @state_change
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            class Pulitzer::PostTypeVersionsController::Create
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              def initialize(params)
         | 
| 4 | 
            +
                @params = params.to_h.to_hash.symbolize_keys
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def call
         | 
| 8 | 
            +
                @ptv = Pulitzer::PostTypeVersion.new(@params)
         | 
| 9 | 
            +
                @post_type = @ptv.post_type
         | 
| 10 | 
            +
                last_version_number = @post_type.post_type_versions.maximum(:version_number) || 0
         | 
| 11 | 
            +
                this_version_number = last_version_number + 1
         | 
| 12 | 
            +
                @ptv.version_number = this_version_number
         | 
| 13 | 
            +
                @ptv.save
         | 
| 14 | 
            +
                CreateSingletonPost.new(@ptv).call
         | 
| 15 | 
            +
                @ptv
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            class Pulitzer::CreateSingletonPost
         | 
| 2 | 
            +
              attr_accessor :post_type_version, :title
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              def initialize(post_type_version)
         | 
| 5 | 
            +
                self.post_type_version = post_type_version
         | 
| 6 | 
            +
                self.title = post_type_version.name
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              def call
         | 
| 10 | 
            +
                if post_type_version.singular? && !post_type_version.posts.any?
         | 
| 11 | 
            +
                  singleton_post = post_type_version.posts.create(title: title)
         | 
| 12 | 
            +
                  Pulitzer::CreatePostContentElements.new(singleton_post).call
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            class Pulitzer::PostTypesController::CreateTemplateVersion
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              def initialize(post_type)
         | 
| 4 | 
            +
                @post_type = post_type
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def call
         | 
| 8 | 
            +
                post_type_version = @post_type.post_type_versions.create
         | 
| 9 | 
            +
                CreateSingletonPost.new(post_type_version).call
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            end
         |