fe 0.0.4 → 2.0.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 (456) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +4 -4
  3. data/Rakefile +16 -36
  4. data/app/assets/config/fe/manifest.js +3 -0
  5. data/app/assets/config/manifest.js +3 -0
  6. data/app/assets/javascripts/application.js.erb +1 -1
  7. data/app/assets/javascripts/fe/admin.js +0 -2
  8. data/app/assets/javascripts/fe/fe.admin.js +40 -20
  9. data/app/assets/javascripts/fe/fe.common.js.erb +98 -0
  10. data/app/assets/javascripts/fe/fe.public.js +2 -416
  11. data/app/assets/javascripts/fe/fe.public.nojquery.js.erb +526 -0
  12. data/app/assets/javascripts/fe/jquery.html5_upload.js +258 -0
  13. data/app/assets/javascripts/fe/jquery.validate.pack.js +3 -15
  14. data/app/assets/stylesheets/fe/fe.screen.css.scss.erb +90 -10
  15. data/app/assets/stylesheets/fe/validation.css +5 -1
  16. data/app/controllers/concerns/fe/admin/question_sheets_controller_concern.rb +111 -0
  17. data/app/controllers/concerns/fe/answer_pages_controller_concern.rb +131 -0
  18. data/app/controllers/{fe/concerns → concerns/fe}/answer_sheets_controller_concern.rb +15 -7
  19. data/app/controllers/{fe/concerns → concerns/fe}/application_controller_concern.rb +15 -2
  20. data/app/controllers/fe/admin/elements_controller.rb +102 -64
  21. data/app/controllers/fe/admin/email_templates_controller.rb +7 -7
  22. data/app/controllers/fe/admin/question_pages_controller.rb +9 -9
  23. data/app/controllers/fe/admin/question_sheets_controller.rb +2 -103
  24. data/app/controllers/fe/reference_pages_controller.rb +11 -11
  25. data/app/controllers/fe/reference_sheets_controller.rb +6 -4
  26. data/app/controllers/fe/references_controller.rb +20 -19
  27. data/app/controllers/fe/submit_pages_controller.rb +5 -5
  28. data/app/helpers/fe/answer_pages_helper.rb +1 -1
  29. data/app/helpers/fe/application_helper.rb +8 -3
  30. data/app/jobs/fe/update_reference_sheet_visibility_job.rb +11 -0
  31. data/app/mailers/fe/notifier.rb +12 -5
  32. data/app/models/answer_sheet.rb +2 -0
  33. data/app/models/application_record.rb +3 -0
  34. data/app/models/{fe/concerns → concerns/fe}/answer_concern.rb +2 -2
  35. data/app/models/{fe/concerns → concerns/fe}/answer_pages_presenter_concern.rb +15 -5
  36. data/app/models/concerns/fe/answer_sheet_concern.rb +125 -0
  37. data/app/models/{fe/concerns → concerns/fe}/choice_field_concern.rb +56 -31
  38. data/app/models/fe/address.rb +2 -2
  39. data/app/models/fe/answer.rb +1 -1
  40. data/app/models/fe/answer_sheet.rb +1 -1
  41. data/app/models/fe/answer_sheet_question_sheet.rb +2 -2
  42. data/app/models/fe/application.rb +15 -10
  43. data/app/models/fe/condition.rb +4 -4
  44. data/app/models/fe/date_field.rb +2 -2
  45. data/app/models/fe/element.rb +201 -45
  46. data/app/models/fe/email_address.rb +2 -2
  47. data/app/models/fe/email_template.rb +1 -1
  48. data/app/models/fe/page.rb +138 -31
  49. data/app/models/fe/page_element.rb +8 -3
  50. data/app/models/fe/page_link.rb +6 -3
  51. data/app/models/fe/paragraph.rb +1 -1
  52. data/app/models/fe/person.rb +16 -13
  53. data/app/models/fe/phone_number.rb +1 -1
  54. data/app/models/fe/question.rb +64 -44
  55. data/app/models/fe/question_grid.rb +16 -4
  56. data/app/models/fe/question_grid_with_total.rb +15 -0
  57. data/app/models/fe/question_set.rb +54 -14
  58. data/app/models/fe/question_sheet.rb +54 -19
  59. data/app/models/fe/reference_question.rb +9 -13
  60. data/app/models/fe/reference_sheet.rb +113 -54
  61. data/app/models/fe/state_chooser.rb +2 -2
  62. data/app/models/fe/text_field.rb +2 -2
  63. data/app/models/fe/user.rb +1 -1
  64. data/app/models/staff.rb +8 -6
  65. data/app/validators/email_validator.rb +11 -0
  66. data/app/views/fe/admin/elements/create.js.erb +4 -3
  67. data/app/views/fe/admin/elements/destroy.js.erb +1 -1
  68. data/app/views/fe/admin/elements/drop.js.erb +2 -1
  69. data/app/views/fe/admin/elements/duplicate.js.erb +2 -1
  70. data/app/views/fe/admin/elements/edit.js.erb +1 -1
  71. data/app/views/fe/admin/elements/error.js.erb +1 -1
  72. data/app/views/fe/admin/elements/new.js.erb +13 -6
  73. data/app/views/fe/admin/elements/update.js.erb +1 -1
  74. data/app/views/fe/admin/email_templates/_form.html.erb +3 -3
  75. data/app/views/fe/admin/email_templates/edit.html.erb +3 -3
  76. data/app/views/fe/admin/email_templates/index.html.erb +3 -3
  77. data/app/views/fe/admin/email_templates/new.html.erb +3 -3
  78. data/app/views/fe/admin/panels/_advanced_options.html.erb +16 -10
  79. data/app/views/fe/admin/panels/_common_boolean_fields.html.erb +1 -0
  80. data/app/views/fe/admin/panels/_common_boolean_fields_default.html.erb +11 -0
  81. data/app/views/fe/admin/panels/_common_fields.html.erb +18 -19
  82. data/app/views/fe/admin/panels/_condition.html.erb +1 -1
  83. data/app/views/fe/admin/panels/_insert.html.erb +25 -25
  84. data/app/views/fe/admin/panels/_nav_controls.html.erb +4 -4
  85. data/app/views/fe/admin/panels/_page.html.erb +2 -2
  86. data/app/views/fe/admin/panels/_pages_list.html.erb +3 -3
  87. data/app/views/fe/admin/panels/_prop_attachment_field.html.erb +2 -2
  88. data/app/views/fe/admin/panels/_prop_choice_field.html.erb +52 -24
  89. data/app/views/fe/admin/panels/_prop_date_field.html.erb +1 -1
  90. data/app/views/fe/admin/panels/_prop_element.html.erb +7 -14
  91. data/app/views/fe/admin/panels/_prop_page.html.erb +11 -6
  92. data/app/views/fe/admin/panels/_prop_paragraph.html.erb +38 -24
  93. data/app/views/fe/admin/panels/_prop_question_grid.html.erb +7 -2
  94. data/app/views/fe/admin/panels/_prop_question_grid_with_total.html.erb +2 -2
  95. data/app/views/fe/admin/panels/_prop_reference_question.html.erb +3 -3
  96. data/app/views/fe/admin/panels/_prop_section.html.erb +8 -2
  97. data/app/views/fe/admin/panels/_prop_sheet.html.erb +7 -4
  98. data/app/views/fe/admin/panels/_prop_text_field.html.erb +12 -12
  99. data/app/views/fe/admin/question_pages/_element.html.erb +16 -6
  100. data/app/views/fe/admin/question_pages/_element_show.html.erb +2 -2
  101. data/app/views/fe/admin/question_pages/_question_page.html.erb +4 -4
  102. data/app/views/fe/admin/question_pages/create.js.erb +3 -3
  103. data/app/views/fe/admin/question_pages/destroy.js.erb +3 -3
  104. data/app/views/fe/admin/question_pages/edit.js.erb +1 -1
  105. data/app/views/fe/admin/question_pages/error.js.erb +1 -1
  106. data/app/views/fe/admin/question_pages/show.js.erb +2 -2
  107. data/app/views/fe/admin/question_pages/show_panel.js.erb +1 -1
  108. data/app/views/fe/admin/question_pages/update.js.erb +1 -1
  109. data/app/views/fe/admin/question_sheets/edit.js.erb +1 -1
  110. data/app/views/fe/admin/question_sheets/error.js.erb +1 -1
  111. data/app/views/fe/admin/question_sheets/index.html.erb +8 -8
  112. data/app/views/fe/admin/question_sheets/new.html.erb +3 -3
  113. data/app/views/fe/admin/question_sheets/show.html.erb +5 -5
  114. data/app/views/fe/admin/question_sheets/update.js.erb +1 -1
  115. data/app/views/fe/answer_pages/_answer_page.html.erb +14 -14
  116. data/app/views/fe/answer_pages/_element.html.erb +25 -6
  117. data/app/views/fe/answer_pages/_page_name.html.erb +1 -0
  118. data/app/views/fe/answer_pages/show.html.erb +39 -0
  119. data/app/views/fe/answer_pages/update.js.erb +11 -3
  120. data/app/views/fe/answer_sheets/_answer_sheet.html.erb +6 -6
  121. data/app/views/fe/answer_sheets/_element.html.erb +55 -35
  122. data/app/views/fe/answer_sheets/_incomplete.html.erb +1 -1
  123. data/app/views/fe/answer_sheets/_page_link.html.erb +9 -7
  124. data/app/views/fe/answer_sheets/_pages_list.html.erb +4 -4
  125. data/app/views/fe/answer_sheets/_submit_to.html.erb +1 -0
  126. data/app/views/fe/answer_sheets/_title.html.erb +1 -1
  127. data/app/views/fe/answer_sheets/edit.html.erb +24 -24
  128. data/app/views/fe/answer_sheets/incomplete.js.erb +9 -3
  129. data/app/views/fe/answer_sheets/index.html.erb +3 -3
  130. data/app/views/fe/answer_sheets/show.html.erb +1 -1
  131. data/app/views/fe/applications/_logout.html.erb +1 -0
  132. data/app/views/fe/applications/show.html.erb +1 -0
  133. data/app/views/fe/questions/fe/_acceptance.html.erb +11 -10
  134. data/app/views/fe/questions/fe/_attachment_field.html.erb +133 -10
  135. data/app/views/fe/questions/fe/_checkbox_field.html.erb +34 -30
  136. data/app/views/fe/questions/fe/_country.html.erb +6 -6
  137. data/app/views/fe/questions/fe/_date_field.html.erb +5 -5
  138. data/app/views/fe/questions/fe/_date_field_mmyy.html.erb +8 -8
  139. data/app/views/fe/questions/fe/_drop_down_field.html.erb +7 -6
  140. data/app/views/fe/questions/fe/_paragraph.html.erb +1 -1
  141. data/app/views/fe/questions/fe/_question_grid.html.erb +21 -16
  142. data/app/views/fe/questions/fe/_question_grid_with_total.html.erb +25 -18
  143. data/app/views/fe/questions/fe/_questions.html.erb +11 -5
  144. data/app/views/fe/questions/fe/_radio_button_field.html.erb +42 -25
  145. data/app/views/fe/questions/fe/_rating.html.erb +57 -18
  146. data/app/views/fe/questions/fe/_reference_discipler.html.erb +1 -1
  147. data/app/views/fe/questions/fe/_reference_friend.html.erb +1 -1
  148. data/app/views/fe/questions/fe/_reference_parent.html.erb +1 -1
  149. data/app/views/fe/questions/fe/_reference_peer.html.erb +1 -1
  150. data/app/views/fe/questions/fe/_reference_question.html.erb +44 -21
  151. data/app/views/fe/questions/fe/_reference_roommate.html.erb +1 -1
  152. data/app/views/fe/questions/fe/_reference_spiritual.html.erb +1 -1
  153. data/app/views/fe/questions/fe/_reference_staff.html.erb +1 -1
  154. data/app/views/fe/questions/fe/_section.html.erb +1 -1
  155. data/app/views/fe/questions/fe/_state_chooser.html.erb +6 -6
  156. data/app/views/fe/questions/fe/_text_area_field.html.erb +17 -6
  157. data/app/views/fe/questions/fe/_text_field.html.erb +7 -6
  158. data/app/views/fe/questions/fe/_yes_no.html.erb +8 -8
  159. data/app/views/fe/questions/fe/_yes_no_field.erb +12 -9
  160. data/app/views/fe/reference_pages/_reference.html.erb +15 -15
  161. data/app/views/fe/reference_pages/edit.html.erb +9 -9
  162. data/app/views/fe/reference_sheets/done.html.erb +2 -2
  163. data/app/views/fe/reference_sheets/not_found.html.erb +4 -4
  164. data/app/views/fe/references/edit.html.erb +6 -6
  165. data/app/views/fe/references/show.html.erb +8 -8
  166. data/app/views/fe/references/submit.js.erb +3 -3
  167. data/app/views/fe/submit_pages/_thankyou.html.erb +1 -1
  168. data/app/views/fe/submit_pages/edit.html.erb +12 -12
  169. data/app/views/fe/submit_pages/error.js.erb +1 -1
  170. data/app/views/fe/submit_pages/submit.js.erb +2 -2
  171. data/app/views/layouts/fe/_error_messages_for.html.erb +7 -0
  172. data/app/views/layouts/fe/application.html.erb +4 -5
  173. data/app/views/layouts/fe/fe_admin.html.erb +30 -0
  174. data/app/views.current/fe/admin/elements/_errors.html.erb +11 -0
  175. data/app/views.current/fe/admin/elements/create.js.erb +12 -0
  176. data/app/views.current/fe/admin/elements/destroy.js.erb +4 -0
  177. data/app/views.current/fe/admin/elements/drop.js.erb +3 -0
  178. data/app/views.current/fe/admin/elements/duplicate.js.erb +3 -0
  179. data/app/views.current/fe/admin/elements/edit.js.erb +4 -0
  180. data/app/views.current/fe/admin/elements/error.js.erb +4 -0
  181. data/app/views.current/fe/admin/elements/new.js.erb +17 -0
  182. data/app/views.current/fe/admin/elements/reorder.js.erb +0 -0
  183. data/app/views.current/fe/admin/elements/update.js.erb +9 -0
  184. data/app/views.current/fe/admin/email_templates/_form.html.erb +8 -0
  185. data/app/views.current/fe/admin/email_templates/edit.html.erb +13 -0
  186. data/app/views.current/fe/admin/email_templates/index.html.erb +20 -0
  187. data/app/views.current/fe/admin/email_templates/new.html.erb +11 -0
  188. data/app/views.current/fe/admin/panels/_advanced_options.html.erb +49 -0
  189. data/app/views.current/fe/admin/panels/_common_boolean_fields.html.erb +1 -0
  190. data/app/views.current/fe/admin/panels/_common_boolean_fields_default.html.erb +11 -0
  191. data/app/views.current/fe/admin/panels/_common_fields.html.erb +23 -0
  192. data/app/views.current/fe/admin/panels/_condition.html.erb +6 -0
  193. data/app/views.current/fe/admin/panels/_insert.html.erb +39 -0
  194. data/app/views.current/fe/admin/panels/_nav_controls.html.erb +6 -0
  195. data/app/views.current/fe/admin/panels/_page.html.erb +3 -0
  196. data/app/views.current/fe/admin/panels/_pages_list.html.erb +16 -0
  197. data/app/views.current/fe/admin/panels/_prop_attachment_field.html.erb +2 -0
  198. data/app/views.current/fe/admin/panels/_prop_choice_field.html.erb +74 -0
  199. data/app/views.current/fe/admin/panels/_prop_date_field.html.erb +7 -0
  200. data/app/views.current/fe/admin/panels/_prop_element.html.erb +23 -0
  201. data/app/views.current/fe/admin/panels/_prop_page.html.erb +26 -0
  202. data/app/views.current/fe/admin/panels/_prop_paragraph.html.erb +46 -0
  203. data/app/views.current/fe/admin/panels/_prop_question_grid.html.erb +28 -0
  204. data/app/views.current/fe/admin/panels/_prop_question_grid_with_total.html.erb +14 -0
  205. data/app/views.current/fe/admin/panels/_prop_reference_question.html.erb +12 -0
  206. data/app/views.current/fe/admin/panels/_prop_section.html.erb +8 -0
  207. data/app/views.current/fe/admin/panels/_prop_sheet.html.erb +20 -0
  208. data/app/views.current/fe/admin/panels/_prop_text_field.html.erb +20 -0
  209. data/app/views.current/fe/admin/question_pages/_element.html.erb +28 -0
  210. data/app/views.current/fe/admin/question_pages/_element_show.html.erb +10 -0
  211. data/app/views.current/fe/admin/question_pages/_errors.html.erb +10 -0
  212. data/app/views.current/fe/admin/question_pages/_question_page.html.erb +13 -0
  213. data/app/views.current/fe/admin/question_pages/create.js.erb +11 -0
  214. data/app/views.current/fe/admin/question_pages/destroy.js.erb +5 -0
  215. data/app/views.current/fe/admin/question_pages/edit.js.erb +3 -0
  216. data/app/views.current/fe/admin/question_pages/error.js.erb +4 -0
  217. data/app/views.current/fe/admin/question_pages/show.js.erb +9 -0
  218. data/app/views.current/fe/admin/question_pages/show_panel.js.erb +3 -0
  219. data/app/views.current/fe/admin/question_pages/update.js.erb +2 -0
  220. data/app/views.current/fe/admin/question_sheets/_errors.html.erb +11 -0
  221. data/app/views.current/fe/admin/question_sheets/edit.js.erb +3 -0
  222. data/app/views.current/fe/admin/question_sheets/error.js.erb +5 -0
  223. data/app/views.current/fe/admin/question_sheets/index.html.erb +41 -0
  224. data/app/views.current/fe/admin/question_sheets/new.html.erb +15 -0
  225. data/app/views.current/fe/admin/question_sheets/show.html.erb +27 -0
  226. data/app/views.current/fe/admin/question_sheets/update.js.erb +2 -0
  227. data/app/views.current/fe/answer_pages/_answer_page.html.erb +53 -0
  228. data/app/views.current/fe/answer_pages/_element.html.erb +32 -0
  229. data/app/views.current/fe/answer_pages/_page_name.html.erb +1 -0
  230. data/app/views.current/fe/answer_pages/show.html.erb +39 -0
  231. data/app/views.current/fe/answer_pages/update.js.erb +13 -0
  232. data/app/views.current/fe/answer_sheets/_answer_sheet.html.erb +26 -0
  233. data/app/views.current/fe/answer_sheets/_element.html.erb +74 -0
  234. data/app/views.current/fe/answer_sheets/_incomplete.html.erb +10 -0
  235. data/app/views.current/fe/answer_sheets/_page_link.html.erb +9 -0
  236. data/app/views.current/fe/answer_sheets/_pages_list.html.erb +11 -0
  237. data/app/views.current/fe/answer_sheets/_submit_to.html.erb +1 -0
  238. data/app/views.current/fe/answer_sheets/_title.html.erb +1 -0
  239. data/app/views.current/fe/answer_sheets/edit.html.erb +66 -0
  240. data/app/views.current/fe/answer_sheets/incomplete.js.erb +11 -0
  241. data/app/views.current/fe/answer_sheets/index.html.erb +18 -0
  242. data/app/views.current/fe/answer_sheets/send_reference_invite.js.erb +8 -0
  243. data/app/views.current/fe/answer_sheets/show.html.erb +13 -0
  244. data/app/views.current/fe/applications/_logout.html.erb +1 -0
  245. data/app/views.current/fe/applications/show.html.erb +1 -0
  246. data/app/views.current/fe/help/builder.html +33 -0
  247. data/app/views.current/fe/help/question_grid.html +18 -0
  248. data/app/views.current/fe/questions/fe/_acceptance.html.erb +14 -0
  249. data/app/views.current/fe/questions/fe/_attachment_field.html.erb +165 -0
  250. data/app/views.current/fe/questions/fe/_checkbox_field.html.erb +53 -0
  251. data/app/views.current/fe/questions/fe/_country.html.erb +7 -0
  252. data/app/views.current/fe/questions/fe/_date_field.html.erb +7 -0
  253. data/app/views.current/fe/questions/fe/_date_field_mmyy.html.erb +9 -0
  254. data/app/views.current/fe/questions/fe/_drop_down_field.html.erb +8 -0
  255. data/app/views.current/fe/questions/fe/_paragraph.html.erb +1 -0
  256. data/app/views.current/fe/questions/fe/_question_grid.html.erb +70 -0
  257. data/app/views.current/fe/questions/fe/_question_grid_with_total.html.erb +64 -0
  258. data/app/views.current/fe/questions/fe/_questions.html.erb +15 -0
  259. data/app/views.current/fe/questions/fe/_radio_button_field.html.erb +60 -0
  260. data/app/views.current/fe/questions/fe/_rating.html.erb +64 -0
  261. data/app/views.current/fe/questions/fe/_reference_discipler.html.erb +1 -0
  262. data/app/views.current/fe/questions/fe/_reference_friend.html.erb +1 -0
  263. data/app/views.current/fe/questions/fe/_reference_parent.html.erb +1 -0
  264. data/app/views.current/fe/questions/fe/_reference_peer.html.erb +1 -0
  265. data/app/views.current/fe/questions/fe/_reference_question.html.erb +61 -0
  266. data/app/views.current/fe/questions/fe/_reference_roommate.html.erb +1 -0
  267. data/app/views.current/fe/questions/fe/_reference_spiritual.html.erb +1 -0
  268. data/app/views.current/fe/questions/fe/_reference_staff.html.erb +1 -0
  269. data/app/views.current/fe/questions/fe/_section.html.erb +1 -0
  270. data/app/views.current/fe/questions/fe/_state_chooser.html.erb +7 -0
  271. data/app/views.current/fe/questions/fe/_text_area_field.html.erb +17 -0
  272. data/app/views.current/fe/questions/fe/_text_field.html.erb +9 -0
  273. data/app/views.current/fe/questions/fe/_yes_no.html.erb +17 -0
  274. data/app/views.current/fe/questions/fe/_yes_no_field.erb +20 -0
  275. data/app/views.current/fe/reference_pages/_reference.html.erb +31 -0
  276. data/app/views.current/fe/reference_pages/edit.html.erb +24 -0
  277. data/app/views.current/fe/reference_sheets/done.html.erb +2 -0
  278. data/app/views.current/fe/reference_sheets/not_found.html.erb +5 -0
  279. data/app/views.current/fe/reference_sheets/submitted.js.erb +1 -0
  280. data/app/views.current/fe/references/edit.html.erb +8 -0
  281. data/app/views.current/fe/references/send_invite.js.erb +7 -0
  282. data/app/views.current/fe/references/show.html.erb +18 -0
  283. data/app/views.current/fe/references/submit.js.erb +3 -0
  284. data/app/views.current/fe/submit_pages/_errors.html.erb +1 -0
  285. data/app/views.current/fe/submit_pages/_thankyou.html.erb +2 -0
  286. data/app/views.current/fe/submit_pages/edit.html.erb +36 -0
  287. data/app/views.current/fe/submit_pages/error.js.erb +1 -0
  288. data/app/views.current/fe/submit_pages/submit.js.erb +3 -0
  289. data/app/views.current/layouts/fe/_error_messages_for.html.erb +7 -0
  290. data/app/views.current/layouts/fe/application.html.erb +47 -0
  291. data/app/{views/layouts/fe/fe.admin.html.erb → views.current/layouts/fe/fe_admin.html.erb} +4 -4
  292. data/config/initializers/paper_trail.rb +3 -0
  293. data/config/routes.rb +3 -37
  294. data/db/migrate/20131003041856_core.rb +23 -23
  295. data/db/migrate/20131003044250_create_reference_sheets.rb +2 -1
  296. data/db/migrate/20131003044436_add_element_and_answer_fields.rb +3 -3
  297. data/db/migrate/20131003044518_create_email_templates.rb +2 -2
  298. data/db/migrate/20131003044621_add_max_lengths.rb +1 -1
  299. data/db/migrate/20131003044714_create_join_table.rb +1 -1
  300. data/db/migrate/20131016162128_remove_question_id_from_element.rb +1 -1
  301. data/db/migrate/20140623153424_create_fe_people.rb +2 -2
  302. data/db/migrate/20140624180246_create_fe_addresses.rb +2 -2
  303. data/db/migrate/{20140624182216_create_create_fe_phone_numbers.rb → 20140624182216_create_fe_phone_numbers.rb} +2 -2
  304. data/db/migrate/20140625160545_create_fe_users.rb +2 -2
  305. data/db/migrate/20140808202507_add_conditional_type_to_elements.rb +1 -1
  306. data/db/migrate/20140808203609_add_conditional_answer_to_elements.rb +1 -1
  307. data/db/migrate/20141103204704_remove_short_value_column.rb +1 -1
  308. data/db/migrate/20141109154522_move_conditional_ids_used_for_choice_field_to_their_own_column.rb +1 -1
  309. data/db/migrate/20150504221439_add_all_element_ids_to_pages.rb +5 -0
  310. data/db/migrate/20150713022326_add_locale_columns.rb +9 -0
  311. data/db/migrate/20150714220730_add_locale_to_answer_sheet.rb +5 -0
  312. data/db/migrate/20150925181652_add_share_to_elements.rb +5 -0
  313. data/db/migrate/20150928085325_change_pages_all_element_ids_to_text.rb +5 -0
  314. data/db/migrate/20150930191538_add_locale_to_reference_sheets.rb +5 -0
  315. data/db/migrate/20151021181928_switch_conditional_answer_separator_to_semicolon.rb +7 -0
  316. data/db/migrate/20151021184250_add_question_sheet_id_in_refs.rb +12 -0
  317. data/db/migrate/20160201185838_add_visible_and_visibility_cache_key_to_reference_sheets.rb +6 -0
  318. data/db/migrate/20160805221415_add_rating_extra_labels.rb +10 -0
  319. data/db/migrate/20181108201746_create_versions.rb +80 -0
  320. data/db/migrate/20181218201130_increase_slug_length.rb +5 -0
  321. data/lib/access_key_generator.rb +12 -0
  322. data/lib/distinct_distinct_patch.rb +20 -0
  323. data/lib/fe/engine.rb +26 -14
  324. data/lib/fe/version.rb +1 -1
  325. data/lib/fe.rb +11 -1
  326. data/spec/controllers/fe/admin/elements_controller_spec.rb +211 -1
  327. data/spec/controllers/fe/admin/email_templates_controller_spec.rb +26 -1
  328. data/spec/controllers/fe/admin/question_pages_controller_spec.rb +8 -1
  329. data/spec/controllers/fe/admin/question_sheets_controller_spec.rb +48 -1
  330. data/spec/controllers/fe/answer_pages_controller_spec.rb +129 -1
  331. data/spec/controllers/fe/answer_sheets_controller_spec.rb +136 -1
  332. data/spec/controllers/fe/reference_pages_controller.rb +4 -0
  333. data/spec/controllers/fe/references_controller_spec.rb +4 -0
  334. data/spec/controllers/fe/submit_pages_controller_spec.rb +4 -0
  335. data/spec/dummy/app/assets/config/manifest.js +0 -0
  336. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  337. data/spec/dummy/app/helpers/application_helper.rb +9 -0
  338. data/spec/dummy/app/models/application.rb +3 -0
  339. data/spec/dummy/app/models/person.rb +11 -0
  340. data/spec/dummy/app/models/user.rb +3 -0
  341. data/spec/dummy/app/views/layouts/application.html.erb +2 -2
  342. data/spec/dummy/config/application.rb +3 -1
  343. data/spec/dummy/config/database.yml +20 -17
  344. data/spec/dummy/config/environments/production.rb +1 -5
  345. data/spec/dummy/config/environments/test.rb +4 -2
  346. data/spec/dummy/config/initializers/assets.rb +5 -2
  347. data/spec/dummy/config/initializers/fast_gettext.rb +5 -0
  348. data/spec/dummy/config/initializers/to_unsafe_h.rb +5 -0
  349. data/spec/dummy/config/initializers/to_unsafe_h.rb.new +5 -0
  350. data/spec/dummy/config/secrets.yml +2 -2
  351. data/spec/dummy/db/migrate/20141203214017_core.fe_engine.rb +92 -0
  352. data/spec/dummy/db/migrate/20141203214018_create_reference_sheets.fe_engine.rb +25 -0
  353. data/spec/dummy/db/migrate/20141203214019_add_element_and_answer_fields.fe_engine.rb +11 -0
  354. data/spec/dummy/db/migrate/20141203214020_create_email_templates.fe_engine.rb +18 -0
  355. data/spec/dummy/db/migrate/20141203214021_add_max_lengths.fe_engine.rb +9 -0
  356. data/spec/dummy/db/migrate/20141203214022_create_join_table.fe_engine.rb +12 -0
  357. data/spec/dummy/db/migrate/20141203214023_remove_question_id_from_element.fe_engine.rb +10 -0
  358. data/spec/dummy/db/migrate/20141203214024_create_fe_people.fe_engine.rb +13 -0
  359. data/spec/dummy/db/migrate/20141203214025_create_fe_addresses.fe_engine.rb +21 -0
  360. data/spec/dummy/db/migrate/20141203214027_create_fe_users.fe_engine.rb +13 -0
  361. data/spec/dummy/db/migrate/20141203214028_add_conditional_type_to_elements.fe_engine.rb +6 -0
  362. data/spec/dummy/db/migrate/20141203214029_add_conditional_answer_to_elements.fe_engine.rb +6 -0
  363. data/spec/dummy/db/migrate/20141203214030_remove_short_value_column.fe_engine.rb +6 -0
  364. data/spec/dummy/db/migrate/20141203214031_move_conditional_ids_used_for_choice_field_to_their_own_column.fe_engine.rb +8 -0
  365. data/spec/dummy/db/migrate/20150123215803_create_users.rb +9 -0
  366. data/spec/dummy/db/migrate/20150504222619_add_all_element_ids_to_pages.fe_engine.rb +6 -0
  367. data/spec/dummy/db/migrate/20150925192557_add_share_to_elements.fe_engine.rb +6 -0
  368. data/spec/dummy/db/migrate/20150930190001_create_fe_phone_numbers.fe_engine.rb +20 -0
  369. data/spec/dummy/db/migrate/20150930190002_add_locale_columns.fe_engine.rb +10 -0
  370. data/spec/dummy/db/migrate/20150930190003_add_locale_to_answer_sheet.fe_engine.rb +6 -0
  371. data/spec/dummy/db/migrate/20150930190004_change_pages_all_element_ids_to_text.fe_engine.rb +6 -0
  372. data/spec/dummy/db/migrate/20150930191756_add_locale_to_reference_sheets.fe_engine.rb +6 -0
  373. data/spec/dummy/db/migrate/20151021190027_add_question_sheet_id_in_refs.fe_engine.rb +13 -0
  374. data/spec/dummy/db/migrate/20160204164612_switch_conditional_answer_separator_to_semicolon.fe_engine.rb +8 -0
  375. data/spec/dummy/db/migrate/20160204164613_add_visible_and_visibility_cache_key_to_reference_sheets.fe_engine.rb +7 -0
  376. data/spec/dummy/db/migrate/20181108201746_create_versions.rb +80 -0
  377. data/spec/dummy/db/schema.rb +91 -69
  378. data/spec/dummy/log/test.log +101278 -419
  379. data/spec/factories/answer_sheet_question_sheets.rb +1 -1
  380. data/spec/factories/answer_sheets.rb +2 -2
  381. data/spec/factories/answers.rb +1 -1
  382. data/spec/factories/applications.rb +3 -4
  383. data/spec/factories/dummy_applications.rb +6 -0
  384. data/spec/factories/dummy_people.rb +6 -0
  385. data/spec/factories/dummy_users.rb +6 -0
  386. data/spec/factories/elements.rb +35 -10
  387. data/spec/factories/email_templates.rb +5 -0
  388. data/spec/factories/fe_addresses.rb +10 -10
  389. data/spec/factories/fe_email_addresses.rb +3 -3
  390. data/spec/factories/fe_email_templates.rb +9 -0
  391. data/spec/factories/fe_people.rb +5 -7
  392. data/spec/factories/fe_phone_numbers.rb +3 -3
  393. data/spec/factories/fe_user.rb +6 -0
  394. data/spec/factories/page.rb +1 -1
  395. data/spec/factories/page_elements.rb +1 -1
  396. data/spec/factories/paragraphs.rb +1 -1
  397. data/spec/factories/question_sheet.rb +3 -3
  398. data/spec/factories/reference_questions.rb +1 -1
  399. data/spec/factories/reference_sheets.rb +9 -0
  400. data/spec/jobs/fe/update_reference_sheet_visibility_job_spec.rb +40 -0
  401. data/spec/mailers/fe/notifier_spec.rb +39 -0
  402. data/spec/models/fe/answer_sheet_question_sheet_spec.rb +1 -1
  403. data/spec/models/fe/answer_spec.rb +2 -2
  404. data/spec/models/fe/application_spec.rb +94 -1
  405. data/spec/models/fe/choice_field_spec.rb +66 -0
  406. data/spec/models/fe/condition_spec.rb +2 -2
  407. data/spec/models/fe/element_spec.rb +414 -37
  408. data/spec/models/fe/email_template_spec.rb +1 -1
  409. data/spec/models/fe/page_element_spec.rb +1 -1
  410. data/spec/models/fe/page_spec.rb +168 -11
  411. data/spec/models/fe/person_spec.rb +1 -1
  412. data/spec/models/fe/question_set_spec.rb +91 -0
  413. data/spec/models/fe/question_sheet_spec.rb +103 -1
  414. data/spec/models/fe/question_spec.rb +73 -6
  415. data/spec/models/fe/reference_question_spec.rb +20 -0
  416. data/spec/models/fe/reference_sheet_spec.rb +305 -2
  417. data/spec/models/fe/text_field_spec.rb +22 -0
  418. data/spec/rails_helper.rb +85 -54
  419. data/spec/support/choices.xml +6 -0
  420. metadata +310 -84
  421. data/app/assets/javascripts/fe/fe.common.js +0 -57
  422. data/app/assets/javascripts/fe/jquery.scrollTo-min.js +0 -7
  423. data/app/assets/javascripts/fe/rails.extra.js +0 -6
  424. data/app/controllers/fe/applications_controller.rb +0 -183
  425. data/app/controllers/fe/concerns/answer_pages_controller_concern.rb +0 -83
  426. data/app/controllers/fe/payments_controller.rb +0 -184
  427. data/app/models/fe/concerns/answer_sheet_concern.rb +0 -55
  428. data/app/models/fe/payment.rb +0 -77
  429. data/app/models/fe/payment_question.rb +0 -22
  430. data/app/views/fe/admin/panels/_prop_payment_question.html.erb +0 -1
  431. data/app/views/fe/application/_logout.html.erb +0 -1
  432. data/app/views/fe/payment_pages/_credit.html.erb +0 -47
  433. data/app/views/fe/payment_pages/_mail.html.erb +0 -27
  434. data/app/views/fe/payment_pages/_payment.html.erb +0 -6
  435. data/app/views/fe/payment_pages/_staff.html.erb +0 -25
  436. data/app/views/fe/payment_pages/_staff_results.html.erb +0 -17
  437. data/app/views/fe/payment_pages/edit.html.erb +0 -75
  438. data/app/views/fe/payment_pages/staff_search.js.erb +0 -2
  439. data/app/views/fe/payments/_credit.html.erb +0 -47
  440. data/app/views/fe/payments/_errors.html.erb +0 -1
  441. data/app/views/fe/payments/_payment.html.erb +0 -13
  442. data/app/views/fe/payments/_staff.html.erb +0 -21
  443. data/app/views/fe/payments/_staff_results.html.erb +0 -18
  444. data/app/views/fe/payments/approve.js.erb +0 -3
  445. data/app/views/fe/payments/create.js.erb +0 -19
  446. data/app/views/fe/payments/destroy.js.erb +0 -7
  447. data/app/views/fe/payments/edit.html.erb +0 -56
  448. data/app/views/fe/payments/error.js.erb +0 -3
  449. data/app/views/fe/payments/no_access.html.erb +0 -7
  450. data/app/views/fe/payments/staff_search.js.erb +0 -1
  451. data/app/views/fe/payments/update.html.erb +0 -24
  452. data/app/views/fe/questions/fe/_payment_question.html.erb +0 -70
  453. data/db/migrate/20140828045339_create_payments.rb +0 -13
  454. data/spec/dummy/db/test.sqlite3 +0 -0
  455. data/spec/factories/payments.rb +0 -7
  456. data/spec/models/fe/payment_question_spec.rb +0 -65
