artfully_ose 1.2.0.pre.19 → 1.2.0.pre.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +28 -0
  3. data/app/assets/javascripts/change-membership.js +66 -16
  4. data/app/assets/javascripts/store/store.js +4 -0
  5. data/app/assets/stylesheets/sass/store.sass +2 -0
  6. data/app/{models/carts → concerns}/cart_finder.rb +0 -0
  7. data/app/{models/actions → concerns}/immutable_action.rb +0 -0
  8. data/app/concerns/pdf_generation.rb +71 -0
  9. data/app/{models/orders → concerns}/unrefundable.rb +0 -0
  10. data/app/controllers/export_controller.rb +1 -5
  11. data/app/controllers/imports_controller.rb +12 -0
  12. data/app/controllers/members/index_controller.rb +1 -1
  13. data/app/controllers/members/members_controller.rb +6 -1
  14. data/app/controllers/members/passwords_controller.rb +10 -0
  15. data/app/controllers/members/people_controller.rb +17 -0
  16. data/app/controllers/membership_cancellations_controller.rb +46 -0
  17. data/app/controllers/membership_comps_controller.rb +97 -0
  18. data/app/controllers/membership_types_controller.rb +6 -2
  19. data/app/controllers/people_controller.rb +15 -3
  20. data/app/controllers/sales_controller.rb +4 -0
  21. data/app/controllers/searches_controller.rb +2 -2
  22. data/app/controllers/sections_controller.rb +1 -1
  23. data/app/controllers/shows_controller.rb +52 -3
  24. data/app/controllers/store/checkouts_controller.rb +2 -7
  25. data/app/controllers/store/memberships_controller.rb +2 -1
  26. data/app/helpers/artfully_ose_helper.rb +4 -3
  27. data/app/mailers/order_mailer.rb +3 -3
  28. data/app/models/actions/comp_action.rb +15 -0
  29. data/app/models/address.rb +7 -0
  30. data/app/models/{carts/cart.rb → cart.rb} +0 -19
  31. data/app/models/checkout.rb +53 -15
  32. data/app/models/comp.rb +21 -11
  33. data/app/models/database_views/item_view.rb +4 -0
  34. data/app/models/event.rb +1 -0
  35. data/app/models/{ext/ext.rb → ext.rb} +14 -1
  36. data/app/models/ext/preprocessor.rb +6 -0
  37. data/app/models/job/order_processor.rb +6 -3
  38. data/app/models/job/show_creator.rb +6 -2
  39. data/app/models/kit.rb +1 -1
  40. data/app/models/kits/membership_kit.rb +8 -1
  41. data/app/models/kits/scannable_tickets_kit.rb +24 -0
  42. data/app/models/member.rb +59 -13
  43. data/app/models/membership.rb +2 -14
  44. data/app/models/membership_cancellation.rb +80 -0
  45. data/app/models/membership_comp.rb +103 -0
  46. data/app/models/membership_comp_job.rb +32 -0
  47. data/app/models/membership_type.rb +3 -3
  48. data/app/models/{orders/order.rb → order.rb} +8 -2
  49. data/app/models/orders/comp_order.rb +4 -0
  50. data/app/models/organization.rb +5 -1
  51. data/app/models/{payments/payment.rb → payment.rb} +12 -1
  52. data/app/models/payments/credit_card_payment.rb +36 -5
  53. data/app/models/person.rb +11 -1
  54. data/app/models/rolling_membership_type.rb +3 -1
  55. data/app/models/sale.rb +1 -1
  56. data/app/models/search.rb +1 -6
  57. data/app/models/seasonal_membership_type.rb +1 -0
  58. data/app/models/ticket.rb +2 -0
  59. data/app/models/ticket/qr_code.rb +1 -1
  60. data/app/models/ticket/transfers.rb +6 -3
  61. data/app/models/ticket_type.rb +6 -0
  62. data/app/models/user.rb +2 -1
  63. data/app/views/addresses/_address.html.haml +7 -6
  64. data/app/views/events/_ticket_type_fields.html.haml +2 -2
  65. data/app/views/imports/index.html.haml +2 -1
  66. data/app/views/layouts/_menu.html.haml +3 -2
  67. data/app/views/layouts/storefront.html.haml +17 -13
  68. data/app/views/members/index/index.html.haml +5 -11
  69. data/app/views/members/invitations/edit.html.haml +17 -0
  70. data/app/views/members/mailer/_invitation_body.html.haml +18 -0
  71. data/app/views/members/mailer/invitation_instructions.html.haml +6 -12
  72. data/app/views/members/mailer/reset_password_instructions.html.erb +8 -0
  73. data/app/views/members/passwords/edit.html.haml +18 -0
  74. data/app/views/members/sessions/new.html.haml +19 -0
  75. data/app/views/membership_cancellations/_form.html.haml +39 -0
  76. data/app/views/membership_cancellations/_modal.html.haml +2 -0
  77. data/app/views/membership_cancellations/_processing.html.haml +14 -0
  78. data/app/views/membership_cancellations/create.js.erb +3 -0
  79. data/app/views/membership_cancellations/new.js.erb +3 -0
  80. data/app/views/membership_comps/confirm.html.haml +85 -0
  81. data/app/views/membership_comps/create.html.haml +18 -0
  82. data/app/views/membership_comps/new.html.haml +82 -0
  83. data/app/views/membership_mailer/cancellation_confirmation.html.haml +9 -0
  84. data/app/views/membership_mailer/cancellation_confirmation.text.haml +6 -0
  85. data/app/views/membership_mailer/refund_problem.html.haml +18 -0
  86. data/app/views/membership_mailer/refund_problem.text.haml +14 -0
  87. data/app/views/membership_types/_form.html.haml +18 -53
  88. data/app/views/membership_types/_membership_type_fees.html.haml +0 -0
  89. data/app/views/membership_types/index.html.haml +1 -5
  90. data/app/views/memberships/_membership_scripts.js.erb +15 -0
  91. data/app/views/memberships/index.html.haml +18 -17
  92. data/app/views/order_mailer/confirmation_for.html.haml +8 -0
  93. data/app/views/orders/_order_sidebar.html.haml +1 -3
  94. data/app/views/organizations/_form.html.haml +6 -0
  95. data/app/views/pdfs/member.html.haml +66 -0
  96. data/app/views/pdfs/order.html.haml +84 -0
  97. data/app/views/people/_comp_membership.html.haml +23 -0
  98. data/app/views/people/_edit_modal.html.haml +6 -3
  99. data/app/views/people/show.html.haml +1 -2
  100. data/app/views/searches/_form.html.haml +34 -33
  101. data/app/views/searches/show.html.haml +4 -1
  102. data/app/views/segments/show.html.haml +4 -1
  103. data/app/views/shows/_ticket_table.html.haml +1 -1
  104. data/app/views/shows/index.html.haml +8 -2
  105. data/app/views/store/checkouts/_membership_info.html.haml +1 -0
  106. data/app/views/store/checkouts/thanks.html.haml +7 -3
  107. data/app/views/store/events/index.html.haml +9 -3
  108. data/app/views/store/events/single_show.html.haml +4 -1
  109. data/app/views/store/memberships/index.html.haml +2 -1
  110. data/app/views/store/orders/show.html.haml +2 -2
  111. data/config/initializers/devise.rb +1 -1
  112. data/config/initializers/paperclip.rb +39 -0
  113. data/config/locales/devise_invitable.en.yml +1 -1
  114. data/config/locales/en.yml +9 -0
  115. data/config/routes.rb +14 -7
  116. data/db/migrate/20131223215615_goodbye_order_view.rb +6 -0
  117. data/db/migrate/20140114011856_add_welcome_message_to_memberships.rb +5 -0
  118. data/db/migrate/20140114212127_add_send_email_to_memberships.rb +5 -0
  119. data/db/migrate/20140125183606_index_memberships_and_types.rb +6 -0
  120. data/db/migrate/20140128213101_add_pdf_to_members.rb +5 -0
  121. data/db/migrate/20140128223140_add_uuid_to_member.rb +6 -0
  122. data/db/migrate/20140128223948_add_qr_code_to_member.rb +9 -0
  123. data/lib/artfully_ose/common_abilities.rb +1 -1
  124. data/lib/artfully_ose/engine.rb +23 -2
  125. data/lib/artfully_ose/version.rb +1 -1
  126. data/spec/factories/action_factories.rb +19 -0
  127. data/spec/factories/address_factories.rb +11 -0
  128. data/spec/factories/cart_factories.rb +26 -0
  129. data/spec/factories/chart_factories.rb +52 -0
  130. data/spec/factories/discount_factories.rb +11 -0
  131. data/spec/factories/donation_factories.rb +14 -0
  132. data/spec/factories/event_factories.rb +29 -0
  133. data/spec/factories/import_factories.rb +61 -0
  134. data/spec/factories/item_factories.rb +51 -0
  135. data/spec/factories/kit_factories.rb +27 -0
  136. data/spec/factories/member_factories.rb +19 -0
  137. data/spec/factories/membership_factories.rb +8 -0
  138. data/spec/factories/membership_type_factories.rb +18 -0
  139. data/spec/factories/order_factories.rb +40 -0
  140. data/spec/factories/organization_factories.rb +44 -0
  141. data/spec/factories/payments_factories.rb +97 -0
  142. data/spec/factories/person_factories.rb +44 -0
  143. data/spec/factories/phone_factories.rb +6 -0
  144. data/spec/factories/section_factories.rb +21 -0
  145. data/spec/factories/segment_factories.rb +6 -0
  146. data/spec/factories/show_factories.rb +33 -0
  147. data/spec/factories/ticket_factories.rb +57 -0
  148. data/spec/factories/ticket_offer_factories.rb +16 -0
  149. data/spec/factories/ticket_type_factories.rb +8 -0
  150. data/spec/factories/user_factories.rb +24 -0
  151. metadata +75 -17
  152. data/app/controllers/membership_awards_controller.rb +0 -60
  153. data/app/models/database_views/order_view.rb +0 -34
  154. data/app/models/membership_award.rb +0 -24
  155. data/app/models/orders/pdf_generation.rb +0 -75
  156. data/app/views/members/invitations/edit.html.erb +0 -14
  157. data/app/views/membership_awards/confirm.html.haml +0 -105
  158. data/app/views/membership_awards/create.html.haml +0 -1
  159. data/app/views/membership_awards/new.html.haml +0 -79
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: artfully_ose
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.pre.19
4
+ version: 1.2.0.pre.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artful.ly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-02 00:00:00.000000000 Z
11
+ date: 2014-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -1873,8 +1873,12 @@ files:
1873
1873
  - app/assets/stylesheets/sass/themes/default.sass
