govuk_content_models 11.4.0 → 12.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 12.0.0
2
+
3
+ * Remove `SpecialistDocumentEdition` model. It is only used by the
4
+ specialist-publisher and is a concern of that application and how it handles
5
+ versioning documents.
6
+
1
7
  ## 11.4.0
2
8
 
3
9
  * Add `RenderedManual` model.
@@ -233,17 +233,6 @@ FactoryGirl.define do
233
233
  end
234
234
  end
235
235
 
236
- factory :specialist_document_edition do
237
- sequence(:slug) {|n| "test-specialist-document-#{n}" }
238
- sequence(:title) {|n| "Test Specialist Document #{n}" }
239
- summary "My summary"
240
- body "My body"
241
- opened_date '2013-04-20'
242
- market_sector 'some-market-sector'
243
- case_type 'a-case-type'
244
- case_state 'open'
245
- end
246
-
247
236
  factory :rendered_specialist_document do
248
237
  sequence(:slug) {|n| "test-rendered-specialist-document-#{n}" }
249
238
  sequence(:title) {|n| "Test Rendered Specialist Document #{n}" }
@@ -1,4 +1,4 @@
1
1
  module GovukContentModels
2
2
  # Changing this causes Jenkins to tag and release the gem into the wild
3
- VERSION = "11.4.0"
3
+ VERSION = "12.0.0"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_content_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.4.0
4
+ version: 12.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-06 00:00:00.000000000 Z
12
+ date: 2014-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bson_ext
@@ -381,7 +381,6 @@ files:
381
381
  - app/models/simple_smart_answer_edition.rb
382
382
  - app/models/simple_smart_answer_edition/node.rb
383
383
  - app/models/simple_smart_answer_edition/node/option.rb
384
- - app/models/specialist_document_edition.rb
385
384
  - app/models/tag.rb
386
385
  - app/models/transaction_edition.rb
387
386
  - app/models/travel_advice_edition.rb
@@ -437,7 +436,6 @@ files:
437
436
  - test/models/simple_smart_answer_edition_test.rb
438
437
  - test/models/simple_smart_answer_node_test.rb
439
438
  - test/models/simple_smart_answer_option_test.rb
440
- - test/models/specialist_document_edition_test.rb
441
439
  - test/models/tag_test.rb
442
440
  - test/models/time_zone_test.rb
443
441
  - test/models/transaction_edition_test.rb
@@ -467,7 +465,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
467
465
  version: '0'
468
466
  segments:
469
467
  - 0
470
- hash: 2714656676464909163
468
+ hash: 3589363428373326753
471
469
  required_rubygems_version: !ruby/object:Gem::Requirement
472
470
  none: false
473
471
  requirements:
@@ -476,7 +474,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
476
474
  version: '0'
477
475
  segments:
478
476
  - 0
479
- hash: 2714656676464909163
477
+ hash: 3589363428373326753
480
478
  requirements: []
481
479
  rubyforge_project:
482
480
  rubygems_version: 1.8.23
@@ -516,7 +514,6 @@ test_files:
516
514
  - test/models/simple_smart_answer_edition_test.rb
517
515
  - test/models/simple_smart_answer_node_test.rb
518
516
  - test/models/simple_smart_answer_option_test.rb
519
- - test/models/specialist_document_edition_test.rb
520
517
  - test/models/tag_test.rb
521
518
  - test/models/time_zone_test.rb
522
519
  - test/models/transaction_edition_test.rb
