class ICalltoactionSchema(Interface): """Call to action. internal link, external link, sharing """ ctalabel = schema.TextLine( title=_(u'Label'), required=False, default=u'', missing_value=u'call to action', ) widget('ctaurl', LinkFieldWidget) ctaurl = schema.TextLine( title=_(u'Target of call to action'), required=False, default=u'', missing_value=u'', ) ctasharing = schema.Bool( title=_(u'Sharing'), required=False, default=False, missing_value=False, ) ctacategory = schema.Choice( title=_(u'Category'), required=True, vocabulary='collective.multiplecalltoactions.CtoCategoryVocabulary')
class ICreateDX(IAction): """Create a Dexterity Type""" location = schema.TextLine( title=_(u'Location'), description=_( u'Select the location where content items should be created'), required=True, ) content_type = schema.Choice( title=_(u'label_content_type', default=u'Content Type'), vocabulary='plone.app.vocabularies.PortalTypes', required=True, default='', missing_value='', ) directives.widget('content_type', SelectFieldWidget) mappings = schema.List( title=_(u'Form field to item field mappings'), description= _(u"""One mapping per line. Format: "formfieldid itemfieldid:fieldtype". Make sure you have at least the title mapping defined, because it will also be used to create the id of the item!""" ), default=[], required=True, value_type=schema.TextLine(), ) directives.widget('mappings', TextLinesFieldWidget)
class INewsletterSubscriber(model.Schema): """Marker interface and Dexterity Python Schema for NewsletterSubscriber""" salutation = schema.Choice( title=_("EasyNewsletter_label_salutation", default="Salutation"), description=_("EasyNewsletter_help_salutation", default=""), vocabulary="Products.EasyNewsletter.Salutations", required=False, ) name_prefix = schema.TextLine( title=_("EasyNewsletter_label_name_prefix", default="Name Prefix"), description=_("EasyNewsletter_help_name_prefix", default=""), default="", required=False, ) firstname = schema.TextLine( title=_("EasyNewsletter_label_firstname", default="First Name"), required=False, ) lastname = schema.TextLine(title=_("EasyNewsletter_label_lastname", default="Last Name"), required=False) organization = schema.TextLine( title=_("EasyNewsletter_label_organization", default="Organization"), required=False, ) email = schema.TextLine(title=_("EasyNewsletter_label_email", default="Email"), required=True)
class IVoteEncoding(IEnhancedUserDataSchema): mail = schema.Email(title=_(u"Email"), required=False) form.widget(vote=RadioFieldWidget) vote = schema.Choice(title=_(u"Vote"), required=True, vocabulary=u"ideabox.vocabularies.vote") form.widget(project=MultiSelect2FieldWidget) project = schema.List( title=_(u"Project(s)"), value_type=schema.Choice( title=_(u"Project"), vocabulary=u"ideabox.vocabularies.projects", ), required=True, )
class IMapCategory(model.Schema): """ """ mapCategory = schema.Choice( title=_(u'Map Category'), vocabulary='alpha.content.MapCategory', )
class ILeadimagePortlet(IPortletDataProvider): image_size = schema.Choice( default="preview", vocabulary='medialog.leadimagesize.LeadImageSizeVocabulary', defaultFactory=lambda: api.portal.get_registry_record( 'medialog.leadimagesize.interfaces.ILeadImageSizeSettings.leadsize' ), )
class ISendForm(Interface): channels = schema.List( title=_(u"send_channels_title", default=u"Channels"), description=_( u"send_channels_description", default=u"Select which channels should receive this Comunicato. " u"All email address subscribed to this channel will receive it. ", ), required=False, missing_value=(), value_type=schema.Choice(source="rer.ufficiostampa.vocabularies.channels"), ) additional_addresses = schema.List( title=_(u"additional_addresses_title", default=u"Additional addresses"), description=_( u"additional_addresses_description", default=u"Insert a list of additional addressed that will receive " u"the mail. One per line. You can use this field also for testing " u"without sending emails to all subscribed addresses.", ), required=False, missing_value=(), value_type=schema.TextLine(), constraint=check_emails, ) notes = schema.Text( title=_(u"notes_title", default=u"Notes"), description=_( u"notes_description", default=u"Additional notes.", ), required=False, ) attachments = schema.List( title=_(u"send_attachments_title", default=u"Attachments"), description=_( u"send_attachments_description", default=u"Select which attachment you want to send via email. " u"You can only select first level Files and Images.", ), required=False, missing_value=(), value_type=schema.Choice(source="rer.ufficiostampa.vocabularies.attachments"), defaultFactory=default_attachments, )
class IUrlRowSchema(Interface): type = schema.Choice( title=_("Type"), source="imio.directory.vocabulary.SiteTypes", description=_(""), required=True, ) url = schema.URI(title=_("Url"), required=True)
class IContact(IPrivateContactInformations, IContactInformations, IAddress): """ """ directives.order_before(type="IBasic.title") directives.widget(type=RadioFieldWidget) type = schema.Choice( title=_("Type"), source="imio.directory.vocabulary.ContactTypes", required=True, ) directives.order_after(subtitle="IBasic.title") subtitle = schema.TextLine(title=_("Subtitle"), required=False) logo = NamedBlobImage(title=_("Logo"), description=_(""), required=False) model.fieldset("categorization", fields=["selected_entities", "facilities"]) directives.widget(selected_entities=SelectFieldWidget) selected_entities = schema.List( title=_("Selected entities"), description= _("Select entities where this contact will be displayed. Current entity will always be selected." ), value_type=schema.Choice( vocabulary="imio.directory.vocabulary.EntitiesUIDs"), default=[], required=False, ) facilities = schema.List( title=_("Facilities"), description= _("Important! These categories make it possible to highlight and geolocate certain basic services" ), value_type=schema.Choice( vocabulary="imio.directory.vocabulary.Facilities"), required=False, ) directives.widget(facilities=SelectFieldWidget) read_permission(selected_entities="imio.directory.core.AddEntity") write_permission(selected_entities="imio.directory.core.AddEntity")
class ITsProcedure(model.Schema): """ """ directives.widget("procedures", SelectProcedureWidget) procedures = schema.Choice( vocabulary="imio.behavior.teleservices.vocabularies.remote_procedures", title=_(u"E-Guichet procedures"), required=False, default=None )
class IPloneUserGroupRecipients(model.Schema): """ """ model.fieldset( "recipients", label=_("Recipients"), fields=["plone_receiver_members", "plone_receiver_groups"], ) plone_receiver_members = schema.Set( title=_( "EasyNewsletter_label_ploneReceiverMembers", default="Plone Members to receive the newsletter", ), description=_( "EasyNewsletter_help_ploneReceiverMembers", default="Choose Plone Members which should receive \ the newsletter. Changing this setting does not affect \ already existing issues.", ), value_type=schema.Choice( vocabulary="Products.EasyNewsletter.PloneUsers"), required=False, defaultFactory=get_default_plone_receiver_members, ) plone_receiver_groups = schema.Set( title=_( "EasyNewsletter_label_ploneReceiverGroups", default="Plone Groups to receive the newsletter", ), description=_( "EasyNewsletter_help_ploneReceiverGroups", default="Choose Plone Groups which should receive \ the newsletter. Changing this setting does not affect \ already existing issues.", ), value_type=schema.Choice( vocabulary="Products.EasyNewsletter.PloneGroups"), required=False, defaultFactory=get_default_plone_receiver_groups, )
class IBaseUser(IEmail): """"Membrane based based user Class.""" first_name = schema.TextLine(title=_('First Name'), ) last_name = schema.TextLine(title=_('Last name')) mfa = schema.Choice(title=_('Multi-factor authentication (MFA)'), required=False, vocabulary='mfa_types') oidc_enabled = schema.Bool( title=_('Is OpenID Connect enabled'), required=False, )
class IFocusArea(model.Schema): """ """ directives.widget(focusareas=SelectFieldWidget) focusareas = schema.List( title=u'Focus Areas', description=u'FOE Cluster Focus Areas', required=False, value_type=schema.Choice(vocabulary='foecluster.focusareas', ), )
class IPartners(model.Schema): """ """ directives.widget(partners=SelectFieldWidget) partners = schema.List( title=u'Partners', description=u'Partner(s) contributing to this resource', required=False, value_type=schema.Choice(vocabulary='foecluster.partners', ), )
class IClassificationFolder(IClassificationCategory): """ """ form.widget(classification_folders=FolderAutocompleteMultiFieldWidget) classification_folders = schema.List( title=_(u"Classification folders"), description=_( u"List of folders / subfolders in which this content is filed"), value_type=schema.Choice(source=ClassificationFolderSourceBinder(), ), required=False, )
class INationalities(model.Schema): """ """ directives.widget(nationalities=SelectFieldWidget) nationalities = schema.List( title=u'Nationalities', description=u'Nationalities held by this individual', required=False, value_type=schema.Choice( vocabulary='collective.vocabularies.iso.countries', ), )
class INotizData(model.Schema): title = schema.TextLine( title=u'Titel der Notiz im Notizbuch') description = schema.Text( title=u'Frage, These oder Aufgabe zu der sich der Lernende eine Notiz machen soll') fieldformat = schema.Choice( title=u'Format des Eingabefeldes', vocabulary=input_vocabulary, default=u'Text')
class IResourceType(model.Schema): """ """ directives.widget(resource_type=SelectFieldWidget) resource_type = schema.Choice( title=_(u'Resource Type'), description=_(u''' '''), required=False, vocabulary='sinar.resource.ResourceType', )
class IEnhancedUserDataSchema(model.Schema): last_name = schema.TextLine(title=_(u"Last name or institution"), required=True) first_name = schema.TextLine(title=_(u"First name"), required=False) address = schema.Text(title=_(u"Address"), required=False) gender = schema.Choice(title=_(u"Gender"), required=True, vocabulary=u"ideabox.vocabularies.gender") birthdate = schema.Date(title=_(u"Birthdate"), required=True) zip_code = schema.Choice(title=_(u"Zip code"), required=True, vocabulary=u"ideabox.vocabularies.zip_code") iam = schema.Choice(title=_(u"I am"), required=True, vocabulary=u"collective.taxonomy.iam")
class ICancelSubscriptionsForm(Interface): """ """ channels = schema.List( title=_( u"manage_subscriptions_channels_title", default=u"Deselect the channels that you do not want to be " u"subscribed anymore.", ), description=u"", required=False, defaultFactory=getSubscriptions, missing_value=(), value_type=schema.Choice(source=subscriptionsVocabulary), ) uid = schema.Int(readonly=True, defaultFactory=getUid)
class ITaxResidencies(model.Schema): """ """ directives.widget(taxResidencies=SelectFieldWidget) taxResidencies = schema.List( title=u'Tax Residencies', description=u''' Countries representing the tax residencies held by this individual. ''', required=False, value_type=schema.Choice( vocabulary='collective.vocabularies.iso.countries', ), )
class ISustainableDevelopmentGoals(model.Schema): """ """ sdgs = schema.List( title=_(u"SDG"), value_type=schema.Choice( vocabulary=u"collective.behavior.sdg.SDGsVocabulary", required=True, ), required=False, ) form.widget('sdgs', linked_checkbox_field_widget, links_record='collective.behavior.sdg.sdgs')
class IMailRowSchema(Interface): label = schema.TextLine( title=_("Label (Secretariat, Manager office, Sales,...)"), description=_(""), required=False, ) type = schema.Choice( title=_("Type"), source="imio.directory.vocabulary.MailTypes", description=_(""), required=True, ) mail_address = schema.Email(title=_("E-mail"), required=True)
class IDocumentType(model.Schema): """ """ directives.widget(DocumentType=SelectFieldWidget) DocumentType = schema.List( title=_(u'Document Type'), description=_(u''' OCDS classification of the document '''), default=[], value_type=schema.Choice( vocabulary='ocds.DocumentType' ), required=False, )
class ICollectionAsNewsletterAggregationSource(model.Schema): """ """ model.fieldset( "settings", label=_("Settings"), fields=["aggregation_template"], ) aggregation_template = schema.Choice( title=_("Newsletter aggregation template"), description= _('The <a href="https://productseasynewsletter.readthedocs.io/en/latest/#aggregation-templates">aggregation template</a> used by the Newsletter to render Collection items for the Newsletter.' ), vocabulary="Products.EasyNewsletter.AggregationTemplates", # defaultFactory=get_default_aggregation_template, required=True, )
class IOptional(model.Schema): """ """ localLang = schema.TextLine( title=_(u'Local Language'), description= _(u'Format example: D20,Language Name,1,1,1/A01,Language Name,0,1,3/..., 0,0,0 or 0,1,3 mapping to primary-intermediate-advanced' ), required=False, ) classTime = schema.List(title=_(u'Class Time'), value_type=schema.Choice( title=_(u"Class Time"), vocabulary='apc.content.ClassTime', required=False, ), required=False)
class IRegistrationForm(model.Schema): """""" email = schema.Email(title=_(u"Email address"), required=True) first_name = schema.TextLine(title=_(u"First name"), required=True) last_name = schema.TextLine(title=_(u"Last name"), required=True) number_of_people = schema.Int(title=_(u"Number of people"), required=True, default=1, min=1) period = schema.Choice( title=_(u"Period"), source="collective.registration.vocabularies.periods", required=True, )
class IPhoneRowSchema(Interface): label = schema.TextLine( title=_("Label (direction, Main number,...)"), description=_(""), required=False, ) type = schema.Choice( title=_("Type"), source="imio.directory.vocabulary.PhoneTypes", description=_(""), required=True, ) number = schema.TextLine( title=_("Number (format: +32475010203)"), required=True, constraint=phone_constraint, )
class IEnergyUnionMetadata(model.Schema): """IEnergyUnionMetadata.""" resource_type = schema.Choice( title=u"Resource Type", required=False, missing_value='', default='', vocabulary='energy.resource_types', ) meta_topics = schema.Tuple( title=u"Topics", value_type=schema.TextLine(), required=False, missing_value=(), default=(), ) form.widget('meta_topics', AjaxSelectFieldWidget, vocabulary='energy.topics')
class ISEOFields(model.Schema): """ """ model.fieldset( 'seofields', label=_(u'SEO'), fields=( 'seo_title', 'seo_description', 'seo_robots' ), ) seo_title = schema.TextLine( title=_(u"SEO Title"), description=_(u"Used in the web page <head> section title and " u"browser tab instead of the default title."), required=False ) seo_description = schema.Text( title=_(u"SEO Description"), description=_(u"Used as meta description field in the <head> section " u"of a page instead of the default description."), required=False ) seo_robots = schema.Choice( title=_(u'Metatag Robots'), description=_(u"Select options that hint search engines how " u"to treat this content. Typically listings are to" u"navigate the site, but add little to no value in it's " u"own and should be set to 'noindex, follow'. In some" u"cases you want a listing to be indexed. E.g. when" u"publishing a Top 10 recipes list with extra content" u"above and below the list, in which case you'd use" u"'index,follow'."), vocabulary="seofields.robots", required=False )