1874
1874
  - app/assets/stylesheets/storefront.css
1875
1875
  - app/assets/stylesheets/wysiwyg-color.css
1876
+ - app/concerns/cart_finder.rb
1877
+ - app/concerns/immutable_action.rb
1876
1878
  - app/concerns/itemable.rb
1877
1879
  - app/concerns/oh_noes.rb
1880
+ - app/concerns/pdf_generation.rb
1881
+ - app/concerns/unrefundable.rb
1878
1882
  - app/controllers/actions_controller.rb
1879
1883
  - app/controllers/addresses_controller.rb
1880
1884
  - app/controllers/artfully_ose_controller.rb
@@ -1892,8 +1896,11 @@ files:
1892
1896
  - app/controllers/members/index_controller.rb
1893
1897
  - app/controllers/members/invitations_controller.rb
1894
1898
  - app/controllers/members/members_controller.rb
1895
- - app/controllers/membership_awards_controller.rb
1899
+ - app/controllers/members/passwords_controller.rb
1900
+ - app/controllers/members/people_controller.rb
1901
+ - app/controllers/membership_cancellations_controller.rb
1896
1902
  - app/controllers/membership_changes_controller.rb
1903
+ - app/controllers/membership_comps_controller.rb
1897
1904
  - app/controllers/membership_kits_controller.rb
