artfully_ose 1.2.0 → 1.3.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/app/assets/images/actions/open.png +0 -0
- data/app/assets/images/actions/pledge.png +0 -0
- data/app/assets/images/actions/pledge.psd +0 -0
- data/app/assets/images/glyphish/gray/cancel.png +0 -0
- data/app/assets/images/loading_gray.gif +0 -0
- data/app/assets/javascripts/application.js +30 -4
- data/app/assets/javascripts/baseball_card.js.coffee +235 -0
- data/app/assets/javascripts/boxoffice.js +12 -49
- data/app/assets/javascripts/contributions.js +264 -0
- data/app/assets/javascripts/custom/advanced_searches.js +142 -0
- data/app/assets/javascripts/custom/endless-scroll.js +1 -1
- data/app/assets/javascripts/custom/job-monitor.js +73 -0
- data/app/assets/javascripts/custom/kits-config.js +0 -2
- data/app/assets/javascripts/custom/mailchimp.js +14 -0
- data/app/assets/javascripts/custom/people.js +31 -2
- data/app/assets/javascripts/custom/person-finder.js +34 -0
- data/app/assets/javascripts/custom/searches.js +12 -0
- data/app/assets/javascripts/custom/user-finder.js +111 -0
- data/app/assets/javascripts/households.js +12 -5
- data/app/assets/javascripts/ical.js +138 -0
- data/app/assets/javascripts/jquery-lib/jquery.timeago.js +221 -0
- data/app/assets/javascripts/locationselector.js +1 -1
- data/app/assets/javascripts/memberships.js +24 -0
- data/app/assets/javascripts/relationships.js +10 -0
- data/app/assets/javascripts/search.js +22 -0
- data/app/assets/javascripts/store/sliding-wizard.js +2 -2
- data/app/assets/javascripts/store/store.js +51 -6
- data/app/assets/javascripts/tags.js +44 -0
- data/app/assets/stylesheets/application.sass +331 -32
- data/app/assets/stylesheets/bootstrap-overrides.css +24 -9
- data/app/assets/stylesheets/boxoffice.css.scss +0 -4
- data/app/assets/stylesheets/sass/_campaigns.sass +43 -0
- data/app/assets/stylesheets/sass/_tags.sass +10 -1
- data/app/assets/stylesheets/sass/fa-color.css.scss +13 -0
- data/app/assets/stylesheets/sass/store.sass +7 -7
- data/app/concerns/cart_finder.rb +10 -0
- data/app/concerns/oh_noes.rb +1 -1
- data/app/controllers/actions_controller.rb +5 -5
- data/app/controllers/addresses_controller.rb +1 -1
- data/app/controllers/advanced_search_segments_controller.rb +97 -0
- data/app/controllers/advanced_searches_controller.rb +118 -0
- data/app/controllers/appeals_controller.rb +63 -0
- data/app/controllers/artfully_ose_controller.rb +20 -2
- data/app/controllers/campaigns_controller.rb +90 -0
- data/app/controllers/charts_controller.rb +8 -2
- data/app/controllers/console_sales_controller.rb +21 -23
- data/app/controllers/contributions_controller.rb +74 -43
- data/app/controllers/converts_controller.rb +21 -0
- data/app/controllers/delete_ticket_types_controller.rb +35 -0
- data/app/controllers/events_pass_types_controller.rb +10 -2
- data/app/controllers/export_controller.rb +4 -4
- data/app/controllers/households_controller.rb +63 -15
- data/app/controllers/imports_controller.rb +13 -10
- data/app/controllers/job_monitors_controller.rb +9 -0
- data/app/controllers/members/people_controller.rb +7 -5
- data/app/controllers/members/sessions_controller.rb +1 -0
- data/app/controllers/membership_comps_controller.rb +5 -20
- data/app/controllers/memberships_controller.rb +2 -2
- data/app/controllers/merges_controller.rb +7 -6
- data/app/controllers/mobile/users_controller.rb +18 -6
- data/app/controllers/notes_controller.rb +5 -1
- data/app/controllers/orders_controller.rb +30 -13
- data/app/controllers/organizations_controller.rb +8 -0
- data/app/controllers/passes_kits_controller.rb +2 -4
- data/app/controllers/people_controller.rb +105 -17
- data/app/controllers/pledges_controller.rb +64 -0
- data/app/controllers/preview_rows_controller.rb +29 -0
- data/app/controllers/regular_donation_kits_controller.rb +11 -6
- data/app/controllers/sales_controller.rb +72 -40
- data/app/controllers/searches_controller.rb +37 -6
- data/app/controllers/segments_controller.rb +33 -2
- data/app/controllers/settlements_controller.rb +13 -7
- data/app/controllers/shows_controller.rb +58 -24
- data/app/controllers/statements_controller.rb +2 -2
- data/app/controllers/store/checkouts_controller.rb +43 -26
- data/app/controllers/store/donations_controller.rb +27 -11
- data/app/controllers/store/memberships_controller.rb +37 -4
- data/app/controllers/store/orders_controller.rb +26 -10
- data/app/controllers/store/passes_controller.rb +30 -3
- data/app/controllers/tags_controller.rb +42 -0
- data/app/controllers/ticket_types_controller.rb +9 -2
- data/app/controllers/tickets_controller.rb +6 -4
- data/app/controllers/unacknowledged_gifts_controller.rb +45 -0
- data/app/controllers/user_memberships_controller.rb +47 -8
- data/app/helpers/advanced_searches_helper.rb +252 -0
- data/app/helpers/artfully_ose_helper.rb +33 -4
- data/app/helpers/checkouts_helper.rb +16 -0
- data/app/helpers/mailchimp_lists_for_search_helper.rb +21 -0
- data/app/helpers/orders_helper.rb +11 -0
- data/app/helpers/people_helper.rb +28 -1
- data/app/helpers/relationships_helper.rb +6 -0
- data/app/helpers/sales_helper.rb +3 -1
- data/app/helpers/searches_helper.rb +3 -1
- data/app/helpers/segments_helper.rb +3 -0
- data/app/mailers/order_mailer.rb +8 -1
- data/app/mailers/producer_mailer.rb +39 -0
- data/app/mailers/reports_mailer.rb +6 -1
- data/app/models/ability.rb +15 -8
- data/app/models/action.rb +33 -4
- data/app/models/actions/change_action.rb +3 -1
- data/app/models/actions/comp_action.rb +3 -1
- data/app/models/actions/convert_action.rb +19 -0
- data/app/models/actions/do_action.rb +3 -1
- data/app/models/actions/exchange_action.rb +3 -1
- data/app/models/actions/get_action.rb +3 -1
- data/app/models/actions/give_action.rb +8 -2
- data/app/models/actions/go_action.rb +3 -1
- data/app/models/actions/hear_action.rb +15 -1
- data/app/models/actions/join_action.rb +3 -1
- data/app/models/actions/mailchimp_hear_action.rb +17 -0
- data/app/models/actions/pledge_action.rb +19 -0
- data/app/models/actions/refund_action.rb +3 -1
- data/app/models/actions/say_action.rb +3 -1
- data/app/models/actions/system_action.rb +17 -0
- data/app/models/address.rb +76 -31
- data/app/models/advanced_search.rb +434 -0
- data/app/models/advanced_search_segment.rb +12 -0
- data/app/models/appeal.rb +106 -0
- data/app/models/box_office.rb +1 -1
- data/app/models/budget_restriction.rb +9 -0
- data/app/models/campaign.rb +141 -0
- data/app/models/cart.rb +39 -4
- data/app/models/chart.rb +2 -2
- data/app/models/checkout.rb +54 -10
- data/app/models/comp.rb +7 -5
- data/app/models/company.rb +2 -0
- data/app/models/console_sale.rb +26 -0
- data/app/models/contribution.rb +327 -62
- data/app/models/convert.rb +62 -0
- data/app/models/daily_membership_report.rb +1 -1
- data/app/models/database_views/item_view.rb +91 -49
- data/app/models/discount.rb +1 -1
- data/app/models/discounts/discount_type.rb +2 -1
- data/app/models/donation.rb +27 -2
- data/app/models/donation_search.rb +188 -10
- data/app/models/door_list.rb +39 -2
- data/app/models/event.rb +31 -15
- data/app/models/ext.rb +3 -3
- data/app/models/ext/delayed_indexing.rb +41 -1
- data/app/models/ext/integrations.rb +6 -0
- data/app/models/forwarding_job_monitor.rb +2 -0
- data/app/models/household.rb +1 -1
- data/app/models/import.rb +39 -8
- data/app/models/imports/donations_import.rb +110 -19
- data/app/models/imports/events_import.rb +3 -2
- data/app/models/imports/mappings.rb +991 -0
- data/app/models/imports/memberships_import.rb +218 -20
- data/app/models/imports/people_import.rb +9 -1
- data/app/models/imports/rollback.rb +9 -0
- data/app/models/imports/validations.rb +7 -0
- data/app/models/individual.rb +3 -1
- data/app/models/item.rb +55 -17
- data/app/models/job/acknowledge_job.rb +23 -0
- data/app/models/job/checkout_processor.rb +1 -1
- data/app/models/job/convert_order_processor.rb +14 -0
- data/app/models/job/daily_email_report_job.rb +1 -12
- data/app/models/job/destroy_show_job.rb +1 -6
- data/app/models/job/destroy_tag_job.rb +18 -0
- data/app/models/job/door_list_generator_job.rb +33 -0
- data/app/models/job/door_list_mailer_job.rb +15 -0
- data/app/models/job/email_organization_sales_report_job.rb +32 -0
- data/app/models/job/expire_ticket_job.rb +19 -2
- data/app/models/job/export_people_job.rb +47 -0
- data/app/models/job/export_settlements_job.rb +24 -0
- data/app/models/job/geocode_address_job.rb +2 -7
- data/app/models/job/mailchimp_sync_job.rb +61 -3
- data/app/models/job/merge_job.rb +19 -0
- data/app/models/job/order_export_job.rb +36 -0
- data/app/models/job/order_mailer_job.rb +1 -2
- data/app/models/job/order_processor.rb +17 -6
- data/app/models/job/person_lifetime_value_job.rb +1 -0
- data/app/models/job/search_export_job.rb +33 -0
- data/app/models/job/suggest_households_by_address_job.rb +29 -0
- data/app/models/job/suggest_households_by_spouse_job.rb +22 -0
- data/app/models/job_monitor.rb +14 -0
- data/app/models/kit.rb +35 -8
- data/app/models/kits/campaigns_kit.rb +27 -0
- data/app/models/kits/mailchimp_kit.rb +548 -124
- data/app/models/kits/membership_kit.rb +14 -6
- data/app/models/kits/passes_kit.rb +14 -6
- data/app/models/kits/regular_donation_kit.rb +29 -2
- data/app/models/{relationships_kit.rb → kits/relationships_kit.rb} +3 -7
- data/app/models/kits/scannable_tickets_kit.rb +0 -5
- data/app/models/kits/sponsored_donation_kit.rb +2 -12
- data/app/models/kits/ticketing_kit.rb +9 -1
- data/app/models/linking_job_monitor.rb +2 -0
- data/app/models/list_grouping.rb +10 -0
- data/app/models/member.rb +35 -23
- data/app/models/member_number_generator.rb +2 -0
- data/app/models/membership.rb +23 -14
- data/app/models/membership_change.rb +17 -1
- data/app/models/membership_comp.rb +48 -23
- data/app/models/membership_comp_job.rb +7 -0
- data/app/models/membership_type.rb +13 -7
- data/app/models/monitorable.rb +19 -0
- data/app/models/note.rb +10 -1
- data/app/models/order.rb +170 -21
- data/app/models/order_handler.rb +13 -2
- data/app/models/orders/convert_order.rb +11 -0
- data/app/models/organization.rb +87 -9
- data/app/models/parsed_row.rb +142 -67
- data/app/models/pass.rb +13 -7
- data/app/models/pass_type.rb +17 -4
- data/app/models/passes_report.rb +6 -3
- data/app/models/payment.rb +16 -6
- data/app/models/payments/cash_payment.rb +1 -0
- data/app/models/payments/check_payment.rb +1 -5
- data/app/models/payments/comp_payment.rb +0 -1
- data/app/models/payments/credit_card_payment.rb +2 -7
- data/app/models/permission.rb +28 -0
- data/app/models/person.rb +503 -94
- data/app/models/phone.rb +3 -0
- data/app/models/redis_manager.rb +39 -0
- data/app/models/relationship.rb +31 -4
- data/app/models/relationship_builder.rb +0 -3
- data/app/models/rolling_membership_type.rb +5 -1
- data/app/models/s3_coordinator.rb +21 -0
- data/app/models/sale.rb +7 -4
- data/app/models/scheduled_pledge_payment.rb +69 -0
- data/app/models/search.rb +236 -24
- data/app/models/section.rb +6 -4
- data/app/models/show.rb +21 -12
- data/app/models/show_validator.rb +45 -0
- data/app/models/soft_credit.rb +126 -0
- data/app/models/subscribed_list.rb +52 -0
- data/app/models/suggested_household.rb +8 -2
- data/app/models/ticket.rb +35 -10
- data/app/models/ticket/locker.rb +25 -0
- data/app/models/ticket_summary.rb +1 -1
- data/app/models/ticket_type.rb +14 -2
- data/app/models/user.rb +42 -3
- data/app/models/user_membership.rb +57 -3
- data/app/models/valuation/lifetime_donations.rb +2 -2
- data/app/models/valuation/lifetime_pledges.rb +35 -0
- data/app/models/valuation/lifetime_value.rb +5 -1
- data/app/models/valuation_query.rb +109 -0
- data/app/models/venue.rb +8 -0
- data/app/views/actions/_action.html.haml +1 -1
- data/app/views/actions/_form.html.haml +2 -2
- data/app/views/actions/give/_show.html.haml +1 -1
- data/app/views/actions/pledge/_show.html.haml +8 -0
- data/app/views/actions/shared/_show.html.haml +1 -1
- data/app/views/addresses/_address.html.haml +3 -1
- data/app/views/advanced_search_segments/_advanced_searches_results.html.haml +15 -0
- data/app/views/advanced_search_segments/index.html.haml +18 -0
- data/app/views/advanced_search_segments/show.html.haml +46 -0
- data/app/views/advanced_searches/_form.html.haml +61 -0
- data/app/views/advanced_searches/_hit.html.haml +10 -0
- data/app/views/advanced_searches/_household.html.haml +7 -0
- data/app/views/advanced_searches/_new_condition.html.haml +3 -0
- data/app/views/advanced_searches/_people_count.html.erb +3 -0
- data/app/views/advanced_searches/_people_list.html.haml +5 -0
- data/app/views/advanced_searches/filters/_action.html.haml +12 -0
- data/app/views/advanced_searches/filters/_birthday.html.haml +9 -0
- data/app/views/advanced_searches/filters/_discount_code.html.haml +7 -0
- data/app/views/advanced_searches/filters/_donated.html.haml +17 -0
- data/app/views/advanced_searches/filters/_email.html.haml +7 -0
- data/app/views/advanced_searches/filters/_has_purchased_for.html.haml +9 -0
- data/app/views/advanced_searches/filters/_keyword.html.haml +9 -0
- data/app/views/advanced_searches/filters/_lifetime_value.html.haml +13 -0
- data/app/views/advanced_searches/filters/_limit_results.html.haml +7 -0
- data/app/views/advanced_searches/filters/_location.html.haml +11 -0
- data/app/views/advanced_searches/filters/_mailchimp_group.html.haml +8 -0
- data/app/views/advanced_searches/filters/_mailchimp_list.html.haml +8 -0
- data/app/views/advanced_searches/filters/_membership_ended.html.haml +9 -0
- data/app/views/advanced_searches/filters/_membership_started.html.haml +9 -0
- data/app/views/advanced_searches/filters/_membership_status.html.haml +8 -0
- data/app/views/advanced_searches/filters/_membership_type.html.haml +8 -0
- data/app/views/advanced_searches/filters/_orders.html.haml +10 -0
- data/app/views/advanced_searches/filters/_pass_type.html.haml +9 -0
- data/app/views/advanced_searches/filters/_relationships.html.haml +8 -0
- data/app/views/advanced_searches/filters/_segment.html.haml +8 -0
- data/app/views/advanced_searches/filters/_tagging.html.haml +9 -0
- data/app/views/advanced_searches/new.html.haml +12 -0
- data/app/views/advanced_searches/show.html.haml +107 -0
- data/app/views/advanced_searches/shows_for_org.html.haml +1 -0
- data/app/views/advanced_searches/ticket_types_for_org.html.haml +1 -0
- data/app/views/advanced_searches/update.js.erb +9 -0
- data/app/views/appeals/_form.html.haml +113 -0
- data/app/views/appeals/_header.html.haml +6 -0
- data/app/views/appeals/_heard_action.html.haml +16 -0
- data/app/views/appeals/edit.html.haml +8 -0
- data/app/views/appeals/new.html.haml +6 -0
- data/app/views/campaigns/_campaign_donations.html.haml +19 -0
- data/app/views/campaigns/_campaign_stats.html.haml +28 -0
- data/app/views/campaigns/_form.html.haml +48 -0
- data/app/views/campaigns/_header.html.haml +6 -0
- data/app/views/campaigns/edit.html.haml +6 -0
- data/app/views/campaigns/index.html.haml +33 -0
- data/app/views/campaigns/new.html.haml +6 -0
- data/app/views/campaigns/show.html.haml +132 -0
- data/app/views/console_sales/_cart.html.haml +3 -2
- data/app/views/console_sales/_payment.html.haml +14 -1
- data/app/views/console_sales/new.html.haml +11 -6
- data/app/views/contributions/_form.html.haml +139 -37
- data/app/views/contributions/_header.html.haml +5 -0
- data/app/views/contributions/_match_eligible.html.haml +24 -0
- data/app/views/contributions/_pledge_payment.html.haml +22 -0
- data/app/views/contributions/_search.html.haml +30 -0
- data/app/views/contributions/_soft_credit.html.haml +25 -0
- data/app/views/contributions/edit.html.haml +5 -8
- data/app/views/contributions/find_person.html.haml +16 -15
- data/app/views/contributions/index.html.haml +61 -24
- data/app/views/contributions/new.html.haml +5 -5
- data/app/views/converts/_grouped_form.html.haml +11 -0
- data/app/views/converts/new.html.haml +35 -0
- data/app/views/delete_ticket_types/_cannot_destroy_modal.html.haml +11 -0
- data/app/views/delete_ticket_types/_cannot_destroy_modal.rb +0 -0
- data/app/views/delete_ticket_types/_confirm_destroy_modal.html.haml +13 -0
- data/app/views/delete_ticket_types/show.html.haml +4 -0
- data/app/views/discounts/_form.html.haml +1 -1
- data/app/views/events/_day_date_show.html.haml +4 -2
- data/app/views/events/_glance.html.haml +12 -12
- data/app/views/events/_header.html.haml +1 -1
- data/app/views/events/_list.html.haml +1 -1
- data/app/views/events/_menu.html.haml +26 -21
- data/app/views/events/_section_fields.html.haml +1 -1
- data/app/views/events/_tax_deductible_message.html.haml +3 -0
- data/app/views/events/_ticket_type_fields.html.haml +13 -3
- data/app/views/events/index.html.haml +2 -1
- data/app/views/events/messages.html.haml +12 -10
- data/app/views/events/show.html.haml +6 -6
- data/app/views/events/temp_discount_form.html.haml +1 -1
- data/app/views/events_pass_types/_form.html.haml +1 -1
- data/app/views/events_pass_types/new.html.haml +1 -2
- data/app/views/households/_edit_modal.html.haml +9 -4
- data/app/views/households/_form.html.haml +6 -1
- data/app/views/households/_header.html.haml +9 -18
- data/app/views/households/confirm.html.haml +43 -0
- data/app/views/households/new.html.haml +3 -1
- data/app/views/households/show.html.haml +2 -1
- data/app/views/households/suggested.html.haml +10 -27
- data/app/views/imports/_export_links.html.haml +2 -2
- data/app/views/imports/donations/_new.html.haml +49 -6
- data/app/views/imports/donations/_pending.html.haml +69 -22
- data/app/views/imports/donations/_preview.html.haml +23 -0
- data/app/views/imports/events/_new.html.haml +8 -8
- data/app/views/imports/index.html.haml +26 -21
- data/app/views/imports/memberships/_approved.html.haml +16 -0
- data/app/views/imports/memberships/_caching.html.haml +17 -0
- data/app/views/imports/memberships/_failed.html.haml +5 -0
- data/app/views/imports/memberships/_imported.html.haml +45 -0
- data/app/views/imports/memberships/_importing.html.haml +20 -0
- data/app/views/imports/memberships/_invalid.html.haml +5 -0
- data/app/views/imports/memberships/_new.html.haml +155 -0
- data/app/views/imports/memberships/_pending.html.haml +85 -0
- data/app/views/imports/memberships/_preview_rows.html.haml +38 -0
- data/app/views/imports/people/_new.html.haml +81 -15
- data/app/views/imports/shared/_inspect_modal.html.haml +10 -1
- data/app/views/imports/shared/_new_sidebar.html.haml +12 -0
- data/app/views/imports/show.html.haml +0 -3
- data/app/views/index/_action.html.haml +4 -3
- data/app/views/index/_recent_activity.html.haml +14 -7
- data/app/views/index/dashboard.html.haml +27 -14
- data/app/views/job_monitors/_job_monitor_show.html.haml +34 -0
- data/app/views/job_monitors/_linking_job_monitor_show.html.haml +31 -0
- data/app/views/job_monitors/show.html.haml +1 -0
- data/app/views/layouts/_google_analytics.html.haml +9 -11
- data/app/views/layouts/_menu.html.haml +5 -3
- data/app/views/layouts/application.html.haml +12 -4
- data/app/views/layouts/devise_layout.html.haml +1 -1
- data/app/views/layouts/storefront.html.haml +7 -10
- data/app/views/members/index/index.html.haml +82 -4
- data/app/views/members/mailer/_invitation_body.html.haml +2 -2
- data/app/views/members/passwords/new.html.haml +13 -0
- data/app/views/members/sessions/new.html.haml +1 -1
- data/app/views/membership_comps/confirm.html.haml +10 -8
- data/app/views/membership_comps/create.html.haml +1 -3
- data/app/views/membership_kits/edit.html.haml +6 -0
- data/app/views/membership_types/_form.html.haml +1 -1
- data/app/views/membership_types/index.html.haml +11 -3
- data/app/views/memberships/index.html.haml +122 -109
- data/app/views/merges/find_person.html.haml +5 -3
- data/app/views/merges/new.html.haml +13 -4
- data/app/views/notes/_note.html.haml +3 -3
- data/app/views/order_mailer/confirmation_for.html.haml +1 -0
- data/app/views/order_mailer/confirmation_for.text.haml +1 -0
- data/app/views/orders/_assignable_donations.html.haml +25 -0
- data/app/views/orders/_assignable_pledges.html.haml +26 -0
- data/app/views/orders/_item_table.haml +20 -8
- data/app/views/orders/_order_sidebar.html.haml +37 -7
- data/app/views/orders/membership.html.haml +2 -2
- data/app/views/orders/passes.html.haml +4 -4
- data/app/views/orders/sales.html.haml +5 -5
- data/app/views/orders/show.html.haml +26 -7
- data/app/views/organizations/_form.html.haml +0 -5
- data/app/views/pass_types/index.html.haml +13 -5
- data/app/views/passes/index.html.haml +50 -39
- data/app/views/passes_kits/edit.html.haml +6 -0
- data/app/views/passes_reports/index.html.haml +1 -1
- data/app/views/pdfs/member.html.haml +1 -1
- data/app/views/pdfs/member_card_generator/blanks_usa_idc6.html.haml +1 -1
- data/app/views/pdfs/order.html.haml +5 -3
- data/app/views/people/_address_fields.html.haml +40 -0
- data/app/views/people/_convert_to_company_modal.html.haml +3 -0
- data/app/views/people/_edit_modal.html.haml +121 -38
- data/app/views/people/_form.html.haml +8 -14
- data/app/views/people/_header.html.haml +11 -16
- data/app/views/people/_list.html.haml +3 -9
- data/app/views/people/_mailchimp_group.html.haml +3 -0
- data/app/views/people/_phone_fields.html.haml +1 -1
- data/app/views/people/_relationship_fields.html.haml +10 -5
- data/app/views/people/_work_with_menu.html.haml +14 -8
- data/app/views/people/index.html.haml +10 -9
- data/app/views/people/new.html.haml +18 -4
- data/app/views/people/pledges.html.haml +13 -0
- data/app/views/people/show.html.haml +96 -45
- data/app/views/pledges/_none_scheduled_payment_table.html.haml +17 -0
- data/app/views/pledges/_receive_pledge.html.haml +87 -0
- data/app/views/pledges/_scheduled_payments_table.html.haml +18 -0
- data/app/views/pledges/index.html.haml +47 -0
- data/app/views/preview_rows/index.html.haml +1 -0
- data/app/views/producer_mailer/donation_notification.html.haml +9 -0
- data/app/views/producer_mailer/donation_notification.text.erb +8 -0
- data/app/views/producer_mailer/door_list_notification.html.haml +10 -0
- data/app/views/producer_mailer/door_list_notification.text.erb +6 -0
- data/app/views/producer_mailer/mailchimp_kit_initial_sync_notification.html.haml +2 -2
- data/app/views/regular_donation_kits/edit.html.haml +29 -1
- data/app/views/relationships/index.html.haml +1 -1
- data/app/views/sales/_boxoffice.html.haml +15 -5
- data/app/views/sales/_doorlist.html.haml +2 -2
- data/app/views/sales/new.html.haml +2 -2
- data/app/views/searches/_company.html.haml +7 -0
- data/app/views/searches/_form.html.haml +75 -8
- data/app/views/searches/_household.html.haml +2 -2
- data/app/views/searches/_individual.html.haml +7 -0
- data/app/views/searches/show.html.haml +59 -23
- data/app/views/segments/index.html.haml +1 -1
- data/app/views/segments/show.html.haml +36 -1
- data/app/views/shared/_baseball_card.html.haml +40 -0
- data/app/views/shared/_tags.html.haml +10 -8
- data/app/views/shows/_empty_ticket_table.html.haml +12 -0
- data/app/views/shows/_sections_table.html.haml +78 -69
- data/app/views/shows/_ticket_table.html.haml +10 -7
- data/app/views/shows/index.html.haml +95 -85
- data/app/views/statements/_shows.html.haml +1 -1
- data/app/views/store/checkouts/_event_information.html.haml +89 -0
- data/app/views/store/checkouts/_shopping_cart_display.haml +8 -0
- data/app/views/store/checkouts/_thanks.html.haml +40 -0
- data/app/views/store/checkouts/create.html.haml +1 -0
- data/app/views/store/checkouts/shopping_cart_display/_discounts.haml +8 -0
- data/app/views/store/checkouts/shopping_cart_display/_donations.haml +15 -0
- data/app/views/store/checkouts/{_membership_info.html.haml → shopping_cart_display/_membership_info.html.haml} +0 -0
- data/app/views/store/checkouts/shopping_cart_display/_memberships.haml +8 -0
- data/app/views/store/checkouts/shopping_cart_display/_passes.haml +9 -0
- data/app/views/store/checkouts/shopping_cart_display/_tickets.haml +10 -0
- data/app/views/store/checkouts/shopping_cart_display/_total.haml +10 -0
- data/app/views/store/donations/index.html.haml +4 -0
- data/app/views/store/events/_contact_info.html.haml +8 -0
- data/app/views/store/events/_venue.html.haml +14 -7
- data/app/views/store/events/calendar.html.haml +2 -9
- data/app/views/store/events/show.html.haml +2 -9
- data/app/views/store/events/single_show.html.haml +3 -3
- data/app/views/store/memberships/index.html.haml +3 -3
- data/app/views/store/orders/blank.html.erb +34 -0
- data/app/views/store/orders/show.html.haml +15 -6
- data/app/views/store/passes/index.html.haml +3 -3
- data/app/views/store/shared/_small_donate_form.html.haml +21 -18
- data/app/views/tags/_edit_modal.html.haml +16 -0
- data/app/views/tags/index.html.haml +23 -0
- data/app/views/unacknowledged_gifts/_heard_action.html.haml +10 -0
- data/app/views/unacknowledged_gifts/index.html.haml +76 -0
- data/app/views/user_memberships/_list.html.haml +147 -24
- data/config/initializers/delayed_job_config.rb +10 -1
- data/config/routes.rb +85 -9
- data/db/migrate/20140422193345_add_email_copy_to_pass_type.rb +1 -1
- data/db/migrate/20140616045851_add_birthdate_to_search.rb +7 -0
- data/db/migrate/20140623131025_create_campaigns.rb +27 -0
- data/db/migrate/20140627120214_create_appeals.rb +28 -0
- data/db/migrate/20140630151406_add_deleted_at_to_campaigns.rb +9 -0
- data/db/migrate/20140701124100_add_segment_id_and_notes_to_appeals.rb +12 -0
- data/db/migrate/20140702115815_add_campaign_id_and_appeal_id_to_donations.rb +14 -0
- data/db/migrate/20140702121928_add_materials_to_appeals.rb +11 -0
- data/db/migrate/20140702150521_add_deleted_at_to_appeals.rb +9 -0
- data/db/migrate/20140709151816_add_campaign_id_and_appeal_id_to_orders.rb +14 -0
- data/db/migrate/20140723133850_remove_campaign_id_and_apeal_id_from_orders.rb +11 -0
- data/db/migrate/20140723134923_add_commitment_date_to_donations.rb +6 -0
- data/db/migrate/20140730141515_add_match_eligible_to_donations.rb +15 -0
- data/db/migrate/20140818141140_create_soft_credits.rb +12 -0
- data/db/migrate/20140903140113_add_pledge_to_donations.rb +9 -0
- data/db/migrate/20140904183953_add_destroyed_at_to_relationships.rb +7 -0
- data/db/migrate/20140905080503_create_scheduled_pledge_payments.rb +16 -0
- data/db/migrate/20140909150251_add_org_to_suggested_household.rb +7 -0
- data/db/migrate/20141007114614_add_order_id_to_donations.rb +15 -0
- data/db/migrate/20141021134013_add_lifetime_pledges_to_people.rb +5 -0
- data/db/migrate/20141027191307_default_overwrite_member_addresses_to_false.rb +5 -0
- data/db/migrate/20141031193839_update_relations.rb +9 -0
- data/db/migrate/20141126183258_add_mailchimp_status_fields_to_people.rb +6 -0
- data/db/migrate/20141126184811_add_processing_at_to_ticket.rb +5 -0
- data/db/migrate/20141127135743_add_import_to_campaigns.rb +6 -0
- data/db/migrate/20141128143944_add_fiscal_year_to_donations.rb +5 -0
- data/db/migrate/20141128151407_remove_fiscal_year_from_scheduled_pledge_payments.rb +3 -0
- data/db/migrate/20141204164400_add_more_indexes_to_actions.rb +7 -0
- data/db/migrate/20141204171612_add_indexes_to_charts.rb +12 -0
- data/db/migrate/20141204172658_add_hide_on_recent_activity_to_actions.rb +5 -0
- data/db/migrate/20141204173004_add_indexes_to_ept.rb +9 -0
- data/db/migrate/20141204211933_remove_membership_counts_from_members.rb +13 -0
- data/db/migrate/20141205202030_create_subscribed_lists.rb +19 -0
- data/db/migrate/20141208225228_add_mailchimp_lists_to_searches.rb +5 -0
- data/db/migrate/20141210162329_add_bounced_to_subscribed_lists.rb +5 -0
- data/db/migrate/20141211165307_add_external_reference_to_actions.rb +5 -0
- data/db/migrate/20141212172119_add_not_mailchimp_lists_to_searches.rb +5 -0
- data/db/migrate/20141229204605_normalize_states_in_addresses.rb +11 -0
- data/db/migrate/20150113091344_add_fiscal_to_organizations.rb +11 -0
- data/db/migrate/20150113091434_create_budget_restrictions.rb +14 -0
- data/db/migrate/20150113091503_add_budget_restriction_to_campaigns.rb +14 -0
- data/db/migrate/20150129091354_add_campaign_to_searches.rb +13 -0
- data/db/migrate/20150203174456_create_list_groupings.rb +12 -0
- data/db/migrate/20150203222451_add_groupings_to_searches.rb +6 -0
- data/db/migrate/20150219153827_add_roles_to_user_memberships.rb +13 -0
- data/db/migrate/20150223145657_add_daily_sales_to_user_membership.rb +13 -0
- data/db/migrate/20150318171857_create_advanced_searches.rb +16 -0
- data/db/migrate/20150319185940_add_org_id_index_to_orders.rb +5 -0
- data/db/migrate/20150325085516_add_received_amount_to_donations.rb +16 -0
- data/db/migrate/20150325173053_add_pass_index_to_tickets.rb +5 -0
- data/db/migrate/20150331084817_add_creator_id_to_orders.rb +11 -0
- data/db/migrate/20150406162656_index_tickets_on_action_id.rb +5 -0
- data/db/migrate/20150408123349_add_donor_instructions_to_orders.rb +9 -0
- data/db/migrate/20150408125600_add_index_to_imports.rb +5 -0
- data/db/migrate/20150414193419_add_index_to_phone.rb +5 -0
- data/db/migrate/20150414193646_add_index_to_taggings.rb +5 -0
- data/db/migrate/20150415113013_add_nickname_to_people.rb +11 -0
- data/db/migrate/20150420143707_add_indexes_to_donations.rb +7 -0
- data/db/migrate/20150421092302_add_kind_to_addresses.rb +11 -0
- data/db/migrate/20150513154513_add_name_to_advanced_search.rb +5 -0
- data/db/migrate/20150518131946_add_receive_donation_notification_to_user_memberships.rb +9 -0
- data/db/migrate/20150520182350_remove_name_from_advanced_search.rb +9 -0
- data/db/migrate/20150520202900_create_advanced_search_segments.rb +9 -0
- data/db/migrate/20150520210658_add_advanced_search_id_to_advanced_search_segment.rb +5 -0
- data/db/migrate/20150521183507_add_organization_id_to_advanced_search_segment.rb +5 -0
- data/db/migrate/20150602204548_add_index_on_deleted_at.rb +5 -0
- data/db/migrate/20150711143014_add_receive_door_list_to_user_memberships.rb +10 -0
- data/db/migrate/20150716000301_create_job_monitors_table.rb +12 -0
- data/db/migrate/20150807005404_re_refresh_show_stats.rb +8 -0
- data/db/migrate/20150810133417_convert_business_to_work.rb +5 -0
- data/db/migrate/20150812135205_update_notes_nulls.rb +9 -0
- data/db/migrate/20150813202745_index_household_id.rb +6 -0
- data/db/migrate/20150814075653_add_maiden_name_to_people.rb +9 -0
- data/db/migrate/20150911203530_normalize_countries_in_addresses.rb +11 -0
- data/db/migrate/20150922155253_add_advanced_search_segment_id_to_membership_types.rb +5 -0
- data/db/migrate/20150922155308_add_advanced_search_segment_id_to_pass_types.rb +5 -0
- data/db/migrate/20151006180702_add_deleted_at_to_ticket_types.rb +5 -0
- data/db/migrate/20151009175206_add_receipt_details_to_ticket_types.rb +5 -0
- data/db/migrate/20151112174723_index_list_groupings.rb +5 -0
- data/lib/artfully_ose/common_abilities.rb +80 -57
- data/lib/artfully_ose/version.rb +1 -1
- data/lib/tasks/artfully_ose.rake +46 -4
- data/spec/factories/action_factories.rb +2 -0
- data/spec/factories/address_factories.rb +2 -2
- data/spec/factories/advanced_search_factories.rb +45 -0
- data/spec/factories/advanced_search_segment_factories.rb +6 -0
- data/spec/factories/advanced_segment_factories.rb +6 -0
- data/spec/factories/campaign_factories.rb +20 -0
- data/spec/factories/cart_factories.rb +24 -0
- data/spec/factories/chart_factories.rb +4 -0
- data/spec/factories/event_factories.rb +6 -0
- data/spec/factories/item_factories.rb +23 -1
- data/spec/factories/kit_factories.rb +27 -3
- data/spec/factories/member_factories.rb +8 -1
- data/spec/factories/membership_factories.rb +12 -0
- data/spec/factories/membership_type_factories.rb +18 -0
- data/spec/factories/note_factories.rb +7 -0
- data/spec/factories/order_factories.rb +7 -0
- data/spec/factories/pass_factories.rb +6 -0
- data/spec/factories/payments_factories.rb +1 -1
- data/spec/factories/person_factories.rb +46 -4
- data/spec/factories/scheduled_pledge_payment_factories.rb +10 -0
- data/spec/factories/show_factories.rb +8 -3
- data/spec/factories/soft_credit_factories.rb +8 -0
- data/spec/factories/ticket_factories.rb +22 -9
- data/spec/factories/user_factories.rb +16 -8
- metadata +342 -59
- data/app/controllers/comps_controller.rb +0 -47
- data/app/models/household_suggester.rb +0 -58
- data/app/views/searches/_person.html.haml +0 -10
- data/app/views/store/checkouts/thanks.html.haml +0 -134
@@ -9,16 +9,18 @@
|
|
9
9
|
.span9
|
10
10
|
= render "shared/error_messages", :target => @event
|
11
11
|
= form_for( @event, :html => { :class => 'form-horizontal' } ) do |form|
|
12
|
-
|
13
|
-
|
14
|
-
.
|
15
|
-
=form.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
.
|
20
|
-
=form.
|
21
|
-
|
12
|
+
%fieldset
|
13
|
+
%legend Custom Question
|
14
|
+
.control-group
|
15
|
+
=form.label :show_special_instructions, "Ask for more information during checkout?", :class => 'control-label'
|
16
|
+
.controls
|
17
|
+
=form.check_box :show_special_instructions
|
18
|
+
|
19
|
+
.control-group
|
20
|
+
=form.label :name, "Special Instructions Caption", :class => 'control-label'
|
21
|
+
.controls
|
22
|
+
=form.text_field :special_instructions_caption
|
23
|
+
|
22
24
|
.form-actions
|
23
25
|
= render :partial => "shared/save_save_and_next", :locals => {:form => form}
|
24
26
|
|
@@ -11,14 +11,14 @@
|
|
11
11
|
= render :partial => "glance", :locals => { :report => @event.glance }
|
12
12
|
.span6
|
13
13
|
%h3 Next Show
|
14
|
-
= render :partial => "day_date_show", :locals => { :show => @event.
|
14
|
+
= render :partial => "day_date_show", :locals => { :show => @event.next_show_include_unpublished, :message => "There are no upcoming shows" }
|
15
15
|
.row-fluid
|
16
16
|
.span6
|
17
17
|
#description
|
18
18
|
%h3 Description
|
19
|
-
-
|
19
|
+
-if @event.description.present?
|
20
20
|
=simple_format @event.description
|
21
|
-
-
|
21
|
+
-elsif current_user.can? :manage, Event
|
22
22
|
.no-image#add-a-description
|
23
23
|
#text
|
24
24
|
=link_to 'Add an event description', edit_event_path(@event)
|
@@ -28,9 +28,9 @@
|
|
28
28
|
%h3 Venue
|
29
29
|
#venue.row-fluid
|
30
30
|
.span6
|
31
|
-
-
|
31
|
+
-if @event.venue.city.present?
|
32
32
|
=link_to image_tag("http://maps.google.com/maps/api/staticmap?size=140x140&maptype=roadmap&markers=color:red|#{@event.venue.address_as_url_query}&sensor=false&zoom=15"), "http://maps.google.com/maps?q=#{@event.venue.address_as_url_query.html_safe}&z=15"
|
33
|
-
-
|
33
|
+
-elsif current_user.can? :manage, Event
|
34
34
|
.no-image#add-a-venue
|
35
35
|
#text
|
36
36
|
=icon_tag '07-map-marker'
|
@@ -42,7 +42,7 @@
|
|
42
42
|
-unless @event.venue.address2.blank?
|
43
43
|
%div=@event.venue.address2
|
44
44
|
%div=@event.venue.city_state_zip_as_string
|
45
|
-
- if @event.destroyable?
|
45
|
+
- if @event.destroyable? && (current_user.can? :manage, Event)
|
46
46
|
.row-fluid
|
47
47
|
.span6
|
48
48
|
#delete
|
@@ -19,7 +19,7 @@
|
|
19
19
|
.control-group
|
20
20
|
= f.label :excluded_shows, "Excluded Shows", :class => 'control-label'
|
21
21
|
.controls
|
22
|
-
= f.select :excluded_shows, options_for_select(@event.shows.collect {|s| [l(DateTime.parse(s.local_datetime), :format => :day_time), s.id] }, @events_pass_type.excluded_shows.collect(&:to_i)), {}, {'data-placeholder' => "No Shows Selected", :class => 'input chosen', :multiple => true}
|
22
|
+
= f.select :excluded_shows, options_for_select(@event.shows.collect {|s| [l(DateTime.parse(s.local_datetime.to_s), :format => :day_time), s.id] }, @events_pass_type.excluded_shows.collect(&:to_i)), {}, {'data-placeholder' => "No Shows Selected", :class => 'input chosen', :multiple => true}
|
23
23
|
|
24
24
|
- content_for :custom_js do
|
25
25
|
= stylesheet_link_tag 'jquery/chosen'
|
@@ -8,13 +8,12 @@
|
|
8
8
|
=render :partial=>'events/menu'
|
9
9
|
.span9
|
10
10
|
%h3="Add a Pass to #{@event.name}"
|
11
|
-
|
12
11
|
= form_for( [@event, @events_pass_type], :html => { :class => 'form-horizontal' }) do |f|
|
13
12
|
%fieldset
|
14
13
|
.control-group
|
15
14
|
= f.label :pass_type, "Pass", :class => 'control-label'
|
16
15
|
.controls
|
17
|
-
= f.select :pass_type, options_for_select(@pass_type_options)
|
16
|
+
= f.select :pass_type, options_for_select(@pass_type_options, @selected_pass_type)
|
18
17
|
|
19
18
|
= render :partial => "form", :locals => {:f => f, :discount => @discount}
|
20
19
|
|
@@ -64,6 +64,8 @@
|
|
64
64
|
#add-to-household-search
|
65
65
|
= text_field_tag :search, "", :placeholder => "Email, name, or tag...", :class => "span6 query-string"
|
66
66
|
= link_to "Search", "#", :class => 'btn', :onclick => "performSearch($('#add-to-household-search .query-string')); return false;"
|
67
|
+
.tip.muted
|
68
|
+
Start typing a name. If you select an individual who is already in a household, he or she will be removed from that household and added to this one.
|
67
69
|
|
68
70
|
%table.table.search-results
|
69
71
|
|
@@ -116,10 +118,13 @@
|
|
116
118
|
|
117
119
|
$.each(people, function (i, person) {
|
118
120
|
person = cleanJsonPerson(person)
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
121
|
+
if (person.company_name == "" && person.first_name != "") {
|
122
|
+
response = "<tr>"
|
123
|
+
response += " <td class='controls'><input name='individual_ids[]' value='" + person.id + "' type='checkbox' id='add-individual-" + person.id + "' data-add-individual='" + person.id + "'/></td>"
|
124
|
+
response += " <td class='name'><label for='add-individual-" + person.id + "'>" + person.first_name + " " + person.last_name + "</label><br/>" + person.email + "</td>"
|
125
|
+
response += "</tr>"
|
126
|
+
responsePeople.push(response)
|
127
|
+
}
|
123
128
|
});
|
124
129
|
$("#add-individual .search-results").html(responsePeople);
|
125
130
|
});
|
@@ -4,6 +4,7 @@
|
|
4
4
|
= form.label :name, "Household Name"
|
5
5
|
= form.text_field :name
|
6
6
|
%li
|
7
|
+
= form.label "", "Household Members"
|
7
8
|
- household.individuals.each do |individual|
|
8
9
|
.fields.individual-fields
|
9
10
|
.control-group
|
@@ -23,4 +24,8 @@
|
|
23
24
|
= link_to_add_fields 'Add another individual', form, :individuals
|
24
25
|
|
25
26
|
.form-actions
|
26
|
-
|
27
|
+
.btn-toolbar
|
28
|
+
.btn-group
|
29
|
+
= form.submit "Review...", :class => 'btn btn-primary'
|
30
|
+
.btn-group
|
31
|
+
= link_to "Cancel", households_path, :class => 'btn'
|
@@ -1,25 +1,16 @@
|
|
1
1
|
.row
|
2
2
|
.span12
|
3
|
-
.household-header
|
4
|
-
.
|
5
|
-
|
3
|
+
.household-header.clearfix
|
4
|
+
.span2
|
5
|
+
.household-avatar.row
|
6
|
+
= image_tag "household-default-avatar.png"
|
6
7
|
|
7
|
-
.household-values-and-tags
|
8
|
-
|
9
|
-
%li
|
10
|
-
%h3= number_as_cents(@household.lifetime_ticket_value)
|
11
|
-
%h6= pluralize(@household.lifetime_ticket_count, 'tickets')
|
12
|
-
%li
|
13
|
-
%h3= number_as_cents(@household.lifetime_donations)
|
14
|
-
%h6= pluralize(@household.lifetime_donations_count, 'donation')
|
15
|
-
%li
|
16
|
-
%h3= number_as_cents(@household.lifetime_value)
|
17
|
-
%h6 lifetime
|
8
|
+
.person-values-and-tags.household-values-and-tags
|
9
|
+
=render :partial => "shared/baseball_card", :locals => { :people => @individuals }
|
18
10
|
|
19
|
-
.
|
20
|
-
|
21
|
-
|
22
|
-
%li.tag.rounder= tag_name
|
11
|
+
%ul.detailed-list.tags
|
12
|
+
- @taggings.each do |tagging|
|
13
|
+
%li.tag.rounder= tagging.tag.name
|
23
14
|
|
24
15
|
%h1
|
25
16
|
= @household.name
|
@@ -0,0 +1,43 @@
|
|
1
|
+
- in_section :households
|
2
|
+
- content_for :title do
|
3
|
+
Confirm Household
|
4
|
+
- content_for :header do
|
5
|
+
%h1 Confirm Household
|
6
|
+
|
7
|
+
.row{"ng-controller" => "NewHouseholdCtrl"}
|
8
|
+
.span8.offset2
|
9
|
+
%h2=@household.name
|
10
|
+
|
11
|
+
%h4 These people will be added to the household
|
12
|
+
%table.table
|
13
|
+
%tr
|
14
|
+
%th Name
|
15
|
+
%th Email
|
16
|
+
%th Location
|
17
|
+
- @people_not_in_a_household.each do |person|
|
18
|
+
%tr
|
19
|
+
%td=person
|
20
|
+
%td=person.email
|
21
|
+
%td=person.primary_address.try(:city_state)
|
22
|
+
|
23
|
+
- unless @people_already_in_a_household.empty?
|
24
|
+
%h4 These people are already in a household
|
25
|
+
%p If you continue adding them to this household, they'll be removed from their existing household
|
26
|
+
%table.table
|
27
|
+
%tr
|
28
|
+
%th Name
|
29
|
+
%th Email
|
30
|
+
%th Location
|
31
|
+
- @people_already_in_a_household.each do |person|
|
32
|
+
%tr
|
33
|
+
%td=person
|
34
|
+
%td=person.email
|
35
|
+
%td=person.primary_address.try(:city_state)
|
36
|
+
|
37
|
+
= form_for(@household, :html => {:class => 'form-vertical'}) do |form|
|
38
|
+
= hidden_field_tag :confirm, true
|
39
|
+
= hidden_field_tag :name, @household.name
|
40
|
+
-@people.each do |p|
|
41
|
+
= hidden_field_tag "individuals[]", p.id, :class => 'individual-id'
|
42
|
+
.form-actions
|
43
|
+
= render :partial => 'shared/submit_cancel', :locals => { :form => form, :cancel_path => new_household_path(:individuals => @ids, :name => @household.name) }
|
@@ -8,7 +8,9 @@
|
|
8
8
|
= javascript_include_tag "households"
|
9
9
|
|
10
10
|
.row{"ng-controller" => "NewHouseholdCtrl"}
|
11
|
-
.span6.
|
11
|
+
.span6.offset2
|
12
|
+
.well
|
13
|
+
You can add individuals to a household if they already have a record. Individuals in a household already will be moved into this household.
|
12
14
|
= render :partial => "shared/error_messages", :locals => { :target => @household }
|
13
15
|
= render :partial => 'form', :locals => { :household => @household }
|
14
16
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
- content_for :custom_js do
|
2
2
|
= javascript_include_tag "relationships"
|
3
|
+
= javascript_include_tag "baseball_card"
|
3
4
|
- in_section :households
|
4
5
|
- content_for :title do
|
5
6
|
#{@household.name}
|
@@ -14,7 +15,7 @@
|
|
14
15
|
= render(@household.address) if @household.address
|
15
16
|
|
16
17
|
%ul
|
17
|
-
- @
|
18
|
+
- @individuals.each do |individual|
|
18
19
|
%li{:style => "padding-top: 0.5em;"}
|
19
20
|
= link_to(individual, polymorphic_url(individual))
|
20
21
|
- individual.phones.each do |phone|
|
@@ -1,38 +1,21 @@
|
|
1
1
|
.suggested-households
|
2
|
-
|
3
|
-
|
4
|
-
%
|
5
|
-
|
6
|
-
|
7
|
-
- if @by_address.count > 0
|
8
|
-
%h4 Similar Addresses
|
9
|
-
%table.by-address.table
|
10
|
-
- @by_address.each do |row|
|
2
|
+
%h3 Suggested Households
|
3
|
+
- if @suggested_households.present?
|
4
|
+
%table.table
|
5
|
+
- @suggested_households.each do |row|
|
11
6
|
- next if row.individuals.empty?
|
12
7
|
%tr
|
13
8
|
%td.people
|
14
|
-
- row.individuals.each do |person|
|
15
|
-
.well.span3
|
16
|
-
%h5= person
|
17
|
-
= person.address
|
18
|
-
|
19
|
-
%td.controls{:style => "width: 80px;"}
|
20
|
-
= link_to "Join", suggested_household_new_household_path(row), :class => "btn btn-primary btn-block"
|
21
|
-
%br
|
22
|
-
= link_to "Ignore", ignore_suggested_households_path(row), :method => :put, :class => "btn btn-danger btn-block"
|
23
|
-
|
24
|
-
|
25
|
-
- if @by_spouse.count > 0
|
26
|
-
%h4 Spouses
|
27
|
-
%table.by-spouse.table
|
28
|
-
- @by_spouse.each do |row|
|
29
|
-
%tr
|
30
|
-
%td.people
|
31
|
-
- row.individuals.each do |person|
|
9
|
+
- row.individuals.includes(:addresses).each do |person|
|
32
10
|
.well.span3
|
33
11
|
%h5= person
|
12
|
+
= person.addresses.first
|
34
13
|
|
35
14
|
%td.controls{:style => "width: 80px;"}
|
36
15
|
= link_to "Join", suggested_household_new_household_path(row), :class => "btn btn-primary btn-block"
|
37
16
|
%br
|
38
17
|
= link_to "Ignore", ignore_suggested_households_path(row), :method => :put, :class => "btn btn-danger btn-block"
|
18
|
+
- else
|
19
|
+
.no-image#add-a-description
|
20
|
+
#text
|
21
|
+
There are no suggested households.
|
@@ -1,3 +1,3 @@
|
|
1
|
-
%p= link_to "Export People", contacts_export_index_path, :class => "btn btn3"
|
1
|
+
%p= link_to "Export People", contacts_export_index_path, :class => "btn btn3", :method => :post
|
2
2
|
%p= link_to "Export Donations", donations_export_index_path, :class => "btn btn3"
|
3
|
-
%p= link_to "Export Sales", ticket_sales_export_index_path, :class => "btn btn3"
|
3
|
+
%p= link_to "Export Sales", ticket_sales_export_index_path, :class => "btn btn3"
|
@@ -21,7 +21,7 @@
|
|
21
21
|
%td
|
22
22
|
%span.label.label-success
|
23
23
|
Important!
|
24
|
-
 
