Skip to content

Commit b0e92a9

Browse files
ryanb-gdsTonyGDS
authored andcommitted
Use featurable trait for edition features
1 parent 6be0465 commit b0e92a9

22 files changed

Lines changed: 245 additions & 359 deletions

app/controllers/admin/edition_featurings_controller.rb

Lines changed: 0 additions & 131 deletions
This file was deleted.

app/controllers/admin/editions_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class Admin::EditionsController < Admin::BaseController
66
before_action :clean_edition_parameters, only: %i[create update]
77
before_action :clear_scheduled_publication_if_not_activated, only: %i[create update]
88
before_action :clear_response_form_file_cache, only: %i[create update]
9-
before_action :find_edition, only: %i[show edit update revise diff confirm_destroy destroy update_bypass_id update_image_display_option]
9+
before_action :find_edition, only: %i[show edit update revise diff confirm_destroy destroy update_bypass_id update_image_display_option features]
1010
before_action :prevent_modification_of_unmodifiable_edition, only: %i[update]
1111
before_action :delete_absent_edition_organisations, only: %i[create update]
1212
before_action :build_national_exclusion_params, only: %i[create update]
@@ -31,7 +31,7 @@ def enforce_permissions!
3131
enforce_permission!(:create, edition_class || Edition)
3232
when "create"
3333
enforce_permission!(:create, @edition)
34-
when "edit", "update", "revise", "diff", "update_bypass_id", "update_image_display_option"
34+
when "edit", "update", "revise", "diff", "update_bypass_id", "update_image_display_option", "features"
3535
enforce_permission!(:update, @edition)
3636
when "destroy", "confirm_destroy"
3737
enforce_permission!(:delete, @edition)

app/controllers/admin/offsite_links_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def load_parent
4141
@parent = WorldLocation.friendly.find(params[:world_location_news_id]).world_location_news if params[:world_location_news_id]
4242
@parent = Organisation.friendly.find(params[:organisation_id]) if params[:organisation_id]
4343
@parent = TopicalEvent.friendly.find(params[:topical_event_id]) if params[:topical_event_id]
44+
@parent = StandardEdition.find(params[:standard_edition_id]) if params[:standard_edition_id]
4445
end
4546

4647
def load_offsite_link

app/controllers/admin/standard_editions_controller.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,25 @@ def apply_change_type
3535
end
3636
end
3737

38+
def features
39+
@feature_list = @edition.load_or_create_feature_list(params[:locale])
40+
@locale = Locale.new(params[:locale] || :en)
41+
42+
filter_params = params.slice(:page, :type, :author, :title)
43+
.permit!
44+
.to_h
45+
.merge(
46+
state: "published",
47+
per_page: Admin::EditionFilter::GOVUK_DESIGN_SYSTEM_PER_PAGE,
48+
)
49+
50+
@filter = Admin::EditionFilter.new(Edition, current_user, filter_params)
51+
@featurable_topical_events = TopicalEvent.active
52+
@featurable_offsite_links = @edition.offsite_links
53+
54+
render :features
55+
end
56+
3857
private
3958

4059
def edition_class

app/models/concerns/edition/offsite_links.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ module Edition::OffsiteLinks
33

44
class Trait < Edition::Traits::Trait
55
def process_associations_before_save(edition)
6-
@edition.edition_offsite_links.each do |association|
7-
edition.edition_offsite_links.build(association.attributes.except("id"))
6+
@edition.offsite_links.each do |association|
7+
edition.offsite_links.build(association.attributes.except("id"))
88
end
99
end
1010
end
1111

1212
included do
13-
has_many :edition_offsite_links, foreign_key: :edition_id, dependent: :destroy
14-
has_many :offsite_links, through: :edition_offsite_links, validate: false
13+
has_many :offsite_links, as: :parent
1514

1615
add_trait Trait
1716
end

app/models/configurable_associations/offsite_links.rb

Lines changed: 0 additions & 25 deletions
This file was deleted.

app/models/edition_offsite_link.rb

Lines changed: 0 additions & 4 deletions
This file was deleted.

app/models/offsite_link.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@ def url_is_permitted?(host)
112112
end
113113

114114
def republish_parent_to_publishing_api
115-
Whitehall::PublishingApi.republish_async(parent)
115+
if parent.is_a? StandardEdition
116+
Whitehall::PublishingApi.republish_document_async(parent.document)
117+
else
118+
Whitehall::PublishingApi.republish_async(parent)
119+
end
116120
end
117121
end

app/models/standard_edition.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ class StandardEdition < Edition
22
include Edition::Identifiable
33
include Edition::Images
44
include ::Attachable
5+
include ::Featurable
56
include Edition::AlternativeFormatProvider
67
include Edition::RoleAppointments
78
include Edition::TopicalEvents

app/views/admin/edition_featurings/confirm_destroy.html.erb

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)