1898
1905
  - app/controllers/membership_types_controller.rb
1899
1906
  - app/controllers/memberships_controller.rb
@@ -1947,20 +1954,19 @@ files:
1947
1954
  - app/models/ability.rb
1948
1955
  - app/models/action.rb
1949
1956
  - app/models/actions/change_action.rb
1957
+ - app/models/actions/comp_action.rb
1950
1958
  - app/models/actions/do_action.rb
1951
1959
  - app/models/actions/exchange_action.rb
1952
1960
  - app/models/actions/get_action.rb
1953
1961
  - app/models/actions/give_action.rb
1954
1962
  - app/models/actions/go_action.rb
1955
1963
  - app/models/actions/hear_action.rb
1956
- - app/models/actions/immutable_action.rb
1957
1964
  - app/models/actions/join_action.rb
1958
1965
  - app/models/actions/refund_action.rb
1959
1966
  - app/models/actions/say_action.rb
1960
1967
  - app/models/address.rb
1961
1968
  - app/models/box_office.rb
1962
- - app/models/carts/cart.rb
1963
- - app/models/carts/cart_finder.rb
1969
+ - app/models/cart.rb
1964
1970
  - app/models/chart.rb
1965
1971
  - app/models/checkout.rb
1966
1972
  - app/models/comp.rb