@@ -0,0 +1,12 @@
1
+ # This migration comes from fe_engine (originally 20131003044714)
2
+ class CreateJoinTable < ActiveRecord::Migration[4.2]
3
+ def change
4
+ create_table Fe::AnswerSheetQuestionSheet.table_name do |t|
5
+ t.integer :answer_sheet_id
6
+ t.integer :question_sheet_id
7
+ t.timestamps
8
+ end
9
+
10
+ add_index Fe::AnswerSheetQuestionSheet.table_name, [:answer_sheet_id, :question_sheet_id], name: 'answer_sheet_question_sheet'
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ # This migration comes from fe_engine (originally 20131016162128)
2
+ class RemoveQuestionIdFromElement < ActiveRecord::Migration[4.2]
3
+ def up
4
+ remove_column Fe::Element.table_name, :question_sheet_id
5
+ end
6
+
7
+ def down
8
+ add_column Fe::Element.table_name, :question_sheet_id, :integer
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ # This migration comes from fe_engine (originally 20140623153424)
2
+ class CreateFePeople < ActiveRecord::Migration[4.2]
3
+ def change
4
+ create_table :fe_people do |t|
5
+ t.string :first_name, limit: 50
6
+ t.string :last_name, limit: 50
7
+ t.integer :user_id
8
+ t.boolean :is_staff
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ # This migration comes from fe_engine (originally 20140624180246)
2
+ class CreateFeAddresses < ActiveRecord::Migration[4.2]
3
+ def change
4
+ create_table :fe_addresses do |t|
5
+ t.datetime :startdate
6
+ t.datetime :enddate
7
+ t.string :address1
8
+ t.string :address2
9
+ t.string :address3
10
+ t.string :address4
11
+ t.string :address_type
12
+ t.string :city
13
+ t.string :state
14
+ t.string :zip
15
+ t.string :country
16
+ t.integer :person_id
17
+
18
+ t.timestamps
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ # This migration comes from fe_engine (originally 20140625160545)
2
+ class CreateFeUsers < ActiveRecord::Migration[4.2]
3
+ def change
4
+ create_table :fe_users do |t|
5
+ t.integer :user_id
6
+ t.datetime :last_login
7
+ t.string :type
8
+ t.string :role
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20140808202507)
2
+ class AddConditionalTypeToElements < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::Element.table_name, :conditional_type, :string
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20140808203609)
2
+ class AddConditionalAnswerToElements < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::Element.table_name, :conditional_answer, :text
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20141103204704)
2
+ class RemoveShortValueColumn < ActiveRecord::Migration[4.2]
3
+ def change
4
+ remove_column Fe::Answer.table_name, :short_value
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ # This migration comes from fe_engine (originally 20141109154522)
2
+ class MoveConditionalIdsUsedForChoiceFieldToTheirOwnColumn < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::Element.table_name, :choice_field_id, :integer
5
+ Fe::Element.reset_column_information
6
+ Fe::Element.where(conditional_type: nil).where("conditional_id is not null").update_all("choice_field_id = conditional_id, conditional_id = null")
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ class CreateUsers < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :users do |t|
4
+ t.string :username
5
+ t.string :email
6
+ t.integer :person_id
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20150504221439)
2
+ class AddAllElementIdsToPages < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::Page.table_name, :all_element_ids, :string
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20150925181652)
2
+ class AddShareToElements < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::Element.table_name, :share, :boolean, default: false
5
+ end
6
+ end
@@ -0,0 +1,20 @@
1
+ # This migration comes from fe_engine (originally 20140624182216)
2
+ class CreateFePhoneNumbers < ActiveRecord::Migration[4.2]
3
+ def change
4
+ begin
5
+ create_table Fe::PhoneNumber do |t|
6
+ t.string :number
7
+ t.string :extensions
8
+ t.integer :person_id
9
+ t.string :location
10
+ t.boolean :primary
11
+ t.string :txt_to_email
12
+ t.integer :carrier_id
13
+ t.datetime :email_updated_at
14
+
15
+ t.timestamps
16
+ end
17
+ rescue
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,10 @@
1
+ # This migration comes from fe_engine (originally 20150713022326)
2
+ class AddLocaleColumns < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::QuestionSheet.table_name, :languages, :text
5
+ add_column Fe::Element.table_name, :label_translations, :text
6
+ add_column Fe::Element.table_name, :tip_translations, :text
7
+ add_column Fe::Element.table_name, :content_translations, :text
8
+ add_column Fe::Page.table_name, :label_translations, :text
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20150714220730)
2
+ class AddLocaleToAnswerSheet < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe.answer_sheet_class.constantize.table_name, :locale, :string, default: 'en'
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20150928085325)
2
+ class ChangePagesAllElementIdsToText < ActiveRecord::Migration[4.2]
3
+ def change
4
+ change_column Fe::Page.table_name, :all_element_ids, :text
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from fe_engine (originally 20150930191538)
2
+ class AddLocaleToReferenceSheets < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::ReferenceSheet.table_name, :locale, :string, default: 'en'
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ # This migration comes from fe_engine (originally 20151021184250)
2
+ class AddQuestionSheetIdInRefs < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::ReferenceSheet.table_name, :question_sheet_id, :integer
5
+
6
+ # set initial question_sheet_id on all refs
7
+ # NOTE: doing an update on a join query is a pain to do in both mysql and postgres
8
+ # and since there's not that many reference questions, this should be fine
9
+ Fe::ReferenceQuestion.all.each do |rq|
10
+ Fe::ReferenceSheet.where(question_id: rq.id).update_all(question_sheet_id: rq.related_question_sheet_id)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ # This migration comes from fe_engine (originally 20151021181928)
2
+ class SwitchConditionalAnswerSeparatorToSemicolon < ActiveRecord::Migration[4.2]
3
+ def change
4
+ Fe::Element.where("conditional_answer IS NOT NULL AND conditional_answer != ''").each do |e|
5
+ e.update_column :conditional_answer, e.conditional_answer.gsub(',', ';')
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ # This migration comes from fe_engine (originally 20160201185838)
2
+ class AddVisibleAndVisibilityCacheKeyToReferenceSheets < ActiveRecord::Migration[4.2]
3
+ def change
4
+ add_column Fe::ReferenceSheet.table_name, :visible, :boolean
5
+ add_column Fe::ReferenceSheet.table_name, :visibility_cache_key, :string
6
+ end
7
+ end
@@ -0,0 +1,80 @@
1
+ # This migration creates the `versions` table, the only schema PT requires.
2
+ # All other migrations PT provides are optional.
3
+ class CreateVersions < ActiveRecord::Migration[4.2]
4
+ # Class names of MySQL adapters.
5
+ # - `MysqlAdapter` - Used by gems: `mysql`, `activerecord-jdbcmysql-adapter`.
6
+ # - `Mysql2Adapter` - Used by `mysql2` gem.
7
+ MYSQL_ADAPTERS = [
8
+ "ActiveRecord::ConnectionAdapters::MysqlAdapter",
9
+ "ActiveRecord::ConnectionAdapters::Mysql2Adapter"
10
+ ].freeze
11
+
12
+ # The largest text column available in all supported RDBMS is
13
+ # 1024^3 - 1 bytes, roughly one gibibyte. We specify a size
14
+ # so that MySQL will use `longtext` instead of `text`. Otherwise,
15
+ # when serializing very large objects, `text` might not be big enough.
16
+ TEXT_BYTES = 1_073_741_823
17
+
18
+ def change
19
+ create_table :versions, versions_table_options do |t|
20
+ t.string :item_type, item_type_options
21
+ t.integer :item_id, null: false
22
+ t.string :event, null: false
23
+ t.string :whodunnit
24
+ t.text :object, limit: TEXT_BYTES
25
+
26
+ # Known issue in MySQL: fractional second precision
27
+ # -------------------------------------------------
28
+ #
29
+ # MySQL timestamp columns do not support fractional seconds unless
30
+ # defined with "fractional seconds precision". MySQL users should manually
31
+ # add fractional seconds precision to this migration, specifically, to
32
+ # the `created_at` column.
33
+ # (https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html)
34
+ #
35
+ # MySQL users should also upgrade to rails 4.2, which is the first
36
+ # version of ActiveRecord with support for fractional seconds in MySQL.
37
+ # (https://github.com/rails/rails/pull/14359)
38
+ #
39
+ t.datetime :created_at
40
+ end
41
+ add_index :versions, [:item_type, :item_id]
42
+ end
43
+
44
+ private
45
+
46
+ # MySQL 5.6 utf8mb4 limit is 191 chars for keys used in indexes.
47
+ # See https://github.com/airblade/paper_trail/issues/651
48
+ def item_type_options
49
+ opt = { null: false }
50
+ opt[:limit] = 191 if mysql?
51
+ opt
52
+ end
53
+
54
+ def mysql?
55
+ MYSQL_ADAPTERS.include?(connection.class.name)
56
+ end
57
+
58
+ # Even modern versions of MySQL still use `latin1` as the default character
59
+ # encoding. Many users are not aware of this, and run into trouble when they
60
+ # try to use PaperTrail in apps that otherwise tend to use UTF-8. Postgres, by
61
+ # comparison, uses UTF-8 except in the unusual case where the OS is configured
62
+ # with a custom locale.
63
+ #
64
+ # - https://dev.mysql.com/doc/refman/5.7/en/charset-applications.html
65
+ # - http://www.postgresql.org/docs/9.4/static/multibyte.html
66
+ #
67
+ # Furthermore, MySQL's original implementation of UTF-8 was flawed, and had
68
+ # to be fixed later by introducing a new charset, `utf8mb4`.
69
+ #
70
+ # - https://mathiasbynens.be/notes/mysql-utf8mb4
71
+ # - https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html
72
+ #
73
+ def versions_table_options
74
+ if mysql?
75
+ { options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci" }
76
+ else
77
+ {}
78
+ end
79
+ end
80
+ end
@@ -1,4 +1,3 @@
1
- # encoding: UTF-8
2
1
  # This file is auto-generated from the current state of the database. Instead
3
2
  # of editing this file, please use the migrations feature of Active Record to
4
3
  # incrementally modify your database, and then regenerate this schema definition.
@@ -11,22 +10,9 @@
11
10
  #
12
11
  # It's strongly recommended that you check this file into your version control system.
13
12
 
14
- ActiveRecord::Schema.define(version: 20140625160545) do
13
+ ActiveRecord::Schema.define(version: 20181108201746) do
15
14
 
16
- create_table "create_fe_phone_numbers", force: true do |t|
17
- t.string "number"
18
- t.string "extensions"
19
- t.integer "person_id"
20
- t.string "location"
21
- t.boolean "primary"
22
- t.string "txt_to_email"
23
- t.integer "carrier_id"
24
- t.datetime "email_updated_at"
25
- t.datetime "created_at"
26
- t.datetime "updated_at"
27
- end
28
-
29
- create_table "fe_addresses", force: true do |t|
15
+ create_table "fe_addresses", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
30
16
  t.datetime "startdate"
31
17
  t.datetime "enddate"
32
18
  t.string "address1"
@@ -43,42 +29,38 @@ ActiveRecord::Schema.define(version: 20140625160545) do
43
29
  t.datetime "updated_at"
44
30
  end
45
31
 
46
- create_table "fe_answer_sheet_question_sheets", force: true do |t|
32
+ create_table "fe_answer_sheet_question_sheets", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
47
33
  t.integer "answer_sheet_id"
48
34
  t.integer "question_sheet_id"
49
35
  t.datetime "created_at"
50
36
  t.datetime "updated_at"
37
+ t.index ["answer_sheet_id", "question_sheet_id"], name: "answer_sheet_question_sheet", using: :btree
51
38
  end
52
39
 
53
- add_index "fe_answer_sheet_question_sheets", ["answer_sheet_id", "question_sheet_id"], name: "answer_sheet_question_sheet"
54
-
55
- create_table "fe_answers", force: true do |t|
56
- t.integer "answer_sheet_id", null: false
57
- t.integer "question_id", null: false
58
- t.text "value"
59
- t.string "short_value"
40
+ create_table "fe_answers", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
41
+ t.integer "answer_sheet_id", null: false
42
+ t.integer "question_id", null: false
43
+ t.text "value", limit: 65535
60
44
  t.integer "attachment_file_size"
61
45
  t.string "attachment_content_type"
62
46
  t.string "attachment_file_name"
63
47
  t.datetime "attachment_updated_at"
64
48
  t.datetime "created_at"
65
49
  t.datetime "updated_at"
50
+ t.index ["answer_sheet_id", "question_id"], name: "answer_sheet_question", using: :btree
66
51
  end
67
52
 
68
- add_index "fe_answers", ["answer_sheet_id", "question_id"], name: "answer_sheet_question"
69
- add_index "fe_answers", ["short_value"], name: "index_fe_answers_on_short_value"
70
-
71
- create_table "fe_applications", force: true do |t|
53
+ create_table "fe_applications", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
72
54
  t.integer "applicant_id"
73
55
  t.string "status"
74
56
  t.datetime "submitted_at"
75
57
  t.datetime "created_at"
76
58
  t.datetime "updated_at"
59
+ t.string "locale", default: "en"
60
+ t.index ["applicant_id"], name: "question_sheet_id", using: :btree
77
61
  end
78
62
 
79
- add_index "fe_applications", ["applicant_id"], name: "question_sheet_id"
80
-
81
- create_table "fe_conditions", force: true do |t|
63
+ create_table "fe_conditions", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
82
64
  t.integer "question_sheet_id", null: false
83
65
  t.integer "trigger_id", null: false
84
66
  t.string "expression", null: false
@@ -86,19 +68,18 @@ ActiveRecord::Schema.define(version: 20140625160545) do
86
68
  t.integer "toggle_id"
87
69
  t.datetime "created_at"
88
70
  t.datetime "updated_at"
71
+ t.index ["question_sheet_id"], name: "index_fe_conditions_on_question_sheet_id", using: :btree
72
+ t.index ["toggle_id"], name: "index_fe_conditions_on_toggle_id", using: :btree
73
+ t.index ["toggle_page_id"], name: "index_fe_conditions_on_toggle_page_id", using: :btree
74
+ t.index ["trigger_id"], name: "index_fe_conditions_on_trigger_id", using: :btree
89
75
  end
90
76
 
91
- add_index "fe_conditions", ["question_sheet_id"], name: "index_fe_conditions_on_question_sheet_id"
92
- add_index "fe_conditions", ["toggle_id"], name: "index_fe_conditions_on_toggle_id"
93
- add_index "fe_conditions", ["toggle_page_id"], name: "index_fe_conditions_on_toggle_page_id"
94
- add_index "fe_conditions", ["trigger_id"], name: "index_fe_conditions_on_trigger_id"
95
-
96
- create_table "fe_elements", force: true do |t|
77
+ create_table "fe_elements", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
97
78
  t.integer "question_grid_id"
98
- t.string "kind", limit: 40, null: false
79
+ t.string "kind", limit: 40, null: false
99
80
  t.string "style", limit: 40
100
81
  t.string "label"
101
- t.text "content"
82
+ t.text "content", limit: 65535
102
83
  t.boolean "required"
103
84
  t.string "slug", limit: 36
104
85
  t.integer "position"
@@ -108,7 +89,7 @@ ActiveRecord::Schema.define(version: 20140625160545) do
108
89
  t.string "value_xpath"
109
90
  t.string "text_xpath"
110
91
  t.string "cols"
111
- t.boolean "is_confidential", default: false
92
+ t.boolean "is_confidential", default: false
112
93
  t.string "total_cols"
113
94
  t.string "css_id"
114
95
  t.string "css_class"
@@ -116,62 +97,70 @@ ActiveRecord::Schema.define(version: 20140625160545) do
116
97
  t.datetime "updated_at"
117
98
  t.integer "related_question_sheet_id"
118
99
  t.integer "conditional_id"
119
- t.text "tooltip"
120
- t.boolean "hide_label", default: false
121
- t.boolean "hide_option_labels", default: false
100
+ t.text "tooltip", limit: 65535
101
+ t.boolean "hide_label", default: false
102
+ t.boolean "hide_option_labels", default: false
122
103
  t.integer "max_length"
104
+ t.string "conditional_type"
105
+ t.text "conditional_answer", limit: 65535
106
+ t.integer "choice_field_id"
107
+ t.boolean "share", default: false
108
+ t.text "label_translations", limit: 65535
109
+ t.text "tip_translations", limit: 65535
110
+ t.text "content_translations", limit: 65535
111
+ t.index ["conditional_id"], name: "index_fe_elements_on_conditional_id", using: :btree
112
+ t.index ["question_grid_id"], name: "index_fe_elements_on_question_grid_id", using: :btree
113
+ t.index ["slug"], name: "index_fe_elements_on_slug", using: :btree
123
114
  end
124
115
 
125
- add_index "fe_elements", ["conditional_id"], name: "index_fe_elements_on_conditional_id"
126
- add_index "fe_elements", ["question_grid_id"], name: "index_fe_elements_on_question_grid_id"
127
- add_index "fe_elements", ["slug"], name: "index_fe_elements_on_slug"
128
-
129
- create_table "fe_email_templates", force: true do |t|
130
- t.string "name", limit: 1000, null: false
131
- t.text "content"
116
+ create_table "fe_email_templates", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
117
+ t.string "name", limit: 1000, null: false
118
+ t.text "content", limit: 65535
132
119
  t.boolean "enabled"
133
120
  t.string "subject"
134
121
  t.datetime "created_at"
135
122
  t.datetime "updated_at"
136
123
  end
137
124
 
138
- create_table "fe_page_elements", force: true do |t|
125
+ create_table "fe_page_elements", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
139
126
  t.integer "page_id"
140
127
  t.integer "element_id"
141
128
  t.integer "position"
142
129
  t.datetime "created_at"
143
130
  t.datetime "updated_at"
131
+ t.index ["page_id", "element_id"], name: "page_element", using: :btree
144
132
  end
145
133
 
146
- add_index "fe_page_elements", ["page_id", "element_id"], name: "page_element"
147
-
148
- create_table "fe_pages", force: true do |t|
149
- t.integer "question_sheet_id", null: false
150
- t.string "label", limit: 60, null: false
134
+ create_table "fe_pages", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
135
+ t.integer "question_sheet_id", null: false
136
+ t.string "label", limit: 60, null: false
151
137
  t.integer "number"
152
- t.boolean "no_cache", default: false
153
- t.boolean "hidden", default: false
138
+ t.boolean "no_cache", default: false
139
+ t.boolean "hidden", default: false
154
140
  t.datetime "created_at"
155
141
  t.datetime "updated_at"
142
+ t.text "all_element_ids", limit: 65535
143
+ t.text "label_translations", limit: 65535
156
144
  end
157
145
 
158
- create_table "fe_people", force: true do |t|
159
- t.string "first_name"
160
- t.string "last_name"
146
+ create_table "fe_people", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
147
+ t.string "first_name", limit: 50
148
+ t.string "last_name", limit: 50
161
149
  t.integer "user_id"
162
150
  t.boolean "is_staff"
163
151
  t.datetime "created_at"
164
152
  t.datetime "updated_at"
165
153
  end
166
154
 
167
- create_table "fe_question_sheets", force: true do |t|
168
- t.string "label", limit: 100, null: false
169
- t.boolean "archived", default: false
155
+ create_table "fe_question_sheets", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
156
+ t.string "label", limit: 100, null: false
157
+ t.boolean "archived", default: false
170
158
  t.datetime "created_at"
171
159
  t.datetime "updated_at"
160
+ t.text "languages", limit: 65535
172
161
  end
173
162
 
174
- create_table "fe_references", force: true do |t|
163
+ create_table "fe_references", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
175
164
  t.integer "question_id"
176
165
  t.integer "applicant_answer_sheet_id"
177
166
  t.datetime "email_sent_at"
@@ -183,15 +172,19 @@ ActiveRecord::Schema.define(version: 20140625160545) do
183
172
  t.string "email"
184
173
  t.string "status"
185
174
  t.datetime "submitted_at"
175
+ t.datetime "started_at"
186
176
  t.string "access_key"
187
177
  t.datetime "created_at"
188
178
  t.datetime "updated_at"
179
+ t.string "locale", default: "en"
180
+ t.integer "question_sheet_id"
181
+ t.boolean "visible"
182
+ t.string "visibility_cache_key"
183
+ t.index ["applicant_answer_sheet_id"], name: "index_fe_references_on_applicant_answer_sheet_id", using: :btree
184
+ t.index ["question_id"], name: "index_fe_references_on_question_id", using: :btree
189
185
  end
190
186
 
191
- add_index "fe_references", ["applicant_answer_sheet_id"], name: "index_fe_references_on_applicant_answer_sheet_id"
192
- add_index "fe_references", ["question_id"], name: "index_fe_references_on_question_id"
193
-
194
- create_table "fe_users", force: true do |t|
187
+ create_table "fe_users", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
195
188
  t.integer "user_id"
196
189
  t.datetime "last_login"
197
190
  t.string "type"
@@ -200,4 +193,33 @@ ActiveRecord::Schema.define(version: 20140625160545) do
200
193
  t.datetime "updated_at"
201
194
  end
202
195
 
196
+ create_table "phone_numbers", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
197
+ t.string "number"
198
+ t.string "extensions"
199
+ t.integer "person_id"
200
+ t.string "location"
201
+ t.boolean "primary"
202
+ t.string "txt_to_email"
203
+ t.integer "carrier_id"
204
+ t.datetime "email_updated_at"
205
+ t.datetime "created_at"
206
+ t.datetime "updated_at"
207
+ end
208
+
209
+ create_table "users", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
210
+ t.string "username"
211
+ t.string "email"
212
+ t.integer "person_id"
213
+ end
214
+
215
+ create_table "versions", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4" do |t|
216
+ t.string "item_type", limit: 191, null: false
217
+ t.integer "item_id", null: false
218
+ t.string "event", null: false
219
+ t.string "whodunnit"
220
+ t.text "object", limit: 4294967295
221
+ t.datetime "created_at"
222
+ t.index ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id", using: :btree
223
+ end
224
+
203
225
  end