pwb 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +40 -25
  3. data/app/assets/fonts/fonts/FontAwesome.otf +0 -0
  4. data/app/assets/fonts/fonts/fontawesome-webfont.eot +0 -0
  5. data/app/assets/fonts/fonts/fontawesome-webfont.svg +2668 -637
  6. data/app/assets/fonts/fonts/fontawesome-webfont.ttf +0 -0
  7. data/app/assets/fonts/fonts/fontawesome-webfont.woff +0 -0
  8. data/app/assets/fonts/fonts/fontawesome-webfont.woff2 +0 -0
  9. data/app/assets/javascripts/pwb/shared/page-content.js +24 -0
  10. data/app/assets/javascripts/pwb/shared/squares-container.js +58 -0
  11. data/app/assets/javascripts/pwb/shared/vue-main.js +1 -1
  12. data/app/assets/javascripts/pwb/shared/vue-squares.js.erb +74 -0
  13. data/app/assets/javascripts/pwb/squares/tabable-section.js +47 -0
  14. data/app/assets/javascripts/pwb/themes/squares.js.erb +45 -0
  15. data/app/assets/javascripts/pwb/themes/vic.js.erb +152 -0
  16. data/app/assets/javascripts/pwb_admin_panel/application_legacy_1.js +5 -0
  17. data/app/assets/stylesheets/pwb/themes/berlin.scss +4 -0
  18. data/app/assets/stylesheets/pwb/themes/berlin/main.scss +1 -1
  19. data/app/assets/stylesheets/pwb/themes/default.scss +1 -0
  20. data/app/assets/stylesheets/pwb/themes/default/carousel.scss +2 -1
  21. data/app/assets/stylesheets/pwb/themes/default/landing_content_areas.scss +13 -13
  22. data/app/assets/stylesheets/pwb/themes/default/shame.scss +0 -16
  23. data/app/assets/stylesheets/pwb/themes/matt.scss +18 -0
  24. data/app/assets/stylesheets/pwb/themes/shared/liquid_templates.scss +37 -0
  25. data/app/assets/stylesheets/pwb/themes/shared/shame.scss +7 -0
  26. data/app/assets/stylesheets/pwb/themes/squares.scss +22 -0
  27. data/app/assets/stylesheets/pwb/themes/squares/vue-material-docs.scss +200 -0
  28. data/app/assets/stylesheets/pwb/themes/squares/vue-material-vars.scss +141 -0
  29. data/app/assets/stylesheets/pwb/themes/vic.scss +104 -0
  30. data/app/assets/stylesheets/pwb/themes/vic/general.scss +15 -0
  31. data/app/assets/stylesheets/pwb/themes/vic/landing.scss +189 -0
  32. data/app/assets/stylesheets/pwb/themes/vic/slider.scss +127 -0
  33. data/app/assets/stylesheets/pwb_admin_panel/application_legacy_1.scss +6 -0
  34. data/app/controllers/pwb/admin_panel_controller.rb +7 -1
  35. data/app/controllers/pwb/api/v1/clients_controller.rb +35 -0
  36. data/app/controllers/pwb/api/v1/contacts_controller.rb +41 -0
  37. data/app/controllers/pwb/api/v1/links_controller.rb +47 -0
  38. data/app/controllers/pwb/api/v1/page_controller.rb +117 -0
  39. data/app/controllers/pwb/api/v1/page_fragments_controller.rb +74 -0
  40. data/app/controllers/pwb/api/v1/properties_controller.rb +30 -9
  41. data/app/controllers/pwb/api/v1/sections_controller.rb +27 -26
  42. data/app/controllers/pwb/api/v1/website_controller.rb +11 -11
  43. data/app/controllers/pwb/application_controller.rb +22 -11
  44. data/app/controllers/pwb/{sections_controller.rb → contact_us_controller.rb} +24 -45
  45. data/app/controllers/pwb/css_controller.rb +5 -2
  46. data/app/controllers/pwb/pages_controller.rb +36 -0
  47. data/app/controllers/pwb/search_controller.rb +33 -11
  48. data/app/controllers/pwb/squares_controller.rb +48 -0
  49. data/app/controllers/pwb/welcome_controller.rb +30 -5
  50. data/app/helpers/pwb/application_helper.rb +50 -49
  51. data/app/helpers/pwb/css_helper.rb +14 -0
  52. data/app/helpers/pwb/navigation_helper.rb +82 -0
  53. data/app/models/pwb/contact.rb +25 -0
  54. data/app/models/pwb/content.rb +26 -8
  55. data/app/models/pwb/content_photo.rb +18 -0
  56. data/app/models/pwb/link.rb +41 -0
  57. data/app/models/pwb/message.rb +1 -1
  58. data/app/models/pwb/page.rb +227 -0
  59. data/app/models/pwb/page_content.rb +33 -0
  60. data/app/models/pwb/page_part.rb +17 -0
  61. data/app/models/pwb/preset_style.rb +37 -0
  62. data/app/models/pwb/prop.rb +4 -0
  63. data/app/models/pwb/website.rb +64 -9
  64. data/app/resources/pwb/api/v1/{section_resource.rb → client_resource.rb} +3 -4
  65. data/app/resources/pwb/api/v1/property_resource.rb +23 -4
  66. data/app/resources/pwb/api/v1/web_content_resource.rb +1 -1
  67. data/app/resources/pwb/api_public/v1/prop_resource.rb +9 -2
  68. data/{db/cms_fixtures/cms/layouts/about-us/content.html → app/themes/airbnb/views/layouts/pwb/_generic_modal.html.erb} +0 -0
  69. data/{db/cms_fixtures/cms/layouts/about-us/javascript.js → app/themes/airbnb/views/layouts/pwb/_login_modal.html.erb} +0 -0
  70. data/app/themes/airbnb/views/layouts/pwb/application.html.erb +82 -0
  71. data/app/themes/airbnb/views/pwb/_footer.html.erb +25 -0
  72. data/app/themes/airbnb/views/pwb/props/_images_section_carousel.html.erb +43 -0
  73. data/app/themes/airbnb/views/pwb/props/show.html.erb +69 -0
  74. data/app/themes/airbnb/views/pwb/search/_search_form_for_rent.html.erb +183 -0
  75. data/app/themes/airbnb/views/pwb/search/_search_results.html.erb +34 -0
  76. data/app/themes/airbnb/views/pwb/search/buy.html.erb +65 -0
  77. data/app/themes/airbnb/views/pwb/search/rent.html.erb +87 -0
  78. data/app/themes/airbnb/views/pwb/sections/_contact_us_form.html.erb +49 -0
  79. data/app/themes/airbnb/views/pwb/sections/contact_us.html.erb +56 -0
  80. data/app/themes/airbnb/views/pwb/welcome/_content_area_cols.html.erb +12 -0
  81. data/app/themes/airbnb/views/pwb/welcome/_single_property_row.html.erb +51 -0
  82. data/app/themes/airbnb/views/pwb/welcome/index.html.erb +66 -0
  83. data/app/themes/berlin/views/pwb/_footer.html.erb +15 -20
  84. data/app/themes/berlin/views/pwb/_header.html.erb +7 -9
  85. data/app/themes/berlin/views/pwb/pages/show.html.erb +50 -0
  86. data/app/themes/berlin/views/pwb/search/buy.html.erb +1 -1
  87. data/app/themes/berlin/views/pwb/search/rent.html.erb +1 -2
  88. data/app/themes/berlin/views/pwb/sections/contact_us.html.erb +1 -1
  89. data/app/themes/berlin/views/pwb/welcome/index.html.erb +51 -7
  90. data/app/themes/config.json +14 -0
  91. data/app/themes/default/views/pwb/{sections/cms.html.erb → pages/show.html.erb} +9 -8
  92. data/app/themes/default/views/pwb/search/buy.html.erb +1 -1
  93. data/app/themes/default/views/pwb/search/rent.html.erb +1 -1
  94. data/app/themes/default/views/pwb/sections/about_us.html.erb +8 -7
  95. data/app/themes/default/views/pwb/sections/contact_us.html.erb +40 -30
  96. data/app/themes/default/views/pwb/sections/static.html.erb +3 -20
  97. data/app/themes/default/views/pwb/welcome/_single_property_row.html.erb +1 -1
  98. data/app/themes/default/views/pwb/welcome/index.html.erb +7 -38
  99. data/app/themes/matt/views/layouts/pwb/application.html.erb +45 -0
  100. data/app/themes/matt/views/pwb/_footer.html.erb +60 -0
  101. data/app/themes/matt/views/pwb/_header.html.erb +105 -0
  102. data/app/themes/matt/views/pwb/search/buy.html.erb +65 -0
  103. data/app/themes/matt/views/pwb/welcome/index.html.erb +132 -0
  104. data/app/themes/vic/views/layouts/pwb/application.html.erb +94 -0
  105. data/app/themes/vic/views/pwb/_header.html.erb +100 -0
  106. data/app/themes/vic/views/pwb/props/_images_section_carousel.html.erb +43 -0
  107. data/app/themes/vic/views/pwb/props/show.html.erb +69 -0
  108. data/app/themes/vic/views/pwb/search/buy.html.erb +65 -0
  109. data/app/themes/vic/views/pwb/search/rent.html.erb +65 -0
  110. data/app/themes/vic/views/pwb/sections/_contact_us_form.html.erb +49 -0
  111. data/app/themes/vic/views/pwb/sections/contact_us.html.erb +56 -0
  112. data/app/themes/vic/views/pwb/welcome/_content_area_cols.html.erb +12 -0
  113. data/app/themes/vic/views/pwb/welcome/_single_property_row.html.erb +51 -0
  114. data/app/themes/vic/views/pwb/welcome/index.html.erb +27 -0
  115. data/app/views/devise/shared/_links.html.erb +1 -1
  116. data/app/views/layouts/pwb/admin_panel_error.html.erb +19 -0
  117. data/app/views/layouts/pwb/admin_panel_legacy_1.html.erb +21 -0
  118. data/app/views/layouts/pwb/squares.html.erb +72 -0
  119. data/app/views/pwb/_footer.html.erb +2 -6
  120. data/app/views/pwb/_header.html.erb +23 -25
  121. data/app/views/pwb/admin_panel/show_legacy_1.html.erb +3 -0
  122. data/app/views/pwb/custom_css/_berlin.css.erb +0 -67
  123. data/app/views/pwb/custom_css/_default.css.erb +0 -22
  124. data/app/views/pwb/custom_css/_shared.css.erb +4 -3
  125. data/app/views/pwb/custom_css/_vic.css.erb +10 -0
  126. data/app/views/pwb/props/_images_section_carousel.html.erb +1 -1
  127. data/app/views/pwb/search/_search_result_item.html.erb +1 -1
  128. data/app/views/pwb/squares/show_client.html.erb +26 -0
  129. data/app/views/pwb/squares/show_prop.html.erb +26 -0
  130. data/app/views/pwb/squares/vue.html.erb +1 -0
  131. data/config/client_setups/default.json +28 -27
  132. data/config/initializers/i18n_globalise.rb +4 -0
  133. data/config/locales/admin.en.yml +38 -7
  134. data/config/locales/admin.es.yml +60 -6
  135. data/config/locales/admin.pt.yml +474 -0
  136. data/config/locales/admin.ru.yml +49 -6
  137. data/config/locales/devise.it.yml +137 -0
  138. data/config/locales/en.yml +7 -7
  139. data/config/locales/it.yml +160 -0
  140. data/config/locales/pt.yml +2 -0
  141. data/config/locales/rails.it.yml +213 -0
  142. data/config/locales/tr.yml +36 -36
  143. data/config/locales/vi.yml +5 -5
  144. data/config/preset_styles/green_amber.json +23 -0
  145. data/config/preset_styles/purple_teal.json +23 -0
  146. data/config/preset_styles/red_light.json +18 -0
  147. data/config/routes.rb +35 -23
  148. data/db/example_images/carousel_villa_with_pool.jpg +0 -0
  149. data/db/example_images/flat_luxury_dining_area.jpg +0 -0
  150. data/db/example_images/flat_luxury_living_area.jpg +0 -0
  151. data/db/migrate/20161120103546_create_pwb_props.rb +3 -3
  152. data/db/migrate/20161122174847_create_pwb_sections.rb +9 -8
  153. data/db/migrate/20161128221919_create_pwb_clients.rb +1 -0
  154. data/db/migrate/20170315195413_add_extra_cols_to_pwb_sections.rb +7 -6
  155. data/db/migrate/20170716075456_create_pwb_pages.rb +23 -0
  156. data/db/migrate/20170716110121_translate_pages.rb +17 -0
  157. data/db/migrate/20170720183443_create_pwb_links.rb +29 -0
  158. data/db/migrate/20170720201601_translate_links.rb +13 -0
  159. data/db/migrate/20170915094326_create_pwb_page_contents.rb +17 -0
  160. data/db/migrate/20170917215533_add_page_part_key_to_pwb_contents.rb +7 -0
  161. data/db/migrate/20170919134945_add_block_key_to_pwb_content_photos.rb +5 -0
  162. data/db/migrate/20170923195321_create_pwb_contacts.rb +33 -0
  163. data/db/migrate/20171011212930_create_pwb_page_parts.rb +30 -0
  164. data/db/seeds/translations_es.rb +1 -87
  165. data/db/seeds/translations_it.rb +92 -0
  166. data/db/yml_seeds/agency_address.yml +8 -8
  167. data/db/yml_seeds/contacts.yml +13 -0
  168. data/db/yml_seeds/content_translations/en.yml +73 -0
  169. data/db/yml_seeds/content_translations/es.yml +74 -0
  170. data/db/yml_seeds/content_translations/it.yml +73 -0
  171. data/db/yml_seeds/content_translations/pt.yml +73 -0
  172. data/db/yml_seeds/{content/footer.yml → footer.yml} +0 -0
  173. data/db/yml_seeds/links.yml +389 -0
  174. data/db/yml_seeds/page_parts/ABOUT_PAGE_PARTS.md +5 -0
  175. data/db/yml_seeds/page_parts/about-us__content_html.yml +24 -0
  176. data/db/yml_seeds/page_parts/about-us__our_agency.yml +51 -0
  177. data/db/yml_seeds/page_parts/contact-us__content_html.yml +24 -0
  178. data/db/yml_seeds/page_parts/contact-us__form_and_map.yml +17 -0
  179. data/db/yml_seeds/page_parts/home__about_us_services.yml +85 -0
  180. data/db/yml_seeds/page_parts/home__content_html.yml +24 -0
  181. data/db/yml_seeds/page_parts/home__landing_hero.yml +51 -0
  182. data/db/yml_seeds/page_parts/legal__content_html.yml +24 -0
  183. data/db/yml_seeds/page_parts/privacy__content_html.yml +24 -0
  184. data/db/yml_seeds/page_parts/sell__content_html.yml +24 -0
  185. data/db/yml_seeds/pages/about.yml +11 -0
  186. data/db/yml_seeds/pages/buy.yml +23 -0
  187. data/db/yml_seeds/pages/contact.yml +12 -0
  188. data/db/yml_seeds/pages/home.yml +15 -0
  189. data/db/yml_seeds/pages/legal_notice.yml +11 -0
  190. data/db/yml_seeds/pages/privacy_policy.yml +11 -0
  191. data/db/yml_seeds/pages/rent.yml +15 -0
  192. data/db/yml_seeds/pages/sell.yml +13 -0
  193. data/db/yml_seeds/prop/flat_for_rent.yml +11 -11
  194. data/db/yml_seeds/prop/flat_for_rent_2.yml +57 -0
  195. data/db/yml_seeds/prop/flat_for_sale.yml +11 -12
  196. data/db/yml_seeds/prop/flat_for_sale_2.yml +56 -0
  197. data/db/yml_seeds/prop/villa_for_rent.yml +14 -14
  198. data/db/yml_seeds/prop/villa_for_sale.yml +15 -15
  199. data/db/yml_seeds/prop_spain/flat_for_rent.yml +58 -0
  200. data/db/yml_seeds/prop_spain/flat_for_sale.yml +58 -0
  201. data/db/yml_seeds/prop_spain/villa_for_rent.yml +58 -0
  202. data/db/yml_seeds/prop_spain/villa_for_sale.yml +59 -0
  203. data/db/yml_seeds/sections.yml +119 -119
  204. data/db/yml_seeds/{content → to_delete}/about_us.yml +0 -0
  205. data/db/yml_seeds/{content → to_delete}/carousel.yml +0 -0
  206. data/db/yml_seeds/{content → to_delete}/content_columns.yml +0 -0
  207. data/db/yml_seeds/to_delete/footer.yml +15 -0
  208. data/db/yml_seeds/{content → to_delete}/sell.yml +0 -0
  209. data/db/yml_seeds/{content → to_delete}/static.yml +0 -0
  210. data/db/yml_seeds/website.yml +2 -1
  211. data/lib/pwb/engine.rb +16 -2
  212. data/lib/pwb/pages_seeder.rb +190 -0
  213. data/lib/pwb/seeder.rb +56 -14
  214. data/lib/pwb/version.rb +1 -1
  215. data/lib/tasks/pwb_tasks.rake +19 -2
  216. data/spec/controllers/pwb/api/v1/propeties_controller_spec.rb +2 -2
  217. data/spec/controllers/pwb/welcome_controller_spec.rb +18 -5
  218. data/spec/dummy/config/initializers/assets.rb +9 -0
  219. data/spec/dummy/config/routes.rb +2 -0
  220. data/spec/dummy/config/secrets.yml +3 -0
  221. data/spec/dummy/db/migrate/20171201161323_create_property_web_scraper_import_hosts.property_web_scraper.rb +22 -0
  222. data/spec/dummy/db/migrate/20171201161324_create_property_web_scraper_listings.property_web_scraper.rb +84 -0
  223. data/spec/dummy/db/schema.rb +475 -398
  224. data/spec/factories/pwb_contacts.rb +5 -0
  225. data/spec/factories/pwb_contents.rb +3 -0
  226. data/spec/factories/pwb_links.rb +5 -0
  227. data/spec/factories/pwb_page_contents.rb +5 -0
  228. data/spec/factories/pwb_page_parts.rb +8 -0
  229. data/spec/factories/pwb_pages.rb +29 -0
  230. data/spec/factories/pwb_prop_photos.rb +11 -2
  231. data/spec/fixtures/mls/properties_interealty.json +1 -496
  232. data/spec/fixtures/params/bulk_create.json +3 -3
  233. data/spec/libraries/pwb/pages_seeder_spec.rb +56 -0
  234. data/spec/libraries/pwb/seeder_spec.rb +14 -10
  235. data/spec/models/pwb/contact_spec.rb +7 -0
  236. data/spec/models/pwb/link_spec.rb +7 -0
  237. data/spec/models/pwb/page_content_spec.rb +7 -0
  238. data/spec/models/pwb/page_part_spec.rb +7 -0
  239. data/spec/models/pwb/page_spec.rb +28 -0
  240. data/spec/models/pwb/website_spec.rb +10 -0
  241. data/spec/rails_helper.rb +1 -1
  242. data/spec/requests/pwb/themes_spec.rb +15 -10
  243. data/spec/views/pwb/application_layout.html.erb_spec.rb +28 -21
  244. data/spec/views/pwb/contact_us.html.erb_spec.rb +11 -0
  245. data/spec/views/pwb/welcome.html.erb_spec.rb +13 -9
  246. metadata +230 -244
  247. data/app/controllers/pwb/api/v1/cms_pages_controller.rb +0 -102
  248. data/app/controllers/pwb/comfy_controller.rb +0 -106
  249. data/app/models/pwb/cms_page_container.rb +0 -9
  250. data/app/models/pwb/section.rb +0 -35
  251. data/app/models/pwb/welcome.rb +0 -4
  252. data/app/resources/pwb/api/v1/cms_block_resource.rb +0 -11
  253. data/app/resources/pwb/api/v1/cms_page_resource.rb +0 -27
  254. data/app/themes/berlin/views/pwb/sections/about_us.html.erb +0 -59
  255. data/app/themes/berlin/views/pwb/sections/cms.html.erb +0 -34
  256. data/app/themes/berlin/views/pwb/sections/static.html.erb +0 -58
  257. data/app/views/pwb/search/_search_result_item_to_del.html.erb +0 -56
  258. data/config/cms_page_containers/about-us.json +0 -18
  259. data/config/cms_page_containers/about.json +0 -107
  260. data/config/cms_page_containers/landing.json +0 -19
  261. data/config/cms_page_containers/legal.json +0 -17
  262. data/config/cms_page_containers/sell.json +0 -96
  263. data/config/initializers/comfortable_mexican_sofa.rb +0 -142
  264. data/config/initializers/i18n.rb +0 -1
  265. data/db/cms_fixtures/cms/categories/pages.yml +0 -3
  266. data/db/cms_fixtures/cms/files/_rerenting-landing_framed.png.yml +0 -6
  267. data/db/cms_fixtures/cms/files/rerenting-landing_framed.png +0 -0
  268. data/db/cms_fixtures/cms/layouts/about-us/attributes.yml +0 -4
  269. data/db/cms_fixtures/cms/layouts/about-us/people/attributes.yml +0 -4
  270. data/db/cms_fixtures/cms/layouts/about-us/people/content.html +0 -55
  271. data/db/cms_fixtures/cms/layouts/about-us/services/attributes.yml +0 -4
  272. data/db/cms_fixtures/cms/layouts/about-us/services/content.html +0 -32
  273. data/db/cms_fixtures/cms/layouts/about-us/services/javascript.js +0 -0
  274. data/db/cms_fixtures/cms/layouts/about-us/services/stylesheet.css +0 -0
  275. data/db/cms_fixtures/cms/layouts/about-us/stylesheet.css +0 -0
  276. data/db/cms_fixtures/cms/layouts/default-layout/attributes.yml +0 -4
  277. data/db/cms_fixtures/cms/layouts/default-layout/content.html +0 -51
  278. data/db/cms_fixtures/cms/layouts/default-layout/javascript.js +0 -0
  279. data/db/cms_fixtures/cms/layouts/default-layout/stylesheet.css +0 -0
  280. data/db/cms_fixtures/cms/pages/index/about-us/attributes.yml +0 -8
  281. data/db/cms_fixtures/cms/pages/index/about-us/people/attributes.yml +0 -8
  282. data/db/cms_fixtures/cms/pages/index/about-us/people/de/attributes.yml +0 -8
  283. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_a.html +0 -1
  284. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_b.html +0 -1
  285. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_c.html +0 -1
  286. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_d.html +0 -1
  287. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_a.html +0 -1
  288. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_b.html +0 -1
  289. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_c.html +0 -1
  290. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_d.html +0 -1
  291. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_a.html +0 -1
  292. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_b.html +0 -1
  293. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_c.html +0 -1
  294. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_d.html +0 -1
  295. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_a.html +0 -1
  296. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_b.html +0 -1
  297. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_c.html +0 -1
  298. data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_d.html +0 -1
  299. data/db/cms_fixtures/cms/pages/index/about-us/people/en/attributes.yml +0 -8
  300. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_a.html +0 -1
  301. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_b.html +0 -1
  302. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_c.html +0 -1
  303. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_d.html +0 -1
  304. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_a.html +0 -1
  305. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_b.html +0 -1
  306. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_c.html +0 -1
  307. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_d.html +0 -1
  308. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_a.html +0 -1
  309. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_b.html +0 -1
  310. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_c.html +0 -1
  311. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_d.html +0 -1
  312. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_a.html +0 -1
  313. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_b.html +0 -1
  314. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_c.html +0 -1
  315. data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_d.html +0 -1
  316. data/db/cms_fixtures/cms/pages/index/about-us/people/es/attributes.yml +0 -8
  317. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_a.html +0 -1
  318. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_b.html +0 -1
  319. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_c.html +0 -1
  320. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_d.html +0 -1
  321. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_a.html +0 -1
  322. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_b.html +0 -1
  323. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_c.html +0 -1
  324. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_d.html +0 -1
  325. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_a.html +0 -1
  326. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_b.html +0 -1
  327. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_c.html +0 -1
  328. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_d.html +0 -1
  329. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_a.html +0 -1
  330. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_b.html +0 -1
  331. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_c.html +0 -1
  332. data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_d.html +0 -1
  333. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/attributes.yml +0 -8
  334. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_a.html +0 -1
  335. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_b.html +0 -1
  336. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_c.html +0 -1
  337. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_d.html +0 -1
  338. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_a.html +0 -1
  339. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_b.html +0 -1
  340. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_c.html +0 -1
  341. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_d.html +0 -1
  342. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_a.html +0 -1
  343. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_b.html +0 -1
  344. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_c.html +0 -1
  345. data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_d.html +0 -1
  346. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/attributes.yml +0 -8
  347. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_a.html +0 -1
  348. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_b.html +0 -1
  349. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_c.html +0 -1
  350. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_d.html +0 -1
  351. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_a.html +0 -1
  352. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_b.html +0 -1
  353. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_c.html +0 -1
  354. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_d.html +0 -1
  355. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_a.html +0 -1
  356. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_b.html +0 -1
  357. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_c.html +0 -1
  358. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_d.html +0 -1
  359. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_a.html +0 -1
  360. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_b.html +0 -1
  361. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_c.html +0 -1
  362. data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_d.html +0 -1
  363. data/db/cms_fixtures/cms/pages/index/about-us/services/attributes.yml +0 -8
  364. data/db/cms_fixtures/cms/pages/index/about-us/services/content_a.html +0 -1
  365. data/db/cms_fixtures/cms/pages/index/about-us/services/content_b.html +0 -0
  366. data/db/cms_fixtures/cms/pages/index/about-us/services/content_c.html +0 -0
  367. data/db/cms_fixtures/cms/pages/index/about-us/services/de/attributes.yml +0 -8
  368. data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_a.html +0 -1
  369. data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_b.html +0 -1
  370. data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_c.html +0 -1
  371. data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_a.html +0 -1
  372. data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_b.html +0 -1
  373. data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_c.html +0 -1
  374. data/db/cms_fixtures/cms/pages/index/about-us/services/en/attributes.yml +0 -8
  375. data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_a.html +0 -1
  376. data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_b.html +0 -1
  377. data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_c.html +0 -1
  378. data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_a.html +0 -1
  379. data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_b.html +0 -1
  380. data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_c.html +0 -1
  381. data/db/cms_fixtures/cms/pages/index/about-us/services/es/attributes.yml +0 -8
  382. data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_a.html +0 -1
  383. data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_b.html +0 -1
  384. data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_c.html +0 -1
  385. data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_a.html +0 -1
  386. data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_b.html +0 -1
  387. data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_c.html +0 -1
  388. data/db/cms_fixtures/cms/pages/index/about-us/services/title_a.html +0 -1
  389. data/db/cms_fixtures/cms/pages/index/about-us/services/title_b.html +0 -0
  390. data/db/cms_fixtures/cms/pages/index/about-us/services/title_c.html +0 -0
  391. data/db/cms_fixtures/cms/pages/index/attributes.yml +0 -8
  392. data/db/cms_fixtures/cms/pages/index/content.html +0 -1
  393. data/db/cms_fixtures/cms/pages/index/title.html +0 -0
  394. data/db/cms_fixtures/cms/snippets/snippet1/attributes.yml +0 -3
  395. data/db/cms_fixtures/cms/snippets/snippet1/content.html +0 -1
  396. data/db/cms_fixtures/sample-site/categories/files.yml +0 -1
  397. data/db/cms_fixtures/sample-site/categories/pages.yml +0 -1
  398. data/db/cms_fixtures/sample-site/categories/snippets.yml +0 -1
  399. data/db/cms_fixtures/sample-site/files/_sample.jpg.yml +0 -5
  400. data/db/cms_fixtures/sample-site/files/sample.jpg +0 -0
  401. data/db/cms_fixtures/sample-site/layouts/default/attributes.yml +0 -1
  402. data/db/cms_fixtures/sample-site/layouts/default/content.html +0 -5
  403. data/db/cms_fixtures/sample-site/layouts/default/javascript.js +0 -1
  404. data/db/cms_fixtures/sample-site/layouts/default/nested/attributes.yml +0 -2
  405. data/db/cms_fixtures/sample-site/layouts/default/nested/content.haml +0 -3
  406. data/db/cms_fixtures/sample-site/layouts/default/nested/javascript.js +0 -1
  407. data/db/cms_fixtures/sample-site/layouts/default/nested/stylesheet.css +0 -1
  408. data/db/cms_fixtures/sample-site/layouts/default/stylesheet.css +0 -1
  409. data/db/cms_fixtures/sample-site/pages/index/attributes.yml +0 -6
  410. data/db/cms_fixtures/sample-site/pages/index/child/attributes.yml +0 -3
  411. data/db/cms_fixtures/sample-site/pages/index/child/left.haml +0 -1
  412. data/db/cms_fixtures/sample-site/pages/index/child/right.html +0 -1
  413. data/db/cms_fixtures/sample-site/pages/index/child/thumbnail.png +0 -0
  414. data/db/cms_fixtures/sample-site/pages/index/content.html +0 -2
  415. data/db/cms_fixtures/sample-site/snippets/default/attributes.yml +0 -4
  416. data/db/cms_fixtures/sample-site/snippets/default/content.html +0 -1
  417. data/db/migrate/20170315212222_translate_sections.rb +0 -15
  418. data/db/migrate/20170513221300_create_cms.rb +0 -133
  419. data/lib/pwb/cms_data_loader.rb +0 -38
  420. data/spec/dummy/log/development.log +0 -0
  421. data/spec/dummy/log/test.log +0 -0
  422. data/spec/dummy/public/uploads/pwb/content_photo/image/1/carousel_windows.jpg +0 -0
  423. data/spec/dummy/public/uploads/pwb/content_photo/image/2/carousel_deck_chair.jpg +0 -0
  424. data/spec/dummy/public/uploads/pwb/content_photo/image/3/carousel_grass.jpg +0 -0
  425. data/spec/dummy/public/uploads/pwb/content_photo/image/4/carousel_grass.jpg +0 -0
  426. data/spec/dummy/public/uploads/pwb/prop_photo/image/1/flat_balcony.jpg +0 -0
  427. data/spec/dummy/public/uploads/pwb/prop_photo/image/1/gdaje3atcct1gx2ngv9u.jpg +0 -0
  428. data/spec/dummy/public/uploads/pwb/prop_photo/image/1/new_villa.jpg +0 -0
  429. data/spec/dummy/public/uploads/pwb/prop_photo/image/2/flat_balcony.jpg +0 -0
  430. data/spec/dummy/public/uploads/pwb/prop_photo/image/2/kitchen_modern.jpg +0 -0
  431. data/spec/dummy/public/uploads/pwb/prop_photo/image/2/rxo23syongfydjpoizrd.jpg +0 -0
  432. data/spec/dummy/public/uploads/pwb/prop_photo/image/3/mansion_front.jpg +0 -0
  433. data/spec/dummy/public/uploads/pwb/prop_photo/image/3/vzlptgtccsk2d2ewp4id.jpg +0 -0
  434. data/spec/dummy/public/uploads/pwb/prop_photo/image/4/mansion_bedroom.jpg +0 -0
  435. data/spec/dummy/public/uploads/pwb/prop_photo/image/4/xwayprwnmmmhrzrgwvch.jpg +0 -0
  436. data/spec/dummy/public/uploads/pwb/prop_photo/image/5/flat_window.jpg +0 -0
  437. data/spec/dummy/public/uploads/pwb/prop_photo/image/5/ilxn2u37bak0v60u6f8q.jpg +0 -0
  438. data/spec/dummy/public/uploads/pwb/prop_photo/image/6/kitchen_classic.jpg +0 -0
  439. data/spec/dummy/public/uploads/pwb/prop_photo/image/7/flat_balcony.jpg +0 -0
  440. data/spec/dummy/public/uploads/pwb/prop_photo/image/8/lounge_cosy.jpg +0 -0
  441. data/spec/factories/pwb_sections.rb +0 -4
  442. data/spec/models/pwb/section_spec.rb +0 -11