@@ -1970,7 +1976,6 @@ files:
1970
1976
  - app/models/daily_membership_report.rb
1971
1977
  - app/models/daily_ticket_report.rb
1972
1978
  - app/models/database_views/item_view.rb
1973
- - app/models/database_views/order_view.rb
1974
1979
  - app/models/discount.rb
1975
1980
  - app/models/discounts/buy_one_get_one_free_discount_type.rb
1976
1981
  - app/models/discounts/discount_type.rb
@@ -1986,9 +1991,10 @@ files:
1986
1991
  - app/models/ext/delayed_indexing.rb
1987
1992
  - app/models/ext/devise_configuration.rb
1988
1993
  - app/models/ext/due.rb
1989
- - app/models/ext/ext.rb
1990
1994
  - app/models/ext/integrations.rb
1995
+ - app/models/ext/preprocessor.rb
1991
1996
  - app/models/ext/resellable.rb
1997
+ - app/models/ext.rb
1992
1998
  - app/models/fee_calculator.rb
1993
1999
  - app/models/fee_strategy.rb
1994
2000
  - app/models/gateway_transaction.rb
@@ -2022,32 +2028,33 @@ files:
2022
2028
  - app/models/kits/membership_kit.rb
2023
2029
  - app/models/kits/regular_donation_kit.rb
2024
2030
  - app/models/kits/reseller_kit.rb
2031
+ - app/models/kits/scannable_tickets_kit.rb
2025
2032
  - app/models/kits/sponsored_donation_kit.rb
2026
2033
  - app/models/kits/ticketing_kit.rb
2027
2034
  - app/models/member.rb
2028
2035
  - app/models/member_number_generator.rb
2029
2036
  - app/models/membership.rb
2030
- - app/models/membership_award.rb
2037
+ - app/models/membership_cancellation.rb
2031
2038
  - app/models/membership_change.rb
2039
+ - app/models/membership_comp.rb
2040
+ - app/models/membership_comp_job.rb
2032
2041
  - app/models/membership_type.rb
2033
2042
  - app/models/note.rb
2043
+ - app/models/order.rb
2034
2044
  - app/models/order_handler.rb
2035
2045
  - app/models/orders/application_order.rb
2036
2046
  - app/models/orders/comp_order.rb
2037
2047
  - app/models/orders/exchange_order.rb
2038
2048
  - app/models/orders/imported_order.rb
2039
- - app/models/orders/order.rb
2040
- - app/models/orders/pdf_generation.rb
2041
2049
  - app/models/orders/refund_order.rb
2042
- - app/models/orders/unrefundable.rb
2043
2050
  - app/models/orders/web_order.rb
2044
2051
  - app/models/organization.rb
2045
2052
  - app/models/organization_ability.rb
2046
2053
  - app/models/parsed_row.rb
2054
+ - app/models/payment.rb
2047
2055
  - app/models/payments/cash_payment.rb
2048
2056
  - app/models/payments/comp_payment.rb
2049
2057
  - app/models/payments/credit_card_payment.rb
2050
- - app/models/payments/payment.rb
2051
2058
  - app/models/person.rb
2052
2059
  - app/models/phone.rb
2053
2060
  - app/models/refund.rb
@@ -2193,20 +2200,35 @@ files:
2193
2200
  - app/views/layouts/members.html.haml
2194
2201
  - app/views/layouts/storefront.html.haml
2195
2202
  - app/views/members/index/index.html.haml