|
24
|
+
  Donation date must be in one of the following formats
|
25
25
|
=render :partial => "imports/shared/date_format"
|
26
26
|
Time of day is not required.
|
27
27
|
%tr
|
@@ -65,7 +65,7 @@
|
|
65
65
|
%td
|
66
66
|
If this is a company record, the name of the company. Otherwise,
|
67
67
|
it's the name of the company that the person works for.
|
68
|
-
|
68
|
+
|
69
69
|
%h3 Optional Fields
|
70
70
|
%table.table.table-bordered.table-striped.docs
|
71
71
|
%tr
|
@@ -73,13 +73,56 @@
|
|
73
73
|
%td
|
74
74
|
%span.label.label-success
|
75
75
|
Important!
|
76
|
-
  The tax-deductible amount of the donation (usually the total amount received, unless the donor <a href='http://www.irs.gov/publications/p526/ar02.html#en_US_2011_publink1000229650' target=_blank>received something in return</a>). If this is not included, the deductible amount will be equal to the value in Amount minus any value in
|
77
|
-
%tr
|
78
|
-
%td.field-slim
|
76
|
+
  The tax-deductible amount of the donation (usually the total amount received, unless the donor <a href='http://www.irs.gov/publications/p526/ar02.html#en_US_2011_publink1000229650' target=_blank>received something in return</a>). If this is not included, the deductible amount will be equal to the value in Amount minus any value in Nondeductible. Don't include a '$' or other currency symbols.
