trusty-festivity-extension 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (261) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +33 -0
  4. data/README.md +2 -0
  5. data/Rakefile +110 -0
  6. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  7. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  8. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  9. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  10. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  11. data/app/assets/images/pct-black.png +0 -0
  12. data/app/assets/images/skins/pghkids/footer.png +0 -0
  13. data/app/assets/images/skins/pghkids/footer_mobile.png +0 -0
  14. data/app/assets/images/skins/pghkids/frog.png +0 -0
  15. data/app/assets/images/skins/pghkids/frog_mobile.png +0 -0
  16. data/app/assets/images/skins/pghkids/header.png +0 -0
  17. data/app/assets/images/skins/pghkids/header_mobile.png +0 -0
  18. data/app/assets/images/skins/pghkids/seafoam.jpg +0 -0
  19. data/app/assets/javascripts/admin/festivity_admin.js +22 -0
  20. data/app/assets/javascripts/admin/pages/ajax_image_uploader.js +29 -0
  21. data/app/assets/javascripts/admin/pages/page_bindings.js +94 -0
  22. data/app/assets/javascripts/admin/pages/performances.js +59 -0
  23. data/app/assets/javascripts/admin/sites/categories.js +74 -0
  24. data/app/assets/javascripts/admin/sites/category_types.js +63 -0
  25. data/app/assets/javascripts/admin/sites/site_bindings.js +4 -0
  26. data/app/assets/javascripts/ajaxupload.js +1 -0
  27. data/app/assets/javascripts/bootstrap-sprockets.js +12 -0
  28. data/app/assets/javascripts/bootstrap.js +2306 -0
  29. data/app/assets/javascripts/bootstrap.min.js +7 -0
  30. data/app/assets/javascripts/bootstrap/affix.js +162 -0
  31. data/app/assets/javascripts/bootstrap/alert.js +94 -0
  32. data/app/assets/javascripts/bootstrap/button.js +116 -0
  33. data/app/assets/javascripts/bootstrap/carousel.js +237 -0
  34. data/app/assets/javascripts/bootstrap/collapse.js +211 -0
  35. data/app/assets/javascripts/bootstrap/dropdown.js +161 -0
  36. data/app/assets/javascripts/bootstrap/modal.js +324 -0
  37. data/app/assets/javascripts/bootstrap/popover.js +113 -0
  38. data/app/assets/javascripts/bootstrap/scrollspy.js +175 -0
  39. data/app/assets/javascripts/bootstrap/tab.js +153 -0
  40. data/app/assets/javascripts/bootstrap/tooltip.js +472 -0
  41. data/app/assets/javascripts/bootstrap/transition.js +59 -0
  42. data/app/assets/javascripts/events/event_list_bindings.js +3 -0
  43. data/app/assets/javascripts/events/filters.js +100 -0
  44. data/app/assets/javascripts/festivity.js +1 -0
  45. data/app/assets/javascripts/festivity_app.js +13 -0
  46. data/app/assets/javascripts/jasny-bootstrap.js +1024 -0
  47. data/app/assets/javascripts/jquery-migrate.js +521 -0
  48. data/app/assets/javascripts/jquery.collapse.js +176 -0
  49. data/app/assets/javascripts/jquery.collapse_cookie_storage.js +37 -0
  50. data/app/assets/javascripts/jquery.collapse_storage.js +56 -0
  51. data/app/assets/javascripts/jquery.inputmask.bundle.min.js +10 -0
  52. data/app/assets/javascripts/lodash.min.js +88 -0
  53. data/app/assets/javascripts/readmore.min.js +11 -0
  54. data/app/assets/javascripts/script.js +22 -0
  55. data/app/assets/javascripts/underscore.js +1545 -0
  56. data/app/assets/stylesheets/_bootstrap-compass.scss +9 -0
  57. data/app/assets/stylesheets/_bootstrap-mincer.scss +19 -0
  58. data/app/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
  59. data/app/assets/stylesheets/_bootstrap.scss +50 -0
  60. data/app/assets/stylesheets/_defaults.scss +6 -0
  61. data/app/assets/stylesheets/_event_filter_bar.scss +78 -0
  62. data/app/assets/stylesheets/_faq.scss +48 -0
  63. data/app/assets/stylesheets/_filter-bar-mobile.scss +32 -0
  64. data/app/assets/stylesheets/_footer.scss +18 -0
  65. data/app/assets/stylesheets/_global.scss +30 -0
  66. data/app/assets/stylesheets/_header.scss +95 -0
  67. data/app/assets/stylesheets/_landing_page.scss +62 -0
  68. data/app/assets/stylesheets/_locations.scss +17 -0
  69. data/app/assets/stylesheets/_media-queries.scss +9 -0
  70. data/app/assets/stylesheets/_mixins.scss +17 -0
  71. data/app/assets/stylesheets/_nav.scss +128 -0
  72. data/app/assets/stylesheets/_normalize.scss +375 -0
  73. data/app/assets/stylesheets/_overrides.scss +11 -0
  74. data/app/assets/stylesheets/_page-template.scss +124 -0
  75. data/app/assets/stylesheets/_related_events.scss +20 -0
  76. data/app/assets/stylesheets/_search-results.scss +20 -0
  77. data/app/assets/stylesheets/_utils.scss +8 -0
  78. data/app/assets/stylesheets/admin/festivity_admin.scss +28 -0
  79. data/app/assets/stylesheets/admin/modules/_category_styles.scss +23 -0
  80. data/app/assets/stylesheets/admin/modules/_form_styles.scss +40 -0
  81. data/app/assets/stylesheets/admin/modules/_list_styles.scss +30 -0
  82. data/app/assets/stylesheets/admin/modules/_variables.scss +3 -0
  83. data/app/assets/stylesheets/bootstrap/_alerts.scss +73 -0
  84. data/app/assets/stylesheets/bootstrap/_badges.scss +67 -0
  85. data/app/assets/stylesheets/bootstrap/_breadcrumbs.scss +26 -0
  86. data/app/assets/stylesheets/bootstrap/_button-groups.scss +243 -0
  87. data/app/assets/stylesheets/bootstrap/_buttons.scss +160 -0
  88. data/app/assets/stylesheets/bootstrap/_carousel.scss +269 -0
  89. data/app/assets/stylesheets/bootstrap/_close.scss +36 -0
  90. data/app/assets/stylesheets/bootstrap/_code.scss +69 -0
  91. data/app/assets/stylesheets/bootstrap/_component-animations.scss +38 -0
  92. data/app/assets/stylesheets/bootstrap/_dropdowns.scss +214 -0
  93. data/app/assets/stylesheets/bootstrap/_forms.scss +570 -0
  94. data/app/assets/stylesheets/bootstrap/_glyphicons.scss +301 -0
  95. data/app/assets/stylesheets/bootstrap/_grid.scss +84 -0
  96. data/app/assets/stylesheets/bootstrap/_input-groups.scss +166 -0
  97. data/app/assets/stylesheets/bootstrap/_jumbotron.scss +50 -0
  98. data/app/assets/stylesheets/bootstrap/_labels.scss +66 -0
  99. data/app/assets/stylesheets/bootstrap/_list-group.scss +124 -0
  100. data/app/assets/stylesheets/bootstrap/_media.scss +61 -0
  101. data/app/assets/stylesheets/bootstrap/_mixins.scss +39 -0
  102. data/app/assets/stylesheets/bootstrap/_modals.scss +148 -0
  103. data/app/assets/stylesheets/bootstrap/_navbar.scss +663 -0
  104. data/app/assets/stylesheets/bootstrap/_navs.scss +244 -0
  105. data/app/assets/stylesheets/bootstrap/_normalize.scss +427 -0
  106. data/app/assets/stylesheets/bootstrap/_pager.scss +54 -0
  107. data/app/assets/stylesheets/bootstrap/_pagination.scss +88 -0
  108. data/app/assets/stylesheets/bootstrap/_panels.scss +265 -0
  109. data/app/assets/stylesheets/bootstrap/_popovers.scss +135 -0
  110. data/app/assets/stylesheets/bootstrap/_print.scss +107 -0
  111. data/app/assets/stylesheets/bootstrap/_progress-bars.scss +87 -0
  112. data/app/assets/stylesheets/bootstrap/_responsive-embed.scss +35 -0
  113. data/app/assets/stylesheets/bootstrap/_responsive-utilities.scss +177 -0
  114. data/app/assets/stylesheets/bootstrap/_scaffolding.scss +150 -0
  115. data/app/assets/stylesheets/bootstrap/_tables.scss +234 -0
  116. data/app/assets/stylesheets/bootstrap/_theme.scss +273 -0
  117. data/app/assets/stylesheets/bootstrap/_thumbnails.scss +38 -0
  118. data/app/assets/stylesheets/bootstrap/_tooltip.scss +103 -0
  119. data/app/assets/stylesheets/bootstrap/_type.scss +298 -0
  120. data/app/assets/stylesheets/bootstrap/_utilities.scss +56 -0
  121. data/app/assets/stylesheets/bootstrap/_variables.scss +862 -0
  122. data/app/assets/stylesheets/bootstrap/_wells.scss +29 -0
  123. data/app/assets/stylesheets/bootstrap/mixins/_alerts.scss +14 -0
  124. data/app/assets/stylesheets/bootstrap/mixins/_background-variant.scss +11 -0
  125. data/app/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  126. data/app/assets/stylesheets/bootstrap/mixins/_buttons.scss +52 -0
  127. data/app/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  128. data/app/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  129. data/app/assets/stylesheets/bootstrap/mixins/_forms.scss +88 -0
  130. data/app/assets/stylesheets/bootstrap/mixins/_gradients.scss +58 -0
  131. data/app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  132. data/app/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  133. data/app/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  134. data/app/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  135. data/app/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  136. data/app/assets/stylesheets/bootstrap/mixins/_list-group.scss +31 -0
  137. data/app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  138. data/app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  139. data/app/assets/stylesheets/bootstrap/mixins/_opacity.scss +8 -0
  140. data/app/assets/stylesheets/bootstrap/mixins/_pagination.scss +23 -0
  141. data/app/assets/stylesheets/bootstrap/mixins/_panels.scss +24 -0
  142. data/app/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
  143. data/app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  144. data/app/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  145. data/app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +21 -0
  146. data/app/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  147. data/app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  148. data/app/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  149. data/app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +11 -0
  150. data/app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  151. data/app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  152. data/app/assets/stylesheets/events/_event-list-item.scss +85 -0
  153. data/app/assets/stylesheets/events/_event_template.scss +66 -0
  154. data/app/assets/stylesheets/events/_filter-bar.scss +5 -0
  155. data/app/assets/stylesheets/festivity.scss +35 -0
  156. data/app/assets/stylesheets/skins/pghkids/_events.scss +17 -0
  157. data/app/assets/stylesheets/skins/pghkids/_footer.scss +22 -0
  158. data/app/assets/stylesheets/skins/pghkids/_global.scss +42 -0
  159. data/app/assets/stylesheets/skins/pghkids/_header.scss +27 -0
  160. data/app/assets/stylesheets/skins/pghkids/_home.scss +113 -0
  161. data/app/assets/stylesheets/skins/pghkids/skin.scss +8 -0
  162. data/app/assets/stylesheets/vars/_vars_color.scss +6 -0
  163. data/app/assets/stylesheets/vars/_vars_media-queries.scss +5 -0
  164. data/app/assets/stylesheets/vars/_vars_type.scss +1 -0
  165. data/app/controllers/admin/festivity_categories_controller.rb +31 -0
  166. data/app/controllers/admin/festivity_category_types_controller.rb +31 -0
  167. data/app/controllers/admin/festivity_performances_controller.rb +21 -0
  168. data/app/controllers/festivity_events_controller.rb +71 -0
  169. data/app/controllers/festivity_location_areas_controller.rb +17 -0
  170. data/app/controllers/festivity_locations_controller.rb +19 -0
  171. data/app/controllers/search_controller.rb +17 -0
  172. data/app/helpers/admin/festivity_performances_helper.rb +3 -0
  173. data/app/helpers/admin/snippets_helper.rb +3 -0
  174. data/app/helpers/festivity_events_helper.rb +12 -0
  175. data/app/helpers/festivity_locations_helper.rb +4 -0
  176. data/app/models/festivity_base_page.rb +23 -0
  177. data/app/models/festivity_category.rb +17 -0
  178. data/app/models/festivity_category_type.rb +14 -0
  179. data/app/models/festivity_event_list.rb +90 -0
  180. data/app/models/festivity_event_list/festivity_event.rb +40 -0
  181. data/app/models/festivity_event_list/festivity_event_performance.rb +10 -0
  182. data/app/models/festivity_event_list/festivity_location.rb +15 -0
  183. data/app/models/festivity_event_page.rb +55 -0
  184. data/app/models/festivity_location_area_page.rb +5 -0
  185. data/app/models/festivity_location_page.rb +3 -0
  186. data/app/models/festivity_market_page.rb +3 -0
  187. data/app/models/festivity_page_category.rb +4 -0
  188. data/app/models/festivity_performance.rb +29 -0
  189. data/app/views/admin/pages/_festivity_base_fields.html.haml +75 -0
  190. data/app/views/admin/pages/_festivity_featured_image_fields.html.haml +3 -0
  191. data/app/views/admin/pages/_festivity_includes.html.haml +2 -0
  192. data/app/views/admin/pages/_festivity_location_fields.html.haml +26 -0
  193. data/app/views/admin/pages/partials/_categories.html.haml +18 -0
  194. data/app/views/admin/pages/partials/_category.html.haml +4 -0
  195. data/app/views/admin/pages/partials/_featured_image.html.haml +18 -0
  196. data/app/views/admin/pages/partials/_performance.html.haml +13 -0
  197. data/app/views/admin/pages/partials/_performances.html.haml +11 -0
  198. data/app/views/admin/pages/partials/_performances_table.html.haml +15 -0
  199. data/app/views/admin/sites/_festivity_site_fields.html.haml +26 -0
  200. data/app/views/admin/sites/partials/_category.html.haml +7 -0
  201. data/app/views/admin/sites/partials/_category_popup.html.haml +19 -0
  202. data/app/views/admin/sites/partials/_category_popups.haml +27 -0
  203. data/app/views/admin/sites/partials/_category_section.html.haml +7 -0
  204. data/app/views/admin/sites/partials/_category_types.html.haml +23 -0
  205. data/app/views/admin/sites/partials/_filters.html.haml +25 -0
  206. data/app/views/admin/sites/partials/_new_category.html.haml +3 -0
  207. data/app/views/admin/sites/partials/_new_category_type.html.haml +3 -0
  208. data/app/views/festivity_events/_event_filters.html.haml +39 -0
  209. data/app/views/festivity_events/_event_list.html.haml +62 -0
  210. data/app/views/festivity_events/_filter_bar_mobile.html.haml +22 -0
  211. data/app/views/festivity_events/index.html.haml +34 -0
  212. data/app/views/festivity_events/show.html.haml +152 -0
  213. data/app/views/festivity_location_areas/show.html.haml +29 -0
  214. data/app/views/festivity_locations/show.html.haml +66 -0
  215. data/app/views/header/_meta_tags.html.haml +8 -0
  216. data/app/views/navigation/_subnav_one_column.html.haml +15 -0
  217. data/app/views/navigation/_subnav_three_column.html.haml +7 -0
  218. data/app/views/navigation/_three_column_item.html.haml +11 -0
  219. data/app/views/search/_page.html.haml +1 -0
  220. data/app/views/search/_pagination_links.html.haml +7 -0
  221. data/app/views/search/_result_item.html.haml +6 -0
  222. data/app/views/search/show.html.haml +19 -0
  223. data/config/initializers/pluralizations.rb +0 -0
  224. data/config/initializers/radiant_config.rb +1 -0
  225. data/config/locales/en.yml +16 -0
  226. data/config/routes.rb +14 -0
  227. data/config/trustygems.yml +2 -0
  228. data/db/content/layouts/base.html +174 -0
  229. data/db/content/layouts/normal.html +5 -0
  230. data/db/fixtures/home_pages.yml +40 -0
  231. data/db/fixtures/layouts.yml +2 -0
  232. data/db/fixtures/pages.yml +23 -0
  233. data/db/fixtures/sites.yml +57 -0
  234. data/db/fixtures/users.yml +8 -0
  235. data/db/migrate/200150325136087799_add_event_performances_view.rb +27 -0
  236. data/db/migrate/200150425136087799_update_event_performances_view_with_site.rb +27 -0
  237. data/db/migrate/20150123175758_add_site_fields.rb +15 -0
  238. data/db/migrate/20150127090858995_add_base_event_fields.rb +24 -0
  239. data/db/migrate/20150127091005232_add_market_and_event_fields.rb +29 -0
  240. data/db/migrate/20150204113325731_add_category_types_table.rb +15 -0
  241. data/db/migrate/20150204113427832_add_categories_table.rb +15 -0
  242. data/db/migrate/20150204113510326_add_page_categories_table.rb +12 -0
  243. data/db/migrate/20150226131727777_add_location_page_fields.rb +19 -0
  244. data/db/migrate/20150302135485569_add_performances_table.rb +19 -0
  245. data/db/migrate/20150324135487799_add_indexes.rb +21 -0
  246. data/festivity_extension.rb +25 -0
  247. data/lib/festivity/admin/assets_helper.rb +17 -0
  248. data/lib/festivity/engine.rb +9 -0
  249. data/lib/festivity/extensions/page_extensions.rb +61 -0
  250. data/lib/festivity/extensions/pages_helper_extensions.rb +11 -0
  251. data/lib/festivity/extensions/paperclipped_extensions.rb +22 -0
  252. data/lib/festivity/extensions/site_extensions.rb +40 -0
  253. data/lib/festivity/mixins/not_found.rb +10 -0
  254. data/lib/tags/header_tags.rb +41 -0
  255. data/lib/tags/navigation_tags.rb +55 -0
  256. data/lib/tasks/active_record_utils.rb +35 -0
  257. data/lib/tasks/festivity_extension_tasks.rake +7 -0
  258. data/lib/tasks/setup.rake +101 -0
  259. data/lib/trusty-festivity-extension.rb +8 -0
  260. data/trusty-festivity-extension.gemspec +37 -0
  261. metadata +442 -0