2196
- - app/views/members/invitations/edit.html.erb
2203
+ - app/views/members/invitations/edit.html.haml
2197
2204
  - app/views/members/invitations/new.html.erb
2205
+ - app/views/members/mailer/_invitation_body.html.haml
2198
2206
  - app/views/members/mailer/invitation_instructions.html.haml
2199
- - app/views/membership_awards/confirm.html.haml
2200
- - app/views/membership_awards/create.html.haml
2201
- - app/views/membership_awards/new.html.haml
2207
+ - app/views/members/mailer/reset_password_instructions.html.erb
2208
+ - app/views/members/passwords/edit.html.haml
2209
+ - app/views/members/sessions/new.html.haml
2210
+ - app/views/membership_cancellations/_form.html.haml
2211
+ - app/views/membership_cancellations/_modal.html.haml
2212
+ - app/views/membership_cancellations/_processing.html.haml
2213
+ - app/views/membership_cancellations/create.js.erb
2214
+ - app/views/membership_cancellations/new.js.erb
2215
+ - app/views/membership_comps/confirm.html.haml
2216
+ - app/views/membership_comps/create.html.haml
2217
+ - app/views/membership_comps/new.html.haml
2202
2218
  - app/views/membership_kits/edit.html.haml
2219
+ - app/views/membership_mailer/cancellation_confirmation.html.haml
2220
+ - app/views/membership_mailer/cancellation_confirmation.text.haml
2221
+ - app/views/membership_mailer/refund_problem.html.haml
2222
+ - app/views/membership_mailer/refund_problem.text.haml
2203
2223
  - app/views/membership_types/_form.html.haml
2224
+ - app/views/membership_types/_membership_type_fees.html.haml
2204
2225
  - app/views/membership_types/_rolling_membership_type_form.html.haml
2205
2226
  - app/views/membership_types/_seasonal_membership_type_form.html.haml
2206
2227
  - app/views/membership_types/edit.html.haml
2207
2228
  - app/views/membership_types/index.html.haml
2208
2229
  - app/views/membership_types/new.html.haml
2209
2230
  - app/views/membership_types/type.html.haml
2231
+ - app/views/memberships/_membership_scripts.js.erb
2210
2232
  - app/views/memberships/index.html.haml
2211
2233
  - app/views/merges/_merge_preview_person.html.haml
2212
2234
  - app/views/merges/find_person.html.haml
@@ -2236,6 +2258,9 @@ files:
2236
2258
  - app/views/organizations/index.html.haml
2237
2259
  - app/views/organizations/new.html.haml
2238
2260
  - app/views/organizations/show.html.haml
2261
+ - app/views/pdfs/member.html.haml
2262
+ - app/views/pdfs/order.html.haml
2263
+ - app/views/people/_comp_membership.html.haml
2239
2264
  - app/views/people/_convert_to_company_modal.html.haml
2240
2265
  - app/views/people/_edit_modal.html.haml
2241
2266
  - app/views/people/_form.html.haml
@@ -2461,6 +2486,13 @@ files:
2461
2486
  - db/migrate/20131206175325_add_marketing_to_membership_type.rb
2462
2487
  - db/migrate/20131210212342_add_show_fee_to_memberhsip_type.rb
2463
2488
  - db/migrate/20131210222814_add_renewal_price_to_membership_type.rb
2489
+ - db/migrate/20131223215615_goodbye_order_view.rb
2490
+ - db/migrate/20140114011856_add_welcome_message_to_memberships.rb
2491
+ - db/migrate/20140114212127_add_send_email_to_memberships.rb
2492
+ - db/migrate/20140125183606_index_memberships_and_types.rb
2493
+ - db/migrate/20140128213101_add_pdf_to_members.rb
2494
+ - db/migrate/20140128223140_add_uuid_to_member.rb
2495
+ - db/migrate/20140128223948_add_qr_code_to_member.rb
2464
2496
  - lib/artfully_ose/common_abilities.rb
2465
2497
  - lib/artfully_ose/core_ext.rb
2466
2498
  - lib/artfully_ose/engine.rb
@@ -2472,8 +2504,34 @@ files:
2472
2504
  - lib/d2s3/view_helpers.rb
2473
2505
  - lib/email_validator.rb
2474
2506
  - lib/tasks/artfully_ose.rake