@@ -0,0 +1,59 @@
1
+ ---
2
+ - reference: re-s1
3
+ year_construction: 0
4
+ count_bedrooms: 2
5
+ count_bathrooms: 2
6
+ count_toilets: 1
7
+ count_garages: 1
8
+ flags: 0
9
+ furnished:
10
+ sold:
11
+ reserved:
12
+ highlighted: false
13
+ archived: false
14
+ visible: true
15
+ for_rent_short_term: false
16
+ for_rent_long_term: false
17
+ for_sale: true
18
+ hide_map: false
19
+ obscure_map: false
20
+ portals_enabled: false
21
+ deleted_at:
22
+ active_from:
23
+ available_to_rent_from:
24
+ available_to_rent_till:
25
+ price_sale_current_cents: 30000000
26
+ price_rental_monthly_current_cents: 0
27
+ commission_cents: 0
28
+ commission_currency: EUR
29
+ service_charge_yearly_cents: 0
30
+ service_charge_yearly_currency: EUR
31
+ currency:
32
+ prop_origin_key: ''
33
+ prop_state_key: ''
34
+ prop_type_key: ''
35
+ street_number: '23'
36
+ street_name: Calle Sup
37
+ street_address: Calle Sup
38
+ postal_code: '29590'
39
+ province:
40
+ city: Málaga
41
+ region: Andalucía
42
+ country: Spain
43
+ latitude: 36.73234
44
+ longitude: -4.52615000000003
45
+ plot_area: 550.0
46
+ constructed_area: 190.0
47
+ energy_rating:
48
+ energy_performance:
49
+ title_en: Example villa for sale.
50
+ title_es: Ejemplo de villa para vender.
51
+ description_en: Description of the amazing villa for sale.
52
+ description_es: Descripción de una villa estupenda para vender.
53
+ photo_files:
54
+ - db/example_images/new_villa.jpg
55
+ - db/example_images/kitchen_modern.jpg
56
+ # photo_urls:
57
+ # - https://inmo-a.s3.amazonaws.com/property/83/image_20bc779090.jpg
58
+ # - https://inmo-a.s3.amazonaws.com/property/90/image_20ba3b5ef9.jpg
59
+
@@ -1,121 +1,121 @@
1
- ---
2
- - link_key: home
3
- link_path: home_path
4
- sort_order: 1
5
- visible: true
6
- is_page: false
7
- show_in_top_nav: true
8
- show_in_footer: false
9
- link_title_en: Home
10
- link_title_es: Inicio
11
- link_title_fr: Accueil
12
- link_title_de: Zuhause
13
- page_title_en: Home
14
- page_title_es: Inicio
15
- page_title_fr: Accueil
16
- page_title_de: Zuhause
17
- - link_key: buy
18
- link_path: buy_path
19
- sort_order: 2
20
- visible: true
21
- is_page: false
22
- show_in_top_nav: true
23
- show_in_footer: false
24
- link_title_en: Buy
25
- link_title_es: Comprar
26
- link_title_fr: Acheter
27
- link_title_de: Kaufen
28
- page_title_en: Buy
29
- page_title_es: Comprar
30
- page_title_fr: Acheter
31
- page_title_de: Kaufen
32
- - link_key: rent
33
- link_path: rent_path
34
- sort_order: 3
35
- visible: true
36
- is_page: false
37
- show_in_top_nav: true
38
- show_in_footer: false
39
- link_title_en: Rent
40
- link_title_es: Arrendar
41
- link_title_fr: Louer
42
- link_title_de: Miete
43
- page_title_en: Rent
44
- page_title_es: Arrendar
45
- page_title_fr: Louer
46
- page_title_de: Miete
47
- # - link_key: sell
48
- # link_path: sell
49
- # sort_order: 4
50
- # visible: false
51
- # is_page: true
1
+ # ---
2
+ # - link_key: home
3
+ # link_path: home_path
4
+ # sort_order: 1
5
+ # visible: true
6
+ # is_page: false
7
+ # show_in_top_nav: true
8
+ # show_in_footer: false
9
+ # link_title_en: Home
10
+ # link_title_es: Inicio
11
+ # link_title_fr: Accueil
12
+ # link_title_de: Zuhause
13
+ # page_title_en: Home
14
+ # page_title_es: Inicio
15
+ # page_title_fr: Accueil
16
+ # page_title_de: Zuhause
17
+ # - link_key: buy
18
+ # link_path: buy_path
19
+ # sort_order: 2
20
+ # visible: true
21
+ # is_page: false
52
22
  # show_in_top_nav: true
