def _process(self): current_event_settings = payment_event_settings.get_all(self.event) defaults = FormDefaults(current_event_settings, **payment_settings.get_all()) form = EventSettingsForm(prefix='payment-', obj=defaults) if form.validate_on_submit(): payment_event_settings.set_multi(self.event, form.data) flash(_('Settings saved'), 'success') return jsonify_data() return jsonify_form(form)
def _process(self): current_event_settings = payment_event_settings.get_all(self.event) defaults = FormDefaults(current_event_settings, **payment_settings.get_all()) form = EventSettingsForm(prefix='payment-', obj=defaults) if form.validate_on_submit(): payment_event_settings.set_multi(self.event, form.data) flash(_('Settings saved'), 'success') return jsonify_data() return jsonify_form(form)
def migrate_event_settings(self): self.messages.append(cformat("%{magenta!} - Event Payment Settings:")) print cformat("%{white!}migrating event settings") count = 0 EventSetting.delete_all(payment_event_settings.module) for event in committing_iterator(self._iter_events()): old_payment = event._modPay default_conditions = payment_settings.get('conditions') default_register_email = payment_settings.get('register_email') default_success_email = payment_settings.get('success_email') register_email = getattr(old_payment, 'receiptMsg', default_register_email) success_email = getattr(old_payment, 'successMsg', default_success_email) conditions = (getattr(old_payment, 'paymentConditions', default_conditions) if (getattr(old_payment, 'paymentConditionsEnabled', False) and convert_to_unicode(getattr(old_payment, 'specificPaymentConditions', '')).strip() == '') else getattr(old_payment, 'specificPaymentConditions', '')) # The new messages are shown in an "additional info" section, so the old defaults can always go away if convert_to_unicode(register_email) == 'Please, see the summary of your order:': register_email = '' if convert_to_unicode(success_email) == 'Congratulations, your payment was successful.': success_email = '' # Get rid of the most terrible part of the old default conditions conditions = convert_to_unicode(conditions).replace('CANCELLATION :', 'CANCELLATION:') settings = { 'enabled': getattr(old_payment, 'activated', False), 'currency': event._registrationForm._currency, 'conditions': conditions, 'register_email': register_email, 'success_email': success_email, } payment_event_settings.set_multi(event, settings) count += 1 print cformat("%{cyan}<EventSettings(id={id:>6}, enabled={enabled}, " "currency={currency})>").format(id=event.id, **settings) msg = cformat("%{green!}migration of {0} event payment settings successful\n").format(count) self.messages.append(' ' + msg) print msg