class IDCAT(model.Schema): """Marker interface for all DCAT-AP.de Content Types""" read_permission(dct_identifier='pkan.dcatapde.ProviderDataEditor') write_permission(dct_identifier='pkan.dcatapde.ProviderDataEditor') dct_identifier = schema.URI( required=False, title=i18n.LABEL_DCT_IDENTIFIER, description=i18n.IDENTIFIER_DESCRIPTION, ) read_permission(adms_identifier='pkan.dcatapde.ProviderDataEditor') write_permission(adms_identifier='pkan.dcatapde.ProviderDataEditor') adms_identifier = schema.URI( required=False, title=i18n.LABEL_ADMS_IDENTIFIER, description=i18n.IDENTIFIER_DESCRIPTION, ) # read_permission(uri_in_triplestore='pkan.dcatapde.Admin') # write_permission(uri_in_triplestore='pkan.dcatapde.Admin') # uri_in_triplestore = schema.URI( # required=False, # title=_(u'Uri in Triplestore'), # ) model.fieldset( 'object_identifier', label=i18n.FIELDSET_INTERNAL_INFO, fields=[ 'dct_identifier', 'adms_identifier', ], )
class IOAuth2App(component.Interface): ''' Defines fields needed for oauth2 app registration ''' service = schema.Choice(title=u'Service: ', description=u'The OAuth2 authenticator source', vocabulary=u'oauth2.sources') authtype = schema.Choice(title=u'Type:', values=[u'OAuth-1', u'OAuth-2'], default=u'OAuth-2') icon = schema.Bytes(title=u'Display Icon:', required=False) auth_uri = schema.URI( title=u'Auth URI: ', required=False, description=u'Where to send the browser for authentication') token_uri = schema.URI( title=u'Token URI: ', required=False, description=u'Where to exchange auth token for request token') client_id = schema.TextLine(title=u'Client ID: ', required=False, description=u'Our Client/Consumer ID') secret = schema.TextLine(title=u'Secret: ', required=False, description=u'Our client secret if applicable') scope = schema.TextLine( title=u'Scope(s): ', required=False, description=u'List of services we will want to access')
class IPKANImportSettings(model.Schema): """PKAN Import Settings.""" dct_licensedocument = schema.List( default=[constants.VOCAB_SOURCES[constants.CT_DCT_LICENSEDOCUMENT]], description=i18n.HELP_SETTINGS_IMPORTS_DCT_LICENSEDOCUMENT, required=False, title=i18n.LABEL_SETTINGS_IMPORTS_DCT_LICENSEDOCUMENT, value_type=schema.URI(title=i18n.LABEL_URL, ), ) skos_concept = schema.List( default=list( constants.VOCAB_SOURCES[constants.CT_SKOS_CONCEPT].keys(), ), description=i18n.HELP_SETTINGS_IMPORTS_SKOS_CONCEPT, required=False, title=i18n.LABEL_SETTINGS_IMPORTS_SKOS_CONCEPT, value_type=schema.URI(title=i18n.LABEL_URL, ), ) dct_language = schema.List( default=[constants.VOCAB_SOURCES[constants.CT_DCT_LANGUAGE]], description=i18n.HELP_SETTINGS_IMPORTS_DCT_LANGUAGE, required=False, title=i18n.LABEL_SETTINGS_IMPORTS_DCT_LANGUAGE, value_type=schema.URI(title=i18n.LABEL_URL, ), )
class ISwiftSettings(model.Schema): auth_url = schema.URI( title=u"Auth URL", description=u"Usually something like http://keystone.example.com/v2", required=False) auth_version = schema.TextLine( title=u"Auth version", description=u"Usually something like '1' or '2'", required=False) storage_url = schema.URI( title=u"Swift storage URL", description=u"The storage url including version and account", required=False) temp_url_key = schema.TextLine( title=u"Swift temp URL key", description=u"Key used to generate swift temp URLs", required=False) result_container = schema.TextLine( title=u"Result container", description=u"Container to store results in", default=u"results", required=False, )
class IAnalysisResults(model.Schema): uuid = schema.TextLine( title=_(u"UUID"), required=True, readonly=False, ) sample_no = schema.TextLine( title=_(u"Sample number"), required=False, readonly=False, ) result = schema.Choice( title=_(u"Result"), required=False, vocabulary=u"gene.tumour.vocabulary.analysis_result", ) result_info = schema.TextLine( title=_(u"Result information"), required=False, ) quality_file = schema.URI( title=_(u"Quality control document"), constraint=validate_url, required=False, ) result_file = schema.URI( title=_(u"Result detail"), constraint=validate_url, required=False, )
class ISKOSConcept(model.Schema, IDCAT): """Marker interface and DX Python Schema for SKOSConcept.""" # Mandatory # ------------------------------------------------------------------------- dct_title = I18NTextLine( required=True, title=i18n.LABEL_DCT_TITLE, ) dct_description = I18NText( required=False, title=i18n.LABEL_DCT_DESCRIPTION, ) skos_inScheme = schema.URI( description=i18n.HELP_SKOS_INSCHEME, required=True, title=i18n.LABEL_SKOS_INSCHEME, ) rdfs_isDefinedBy = schema.URI( description=i18n.HELP_RDFS_ISDEFINEDBY, required=False, title=i18n.LABEL_RDFS_ISDEFINEDBY, ) foaf_depiction = schema.TextLine( required=False, title=_(u'Icon class for category'), description=_(HELP_FOAF_DEPICTION), )
class IIngestableFolder(model.Schema): u'''An abstract base class for folders whose content can be created via ingestion from RDF.''' title = schema.TextLine(title=_(u'Title'), description=_(u'The name of this folder.'), required=True) description = schema.Text( title=_(u'Description'), description=_(u'A brief description of this folder.'), required=False) labcasurl = schema.URI( title=_(u'Labcas Solr URL'), description=_( u'Uniform Resource Locator to the Solr source of labcas data.'), required=True) labcas_sourceurl_prefix = schema.URI( title=_(u'Labcas URL Prefix'), description= _(u'Uniform Resource Locator prefix to the full url of the Labcas data page.' ), required=True) ingestEnabled = schema.Bool( title=_(u'Ingest Enabled'), description= _(u'True if this folder should update its contents during routine ingest.' ), required=False)
class IOauthVncbizSettings(Interface): """OAuth Vncbiz registry settings""" client_id = schema.ASCIILine( title=_(u'client_id', default=u'Vncbiz client ID'), description=_( u'help_client_id', default= u"Alternatively, you can of course use the ID of an existing app." ), required=True, default='', ) auth_url = schema.URI( title=_(u'auth_url', default=u'Vncbiz authorize url'), description=_(u'help_auth_url', default=u""), required=True, default='http://localhost/oauth', ) profile_url = schema.URI( title=_(u'profile_url', default=u'Vncbiz profile url'), description=_(u'help_profile_url', default=u""), required=True, default='http://localhost/token', )
class ICachePurgingSettings(Interface): """Settings used by the purging algorithm. Should be installed into ``plone.registry``. """ enabled = schema.Bool( title=_(u"Enable purging"), description=_(u"If disabled, no purging will take place"), default=True, ) cachingProxies = schema.Tuple( title=_(u"Caching proxies"), description=_(u"Provide the URLs of each proxy to which PURGE " u"requests should be sent."), value_type=schema.URI(), ) virtualHosting = schema.Bool( title=_(u"Send PURGE requests with virtual hosting paths"), description=_(u"This option is only relevant if you are using " u"virtual hosting with Zope's VirtualHostMonster. " u"This relies on special tokens (VirtualHostBase " u"and VirtualHostRoot) in the URL to instruct " u"Zope about the types of URLs that the user sees. " u"If virtual host URLs are in use and this option " u"is set, PURGE requests will be sent to the " u"caching proxy with the virtual hosting tokens " u"in place. This makes sense if there is a web " u"server in front of your caching proxy performing " u"the rewrites necessary to translate a user-" u"facing URL into a virtual hosting URL, so that " u"the requests the caching proxy sees have the " u"rewrite information in them. Conversely, if the " u"rewrite is done in or behind the caching proxy, " u"you want to disable this option, so that the " u"PURGE requests use URLs that match those seen " u"by the caching proxy as they come from the " u"client."), required=True, default=False, ) domains = schema.Tuple( title=_(u"Domains"), description=_(u"This option is only relevant if you are using " u"virtual hosting and you have enabled the option " u"to send PURGE requests with virtual hosting URLs " u"above. If you your site is served on multiple " u"domains e.g. http://example.org and " u"http://www.example.org you may wish to purge " u"both. If so, list all your domains here"), required=False, default=(), missing_value=(), value_type=schema.URI(), )
class IOauth2Setting(form.Schema, IImageScaleTraversable): """ Oauth2 login method """ allowList = schema.List( title=_(u"Allow List"), description=_(u"Allow list that select website to login."), value_type=schema.Choice( title=_(u"Allow website"), vocabulary=allowWebsite, required=False, ), required=False, ) facebookAppId = schema.TextLine( title=_(u"Facebook app id"), required=False, ) facebookAppSecret = schema.TextLine( title=_(u"Facebook app secret"), required=False, ) facebookScope = schema.TextLine( title=_(u"Facebook auth scope"), required=False, ) facebookRedirectUri = schema.URI( title=_(u"Facebook redirect URL"), required=False, ) googleAppId = schema.TextLine( title=_(u"Google app id"), required=False, ) googleAppSecret = schema.TextLine( title=_(u"Google app secret"), required=False, ) googleScope = schema.TextLine( title=_(u"Google auth scope"), required=False, ) googleRedirectUri = schema.URI( title=_(u"Google redirect URL"), required=False, ) """
class EventSchema(model.Schema): """event extra fields""" image = NamedBlobImage(title=_(u"Image"), description=_(u"image_description"), required=False) urlMedia = schema.URI(title=_(u"Media URL"), description=_(u"urlMedia_description"), required=False) urlGMaps = schema.URI(title=_(u"Google Maps URL"), description=_(u"urlGMaps_description"), required=False)
class IEditMediaPathForm(interface.Interface): web_optimised_video_path = schema.URI( title=u'Web Optimised File URL', description=u'URL of the Web Optimised Media File', required=True) audio_only_path = schema.URI( title=u'Audio Only File URL', description=u'URL of the Audio Only Media File', required=False) high_quality_video_path = schema.URI( title=u'High Quality Media URL', description=u'URL of the High Quality Media File', required=False)
class IOauthFacebookSettings(Interface): """OAuth Facebook registry settings""" client_id = schema.ASCIILine( title=_(u'client_id', default=u'Facebook App ID'), description=_( u'help_client_id', default= u"Alternatively, you can of course use the ID of an existing app." ), required=True, readonly=False, ) client_secret = schema.ASCIILine( title=_(u'client_secret', default=u'Facebook API Secret'), description=_( u'help_client_secret', default= u"Alternatively, you can of course use the ID of an existing app." ), required=True, readonly=False, ) auth_url = schema.URI( title=_(u'auth_url', default=u'Facebook authorize url'), description=_(u'help_auth_url', default=u""), required=True, default='https://graph.facebook.com/oauth/authorize', # readonly = True, ) token_url = schema.URI( title=_(u'token_url', default=u'Facebook access token url'), description=_(u'help_token_url', default=u""), required=True, default='https://graph.facebook.com/oauth/access_token', # readonly = True, ) profile_url = schema.URI( title=_(u'profile_url', default=u'Facebook profile url'), description=_(u'help_profile_url', default=u""), required=True, default='https://graph.facebook.com/me', # readonly = True, )
class ISponsor(form.Schema): # TODO: Want to hide on display only #form.mode(level='hidden', url='hidden') title = schema.TextLine(title=u'Name') form.widget(level=PromptSelectFieldWidget) level = schema.Choice(title=u'Sponsorship Level', required=False, source=LevelsSourceBinder()) url = schema.URI( title=u'Link to company/personal website', required=False, ) text = RichText( title=u'About', description=u'Information about this donation.', required=False, ) amount = schema.Int( title=u'Donation Amount', required=False, ) image = field.NamedBlobImage( title=u'Image', required=False, # some people are just people )
class IBannerTile(IPersistentCoverTile): title = schema.TextLine( title=_(u'Title'), required=False, ) form.omitted(IDefaultConfigureForm, 'remote_url') remote_url = schema.URI( title=_(u'label_remote_url', default=u'URL'), description=_(u'help_remote_url', default=u'Use absolute links only.'), required=False, ) image = field.NamedBlobImage( title=_(u'Image'), required=False, ) form.omitted(IDefaultConfigureForm, 'alt_text') alt_text = schema.TextLine( title=_(u'label_alt_text', default=u'Alternative Text'), description=_( u'help_alt_text', default= u'Provides a textual alternative to non-text content in web pages.' ), # noqa E501 required=False, ) uuid = schema.TextLine( # FIXME: this must be schema.ASCIILine() title=_(u'UUID'), required=False, readonly=True, )
class IOAuthDialogParameters(interface.Interface): """OAuth dialog parameters""" client_id = schema.ASCIILine(title=_(u"App ID"), required=True, ) redirect_uri = schema.URI(title=_(u"Redirect URI"), description=i18n.oauthdialog_redirect_uri_desc, required=True, ) scope = schema.ASCIILine(title=_(u"Scope"), description=i18n.oauthdialog_scope_desc, required=False, ) state = schema.ASCIILine(title=_(u"State"), description=i18n.oauthdialog_state_desc, required=False, ) response_type = schema.Choice(title=_(u"Response Type"), description=i18n.oauthdialog_response_type_desc, required=False, vocabulary=ResponseTypeVocabulary, ) display = schema.Choice(title=_(u"Display mode"), description=i18n.oauthdialog_display_desc, required=False, vocabulary=DisplayModeVocabulary, ) #default to 'page'
class IInProximity(model.Schema): """ In Proximity items are external links with description """ external_link = schema.URI( title=u"External link", required=True, description=u"External link for this InProximity item.")
class IDCTLanguage(model.Schema, IDCAT): """Marker interface and DX Python Schema for DCTLanguage.""" # Mandatory # ------------------------------------------------------------------------- dct_title = I18NTextLine( required=True, title=i18n.LABEL_DCT_TITLE, ) dct_description = I18NText( required=False, title=i18n.LABEL_DCT_DESCRIPTION, ) rdfs_isDefinedBy = schema.URI( required=False, title=i18n.LABEL_RDFS_ISDEFINEDBY, ) old_representation = schema.TextLine( required=False, title=u'2 Letter Representation', ) new_representation = schema.TextLine( required=True, title=u'3 Letter Representation', )
class IEngineDirective(interface.Interface): """ Creates A Database Engine. Database Engines are named utilities. """ url = schema.URI( title=u'Database URL', description=u'SQLAlchemy Database URL', required=True, ) name = schema.Text( title=u'Engine Name', description=u'Empty if this engine is the default engine.', required=False, default=u'', ) echo = schema.Bool(title=u'Echo SQL statements', description=u'Debugging Echo Log for Engine', required=False, default=False) pool_recycle = schema.Int(title=u"Connection Recycle", description=u"Time Given in Seconds", required=False, default=-1)
class IExhibitionObject(model.Schema): """Schema for Exhibition Objects.""" exhibition_context = schema.TextLine(title=_(u'Context'), required=False) date = schema.TextLine(title=_(u'Date'), required=False) not_before = schema.Int(title=_(u'Not Before'), required=False) not_after = schema.Int(title=_(u'Not After'), required=False) dimensions = schema.TextLine(title=_(u'Dimensions'), required=False) inventory_num = schema.TextLine(title=_(u'Inventory Number'), required=True) lender = schema.TextLine(title=_(u'Lender'), required=False) lender_link = schema.URI(title=_(u'Lender Link'), required=False) medium = schema.TextLine(title=_(u'Medium'), required=False) notes = schema.TextLine(title=_(u'Notes'), required=False) credits = schema.TextLine(title=_(u'Credit Line'), required=False) copyright = schema.TextLine(title=_(u'Copyright Notice'), required=False) image = namedfile.NamedBlobImage(title=_(u'Lead Image'), required=False) dexteritytextindexer.searchable('text') text = RichText(title=_(u'Body'), required=False) label = RichText(title=_(u'Label'), required=False)
class IPublisherCard(model.Schema): """Marker interface and Dexterity Python Schema for PublisherCard.""" title = schema.TextLine( required=True, title=_(u'Publisher Name'), ) description = schema.Text( title=_(u'Description'), required=False, ) logo = NamedBlobImage( title=_(u'Logo'), required=False, ) form.widget('text', WysiwygFieldWidget) text = schema.Text( title=_('Text'), required=False, ) sparql_identifier = schema.URI( required=False, title=_(u'SPARQL Identifier for Publisher'), description=_(u'The URI of the Sparql-Object to be linked.'), )
class IEmbeddedPage(Interface): title = schema.TextLine( title=_(u"Title"), required=True, ) description = schema.Text( title=_(u"Description"), required=False, ) url = schema.URI( title=_("URI"), required=True, ) before = RichText( title=_(u'Show Before'), required=False, ) after = RichText( title=_(u'Show After'), required=False, ) form.widget(disable_right_portlet=SingleCheckBoxFieldWidget) disable_right_portlet = schema.Bool( title=_(u'Disable Right Portlet'), required=False, )
class INotiz(model.Schema): """ Marker interface and Dexterity Python Schema for Notiz """ notiz = schema.Text(title=u'Notiz') link = schema.URI(title=u'URL der Referenz')
class ILicense(Interface): id = schema.ASCIILine( title=u"License Title", description=u"Used to assign a license to a portal type." ) text = schema.Text( title=u"License Text", description=u"Human readable text of license" ) copyright = schema.ASCIILine( title=u"Copyright Notice", description=u"Example: Crown copyright 2013" ) attribution = schema.ASCIILine( title=u"Attribution Text", description=u"Example: Education Department" ) url = schema.URI( title=u"License URL", description=u"Don't forget http:// or https://" )
class IAnlagenVerweise(Interface): nr = schema.TextLine(title=u"Nr.") bezeichnung = schema.TextLine(title=u"Bezeichnung des Verweises", required=False) link = schema.URI(title=u"Link bzw. URL", required=False) anmerkung = schema.TextLine(title=u"Anmerkung", required=False)
class ISponsor(model.Schema): """Dexterity-Schema for Sponsors """ directives.widget(level=RadioFieldWidget) level = schema.Choice(title=_(u"Sponsoring Level"), vocabulary=LevelVocabulary, required=True) text = RichText(title=_(u"Text"), required=False) url = schema.URI(title=_(u"Link"), required=False) fieldset('Images', fields=['logo', 'advertisment']) logo = namedfile.NamedBlobImage( title=_(u"Logo"), required=False, ) advertisment = namedfile.NamedBlobImage( title=_(u"Advertisment (Gold-sponsors and above)"), required=False, ) directives.read_permission(notes="cmf.ManagePortal") directives.write_permission(notes="cmf.ManagePortal") notes = RichText(title=_(u"Secret Notes (only for site-admins)"), required=False)
class ICanonicalURLUpdater(model.Schema): """A form to update the canonical url of portal objects based on a date.""" old_canonical_domain = schema.URI( title=_(u'Old canonical domain'), description= _(u'help_canonical_domain', default= u'The canonical domain will be used to construct the canonical URL (<code>og:url</code> property) of portal objects. ' u'Use the domain name of your site (e.g. <strong>http://www.example.org</strong> or <strong>https://www.example.org</strong>). ' u'Facebook will use the canonical URL to ensure that all actions such as likes and shares aggregate at the same URL rather than spreading across multiple versions of a page. ' u'Check <a href="https://pypi.python.org/pypi/sc.social.like">package documentation</a> for more information on how to use this feature.' ), required=True, constraint=validate_canonical_domain, ) published_before = schema.Date( title=_(u'Date'), description= _(u'help_published_before', default= u'Objects published before this date will be updated using the canonical domain defined in this form; ' u'objects published on or after this date will be updated using the canonical domain defined in the control panel configlet.' ), required=True, )
class IYoutube(Interface): """ """ youtubeURL = schema.URI( title=_(u"Youtube URL"), required=True, )
class ISlide(Interface): configuration = schema.Choice( source="slide_configuration_choices", title=_(u"Layout"), description=_(u"Choose a layout for this slide."), required=False) heading = schema.TextLine( title=_(u"Heading"), required=False, ) image = schema.Bytes(title=_(u"Image"), required=False) slide = schema.Text(title=_(u"Text"), required=False) link_reference = schema.Choice( title=_(u"Link to content"), description=_(u"Choose a content item to link this slide to."), source=SearchableTextSourceBinder({}, default_query='path:'), required=False, ) url = schema.URI( title=_(u'External link'), description=_( u'Please enter a full URL. Has precedence before the above field.' ), required=False, ) index = schema.Int(title=u'', required=False)
class IAddTag(Interface): """ Form to add a new image tag """ id = schema.TextLine(title=_(u"Id"), required=False) field = schema.Choice( title=_(u"Image field"), description=_(u"Image field you want to add this tag"), vocabulary='collective.imagetags.imagefields', required=True) title = schema.TextLine(title=_(u"Title displayed in the tag"), required=True) url = schema.URI(title=_(u"Link for the tag"), required=False) x = schema.Float( title=_(u"X position"), description=_( u"Position in the X axis of the center of the box (0-100%)"), min=0.0, max=100.0) y = schema.Float( title=_(u"Y position"), description=_( u"Position in the Y axis of the center of the box (0-100%)"), min=0.0, max=100.0)