53
23
  # show_in_footer: false
54
- # link_title_en: Sell
55
- # link_title_es: Vender
56
- # link_title_fr: Vendre
57
- # link_title_de: Verkaufen
58
- # page_title_en: Sell
59
- # page_title_es: Vender
60
- # page_title_fr: Vendre
61
- # page_title_de: Verkaufen
62
- - link_key: aboutUs
63
- link_path: about_us_path
64
- sort_order: 5
65
- visible: true
66
- is_page: false
67
- show_in_top_nav: true
68
- show_in_footer: false
69
- link_title_en: About Us
70
- link_title_es: Sobre Nosotros
71
- link_title_fr: A propos
72
- link_title_de: Über uns
73
- page_title_en: About Us
74
- page_title_es: Sobre Nosotros
75
- page_title_fr: A propos
76
- page_title_de: Über uns
77
- - link_key: contactUs
78
- link_path: contact_us_path
79
- sort_order: 6
80
- visible: true
81
- is_page: false
82
- show_in_top_nav: true
83
- show_in_footer: false
84
- link_title_en: Contact Us
85
- link_title_es: Contactar
86
- link_title_fr: Contacter
87
- link_title_de: Kontact
88
- page_title_en: Contact Us
89
- page_title_es: Contactar
90
- page_title_fr: Contacter
91
- page_title_de: Kontact
92
- - link_key: legalAdvice
93
- link_path: legal
94
- sort_order: 7
95
- visible: true
96
- is_page: true
97
- show_in_top_nav: false
98
- show_in_footer: true
99
- link_title_en: Contact Us
100
- link_title_es: Contactar
101
- link_title_fr: Contacter
102
- link_title_de: Kontact
103
- page_title_en: Contact Us
104
- page_title_es: Contactar
105
- page_title_fr: Contacter
106
- page_title_de: Kontact
107
- - link_key: privacyPolicy
108
- link_path: privacy
109
- sort_order: 8
110
- visible: true
111
- is_page: true
112
- show_in_top_nav: false
113
- show_in_footer: true
114
- link_title_en: Contact Us
115
- link_title_es: Contactar
116
- link_title_fr: Contacter
117
- link_title_de: Kontact
118
- page_title_en: Contact Us
119
- page_title_es: Contactar
120
- page_title_fr: Contacter
121
- page_title_de: Kontact
24
+ # link_title_en: Buy
25
+ # link_title_es: Comprar
26
+ # link_title_fr: Acheter
27
+ # link_title_de: Kaufen
28
+ # page_title_en: Buy
29
+ # page_title_es: Comprar
30
+ # page_title_fr: Acheter
31
+ # page_title_de: Kaufen
32
+ # - link_key: rent
33
+ # link_path: rent_path
34
+ # sort_order: 3
35
+ # visible: true
36
+ # is_page: false
37
+ # show_in_top_nav: true
38
+ # show_in_footer: false
39
+ # link_title_en: Rent
40
+ # link_title_es: Arrendar
41
+ # link_title_fr: Louer
42
+ # link_title_de: Miete
43
+ # page_title_en: Rent
44
+ # page_title_es: Arrendar
45
+ # page_title_fr: Louer
46
+ # page_title_de: Miete
47
+ # # - link_key: sell
48
+ # # link_path: sell
49
+ # # sort_order: 4
50
+ # # visible: false
51
+ # # is_page: true
52
+ # # show_in_top_nav: true
53
+ # # show_in_footer: false
54
+ # # link_title_en: Sell
55
+ # # link_title_es: Vender
56
+ # # link_title_fr: Vendre
57
+ # # link_title_de: Verkaufen
58
+ # # page_title_en: Sell
59
+ # # page_title_es: Vender
60
+ # # page_title_fr: Vendre
61
+ # # page_title_de: Verkaufen
62
+ # - link_key: aboutUs
63
+ # link_path: about_us_path
64
+ # sort_order: 5
65
+ # visible: true
66
+ # is_page: false
67
+ # show_in_top_nav: true
68
+ # show_in_footer: false
69
+ # link_title_en: About Us
70
+ # link_title_es: Sobre Nosotros
71
+ # link_title_fr: A propos
72
+ # link_title_de: Über uns
73
+ # page_title_en: About Us
74
+ # page_title_es: Sobre Nosotros
75
+ # page_title_fr: A propos
76
+ # page_title_de: Über uns
77
+ # - link_key: contactUs
78
+ # link_path: contact_us_path
79
+ # sort_order: 6
80
+ # visible: true
81
+ # is_page: false
82
+ # show_in_top_nav: true
83
+ # show_in_footer: false
84
+ # link_title_en: Contact Us
85
+ # link_title_es: Contactar
86
+ # link_title_fr: Contacter
87
+ # link_title_de: Kontact
88
+ # page_title_en: Contact Us
89
+ # page_title_es: Contactar
90
+ # page_title_fr: Contacter
91
+ # page_title_de: Kontact
92
+ # - link_key: legalAdvice
93
+ # link_path: legal
94
+ # sort_order: 7
95
+ # visible: true
96
+ # is_page: true
97
+ # show_in_top_nav: false
98
+ # show_in_footer: true
99
+ # link_title_en: Contact Us
100
+ # link_title_es: Contactar
101
+ # link_title_fr: Contacter
102
+ # link_title_de: Kontact
103
+ # page_title_en: Contact Us
104
+ # page_title_es: Contactar
105
+ # page_title_fr: Contacter
106
+ # page_title_de: Kontact
107
+ # - link_key: privacyPolicy
108
+ # link_path: privacy
109
+ # sort_order: 8
110
+ # visible: true
111
+ # is_page: true
112
+ # show_in_top_nav: false
113
+ # show_in_footer: true
114
+ # link_title_en: Contact Us
115
+ # link_title_es: Contactar
116
+ # link_title_fr: Contacter
117
+ # link_title_de: Kontact
118
+ # page_title_en: Contact Us
119
+ # page_title_es: Contactar
120
+ # page_title_fr: Contacter
121
+ # page_title_de: Kontact
@@ -0,0 +1,15 @@
1
+ ---
2
+ - key: footerInfo
3
+ tag: footer
4
+ input_type:
5
+ status:
6
+ last_updated_by_user_id:
7
+ sort_order:
8
+ target_url:
9
+ raw_en: >-
10
+ <p>We are registered with the national association of realtors.</p>
11
+ <p>Registration number: 12121212</p>
12
+ raw_es: >-
13
+ Llevamos muchos años comprometidos con ofrecer un servicio integral y conseguir solo transacciones con éxito y felicidad por parte de los compradores y vendedores.
14
+ <p>Estamos registrado con el colegio de inmobiliarios.</p>
15
+ <p>Numero de registracion: 12121212</p>
@@ -25,7 +25,8 @@ supported_currencies: []
25
25
  supported_locales: ["en-US","es-MX"]
