govuk_content_models 11.2.0 → 11.3.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
+ ## 11.3.0
2
+
3
+ * When an artefact is saved, no longer attempt to update attributes on the
4
+ edition model - with the exception of the slug field, which will only be
5
+ updated when the artefact is in draft state.
6
+
1
7
  ## 11.2.0
2
8
 
3
9
  * Added manual and manual-section formats with custom slug validation.
@@ -278,12 +278,13 @@ class Artefact
278
278
  end
279
279
 
280
280
  def update_editions
281
- if state != 'archived'
281
+ case state
282
+ when 'draft'
282
283
  Edition.where(:state.nin => ["archived"],
283
284
  panopticon_id: self.id).each do |edition|
284
- edition.update_from_artefact(self)
285
+ edition.update_slug_from_artefact(self)
285
286
  end
286
- else
287
+ when 'archived'
287
288
  archive_editions
288
289
  end
289
290
  end
@@ -239,12 +239,8 @@ class Edition
239
239
  notify_siblings_of_published_edition
240
240
  end
241
241
 
242
- def update_from_artefact(artefact)
243
- self.title = artefact.name unless published?
242
+ def update_slug_from_artefact(artefact)
244
243
  self.slug = artefact.slug
245
- self.section = artefact.section
246
- self.department = artefact.department
247
- self.business_proposition = artefact.business_proposition
248
244
  self.save!
249
245
  end
250
246
 
@@ -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.2.0"
3
+ VERSION = "11.3.0"
4
4
  end
@@ -306,29 +306,36 @@ class ArtefactTest < ActiveSupport::TestCase
306
306
  end
307
307
  end
308
308
 
309
- test "on save update metadata with associated publication" do
310
- FactoryGirl.create(:tag, tag_id: "test-section", title: "Test section", tag_type: "section")
311
- artefact = FactoryGirl.create(:artefact,
312
- slug: "foo-bar",
313
- kind: "answer",
314
- name: "Foo bar",
315
- primary_section: "test-section",
316
- sections: ["test-section"],
317
- department: "Test dept",
318
- owning_app: "publisher",
319
- )
309
+ should "update the edition's slug when a draft artefact is saved" do
310
+ artefact = FactoryGirl.create(:draft_artefact)
311
+ edition = FactoryGirl.create(:answer_edition, panopticon_id: artefact.id)
320
312
 
321
- user1 = FactoryGirl.create(:user)
322
- edition = AnswerEdition.find_or_create_from_panopticon_data(artefact.id, user1, {})
313
+ artefact.slug = "something-something-draft"
314
+ artefact.save!
323
315
 
324
- assert_equal artefact.name, edition.title
325
- assert_equal artefact.section, edition.section
316
+ edition.reload
317
+ assert_equal artefact.slug, edition.slug
318
+ end
326
319
 
327
- artefact.name = "Babar"
328
- artefact.save
320
+ should "not update the edition's slug when a live artefact is saved" do
321
+ artefact = FactoryGirl.create(:live_artefact, slug: "something-something-live")
322
+ edition = FactoryGirl.create(:answer_edition, panopticon_id: artefact.id, slug: "something-else")
323
+
324
+ artefact.save!
329
325
 
330
326
  edition.reload
331
- assert_equal artefact.name, edition.title
327
+ assert_equal "something-else", edition.slug
328
+ end
329
+
330
+ should "not update the edition's slug when an archived artefact is saved" do
331
+ artefact = FactoryGirl.create(:live_artefact, slug: "something-something-live")
332
+ edition = FactoryGirl.create(:answer_edition, panopticon_id: artefact.id, slug: "something-else")
333
+
334
+ artefact.state = 'archived'
335
+ artefact.save!
336
+
337
+ edition.reload
338
+ assert_equal "something-else", edition.slug
332
339
  end
333
340
 
334
341
  test "should not let you edit the slug if the artefact is live" do
@@ -375,33 +375,6 @@ class EditionTest < ActiveSupport::TestCase
375
375
  assert_equal artefact.department, publication.department
376
376
  end
377
377
 
378
- # TODO: come back and remove this one.
379
- test "should not change edition name if published" do
380
- FactoryGirl.create(:tag, tag_id: "test-section", title: "Test section", tag_type: "section")
381
- artefact = FactoryGirl.create(:artefact,
382
- slug: "foo-bar",
383
- kind: "answer",
384
- name: "Foo bar",
385
- department: "Test dept",
386
- owning_app: "publisher",
387
- )
388
-
389
- guide = FactoryGirl.create(:guide_edition,
390
- panopticon_id: artefact.id,
391
- title: "Original title",
392
- slug: "original-title"
393
- )
394
- guide.state = "ready"
395
- guide.save!
396
- User.create(name: "Winston").publish(guide, comment: "testing")
397
- artefact.name = "New title"
398
- artefact.primary_section = "test-section"
399
- artefact.save
400
-
401
- assert_equal "Original title", guide.reload.title
402
- assert_equal "Test section", guide.reload.section
403
- end
404
-
405
378
  test "should not change edition metadata if archived" do
406
379
  FactoryGirl.create(:tag, tag_id: "test-section", title: "Test section", tag_type: "section")
407
380
  artefact = FactoryGirl.create(:artefact,
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.2.0
4
+ version: 11.3.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-03 00:00:00.000000000 Z
12
+ date: 2014-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bson_ext
@@ -463,7 +463,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
463
463
  version: '0'
464
464
  segments:
465
465
  - 0
466
- hash: 1863412532211958025
466
+ hash: 3691821515300644876
467
467
  required_rubygems_version: !ruby/object:Gem::Requirement
468
468
  none: false
469
469
  requirements:
@@ -472,7 +472,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
472
472
  version: '0'
473
473
  segments:
474
474
  - 0
475
- hash: 1863412532211958025
475
+ hash: 3691821515300644876
476
476
  requirements: []
477
477
  rubyforge_project:
478
478
  rubygems_version: 1.8.23