class EmailRegistrantsForm(IndicoForm): from_address = SelectField(_("From"), [DataRequired()]) cc_addresses = EmailListField(_("CC"), description=_("Beware, addresses in this field will receive one mail per " "registrant.")) subject = StringField(_("Subject"), [DataRequired()]) body = TextAreaField(_("Email body"), [DataRequired()], widget=CKEditorWidget(simple=True)) recipients = IndicoEmailRecipientsField(_('Recipients')) copy_for_sender = BooleanField(_('Send copy to me'), widget=SwitchWidget(), description=_('Send copy of each email to my mailbox')) attach_ticket = BooleanField(_('Attach ticket'), widget=SwitchWidget(), description=_('Attach tickets to emails')) registration_id = HiddenFieldList() submitted = HiddenField() def __init__(self, *args, **kwargs): self.regform = kwargs.pop('regform') event = self.regform.event super(EmailRegistrantsForm, self).__init__(*args, **kwargs) self.from_address.choices = event.get_allowed_sender_emails().items() self.body.description = render_placeholder_info('registration-email', regform=self.regform, registration=None) def validate_body(self, field): missing = get_missing_placeholders('registration-email', field.data, regform=self.regform, registration=None) if missing: raise ValidationError(_('Missing placeholders: {}').format(', '.join(missing))) def is_submitted(self): return super(EmailRegistrantsForm, self).is_submitted() and 'submitted' in request.form
class RejectRegistrantsForm(IndicoForm): rejection_reason = TextAreaField(_('Reason'), description=_('You can provide a reason for the rejection here.')) attach_rejection_reason = BooleanField(_('Attach reason'), widget=SwitchWidget()) registration_id = HiddenFieldList() submitted = HiddenField() def is_submitted(self): return super().is_submitted() and 'submitted' in request.form
class RegistrationTagsAssignForm(IndicoForm): """Form to assign registration tags to registrations.""" add = IndicoMultipleTagSelectField(_('Add'), description=_('Select tags to assign')) remove = IndicoMultipleTagSelectField( _('Remove'), description=_('Select tags to remove')) registration_id = HiddenFieldList() submitted = HiddenField() def validate_remove(self, field): if set(self.remove.data) & set(self.add.data): raise ValidationError(_('You cannot add and remove the same tag')) validate_add = validate_remove def is_submitted(self): return super().is_submitted() and 'submitted' in request.form