26
26
  default_client_locale: "en-US"
27
27
  default_admin_locale: "en-US"
28
- default_currency: "EUR"
28
+ default_currency: "USD"
29
+ # enum area_unit: { sqmt: 0, sqft: 1 }
29
30
  default_area_unit: 0
30
31
  social_media: {
31
32
  "facebook": "https://www.facebook.com/propertywebbuilder",
@@ -12,7 +12,10 @@ require 'simple_form'
12
12
  require 'devise'
13
13
  require 'cloudinary'
14
14
  require 'active_hash'
15
- require 'comfortable_mexican_sofa'
15
+ require 'firebase'
16
+ require "liquid"
17
+ # require 'comfortable_mexican_sofa'
18
+
16
19
  # require 'redis'
17
20
  # # logster gem has to be after redis..
18
21
  # require 'logster'
@@ -33,11 +36,22 @@ module Pwb
33
36
  config.action_dispatch.default_headers = {
34
37
  'X-Frame-Options' => 'ALLOWALL'
35
38
  }
39
+
40
+
41
+ # PWB precompile assets defined here had been working fine
42
+ # till I added "gem 'property_web_scraper', github: 'RealEstateWebTools/property_web_scraper' "
43
+ # to gemfile.
44
+ # Now get "Asset was not declared to be precompiled in production" error
45
+ # and need to add below to /pwb/spec/dummy/config/initializers/assets.rb fix that:
46
+ # Rails.application.config.assets.precompile += %w( pwb/themes/default.css )
47
+
48
+
36
49
  # config.assets.paths << File.expand_path("../../assets/stylesheets", __FILE__)
37
50
  # config.assets.paths << File.expand_path("../../assets/javascripts", __FILE__)
38
51
  config.assets.paths << root.join("app", "assets", "stylesheets", "pwb", "themes")
39
52
  config.assets.paths << root.join("app", "assets", "javascripts", "pwb", "themes")
40
- config.assets.precompile += %w( default.css chic.css oslo.css berlin.css default.js chic.js oslo.js berlin.js )
53
+ config.assets.precompile += %w( pwb_admin_panel/application_legacy_1.css default.css chic.css berlin.css
54
+ squares.css matt.css vic.css vic.js matt.js squares.js default.js chic.js berlin.js pwb_admin_panel/application_legacy_1.js )
41
55
 
42
56
  config.to_prepare do
43
57
  # https://github.com/plataformatec/devise/wiki/How-To:-Use-devise-inside-a-mountable-engine
@@ -0,0 +1,190 @@
1
+ # To reload from console:
2
+ # load "#{Pwb::Engine.root}/lib/pwb/pages_seeder.rb"
3
+ # Pwb::PagesSeeder.seed_page_content_translations!
4
+ module Pwb
5
+ class PagesSeeder
6
+ class << self
7
+ # Called by this rake task:
8
+ # rake app:pwb:db:seed_pages 1 ↵
9
+ def seed_page_parts!
10
+ page_part_yml_filenames = [
11
+ "about-us__our_agency.yml", "about-us__content_html.yml",
12
+ "contact-us__form_and_map.yml", "contact-us__content_html.yml",
13
+ "home__landing_hero.yml", "home__about_us_services.yml", "home__content_html.yml",
14
+ "sell__content_html.yml",
15
+ "privacy__content_html.yml", "legal__content_html.yml"
16
+ ]
17
+
18
+ page_part_yml_filenames.each do |filename|
19
+ seed_page_part filename
20
+ end
21
+ end
22
+
23
+ def seed_page_basics!
24
+ page_yml_filenames = [
25
+ "sell.yml", "about.yml", "buy.yml",
26
+ "rent.yml", "home.yml", "legal_notice.yml",
27
+ "contact.yml", "privacy_policy.yml"
28
+ ]
29
+
30
+ page_yml_filenames.each do |page_yml_filename|
31
+ seed_page page_yml_filename
32
+ end
33
+ end
34
+
35
+ # below need to have page_parts populated to work correctly
36
+ def seed_page_content_translations!
37
+ I18n.available_locales.each do |locale|
38
+ seed_content_for_locale locale.to_s
39
+ end
40
+ end
41
+
42
+ # def seed_rails_parts
43
+ # contact_us_page = Pwb::Page.find_by_slug "contact-us"
44
+ # contact_us_rails_part = contact_us_page.page_contents.find_or_create_by(label: "contact_us__form_and_map")
45
+ # end
46
+
47
+ protected
48
+
49
+
50
+ def seed_page yml_file
51
+ page_seed_file = Pwb::Engine.root.join('db', 'yml_seeds', 'pages', yml_file)
52
+ page_yml = YAML.load_file(page_seed_file)
53
+ # unless Pwb::Page.where(slug: page_yml[0]['slug']).count > 0
54
+ # Pwb::Page.create!(page_yml)
55
+ # end
56
+
57
+ page_record = Pwb::Page.find_by_slug(page_yml[0]['slug'])
58
+ # unless Pwb::Page.where(slug: page_yml[0]['slug']).count > 0
59
+ unless page_record.present?
60
+ page_record = Pwb::Page.create!(page_yml[0])
61
+ end
62
+
63
+
64
+ # below sets the page title text from I18n translations
65
+ # because setting the value in each page yml for each language
66
+ # is not feasible
67
+ I18n.available_locales.each do |locale|
68
+ title_accessor = 'page_title_' + locale.to_s
69
+ # if page_title has not been set for this locale
70
+ if page_record.send(title_accessor).blank?
71
+ translation_key = 'navbar.' + page_record.slug
72
+ # get the I18n translation
73
+ title_value = I18n.t(translation_key, :locale => locale, :default => nil)
74
+ title_value = title_value || I18n.t(translation_key, :locale => :en, :default => 'Unknown')
75
+ # in case translation cannot be found
76
+ # take default page_title (English value)
77
+ title_value = title_value || page_record.page_title
78
+ # set title_value as page_title
79
+ page_record.update_attribute title_accessor, title_value
80
+ end
81
+ end
82
+ end
83
+
84
+
85
+ def seed_page_part yml_file
86
+ lf_seed_file = Pwb::Engine.root.join('db', 'yml_seeds', 'page_parts', yml_file)
87
+ lf_yml = YAML.load_file(lf_seed_file)
88
+ unless Pwb::PagePart.where({page_part_key: lf_yml[0]['page_part_key'],page_slug: lf_yml[0]['page_slug']}).count > 0
89
+ Pwb::PagePart.create!(lf_yml)
90
+ end
91
+ end
92
+
93
+ def seed_content_for_locale locale
94
+ locale_seed_file = Pwb::Engine.root.join('db', 'yml_seeds', 'content_translations', locale + '.yml')
95
+ unless File.exist? locale_seed_file
96
+ return
97
+ end
98
+ yml = YAML.load_file(locale_seed_file)
99
+
100
+ Pwb::Page.all.each do |page|
101
+ page.page_parts.each do |page_part|
102
+ page_part_key = page_part.page_part_key
103
+ # Items in each locale seed file are nested as
104
+ # page_slug/page_part_key and then the block labels
105
+ unless yml[locale] && yml[locale][page.slug] && yml[locale][page.slug][page_part_key]
106
+ if page_part.is_rails_part
107
+ page_fragment_content = page.contents.find_or_create_by(page_part_key: page_part_key)
108
+ page_content_join_model = page_fragment_content.page_contents.find_by_page_id page.id
109
+
110
+ page_content_join_model.page_part_key = page_part_key
111
+ page_content_join_model.is_rails_part = true
112
+ page_content_join_model.save!
113
+
114
+ return
115
+ end
116
+ # skip if there is no content to populate
117
+ next
118
+ end
119
+ if yml[locale][page.slug][page_part_key]
120
+ seed_content = yml[locale][page.slug][page_part_key]
121
+ set_page_block_content locale, page_part, seed_content
122
+ set_page_content_order_and_visibility locale, page_part, seed_content
123
+ end
124
+ end
125
+ end
126
+
127
+ end
128
+
129
+ def set_page_content_order_and_visibility locale, page_part, seed_content
130
+
131
+ page_part_editor_setup = page_part.editor_setup
132
+ page = page_part.page
133
+ # page_part_key uniquely identifies a fragment
134
+ page_part_key = page_part.page_part_key
135
+
136
+ sort_order = page_part_editor_setup["default_sort_order"] || 1
137
+ page.set_fragment_sort_order page_part_key, sort_order
138
+
139
+ visible_on_page = false
140
+ if page_part_editor_setup["default_visible_on_page"]
141
+ visible_on_page = true
142
+ end
143
+ page.set_fragment_visibility page_part_key, visible_on_page
144
+ end
145
+
146
+ def set_page_block_content locale, page_part, seed_content
147
+
148
+ page_part_editor_setup = page_part.editor_setup
149
+ page = page_part.page
150
+ # page_part_key uniquely identifies a fragment
151
+ page_part_key = page_part.page_part_key
152
+
153
+ # container for json to be attached to page details
154
+ locale_block_content_json = {"blocks" => {}}
155
+ # {"blocks"=>{"title_a"=>{"content"=>"about our agency"}, "content_a"=>{"content"=>""}}}
156
+ page_part_editor_setup["editorBlocks"].each do |configColBlocks|
157
+ configColBlocks.each do |configRowBlock|
158
+ row_block_label = configRowBlock["label"]
159
+ row_block_content = ""
160
+ # find the content for current block from within the seed content
161
+ if seed_content[row_block_label]
162
+ if configRowBlock["isImage"]
163
+ photo = page.seed_fragment_photo page_part_key, row_block_label, seed_content[row_block_label]
164
+ if photo.present? && photo.optimized_image_url.present?
165
+ # optimized_image_url is defined in content_photo and will
166
+ # return cloudinary url or filesystem url depending on settings
167
+ row_block_content = photo.optimized_image_url
168
+ else
169
+ row_block_content = "http://via.placeholder.com/350x250"
170
+ end
171
+ else
172
+ row_block_content = seed_content[row_block_label]
173
+ end
174
+ end
175
+ locale_block_content_json["blocks"][row_block_label] = {"content"=>row_block_content}
176
+ end
177
+ end
178
+
179
+ # save the block contents (in associated page_part model)
180
+ updated_details = page.set_page_part_block_contents page_part_key, locale, locale_block_content_json
181
+ # retrieve the contents saved above and use to rebuild html for that page_part
182
+ # (and save it in associated page_content model)
183
+ fragment_html = page.rebuild_page_content page_part_key, locale
184
+
185
+ p "#{page.slug} page #{page_part_key} content set for #{locale}."
186
+ end
187
+
188
+ end
189
+ end
190
+ end