Class: Pulitzer::Partial
Class Method Summary
collapse
Instance Method Summary
collapse
assoc_name, attrs_name, convert_hash_to_nested
Class Method Details
.convert_nested_assoc(json_hash) ⇒ Object
31
32
33
34
35
36
|
# File 'app/models/pulitzer/partial.rb', line 31
def self.convert_nested_assoc(json_hash)
json_hash[attrs_name].map!{|p_attrs|
new_attrs = Pulitzer::ContentElement.convert_hash_to_nested p_attrs
}
json_hash
end
|
.export_config ⇒ Object
22
23
24
25
26
27
28
29
|
# File 'app/models/pulitzer/partial.rb', line 22
def self.export_config
{
except: [:id, :free_form_section_id],
include: {
content_elements: Pulitzer::ContentElement.export_config
}
}
end
|
Instance Method Details
#available_arrangements ⇒ Object
72
73
74
|
# File 'app/models/pulitzer/partial.rb', line 72
def available_arrangements
post_type_version.arrangement_styles
end
|
#available_backgrounds ⇒ Object
60
61
62
|
# File 'app/models/pulitzer/partial.rb', line 60
def available_backgrounds
post_type_version.background_styles
end
|
#available_justifications ⇒ Object
64
65
66
|
# File 'app/models/pulitzer/partial.rb', line 64
def available_justifications
post_type_version.justification_styles
end
|
#available_sequence_flows ⇒ Object
68
69
70
|
# File 'app/models/pulitzer/partial.rb', line 68
def available_sequence_flows
post_type_version.sequence_flow_styles
end
|
#background_css_class ⇒ Object
42
43
44
|
# File 'app/models/pulitzer/partial.rb', line 42
def background_css_class
background_style&.css_class_name
end
|
#clone_me ⇒ Object
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'app/models/pulitzer/partial.rb', line 96
def clone_me
clone_attrs = self.attributes.dup
clone_attrs.delete 'id'
clone_attrs.delete 'free_form_section_id'
my_clone = Pulitzer::Partial.create!(clone_attrs)
content_elements.each do |ce|
cloned_content_element = ce.clone_me
my_clone.content_elements << cloned_content_element
end
my_clone
end
|
#content_element(label) ⇒ Object
38
39
40
|
# File 'app/models/pulitzer/partial.rb', line 38
def content_element(label)
self.content_elements.to_a.detect{|ce| ce.label == label}
end
|
#folder_path ⇒ Object
76
77
78
|
# File 'app/models/pulitzer/partial.rb', line 76
def folder_path
name.downcase.gsub(/ /,'_').gsub(/\W/,'')
end
|
#full_view_path ⇒ Object
92
93
94
|
# File 'app/models/pulitzer/partial.rb', line 92
def full_view_path
File.join Pulitzer.partial_folder, folder_path, version_folder, template_path
end
|
#handle_sort_order ⇒ Object
54
55
56
57
58
|
# File 'app/models/pulitzer/partial.rb', line 54
def handle_sort_order
if new_record? && sort_order.nil?
self.sort_order = free_form_section.partials.maximum(:sort_order).to_i + 1
end
end
|
#justification_css_class ⇒ Object
46
47
48
|
# File 'app/models/pulitzer/partial.rb', line 46
def justification_css_class
justification_style&.css_class_name
end
|
#sequence_flow_css_class ⇒ Object
50
51
52
|
# File 'app/models/pulitzer/partial.rb', line 50
def sequence_flow_css_class
sequence_flow_style&.css_class_name
end
|
#template_path ⇒ Object
84
85
86
87
88
89
90
|
# File 'app/models/pulitzer/partial.rb', line 84
def template_path
if arrangement_style.present?
arrangement_style.view_file_name
else
'default'
end
end
|
#upgradable? ⇒ Boolean
109
110
111
|
# File 'app/models/pulitzer/partial.rb', line 109
def upgradable?
version_number < (post_type_version&.post_type&.post_type_versions&.published&.maximum(:version_number) || 0)
end
|
#version_folder ⇒ Object
80
81
82
|
# File 'app/models/pulitzer/partial.rb', line 80
def version_folder
"v_#{version_number}"
end
|