2507
+ - spec/factories/action_factories.rb
2508
+ - spec/factories/address_factories.rb
2509
+ - spec/factories/cart_factories.rb
2510
+ - spec/factories/chart_factories.rb
2511
+ - spec/factories/discount_factories.rb
2512
+ - spec/factories/donation_factories.rb
2513
+ - spec/factories/event_factories.rb
2514
+ - spec/factories/import_factories.rb
2515
+ - spec/factories/item_factories.rb
2516
+ - spec/factories/kit_factories.rb
2517
+ - spec/factories/member_factories.rb
2518
+ - spec/factories/membership_factories.rb
2519
+ - spec/factories/membership_type_factories.rb
2520
+ - spec/factories/order_factories.rb
2521
+ - spec/factories/organization_factories.rb
2522
+ - spec/factories/payments_factories.rb
2523
+ - spec/factories/person_factories.rb
2524
+ - spec/factories/phone_factories.rb
2525
+ - spec/factories/section_factories.rb
2526
+ - spec/factories/segment_factories.rb
2527
+ - spec/factories/show_factories.rb
2528
+ - spec/factories/ticket_factories.rb
2529
+ - spec/factories/ticket_offer_factories.rb
2530
+ - spec/factories/ticket_type_factories.rb
2531
+ - spec/factories/user_factories.rb
2475
2532
  - LICENSE.txt
2476
2533
  - Rakefile
2534
+ - README.md
2477
2535
  homepage: http://fracturedatlas.github.com/artfully_ose/
2478
2536
  licenses: []
2479
2537
  metadata: {}
