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.
- checksums.yaml +8 -8
- data/README.md +28 -0
- data/app/assets/javascripts/change-membership.js +66 -16
- data/app/assets/javascripts/store/store.js +4 -0
- data/app/assets/stylesheets/sass/store.sass +2 -0
- data/app/{models/carts → concerns}/cart_finder.rb +0 -0
- data/app/{models/actions → concerns}/immutable_action.rb +0 -0
- data/app/concerns/pdf_generation.rb +71 -0
- data/app/{models/orders → concerns}/unrefundable.rb +0 -0
- data/app/controllers/export_controller.rb +1 -5
- data/app/controllers/imports_controller.rb +12 -0
- data/app/controllers/members/index_controller.rb +1 -1
- data/app/controllers/members/members_controller.rb +6 -1
- data/app/controllers/members/passwords_controller.rb +10 -0
- data/app/controllers/members/people_controller.rb +17 -0
- data/app/controllers/membership_cancellations_controller.rb +46 -0
- data/app/controllers/membership_comps_controller.rb +97 -0
- data/app/controllers/membership_types_controller.rb +6 -2
- data/app/controllers/people_controller.rb +15 -3
- data/app/controllers/sales_controller.rb +4 -0
- data/app/controllers/searches_controller.rb +2 -2
- data/app/controllers/sections_controller.rb +1 -1
- data/app/controllers/shows_controller.rb +52 -3
- data/app/controllers/store/checkouts_controller.rb +2 -7
- data/app/controllers/store/memberships_controller.rb +2 -1
- data/app/helpers/artfully_ose_helper.rb +4 -3
- data/app/mailers/order_mailer.rb +3 -3
- data/app/models/actions/comp_action.rb +15 -0
- data/app/models/address.rb +7 -0
- data/app/models/{carts/cart.rb → cart.rb} +0 -19
- data/app/models/checkout.rb +53 -15
- data/app/models/comp.rb +21 -11
- data/app/models/database_views/item_view.rb +4 -0
- data/app/models/event.rb +1 -0
- data/app/models/{ext/ext.rb → ext.rb} +14 -1
- data/app/models/ext/preprocessor.rb +6 -0
- data/app/models/job/order_processor.rb +6 -3
- data/app/models/job/show_creator.rb +6 -2
- data/app/models/kit.rb +1 -1
- data/app/models/kits/membership_kit.rb +8 -1
- data/app/models/kits/scannable_tickets_kit.rb +24 -0
- data/app/models/member.rb +59 -13
- data/app/models/membership.rb +2 -14
- data/app/models/membership_cancellation.rb +80 -0
- data/app/models/membership_comp.rb +103 -0
- data/app/models/membership_comp_job.rb +32 -0
- data/app/models/membership_type.rb +3 -3
- data/app/models/{orders/order.rb → order.rb} +8 -2
- data/app/models/orders/comp_order.rb +4 -0
- data/app/models/organization.rb +5 -1
- data/app/models/{payments/payment.rb → payment.rb} +12 -1
- data/app/models/payments/credit_card_payment.rb +36 -5
- data/app/models/person.rb +11 -1
- data/app/models/rolling_membership_type.rb +3 -1
- data/app/models/sale.rb +1 -1
- data/app/models/search.rb +1 -6
- data/app/models/seasonal_membership_type.rb +1 -0
- data/app/models/ticket.rb +2 -0
- data/app/models/ticket/qr_code.rb +1 -1
- data/app/models/ticket/transfers.rb +6 -3
- data/app/models/ticket_type.rb +6 -0
- data/app/models/user.rb +2 -1
- data/app/views/addresses/_address.html.haml +7 -6
- data/app/views/events/_ticket_type_fields.html.haml +2 -2
- data/app/views/imports/index.html.haml +2 -1
- data/app/views/layouts/_menu.html.haml +3 -2
- data/app/views/layouts/storefront.html.haml +17 -13
- data/app/views/members/index/index.html.haml +5 -11
- data/app/views/members/invitations/edit.html.haml +17 -0
- data/app/views/members/mailer/_invitation_body.html.haml +18 -0
- data/app/views/members/mailer/invitation_instructions.html.haml +6 -12
- data/app/views/members/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/members/passwords/edit.html.haml +18 -0
- data/app/views/members/sessions/new.html.haml +19 -0
- data/app/views/membership_cancellations/_form.html.haml +39 -0
- data/app/views/membership_cancellations/_modal.html.haml +2 -0
- data/app/views/membership_cancellations/_processing.html.haml +14 -0
- data/app/views/membership_cancellations/create.js.erb +3 -0
- data/app/views/membership_cancellations/new.js.erb +3 -0
- data/app/views/membership_comps/confirm.html.haml +85 -0
- data/app/views/membership_comps/create.html.haml +18 -0
- data/app/views/membership_comps/new.html.haml +82 -0
- data/app/views/membership_mailer/cancellation_confirmation.html.haml +9 -0
- data/app/views/membership_mailer/cancellation_confirmation.text.haml +6 -0
- data/app/views/membership_mailer/refund_problem.html.haml +18 -0
- data/app/views/membership_mailer/refund_problem.text.haml +14 -0
- data/app/views/membership_types/_form.html.haml +18 -53
- data/app/views/membership_types/_membership_type_fees.html.haml +0 -0
- data/app/views/membership_types/index.html.haml +1 -5
- data/app/views/memberships/_membership_scripts.js.erb +15 -0
- data/app/views/memberships/index.html.haml +18 -17
- data/app/views/order_mailer/confirmation_for.html.haml +8 -0
- data/app/views/orders/_order_sidebar.html.haml +1 -3
- data/app/views/organizations/_form.html.haml +6 -0
- data/app/views/pdfs/member.html.haml +66 -0
- data/app/views/pdfs/order.html.haml +84 -0
- data/app/views/people/_comp_membership.html.haml +23 -0
- data/app/views/people/_edit_modal.html.haml +6 -3
- data/app/views/people/show.html.haml +1 -2
- data/app/views/searches/_form.html.haml +34 -33
- data/app/views/searches/show.html.haml +4 -1
- data/app/views/segments/show.html.haml +4 -1
- data/app/views/shows/_ticket_table.html.haml +1 -1
- data/app/views/shows/index.html.haml +8 -2
- data/app/views/store/checkouts/_membership_info.html.haml +1 -0
- data/app/views/store/checkouts/thanks.html.haml +7 -3
- data/app/views/store/events/index.html.haml +9 -3
- data/app/views/store/events/single_show.html.haml +4 -1
- data/app/views/store/memberships/index.html.haml +2 -1
- data/app/views/store/orders/show.html.haml +2 -2
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/paperclip.rb +39 -0
- data/config/locales/devise_invitable.en.yml +1 -1
- data/config/locales/en.yml +9 -0
- data/config/routes.rb +14 -7
- data/db/migrate/20131223215615_goodbye_order_view.rb +6 -0
- data/db/migrate/20140114011856_add_welcome_message_to_memberships.rb +5 -0
- data/db/migrate/20140114212127_add_send_email_to_memberships.rb +5 -0
- data/db/migrate/20140125183606_index_memberships_and_types.rb +6 -0
- data/db/migrate/20140128213101_add_pdf_to_members.rb +5 -0
- data/db/migrate/20140128223140_add_uuid_to_member.rb +6 -0
- data/db/migrate/20140128223948_add_qr_code_to_member.rb +9 -0
- data/lib/artfully_ose/common_abilities.rb +1 -1
- data/lib/artfully_ose/engine.rb +23 -2
- data/lib/artfully_ose/version.rb +1 -1
- data/spec/factories/action_factories.rb +19 -0
- data/spec/factories/address_factories.rb +11 -0
- data/spec/factories/cart_factories.rb +26 -0
- data/spec/factories/chart_factories.rb +52 -0
- data/spec/factories/discount_factories.rb +11 -0
- data/spec/factories/donation_factories.rb +14 -0
- data/spec/factories/event_factories.rb +29 -0
- data/spec/factories/import_factories.rb +61 -0
- data/spec/factories/item_factories.rb +51 -0
- data/spec/factories/kit_factories.rb +27 -0
- data/spec/factories/member_factories.rb +19 -0
- data/spec/factories/membership_factories.rb +8 -0
- data/spec/factories/membership_type_factories.rb +18 -0
- data/spec/factories/order_factories.rb +40 -0
- data/spec/factories/organization_factories.rb +44 -0
- data/spec/factories/payments_factories.rb +97 -0
- data/spec/factories/person_factories.rb +44 -0
- data/spec/factories/phone_factories.rb +6 -0
- data/spec/factories/section_factories.rb +21 -0
- data/spec/factories/segment_factories.rb +6 -0
- data/spec/factories/show_factories.rb +33 -0
- data/spec/factories/ticket_factories.rb +57 -0
- data/spec/factories/ticket_offer_factories.rb +16 -0
- data/spec/factories/ticket_type_factories.rb +8 -0
- data/spec/factories/user_factories.rb +24 -0
- metadata +75 -17
- data/app/controllers/membership_awards_controller.rb +0 -60
- data/app/models/database_views/order_view.rb +0 -34
- data/app/models/membership_award.rb +0 -24
- data/app/models/orders/pdf_generation.rb +0 -75
- data/app/views/members/invitations/edit.html.erb +0 -14
- data/app/views/membership_awards/confirm.html.haml +0 -105
- data/app/views/membership_awards/create.html.haml +0 -1
- 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.
|
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-
|
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/
|
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/
|
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/
|
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.
|
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/
|
2200
|
-
- app/views/
|
2201
|
-
- app/views/
|
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
|
-
});
|