|
77
|
+
%tr
|
78
|
+
%td.field-slim Nondeductible Amount
|
79
79
|
%td
|
80
80
|
%span.label.label-success
|
81
81
|
Important!
|
82
|
-
  This is the
|
82
|
+
  This is the nondeductible portion of the donation (i.e. the fair market value of <a href='http://www.irs.gov/publications/p526/ar02.html#en_US_2011_publink1000229650' target=_blank>something the donor received in return</a>). If this is not included, the nondeductible amount will be equal to the value in Amount minus any value in Deductible. Don't include a '$' or other currency symbols.
|
83
|
+
%tr
|
84
|
+
%td.field-slim Notes
|
85
|
+
%td The donations's notes
|
86
|
+
%tr
|
87
|
+
%td.field-slim Fiscal Year
|
88
|
+
%td The donation's fiscal year (FY13, FY14, etc...)
|
89
|
+
|
90
|
+
-with_kit(:campaigns) do
|
91
|
+
%tr
|
92
|
+
%td.field-slim Campaign
|
93
|
+
%td
|
94
|
+
%span.label.label-success
|
95
|
+
Important!
|
96
|
+
  Campaign Name. Please review and modify details(Starts Date, Budgeted Goal, etc...) if needed when imported!
|
97
|
+
%tr
|
98
|
+
%td.field-slim Appeal
|
99
|
+
%td
|
100
|
+
%span.label.label-success
|
101
|
+
Important!
|
102
|
+
  Appeal Name. Please review and modify details(Starts Date, Channel, etc...) if needed when imported!
