Example #1
0
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',
        ],
    )
Example #2
0
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')
Example #3
0
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, ),
    )
Example #4
0
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,
    )
Example #5
0
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,
    )
Example #6
0
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),
    )
Example #7
0
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)
Example #8
0
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',
    )
Example #9
0
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(),
    )
Example #10
0
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,
    )
    """
Example #11
0
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)
Example #12
0
 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)
Example #13
0
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,
    )
Example #14
0
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
    )
Example #15
0
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,
    )
Example #16
0
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.")
Example #18
0
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',
    )
Example #19
0
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)
Example #20
0
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)
Example #21
0
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.'),
    )
Example #22
0
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,
    )
Example #23
0
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')
Example #24
0
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://"
    )
Example #25
0
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)
Example #26
0
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)
Example #27
0
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,
    )
Example #28
0
class IYoutube(Interface):
    """  """

    youtubeURL = schema.URI(
        title=_(u"Youtube URL"),
        required=True,
    )
Example #29
0
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)