@@ -1,86 +0,0 @@
1
- require "state_machine"
2
-
3
- class SpecialistDocumentEdition
4
- include Mongoid::Document
5
- include Mongoid::Timestamps
6
-
7
- field :document_id, type: String
8
- field :version_number, type: Integer, default: 1
9
-
10
- field :title, type: String
11
- field :created_at, type: DateTime, default: lambda { Time.zone.now }
12
- field :slug, type: String
13
-
14
- field :summary, type: String
15
- field :body, type: String
16
- field :opened_date, type: Date
17
- field :closed_date, type: Date
18
- field :case_type, type: String
19
- field :case_state, type: String
20
- field :market_sector, type: String
21
- field :outcome_type, type: String
22
-
23
- field :state, type: String
24
-
25
- embeds_many :attachments, cascade_callbacks: true
26
-
27
- state_machine initial: :draft do
28
- event :publish do
29
- transition draft: :published
30
- end
31
-
32
- event :archive do
33
- transition all => :archived, :unless => :archived?
34
- end
35
- end
36
-
37
- GOVSPEAK_FIELDS = [:body]
38
-
39
- def whole_body
40
- self.body
41
- end
42
-
43
- scope :draft, where(state: "draft")
44
- scope :published, where(state: "published")
45
- scope :archived, where(state: "archived")
46
-
47
- validates :title, presence: true
48
- validates :summary, presence: true
49
- validates :body, presence: true
50
- validates :opened_date, presence: true
51
- validates :market_sector, presence: true
52
- validates :case_type, presence: true
53
- validates :case_state, presence: true
54
- validates :version_number, presence: true
55
- validates :document_id, presence: true
56
- validates_with SafeHtml
57
-
58
- index "document_id"
59
- index "state"
60
-
61
- def series
62
- ::SpecialistDocumentEdition.where(document_id: document_id)
63
- end
64
-
65
- def siblings
66
- series.excludes(id: id)
67
- end
68
-
69
- def previous_siblings
70
- siblings.where(:version_number.lt => version_number)
71
- end
72
-
73
- def subsequent_siblings
74
- siblings.where(:version_number.gt => version_number)
75
- end
76
-
77
- def latest_edition?
78
- subsequent_siblings.empty?
79
- end
80
-
81
- def build_attachment(attributes)
82
- attachments.build(attributes.merge(
83
- filename: attributes.fetch(:file).original_filename
84
- ))
85
- end
86
- end
@@ -1,85 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require "test_helper"
4
- require "fixtures/specialist_document_fixtures"
5
-
6
- class SpecialistDocumentEditionTest < ActiveSupport::TestCase
7
- include SpecialistDocumentFixtures
8
-
9
- setup do
10
- @original_asset_api_client = Attachable.asset_api_client
11
- @success_response = stub("asset manager response", id: "/test-id", file_url: "/test-id/document.pdf")
12
- Attachable.asset_api_client = stub("asset_api_client")
13
- Attachable.asset_api_client.stubs(:create_asset).returns(@success_response)
14
- end
15
-
16
- teardown do
17
- Attachable.asset_api_client = @original_asset_api_client
18
- end
19
-
20
- should "have correct fields" do
21
- edition = SpecialistDocumentEdition.new(basic_specialist_document_fields)
22
-
23
- assert_equal basic_specialist_document_fields[:title], edition.title
24
- end
25
-
26
- should "be persistable" do
27
- edition = SpecialistDocumentEdition.create!(basic_specialist_document_fields)
28
-
29
- found = SpecialistDocumentEdition.where(slug: edition.slug).first
30
- assert_equal found.attributes, edition.attributes
31
- end
32
-
33
- context "building attachments" do
34
- should "build an attachment" do
35
- edition = SpecialistDocumentEdition.new
36
- file = OpenStruct.new(original_filename: "document.pdf")
37
-
38
- edition.build_attachment(title: "baz", file: file)
39
-
40
- attachment = edition.attachments.first
41
- assert_equal "baz", attachment.title
42
- assert_equal "document.pdf", attachment.filename
43
- assert_equal file, attachment.instance_variable_get(:@file_file)
44
- end
45
-
46
- should "persist attachment record when document saved" do
47
- Attachable.asset_api_client.stubs(:create_asset)
48
-
49
- edition = SpecialistDocumentEdition.new(basic_specialist_document_fields)
50
- file = OpenStruct.new(original_filename: "document.pdf")
51
-
52
- edition.build_attachment(title: "baz", file: file)
53
- edition.save!
54
-
55
- found = SpecialistDocumentEdition.where(slug: edition.slug).first
56
-
57
- assert_equal 1, found.attachments.count
58
- assert_equal "baz", found.attachments.first.title
59
- end
60
-
61
- should "transmit attached file to asset manager when document saved" do
62
- edition = SpecialistDocumentEdition.new(basic_specialist_document_fields)
63
- file = OpenStruct.new(original_filename: "document.pdf")
64
-
65
- Attachable.asset_api_client.expects(:create_asset).with(file: file).returns(@success_response)
66
-
67
- edition.build_attachment(title: "baz", file: file)
68
- edition.save!
69
- end
70
-
71
- should "be able to remove an attachment from the list of attachments" do
72
- attributes = basic_specialist_document_fields.merge(
73
- attachments: [Attachment.new(title: "example", filename: "example.pdf")]
74
- )
75
- edition = SpecialistDocumentEdition.create!(attributes)
76
- assert_equal 1, edition.attachments.count
77
-
78
- edition.attachments = []
79
- edition.save!
80
-
81
- edition.reload
82
- assert_equal [], edition.attachments
83
- end
84
- end
85
- end