@@ -1,60 +0,0 @@
1
- class MembershipAwardsController < ArtfullyOseController
2
- requires_kit :membership
3
-
4
- def new
5
- Rails.cache.delete(cache_key)
6
-
7
- @membership_types = MembershipType.all
8
- @membership_types_hash = {}
9
- @membership_types.each {|mt| @membership_types_hash[mt.id] = I18n.l(mt.ends_at, :format => :date_for_input)}
10
-
11
- @membership_award = MembershipAward.new
12
- @membership_award.membership_type ||= @membership_types.first
13
- @membership_award.ends_at ||= I18n.l(@membership_types.first.ends_at, :format => :date_for_input)
14
- @membership_award.send_email ||= true
15
- @membership_award.number_of_memberships ||= 1
16
- @membership_award.people = find_people
17
- end
18
-
19
- def create
20
- if params[:membership_award][:confirm].present?
21
- @membership_award = from_params(params)
22
- Membership.for_award(@membership_award)
23
- render 'create' and return
24
- else
25
- @membership_award = from_params(params)
26
-
27
- #TODO: Validate that these people are all the same org as this user
28
-
29
- render "confirm" and return
30
- end
31
- end
32
-
33
- private
34
- def from_params(params)
35
- membership_award = MembershipAward.new
36
- membership_award_params = params[:membership_award]
37
- membership_award.membership_type = MembershipType.find(membership_award_params[:membership_type])
38
- membership_award.ends_at = membership_award_params[:ends_at]
39
- membership_award.send_email = membership_award_params[:send_email]
40
- membership_award.number_of_memberships = membership_award_params[:number_of_memberships]
41
- membership_award.message = membership_award_params[:message]
42
- membership_award.people = find_people
43
- membership_award
44
- end
45
-
46
- def cache_key
47
- current_user.id.to_s + "membership_award_person_ids"
48
- end
49
-
50
- def find_people
51
- ids = Rails.cache.fetch(cache_key) do
52
- if params[:person_id].present?
53
- Array.wrap(params[:person_id])
54
- else
55
- []
56
- end
57
- end
58
- Array.wrap(Person.find(ids))
59
- end
60
- end
@@ -1,34 +0,0 @@
1
- class OrderView < ActiveRecord::Base
2
- self.table_name = 'order_view'
3
- self.primary_key = 'id'
4
- has_many :items, :foreign_key => 'order_id'
5
-
6
- default_scope :order => 'created_at DESC'
7
- scope :before, lambda { |time| where("created_at < ?", time) }
8
- scope :after, lambda { |time| where("created_at > ?", time) }
9
- scope :imported, where("fa_id IS NOT NULL")
10
- scope :not_imported, where("fa_id IS NULL")
11
- scope :artfully, where("transaction_id IS NOT NULL")
12
-
13
- set_watch_for :created_at, :local_to => :self, :as => :admins
14
-
15
- def artfully?
16
- !transaction_id.nil?
17
- end
18
-
19
-
20
- #
21
- # If we can push these into the view (with an SQL case) then we can save having to join to items in Ruby
22
- #
23
- def has_ticket?
24
- items.select(&:ticket?).present?
25
- end
26
-
27
- def has_donation?
28
- items.select(&:donation?).present?
29
- end
30
-
31
- def time_zone
32
- "Eastern Time (US & Canada)"
33
- end
34
- end
@@ -1,24 +0,0 @@
1
- class MembershipAward
2
- extend ActiveModel::Naming
3
- include ActiveModel::Conversion
4
- include ActiveModel::Validations
5
-
6
- attr_accessor :people,
7
- :search,
8
- :organization,
9
- :membership_type,
10
- :number_of_memberships,
11
- :ends_at,
12
- :message,
13
- :send_email,
14
- :notes,
15
- :sold_price
16
-
17
- def persisted?
18
- false
19
- end
20
-
21
- def people_ids
22
- people.nil? ? [] : people.collect(&:id)
23
- end
24
- end
@@ -1,75 +0,0 @@
1
- require 'json'
2
- require 'digest/md5'
3
-
4
- module Orders
5
- class PdfGeneration
6
- PDF_POST_URL = "http://quick-pdf.geminisbs.net/pdfs.json"
7
- PDF_GET_URL = "http://quick-pdf.geminisbs.net/pdfs/:id.json?api_key=:key"
8
- PDF_DOWNLOAD_URL = "http://quick-pdf.geminisbs.net/pdfs/:id/download?api_key=:key"
9
-
10
- ERB_TEMPLATE = <<-ERB
11
- <h1>Your Tickets</h1>
12
- <% order.tickets.map(&:product).each do |ticket| %>
13
- <img src="<%= ticket.qr_code_url %>" />
14
- <% end %>
15
- ERB
16
-
17
- def initialize(order, pdf_api_key = PDF_API_KEY, http_party = HTTParty, sleeper = Kernel)
18
- @order = order
19
- @pdf_api_key = pdf_api_key
20
- @http_party = http_party
21
- @sleeper = sleeper
22
- end
23
-
24
- def generate
25
- response = http_party.post(PDF_POST_URL, pdf_attributes)
26
-
27
- json = JSON.parse(response.body)
28
- while !json["complete"]
29
- response = http_party.get(status_url(json))
30
- json = JSON.parse(response.body)
31
-
32
- sleeper.sleep 1 unless json["complete"]
33
- end
34
-
35
- download_url(json)
36
- end
37
-
38
- def content
39
- ERB.new(ERB_TEMPLATE).result(binding)
40
- end
41
-
42
- private
43
- attr_reader :order, :pdf_api_key, :http_party, :sleeper
44
-
45
- def pdf_attributes
46
- {
47
- :body => {
48
- :api_key => pdf_api_key,
49
- :pdf => {
50
- :html_doc => content,
51
- :filename => filename,
52
- :pdf_options => {
53
- :margin_top => "0.5in",
54
- :margin_bottom => "0.5in",
55
- :margin_left => "0.5in",
56
- :margin_right => "0.5in"
57
- }
58
- }
59
- }
60
- }
61
- end
62
-
63
- def filename
64
- "#{Digest::MD5.hexdigest order.id.to_s}.pdf"
65
- end
66
-
67
- def status_url(json)
68
- PDF_GET_URL.gsub(":id", json["id"].to_s).gsub(":key", pdf_api_key)
69
- end
70
-
71
- def download_url(json)
72
- PDF_DOWNLOAD_URL.gsub(":id", json["id"].to_s).gsub(":key", pdf_api_key)
73
- end
74
- end
75
- end
@@ -1,14 +0,0 @@
1
- <h2>Set your password</h2>
2
-
3
- <%= form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => { :method => :put } do |f| %>
4
- <%= devise_error_messages! %>
5
- <%= f.hidden_field :invitation_token %>
6
-
7
- <p><%= f.label :password %><br />
8
- <%= f.password_field :password %></p>
9
-
10
- <p><%= f.label :password_confirmation %><br />
11
- <%= f.password_field :password_confirmation %></p>
12
-
13
- <p><%= f.submit "Set my password" %></p>
14
- <% end %>
@@ -1,105 +0,0 @@
1
- .row
2
- .span4
3
- %h3 People
4
- %table.table.people-list
5
- - @membership_award.people.each do |person|
6
- %tr
7
- %td.name
8
- = person
9
- %br
10
- = person.email
11
- .span8
12
- %h3 Details
13
- %table.table
14
- =form_for @membership_award do |form|
15
- %tr
16
- %td Type
17
- %td=@membership_award.membership_type.name
18
- %tr
19
- %td Number of Memberships
20
- %td=@membership_award.number_of_memberships
21
- %tr
22
- %td Price
23
- %td=number_as_cents @membership_award.sold_price
24
- %tr
25
- %td Expires On
26
- %td=@membership_award.ends_at
27
- %tr
28
- %td Send Email
29
- %td=@membership_award.send_email ? "Yes" : "No"
30
- %tr
31
- %td Email Preview
32
- %td=link_to "Preview Now", "#email-preview", 'data-toggle' => 'modal'
33
-
34
- - if @membership_award.people.length == 1
35
- %h3 Payment
36
- .row-fluid
37
- .span5
38
- #payment-controls.controls
39
- %label.radio
40
- = radio_button_tag(:payment_method, :cash, true, :class => 'payment-method', :humanized_value => 'Cash')
41
- Cash
42
- %label.radio
43
- = radio_button_tag(:payment_method, :comp, false, :class => 'payment-method', :disabled => 'true', :humanized_value => 'Comp')
44
- Comp
45
- %label.radio
46
- = radio_button_tag(:payment_method, :credit_card_manual, false, :class => 'payment-method', :humanized_value => 'Credit card')
47
- Credit
48
- .span7
49
- #payment-info.hidden.well
50
- .control-group
51
- = label_tag("credit_card[cardholder_name]", "Name on Card")
52
- .controls= text_field_tag("credit_card[name]", params[:cardholder_name])
53
- .control-group
54
- = label_tag("credit_card[card_number]", "Card Number")
55
- .controls= text_field_tag("credit_card[number]", params[:card_number])
56
- .control-group
57
- = label_tag("credit_card[expiration_date]", "Expiration Date")
58
- .date_field.controls
59
- = select_tag("credit_card[month]", options_for_select(1..12, params["month"]), :class => 'input-small inline')
60
- = select_tag("credit_card[year]", options_for_select(Time.now.year..Time.now.year + 10, params["year"]), :class => 'input-small inline')
61
-
62
- %h3 What Happens Now?
63
- %p
64
- =check_mark
65
- These people will become members of your organization.
66
- %p
67
- =check_mark
68
- The credit card you provided will be charged .
69
- -if @membership_award.send_email
70
- %p
71
- =check_mark
72
- They will get an email to setup an account with your orgnaization if they have not already done so.
73
- =link_to "Click here to see a preview of this email", "#email-preview", 'data-toggle' => 'modal'
74
-
75
- =form_for @membership_award do |form|
76
- =form.hidden_field :membership_type, :value => @membership_award.membership_type.id
77
- =form.hidden_field :number_of_memberships
78
- =form.hidden_field :sold_price
79
- =form.hidden_field :ends_at
80
- =form.hidden_field :send_email
81
- =form.hidden_field :message
82
- =form.hidden_field :confirm, :value => true
83
- .form-actions
84
- =form.submit "Next", :class => 'btn'
85
-
86
- #email-preview.modal
87
- .modal-header
88
- .close{'data-dismiss'=>'modal'} x
89
- %h3 Email Preview
90
- .modal-body
91
- =@membership_award.message
92
- .modal-footer
93
- %button.btn{'data-dismiss'=>'modal'} Close
94
-
95
- -content_for :custom_js do
96
- :javascript
97
- $(".payment-method").change(function(){
98
- if($(this).attr('value') != 'credit_card_manual'){
99
- $("#payment-info").addClass("hidden");
100
- $("#credit_card_number").val("")
101
- $("#credit_card_name").val("")
102
- } else {
103
- $("#payment-info").removeClass("hidden");
104
- }
105
- });