|
103
|
+
%tr
|
104
|
+
%td.field-slim Acknowledgement Sent Date
|
105
|
+
%td
|
106
|
+
%span.label.label-success
|
107
|
+
Important!
|
108
|
+
  Acknowledgement Sent Date must be in one of the following formats
|
109
|
+
=render :partial => "imports/shared/date_format"
|
110
|
+
Time of day is not required.
|
111
|
+
%tr
|
112
|
+
%td.field-slim Matcher
|
113
|
+
%td The email address of the match eligible person. If you're importing an email address that has already been assigned to a person, we'll merge the data for you
|
114
|
+
%tr
|
115
|
+
%td.field-slim Ratio
|
116
|
+
%td Matching Gift Ratio
|
117
|
+
%tr
|
118
|
+
%td.field-slim Match Eligible Amount
|
119
|
+
%td Include only dollars and cents. Don't include a "$" or other currency symbols.
|
120
|
+
%tr
|
121
|
+
%td.field-slim Soft Credit Person
|
122
|
+
%td The email address of the soft credit person. If you're importing an email address that has already been assigned to a person, we'll merge the data for you
|
123
|
+
%tr
|
124
|
+
%td.field-slim Soft Credit Amount
|
125
|
+
%td Include only dollars and cents. Don't include a "$" or other currency symbols.
|
83
126
|
%p You can also use all of the field names in People imports.
|
84
127
|
|
85
128
|
.span3
|
@@ -18,26 +18,73 @@
|
|
18
18
|
.span3
|
19
19
|
= link_to "Approve", approve_import_path(import), :data => {:confirm => "Are you sure you want to approve this import?"}, :class => "btn btn-success btn-large"
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
-
|
21
|
+
|
22
|
+
- existing_campaigns = {}
|
23
|
+
- new_campaigns = {}
|
24
|
+
- no_campaigns = []
|
25
|
+
- @imported_rows.each_with_index do |imported_row, index|
|
26
|
+
- row = ParsedRow.new(@import.headers, imported_row.content)
|
27
|
+
- if row.campaign.present?
|
28
|
+
- if existing_campaigns.has_key?(row.campaign)
|
29
|
+
- existing_campaigns[row.campaign] << row
|
30
|
+
- elsif new_campaigns.has_key?(row.campaign)
|
31
|
+
- new_campaigns[row.campaign] << row
|
32
|
+
- elsif Campaign.exists?(:name => row.campaign, :organization_id => current_user.current_organization.id )
|
33
|
+
- existing_campaigns[row.campaign] = [row]
|
34
|
+
- else
|
35
|
+
- new_campaigns[row.campaign] = [row]
|
36
|
+
- else
|
37
|
+
- no_campaigns << row
|
38
|
+
|
39
|
+
|
40
|
+
- if new_campaigns.any?
|
41
|
+
%h2 New Campaigns
|
42
|
+
%legend These campaigns will be added to your account along with their donations
|
43
|
+
%table.table.table-bordered.table-striped
|
33
44
|
%tr
|
34
|
-
%
|
35
|
-
%
|
36
|
-
%
|
37
|
-
|
38
|
-
%
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
45
|
+
%th Name
|
46
|
+
%th # of Donations
|
47
|
+
%th
|
48
|
+
- new_campaigns.each_with_index do |(campaign, rows), index|
|
49
|
+
%tr
|
50
|
+
%td=campaign
|
51
|
+
%td
|
52
|
+
%span.round_tag{:style => 'background-color: #357EC7'} #{rows.length}
|
53
|
+
%td
|
54
|
+
=link_to "Preview", "#new_campaign_#{index}", 'data-toggle' => 'modal', :class => "btn btn-small"
|
55
|
+
.modal{:id => "new_campaign_#{index}"}
|
56
|
+
.modal-header
|
57
|
+
.close{'data-dismiss'=>'modal'} x
|
58
|
+
|
59
|
+
.modal-body
|
60
|
+
=render :partial => "imports/donations/preview", :locals => {:rows => rows }
|
61
|
+
%br
|
62
|
+
|
63
|
+
- if existing_campaigns.any?
|
64
|
+
%h2 Existing Campaigns
|
65
|
+
%legend These campaigns already exist and new donations will be added
|
66
|
+
%table.table.table-bordered.table-striped
|
67
|
+
%tr
|
68
|
+
%th Name
|
69
|
+
%th # of Donations
|
70
|
+
%th
|
71
|
+
- existing_campaigns.each_with_index do |(campaign, rows), index|
|
72
|
+
%tr
|
73
|
+
%td=campaign
|
74
|
+
%td
|
75
|
+
%span.round_tag{:style => 'background-color: #357EC7'} #{rows.length}
|
76
|
+
%td
|
77
|
+
=link_to "Preview", "#existing_campaign_#{index}", 'data-toggle' => 'modal', :class => "btn btn-small"
|
78
|
+
.modal{:id => "existing_campaign_#{index}"}
|
79
|
+
.modal-header
|
80
|
+
.close{'data-dismiss'=>'modal'} x
|
81
|
+
|
82
|
+
.modal-body
|
83
|
+
=render :partial => "imports/donations/preview", :locals => {:rows => rows}
|
84
|
+
%br
|
85
|
+
|
86
|
+
- if no_campaigns.any?
|
87
|
+
%h2 Unclassified Donations
|
88
|
+
- no_campaigns = no_campaigns.paginate(:page => params[:page], :per_page => 50)
|
89
|
+
=render :partial => "imports/donations/preview", :locals => {:rows => no_campaigns}
|
90
|
+
=will_paginate no_campaigns
|