@@ -0,0 +1,41 @@
1
+ module Tags::HeaderTags
2
+ include TrustyCms::Taggable
3
+
4
+ desc "Meta Tags"
5
+ tag "festivity_meta" do |tag|
6
+ page = Page.find_by_slug_for_site(tag.locals.page.slug).first
7
+ page = Page.current_site.homepage unless page
8
+ description = get_content(page, :description)
9
+ keywords = get_content(page, :keywords)
10
+ domain = "#{request.protocol}#{request.host}"
11
+ request.env["action_controller.instance"].render_to_string :partial => "header/meta_tags",
12
+ :locals => {:domain => domain,
13
+ :description => description,
14
+ :keywords => keywords,
15
+ :page => page,
16
+ :url => request.url}
17
+
18
+ end
19
+
20
+ desc "Omniture Variables"
21
+ tag "omniture_vars" do |tag|
22
+ domain = "#{request.protocol}#{request.host}"
23
+ if tag.locals.page.breadcrumb
24
+ %{<script language="JavaScript" type="text/javascript"><!--
25
+ s.pageName="#{domain}:#{tag.locals.page.breadcrumb}";
26
+ s.channel="#{domain}:#{tag.locals.page.breadcrumb}";
27
+ s.server="#{domain}";
28
+ var s_code=s.t();
29
+ //--></script>}
30
+ end
31
+ end
32
+
33
+ def get_content(page, type)
34
+ if page.field(type) && !page.field(type).content.blank?
35
+ CGI.escapeHTML(page.field(type).content)
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+
@@ -0,0 +1,55 @@
1
+ module Tags::NavigationTags
2
+ include TrustyCms::Taggable
3
+
4
+
5
+ desc %{One Column Subnavigation Tag
6
+
7
+ *Usage:*
8
+ <pre><r:subnav_one_column /></pre>
9
+ }
10
+ tag "subnav_one_column" do |tag|
11
+ request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav_one_column",
12
+ :locals => {:current_page => tag.locals.page,
13
+ :top_level_page => top_level_page(tag.locals.page)}
14
+ end
15
+
16
+ desc %{Two Column Subnavigation Tag
17
+
18
+ *Usage:*
19
+ <pre><r:subnav_two_column /></pre>
20
+ }
21
+ tag "subnav_two_column" do |tag|
22
+ request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav_two_column",
23
+ :locals => {:current_page => tag.locals.page,
24
+ :top_level_page => top_level_page(tag.locals.page)}
25
+ end
26
+
27
+ desc %{Three Column Subnavigation Tag
28
+
29
+ *Usage:*
30
+ <pre><r:subnav_three_column show_detail="true" /></pre>
31
+
32
+ show_detail will display the page abstract and a Read More link.
33
+ }
34
+ tag "subnav_three_column" do |tag|
35
+
36
+ request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav_three_column",
37
+ :locals => {:current_page => tag.locals.page,
38
+ :top_level_page => top_level_page(tag.locals.page),
39
+ :show_detail => show_detail(tag.attr["show_detail"])}
40
+ end
41
+
42
+
43
+ def top_level_page(page)
44
+ page = page.parent while page.parent.slug != '/'
45
+ page
46
+ end
47
+
48
+ def show_detail(show_detail)
49
+ if show_detail
50
+ return show_detail.downcase == "true" ? true : false
51
+ end
52
+ end
53
+
54
+ end
55
+
@@ -0,0 +1,35 @@
1
+ require "active_record"
2
+
3
+ class ActiveRecord::Base
4
+ def self.create_or_update_for_site(options = {}, key = :name)
5
+ options["site"] = Site.find(:first, :conditions => {:name => options["site"]})
6
+ Page.current_site = options["site"]
7
+ create_or_update options, key
8
+ end
9
+
10
+ def self.create_or_update_for_sites(options = {}, key = :name)
11
+ options["sites"] = options["sites"].collect { |site_name| Site.find(:first, :conditions => {:name => site_name}) }
12
+ create_or_update options, key
13
+ end
14
+
15
+ def self.create_or_update(options = {}, key = :id)
16
+ record_from_db = find(:first, :conditions=>{key => options[key.to_s]})
17
+ return record_from_db if record_from_db
18
+ options.delete "overwrite"
19
+ record = record_from_db || new
20
+ record.id = options["id"] if options["id"]
21
+ record.update_attributes!(options)
22
+ record
23
+ end
24
+
25
+ def existing_record?
26
+ (not id.nil?)
27
+ end
28
+
29
+ def create_or_update_with_attributes! attributes
30
+ puts attributes
31
+ #return if ConvoySeedUtil.create_only && existing_record?
32
+ return if existing_record?
33
+ update_attributes!(attributes)
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ namespace :trusty do
2
+ namespace :extensions do
3
+ namespace :festivity do
4
+
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,101 @@
1
+ namespace :festivity do
2
+ namespace :setup do
3
+ require File.dirname(__FILE__) + '/active_record_utils'
4
+
5
+ desc "bootstrap deployment. Creates DB, migrate db, migrate the extensions, and seed"
6
+ task :bootstrap => [:environment, 'db:drop', 'db:create', 'db:migrate', 'seed']
7
+
8
+ desc "seed festivity sites and pages"
9
+ task :seed do
10
+ Page.connection.schema_cache.clear!
11
+ Page.reset_column_information
12
+ sites = sort(load_yaml_for("sites"), "position")
13
+ home_pages = load_yaml_for("home_pages")
14
+ pages = load_yaml_for("pages")
15
+ users = load_yaml_for("users")
16
+
17
+ # create the root page
18
+ master = home_pages["The Pittsburgh Cultural Trust"]
19
+ master[:site_id] = 1
20
+ create_or_update_page(master)
21
+ User.create_or_update_for_site(users["The Pittsburgh Cultural Trust"])
22
+
23
+ sites.each do |t, site|
24
+ home_page = home_pages[site["name"]]
25
+ home_page[:site_id] = site["id"]
26
+ seed_page_for(home_page, master["slug"])
27
+ site['homepage'] = site["name"] == 'default_site' ? Page.find(1) : find_by_slug_hierarchy([home_page["slug"]])
28
+ site['base_domain'] += Rails.configuration.domain
29
+ Site.create_or_update(site)
30
+
31
+ pages.each do |p_t, page|
32
+ seed_page_for(page.clone, home_page["slug"])
33
+ end
34
+
35
+ end
36
+
37
+ TrustyCms::Setup.new.load_default_configuration
38
+
39
+ end
40
+
41
+
42
+ def seed_page_for(page_hash, home_page_slug = nil)
43
+ trusty_page = create_or_update_page(page_hash, home_page_slug)
44
+ part = PagePart.new(:name => 'body')
45
+ trusty_page.parts << part unless trusty_page.parts.find_by_name('body')
46
+ trusty_page.save!
47
+ end
48
+
49
+ def seed_home_page_for(site)
50
+ home_pages = load_yaml_for("home_pages")
51
+ home_pages.each do |t, home_page|
52
+
53
+ end
54
+ end
55
+
56
+ def load_yaml_for(file_name)
57
+ require 'yaml'
58
+ fixtures_dir = "#{File.expand_path(File.dirname(__FILE__)+"../../../db/fixtures")}"
59
+ YAML::load(File.open(File.join(fixtures_dir, file_name+".yml")))
60
+ end
61
+
62
+ def load_content_from(dir, file_name)
63
+ content_dir = "#{File.expand_path(File.dirname(__FILE__)+"../../../db/content")}"
64
+
65
+ file_path = content_dir + "/#{dir}/" + "#{file_name}.html"
66
+ puts "Seed:Log: found layout for #{file_name} in #{dir}"
67
+ File.open(file_path, 'r').read
68
+ end
69
+
70
+ def create_or_update_page(page_hash, home_page_slug = nil)
71
+ if page_hash["parent"]
72
+ parent_path = home_page_slug ? [home_page_slug] : []
73
+ parent_path << page_hash["parent"].split('/')
74
+ page_hash["parent"] = find_by_slug_hierarchy(parent_path.flatten)
75
+ end
76
+
77
+ page = (page_hash["parent"].nil? ? find_by_slug_hierarchy([page_hash["slug"]]) : find_by_slug_hierarchy([page_hash["slug"]], page_hash["parent"])) || Page.new
78
+ page.create_or_update_with_attributes!(page_hash)
79
+ page
80
+ end
81
+
82
+ def sort(hash, on_parameter)
83
+ hash.sort do |first, second|
84
+ first_value = first[1]
85
+ second_value = second[1]
86
+ first_value[on_parameter] <=> second_value[on_parameter]
87
+ end
88
+ end
89
+
90
+ def find_by_slug_hierarchy(slugs, current_page = Page.find_by_slug("/"))
91
+ return current_page if (slugs.nil? || slugs.empty?)
92
+ if (slugs[0] == "/")
93
+ slugs.shift
94
+ find_by_slug_hierarchy(slugs, current_page)
95
+ else
96
+ find_by_slug_hierarchy(slugs, Page.first(:conditions => {:slug => slugs.shift, :parent_id => current_page}))
97
+ end
98
+ end
99
+
100
+ end
101
+ end
@@ -0,0 +1,8 @@
1
+ module TrustyFestivityExtension
2
+ VERSION = "2.0.0"
3
+ SUMMARY = "Festival microsite engine for Trusty CMS"
4
+ DESCRIPTION = "Event management for arts festivals."
5
+ URL = "http://github.com/pgharts/trusty-festivity-extension"
6
+ AUTHORS = ["Eric Sipple"]
7
+ EMAIL = ["sipple@trustarts.org"]
8
+ end
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "trusty-festivity-extension"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "trusty-festivity-extension"
7
+ s.version = TrustyFestivityExtension::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = TrustyFestivityExtension::AUTHORS
10
+ s.email = TrustyFestivityExtension::EMAIL
11
+ s.homepage = TrustyFestivityExtension::URL
12
+ s.summary = TrustyFestivityExtension::SUMMARY
13
+ s.description = TrustyFestivityExtension::DESCRIPTION
14
+
15
+ ignores = if File.exist?('.gitignore')
16
+ File.read('.gitignore').split("\n").inject([]) {|a,p| a + Dir[p] }
17
+ else
18
+ []
19
+ end
20
+ s.files = Dir['**/*'] - ignores
21
+ s.test_files = Dir['test/**/*','spec/**/*','features/**/*'] - ignores
22
+ # s.executables = Dir['bin/*'] - ignores
23
+ s.require_paths = ["lib"]
24
+
25
+ s.add_dependency "trusty-cms" , "~> 2.0"
26
+ s.add_dependency "trusty-clipped-extension" , "~> 2.0"
27
+ s.add_dependency "trusty-snippets-extension" , "~> 2.0"
28
+ s.add_dependency "trusty-reorder-extension" , "~> 2.0"
29
+ s.add_dependency "trusty-layouts-extension" , "~> 2.0"
30
+ s.add_dependency "trusty-rad-social-extension" , "~> 2.0"
31
+ s.add_dependency "trusty-multi-site-extension" , "~> 2.0"
32
+ s.add_dependency 'dalli-elasticache' ,'~> 0.1.2'
33
+
34
+ s.add_dependency 'trusty_google_custom_search'
35
+ s.add_dependency 'fog' , "~> 1.26"
36
+
37
+ end
metadata ADDED
@@ -0,0 +1,442 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trusty-festivity-extension
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Eric Sipple
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: trusty-cms
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: trusty-clipped-extension
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: trusty-snippets-extension
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: trusty-reorder-extension
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '2.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: trusty-layouts-extension
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '2.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: trusty-rad-social-extension
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '2.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: trusty-multi-site-extension
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: dalli-elasticache
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 0.1.2
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: 0.1.2
125
+ - !ruby/object:Gem::Dependency
126
+ name: trusty_google_custom_search
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: fog
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: '1.26'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ~>
151
+ - !ruby/object:Gem::Version
152
+ version: '1.26'
153
+ description: Event management for arts festivals.
154
+ email:
155
+ - sipple@trustarts.org
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - Gemfile
161
+ - Gemfile.lock
162
+ - README.md
163
+ - Rakefile
164
+ - app/assets/fonts/bootstrap/glyphicons-halflings-regular.eot
165
+ - app/assets/fonts/bootstrap/glyphicons-halflings-regular.svg
166
+ - app/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf
167
+ - app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff
168
+ - app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2
169
+ - app/assets/images/pct-black.png
170
+ - app/assets/images/skins/pghkids/footer.png
171
+ - app/assets/images/skins/pghkids/footer_mobile.png
172
+ - app/assets/images/skins/pghkids/frog.png
173
+ - app/assets/images/skins/pghkids/frog_mobile.png
174
+ - app/assets/images/skins/pghkids/header.png
175
+ - app/assets/images/skins/pghkids/header_mobile.png
176
+ - app/assets/images/skins/pghkids/seafoam.jpg
177
+ - app/assets/javascripts/admin/festivity_admin.js
178
+ - app/assets/javascripts/admin/pages/ajax_image_uploader.js
179
+ - app/assets/javascripts/admin/pages/page_bindings.js
180
+ - app/assets/javascripts/admin/pages/performances.js
181
+ - app/assets/javascripts/admin/sites/categories.js
182
+ - app/assets/javascripts/admin/sites/category_types.js
183
+ - app/assets/javascripts/admin/sites/site_bindings.js
184
+ - app/assets/javascripts/ajaxupload.js
185
+ - app/assets/javascripts/bootstrap-sprockets.js
186
+ - app/assets/javascripts/bootstrap.js
187
+ - app/assets/javascripts/bootstrap.min.js
188
+ - app/assets/javascripts/bootstrap/affix.js
189
+ - app/assets/javascripts/bootstrap/alert.js
190
+ - app/assets/javascripts/bootstrap/button.js
191
+ - app/assets/javascripts/bootstrap/carousel.js
192
+ - app/assets/javascripts/bootstrap/collapse.js
193
+ - app/assets/javascripts/bootstrap/dropdown.js
194
+ - app/assets/javascripts/bootstrap/modal.js
195
+ - app/assets/javascripts/bootstrap/popover.js
196
+ - app/assets/javascripts/bootstrap/scrollspy.js
197
+ - app/assets/javascripts/bootstrap/tab.js
198
+ - app/assets/javascripts/bootstrap/tooltip.js
199
+ - app/assets/javascripts/bootstrap/transition.js
200
+ - app/assets/javascripts/events/event_list_bindings.js
201
+ - app/assets/javascripts/events/filters.js
202
+ - app/assets/javascripts/festivity.js
203
+ - app/assets/javascripts/festivity_app.js
204
+ - app/assets/javascripts/jasny-bootstrap.js
205
+ - app/assets/javascripts/jquery-migrate.js
206
+ - app/assets/javascripts/jquery.collapse.js
207
+ - app/assets/javascripts/jquery.collapse_cookie_storage.js
208
+ - app/assets/javascripts/jquery.collapse_storage.js
209
+ - app/assets/javascripts/jquery.inputmask.bundle.min.js
210
+ - app/assets/javascripts/lodash.min.js
211
+ - app/assets/javascripts/readmore.min.js
212
+ - app/assets/javascripts/script.js
213
+ - app/assets/javascripts/underscore.js
214
+ - app/assets/stylesheets/_bootstrap-compass.scss
215
+ - app/assets/stylesheets/_bootstrap-mincer.scss
216
+ - app/assets/stylesheets/_bootstrap-sprockets.scss
217
+ - app/assets/stylesheets/_bootstrap.scss
218
+ - app/assets/stylesheets/_defaults.scss
219
+ - app/assets/stylesheets/_event_filter_bar.scss
220
+ - app/assets/stylesheets/_faq.scss
221
+ - app/assets/stylesheets/_filter-bar-mobile.scss
222
+ - app/assets/stylesheets/_footer.scss
223
+ - app/assets/stylesheets/_global.scss
224
+ - app/assets/stylesheets/_header.scss
225
+ - app/assets/stylesheets/_landing_page.scss
226
+ - app/assets/stylesheets/_locations.scss
227
+ - app/assets/stylesheets/_media-queries.scss
228
+ - app/assets/stylesheets/_mixins.scss
229
+ - app/assets/stylesheets/_nav.scss
230
+ - app/assets/stylesheets/_normalize.scss
231
+ - app/assets/stylesheets/_overrides.scss
232
+ - app/assets/stylesheets/_page-template.scss
233
+ - app/assets/stylesheets/_related_events.scss
234
+ - app/assets/stylesheets/_search-results.scss
235
+ - app/assets/stylesheets/_utils.scss
236
+ - app/assets/stylesheets/admin/festivity_admin.scss
237
+ - app/assets/stylesheets/admin/modules/_category_styles.scss
238
+ - app/assets/stylesheets/admin/modules/_form_styles.scss
239
+ - app/assets/stylesheets/admin/modules/_list_styles.scss
240
+ - app/assets/stylesheets/admin/modules/_variables.scss
241
+ - app/assets/stylesheets/bootstrap/_alerts.scss
242
+ - app/assets/stylesheets/bootstrap/_badges.scss
243
+ - app/assets/stylesheets/bootstrap/_breadcrumbs.scss
244
+ - app/assets/stylesheets/bootstrap/_button-groups.scss
245
+ - app/assets/stylesheets/bootstrap/_buttons.scss
246
+ - app/assets/stylesheets/bootstrap/_carousel.scss
247
+ - app/assets/stylesheets/bootstrap/_close.scss
248
+ - app/assets/stylesheets/bootstrap/_code.scss
249
+ - app/assets/stylesheets/bootstrap/_component-animations.scss
250
+ - app/assets/stylesheets/bootstrap/_dropdowns.scss
251
+ - app/assets/stylesheets/bootstrap/_forms.scss
252
+ - app/assets/stylesheets/bootstrap/_glyphicons.scss
253
+ - app/assets/stylesheets/bootstrap/_grid.scss
254
+ - app/assets/stylesheets/bootstrap/_input-groups.scss
255
+ - app/assets/stylesheets/bootstrap/_jumbotron.scss
256
+ - app/assets/stylesheets/bootstrap/_labels.scss
257
+ - app/assets/stylesheets/bootstrap/_list-group.scss
258
+ - app/assets/stylesheets/bootstrap/_media.scss
259
+ - app/assets/stylesheets/bootstrap/_mixins.scss
260
+ - app/assets/stylesheets/bootstrap/_modals.scss
261
+ - app/assets/stylesheets/bootstrap/_navbar.scss
262
+ - app/assets/stylesheets/bootstrap/_navs.scss
263
+ - app/assets/stylesheets/bootstrap/_normalize.scss
264
+ - app/assets/stylesheets/bootstrap/_pager.scss
265
+ - app/assets/stylesheets/bootstrap/_pagination.scss
266
+ - app/assets/stylesheets/bootstrap/_panels.scss
267
+ - app/assets/stylesheets/bootstrap/_popovers.scss
268
+ - app/assets/stylesheets/bootstrap/_print.scss
269
+ - app/assets/stylesheets/bootstrap/_progress-bars.scss
270
+ - app/assets/stylesheets/bootstrap/_responsive-embed.scss
271
+ - app/assets/stylesheets/bootstrap/_responsive-utilities.scss
272
+ - app/assets/stylesheets/bootstrap/_scaffolding.scss
273
+ - app/assets/stylesheets/bootstrap/_tables.scss
274
+ - app/assets/stylesheets/bootstrap/_theme.scss
275
+ - app/assets/stylesheets/bootstrap/_thumbnails.scss
276
+ - app/assets/stylesheets/bootstrap/_tooltip.scss
277
+ - app/assets/stylesheets/bootstrap/_type.scss
278
+ - app/assets/stylesheets/bootstrap/_utilities.scss
279
+ - app/assets/stylesheets/bootstrap/_variables.scss
280
+ - app/assets/stylesheets/bootstrap/_wells.scss
281
+ - app/assets/stylesheets/bootstrap/mixins/_alerts.scss
282
+ - app/assets/stylesheets/bootstrap/mixins/_background-variant.scss
283
+ - app/assets/stylesheets/bootstrap/mixins/_border-radius.scss
284
+ - app/assets/stylesheets/bootstrap/mixins/_buttons.scss
285
+ - app/assets/stylesheets/bootstrap/mixins/_center-block.scss
286
+ - app/assets/stylesheets/bootstrap/mixins/_clearfix.scss
287
+ - app/assets/stylesheets/bootstrap/mixins/_forms.scss
288
+ - app/assets/stylesheets/bootstrap/mixins/_gradients.scss
289
+ - app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss
290
+ - app/assets/stylesheets/bootstrap/mixins/_grid.scss
291
+ - app/assets/stylesheets/bootstrap/mixins/_hide-text.scss
292
+ - app/assets/stylesheets/bootstrap/mixins/_image.scss
293
+ - app/assets/stylesheets/bootstrap/mixins/_labels.scss
294
+ - app/assets/stylesheets/bootstrap/mixins/_list-group.scss
295
+ - app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss
296
+ - app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss
297
+ - app/assets/stylesheets/bootstrap/mixins/_opacity.scss
298
+ - app/assets/stylesheets/bootstrap/mixins/_pagination.scss
299
+ - app/assets/stylesheets/bootstrap/mixins/_panels.scss
300
+ - app/assets/stylesheets/bootstrap/mixins/_progress-bar.scss
301
+ - app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss
302
+ - app/assets/stylesheets/bootstrap/mixins/_resize.scss
303
+ - app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss
304
+ - app/assets/stylesheets/bootstrap/mixins/_size.scss
305
+ - app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss
306
+ - app/assets/stylesheets/bootstrap/mixins/_table-row.scss
307
+ - app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss
308
+ - app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss
309
+ - app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss
310
+ - app/assets/stylesheets/events/_event-list-item.scss
311
+ - app/assets/stylesheets/events/_event_template.scss
312
+ - app/assets/stylesheets/events/_filter-bar.scss
313
+ - app/assets/stylesheets/festivity.scss
314
+ - app/assets/stylesheets/skins/pghkids/_events.scss
315
+ - app/assets/stylesheets/skins/pghkids/_footer.scss
316
+ - app/assets/stylesheets/skins/pghkids/_global.scss
317
+ - app/assets/stylesheets/skins/pghkids/_header.scss
318
+ - app/assets/stylesheets/skins/pghkids/_home.scss
319
+ - app/assets/stylesheets/skins/pghkids/skin.scss
320
+ - app/assets/stylesheets/vars/_vars_color.scss
321
+ - app/assets/stylesheets/vars/_vars_media-queries.scss
322
+ - app/assets/stylesheets/vars/_vars_type.scss
323
+ - app/controllers/admin/festivity_categories_controller.rb
324
+ - app/controllers/admin/festivity_category_types_controller.rb
325
+ - app/controllers/admin/festivity_performances_controller.rb
326
+ - app/controllers/festivity_events_controller.rb
327
+ - app/controllers/festivity_location_areas_controller.rb
328
+ - app/controllers/festivity_locations_controller.rb
329
+ - app/controllers/search_controller.rb
330
+ - app/helpers/admin/festivity_performances_helper.rb
331
+ - app/helpers/admin/snippets_helper.rb
332
+ - app/helpers/festivity_events_helper.rb
333
+ - app/helpers/festivity_locations_helper.rb
334
+ - app/models/festivity_base_page.rb
335
+ - app/models/festivity_category.rb
336
+ - app/models/festivity_category_type.rb
337
+ - app/models/festivity_event_list.rb
338
+ - app/models/festivity_event_list/festivity_event.rb
339
+ - app/models/festivity_event_list/festivity_event_performance.rb
340
+ - app/models/festivity_event_list/festivity_location.rb
341
+ - app/models/festivity_event_page.rb
342
+ - app/models/festivity_location_area_page.rb
343
+ - app/models/festivity_location_page.rb
344
+ - app/models/festivity_market_page.rb
345
+ - app/models/festivity_page_category.rb
346
+ - app/models/festivity_performance.rb
347
+ - app/views/admin/pages/_festivity_base_fields.html.haml
348
+ - app/views/admin/pages/_festivity_featured_image_fields.html.haml
349
+ - app/views/admin/pages/_festivity_includes.html.haml
350
+ - app/views/admin/pages/_festivity_location_fields.html.haml
351
+ - app/views/admin/pages/partials/_categories.html.haml
352
+ - app/views/admin/pages/partials/_category.html.haml
353
+ - app/views/admin/pages/partials/_featured_image.html.haml
354
+ - app/views/admin/pages/partials/_performance.html.haml
355
+ - app/views/admin/pages/partials/_performances.html.haml
356
+ - app/views/admin/pages/partials/_performances_table.html.haml
357
+ - app/views/admin/sites/_festivity_site_fields.html.haml
358
+ - app/views/admin/sites/partials/_category.html.haml
359
+ - app/views/admin/sites/partials/_category_popup.html.haml
360
+ - app/views/admin/sites/partials/_category_popups.haml
361
+ - app/views/admin/sites/partials/_category_section.html.haml
362
+ - app/views/admin/sites/partials/_category_types.html.haml
363
+ - app/views/admin/sites/partials/_filters.html.haml
364
+ - app/views/admin/sites/partials/_new_category.html.haml
365
+ - app/views/admin/sites/partials/_new_category_type.html.haml
366
+ - app/views/festivity_events/_event_filters.html.haml
367
+ - app/views/festivity_events/_event_list.html.haml
368
+ - app/views/festivity_events/_filter_bar_mobile.html.haml
369
+ - app/views/festivity_events/index.html.haml
370
+ - app/views/festivity_events/show.html.haml
371
+ - app/views/festivity_location_areas/show.html.haml
372
+ - app/views/festivity_locations/show.html.haml
373
+ - app/views/header/_meta_tags.html.haml
374
+ - app/views/navigation/_subnav_one_column.html.haml
375
+ - app/views/navigation/_subnav_three_column.html.haml
376
+ - app/views/navigation/_three_column_item.html.haml
377
+ - app/views/search/_page.html.haml
378
+ - app/views/search/_pagination_links.html.haml
379
+ - app/views/search/_result_item.html.haml
380
+ - app/views/search/show.html.haml
381
+ - config/initializers/pluralizations.rb
382
+ - config/initializers/radiant_config.rb
383
+ - config/locales/en.yml
384
+ - config/routes.rb
385
+ - config/trustygems.yml
386
+ - db/content/layouts/base.html
387
+ - db/content/layouts/normal.html
388
+ - db/fixtures/home_pages.yml
389
+ - db/fixtures/layouts.yml
390
+ - db/fixtures/pages.yml
391
+ - db/fixtures/sites.yml
392
+ - db/fixtures/users.yml
393
+ - db/migrate/200150325136087799_add_event_performances_view.rb
394
+ - db/migrate/200150425136087799_update_event_performances_view_with_site.rb
395
+ - db/migrate/20150123175758_add_site_fields.rb
396
+ - db/migrate/20150127090858995_add_base_event_fields.rb
397
+ - db/migrate/20150127091005232_add_market_and_event_fields.rb
398
+ - db/migrate/20150204113325731_add_category_types_table.rb
399
+ - db/migrate/20150204113427832_add_categories_table.rb
400
+ - db/migrate/20150204113510326_add_page_categories_table.rb
401
+ - db/migrate/20150226131727777_add_location_page_fields.rb
402
+ - db/migrate/20150302135485569_add_performances_table.rb
403
+ - db/migrate/20150324135487799_add_indexes.rb
404
+ - festivity_extension.rb
405
+ - lib/festivity/admin/assets_helper.rb
406
+ - lib/festivity/engine.rb
407
+ - lib/festivity/extensions/page_extensions.rb
408
+ - lib/festivity/extensions/pages_helper_extensions.rb
409
+ - lib/festivity/extensions/paperclipped_extensions.rb
410
+ - lib/festivity/extensions/site_extensions.rb
411
+ - lib/festivity/mixins/not_found.rb
412
+ - lib/tags/header_tags.rb
413
+ - lib/tags/navigation_tags.rb
414
+ - lib/tasks/active_record_utils.rb
415
+ - lib/tasks/festivity_extension_tasks.rake
416
+ - lib/tasks/setup.rake
417
+ - lib/trusty-festivity-extension.rb
418
+ - trusty-festivity-extension.gemspec
419
+ homepage: http://github.com/pgharts/trusty-festivity-extension
420
+ licenses: []
421
+ metadata: {}
422
+ post_install_message:
423
+ rdoc_options: []
424
+ require_paths:
425
+ - lib
426
+ required_ruby_version: !ruby/object:Gem::Requirement
427
+ requirements:
428
+ - - ! '>='
429
+ - !ruby/object:Gem::Version
430
+ version: '0'
431
+ required_rubygems_version: !ruby/object:Gem::Requirement
432
+ requirements:
433
+ - - ! '>='
434
+ - !ruby/object:Gem::Version
435
+ version: '0'
436
+ requirements: []
437
+ rubyforge_project:
438
+ rubygems_version: 2.4.5
439
+ signing_key:
440
+ specification_version: 4
441
+ summary: Festival microsite engine for Trusty CMS
442
+ test_files: []