metadata_presenter 2.3.6 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e32a28102541813aa8d6576cafdaa6fb3b4897daee023f0e52d80b1c98c3266f
|
4
|
+
data.tar.gz: 2001211cd3395cff6b2dc4d4f806f7055267c0a448d4316a5da6998d1ebe5295
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40bbe63a448710146762e167f0abc415e39028d1e279bdf72aa989376abbae4881d56d2cfbcc065805541f6a340a39349a7d5ccb3efd9b6444b803ea5d21ebfc
|
7
|
+
data.tar.gz: 48902563f8e43de68352ce31c47d554493a4add994649c54d1933062a7cec78c7334c20debf05fea827f84dd825bf16bb1c1b34fa033733e877d964c94f3c2a2
|
@@ -3,6 +3,7 @@ module MetadataPresenter
|
|
3
3
|
before_action :check_page_exists
|
4
4
|
|
5
5
|
def create
|
6
|
+
@previous_answers = reload_user_data.deep_dup
|
6
7
|
@page_answers = PageAnswers.new(page, answers_params)
|
7
8
|
|
8
9
|
upload_files if upload?
|
@@ -28,8 +29,9 @@ module MetadataPresenter
|
|
28
29
|
next_page = NextPage.new(
|
29
30
|
service: service,
|
30
31
|
session: session,
|
31
|
-
user_data:
|
32
|
-
current_page_url: page_url
|
32
|
+
user_data: reload_user_data,
|
33
|
+
current_page_url: page_url,
|
34
|
+
previous_answers: @previous_answers
|
33
35
|
).find
|
34
36
|
|
35
37
|
if next_page.present?
|
@@ -5,6 +5,14 @@ module MetadataPresenter
|
|
5
5
|
helper MetadataPresenter::ApplicationHelper
|
6
6
|
default_form_builder GOVUKDesignSystemFormBuilder::FormBuilder
|
7
7
|
|
8
|
+
def reload_user_data
|
9
|
+
if defined? super
|
10
|
+
super
|
11
|
+
else
|
12
|
+
load_user_data
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
8
16
|
def back_link
|
9
17
|
previous_page = PreviousPage.new(
|
10
18
|
service: service,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module MetadataPresenter
|
2
2
|
class NextPage
|
3
3
|
include ActiveModel::Model
|
4
|
-
attr_accessor :service, :session, :user_data, :current_page_url
|
4
|
+
attr_accessor :service, :session, :user_data, :current_page_url, :previous_answers
|
5
5
|
|
6
6
|
def find
|
7
7
|
return check_answers_page if return_to_check_your_answer?
|
@@ -11,17 +11,53 @@ module MetadataPresenter
|
|
11
11
|
else
|
12
12
|
service.find_page_by_uuid(current_page_flow.default_next)
|
13
13
|
end
|
14
|
+
ensure
|
15
|
+
session[:return_to_check_your_answer] = nil
|
14
16
|
end
|
15
17
|
|
16
18
|
private
|
17
19
|
|
18
20
|
def check_answers_page
|
19
|
-
session[:return_to_check_your_answer] = nil
|
20
21
|
service.pages.find { |page| page.type == 'page.checkanswers' }
|
21
22
|
end
|
22
23
|
|
23
24
|
def return_to_check_your_answer?
|
24
|
-
session[:return_to_check_your_answer].present?
|
25
|
+
session[:return_to_check_your_answer].present? &&
|
26
|
+
components_not_used_for_branching_and_answers_unchanged?
|
27
|
+
end
|
28
|
+
|
29
|
+
def components_not_used_for_branching_and_answers_unchanged?
|
30
|
+
components_not_used_for_branching? && answers_unchanged?
|
31
|
+
end
|
32
|
+
|
33
|
+
def components_not_used_for_branching?
|
34
|
+
expressions.none? { |expression| component_ids.include?(expression) }
|
35
|
+
end
|
36
|
+
|
37
|
+
def answers_unchanged?
|
38
|
+
components = current_page_components.select do |component|
|
39
|
+
component.uuid.in?(expressions.map(&:component))
|
40
|
+
end
|
41
|
+
|
42
|
+
components.all? do |component|
|
43
|
+
user_data[component.id] == previous_answers[component.id]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def component_ids
|
48
|
+
current_page_components.map(&:id)
|
49
|
+
end
|
50
|
+
|
51
|
+
def current_page_components
|
52
|
+
current_page.components
|
53
|
+
end
|
54
|
+
|
55
|
+
def expressions
|
56
|
+
collection = service.branches.map do |branch|
|
57
|
+
branch.conditionals.map(&:expressions)
|
58
|
+
end
|
59
|
+
|
60
|
+
collection.flatten
|
25
61
|
end
|
26
62
|
|
27
63
|
def conditionals?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metadata_presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MoJ Forms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: govuk_design_system_formbuilder
|