class DonationFormStripe(grok.View): """ Renders a donation form setup to submit through Stripe """ grok.context(IFundraisingCampaignPage) grok.require('zope2.View') grok.name('donation_form_stripe') grok.template('donation_form_stripe') form_id = 'donation_form_stripe' def update(self): self.settings = get_settings() self.amount = self.request.form.get('x_amount', None) if self.amount is not None: self.amount = int(self.amount) self.states = [] self.countries = [] self.states = [] self.update_levels() self.error = None self.update_countries() self.update_states() self.recurring = False self.recurring_id = None self.recurring_title = None campaign = self.context.get_fundraising_campaign() self.default_gift_type = campaign.default_gift_type if campaign.stripe_recurring_plan: self.recurring = True self.recurring_id = campaign.stripe_recurring_plan # FIXME: Lookup the title from the vocabulary and cache it for a bit self.recurring_title = 'Monthly recurring gift' def update_levels(self): level_id = self.request.form.get( 'levels', self.settings.default_donation_ask_one_time) self.levels = None for row in self.settings.donation_ask_levels: row_id, amounts = row.split('|') if row_id == level_id: self.levels = amounts.split(',') if not self.levels: self.levels = self.settings.donation_ask_levels[0].split( '|')[1].split(',') def update_countries(self): self.countries = CountryAvailability().getCountryListing() self.countries.sort() def update_states(self): self.states = states_list def xss_clean(self, value): # FIXME: This needs to be implemented return value
class HonoraryMemorialView(grok.View): grok.context(IDonation) grok.require('zope2.View') grok.name('honorary-memorial-donation') form_template = ViewPageTemplateFile('donation_templates/honorary-memorial-donation.pt') def send_email(self): if self.context.honorary_type == 'Memorial': return self.context.send_email_memorial() else: return self.context.send_email_honorary() def render(self): # check that either the secret_key was passed in the request or the user has modify rights key = self.request.form.get('key', None) if not key or key != self.context.secret_key: sm = getSecurityManager() if not sm.checkPermission(ModifyPortalContent, self.context): raise Unauthorized self.receipt = IDonationReceipt(self.context)() # Handle POST if self.request['REQUEST_METHOD'] == 'POST': # Fetch values from the request self.context.honorary_type = self.request.form.get('honorary_type', None) self.context.honorary_notification_type = self.request.form.get('honorary_notification_type', None) self.context.honorary_first_name = self.request.form.get('honorary_first_name', None) self.context.honorary_last_name = self.request.form.get('honorary_last_name', None) self.context.honorary_recipient_first_name = self.request.form.get('honorary_recipient_first_name', None) self.context.honorary_recipient_last_name = self.request.form.get('honorary_recipient_last_name', None) self.context.honorary_email = self.request.form.get('honorary_email', None) self.context.honorary_street_address = self.request.form.get('honorary_street_address', None) self.context.honorary_city = self.request.form.get('honorary_city', None) self.context.honorary_state = self.request.form.get('honorary_state', None) self.context.honorary_zip = self.request.form.get('honorary_zip', None) self.context.honorary_country = self.request.form.get('honorary_country', None) self.context.honorary_message = self.request.form.get('honorary_message', None) # If there was an email passed and we're supposed to send an email, send the email if self.context.honorary_notification_type == 'Email' and self.context.honorary_email: self.send_email() # Queue an update of the Donation to get honorary fields populated on the Opportunity in Salesforce async = getUtility(IAsyncService) async.queueJob(async_salesforce_sync, self.context) # Redirect on to the thank you page return self.request.response.redirect('%s?key=%s' % (self.context.absolute_url(), self.context.secret_key)) self.countries = CountryAvailability().getCountryListing() self.countries.sort() self.states = states_list return self.form_template()
class DonationFormStripe(grok.View): """ Renders a donation form setup to submit through Stripe """ grok.context(IFundraisingCampaignPage) grok.require("zope2.View") grok.name("donation_form_stripe") grok.template("donation_form_stripe") form_id = "donation_form_stripe" def update(self): self.settings = get_settings() self.amount = self.request.form.get("x_amount", None) if self.amount is not None: self.amount = int(self.amount) self.states = [] self.countries = [] self.states = [] self.update_levels() self.error = None self.update_countries() self.update_states() self.recurring = False self.recurring_id = None self.recurring_title = None campaign = self.context.get_fundraising_campaign() self.default_gift_type = campaign.default_gift_type if campaign.stripe_recurring_plan: self.recurring = True self.recurring_id = campaign.stripe_recurring_plan # FIXME: Lookup the title from the vocabulary and cache it for a bit self.recurring_title = "Monthly recurring gift" def update_levels(self): level_id = self.request.form.get("levels", self.settings.default_donation_ask_one_time) self.levels = None for row in self.settings.donation_ask_levels: row_id, amounts = row.split("|") if row_id == level_id: self.levels = amounts.split(",") if not self.levels: self.levels = self.settings.donation_ask_levels[0].split("|")[1].split(",") def update_countries(self): self.countries = CountryAvailability().getCountryListing() self.countries.sort() def update_states(self): self.states = states_list def xss_clean(self, value): # FIXME: This needs to be implemented return value
def update_countries(self): self.countries = CountryAvailability().getCountryListing() self.countries.sort()