class IEntry(IContainer): """ This interface is based on the Atom entry definition, from the Atom RFC. http://tools.ietf.org/html/rfc4287 """ # id is generated when we generate entry text title = schema.TextLine(title=u"Title", required=True) updated = schema.Datetime(title=u"Updated", required=True) published = schema.Datetime(title=u"Published", required=False) ## authors = schema.List(title=u"Authors", value_type=schema.Object, ## default=[]) ## contributors = schema.List(title=u"Contributors", value_type=schema.Object, ## default=[]) categories = schema.List(title=u"Categories", value_type=schema.TextLine(title=u"Categories"), default=[]) #links = schema.List(title=u"Links", value_type=schema.TextLine, # default=[]) summary = schema.SourceText(title=u"Summary", required=False) content = schema.SourceText(title=u"Content")
class ILegislaturesRowSchema(model.Schema): legislature = schema.SourceText( title=_( "legislature_label", default=u"Legislature", ), description=_( "legislature_help", default=u"Insert the legislature name.", ), required=True, ) arguments = schema.List( title=_( "legislature_arguments_label", default=u"Arguments", ), description=_( "legislature_arguments_help", default=u"Insert a list of arguments related to this legislature." u" One per line.", ), required=True, value_type=schema.TextLine(), )
class IPasPluginsAuthomaticSettings(Interface): secret = schema.TextLine( title=_(u"Secret"), description=_('help_secret', default=u"Some random string used to encrypt the state"), required=True, default=random_secret, ) userid_factory_name = schema.Choice( vocabulary="pas.plugins.authomatic.userid_vocabulary", title=_(u"Generator for Plone User IDs."), description=_( "help_userid_factory_name", default=u"It is visible if no fullname is mapped and in some " u"rare cases in URLs. It is the identifier used for " u"the user inside Plone."), default='uuid') json_config = schema.SourceText( title=_(u"JSON configuration"), description=_('help_json_config', default=u'Configuration parameters for the different ' u'authorization providers. Details at ' u'https://authomatic.github.io/authomatic/reference/' u'providers.html ' u'- difference: "class_" has to be a string, which is ' u'then resolved as a dotted path. Also sections ' u'"display" and "propertymap" are special.'), required=True, constraint=validate_cfg_json, default=DEFAULT_CONFIG, )
class ICourse(Interface): """A Course """ #containers('.ICourseFolder') title = schema.TextLine(title=_(u"Course title"), required=True) description = schema.TextLine( title=_(u"Description"), description=_(u"Plain-text blurb about the course")) course_code = schema.ASCIILine( title=_(u"Course Code"), description=_( u"This should match the course code used by the booking system"), required=True) objetives = schema.SourceText(title=_(u"Objetives"), description=_(u"A objetives of the course"), required=True) start_date = schema.Date( title=_(u"Visible from"), description=_(u"Date when course first appears on the website")) end_date = schema.Date( title=_(u"Visible until"), description=_(u"Date when course last appears on the website")) category = schema.TextLine(title=_(u"Category"), required=True)
class IErrorCodeValuePair(Interface): message = schema.ASCIILine(title=_(u"Error message"), required=True) message_snippet = schema.SourceText(title=_(u"Code to include"), required=False) position = schema.Choice( title=_(u"Include code in..."), required=True, default=u'footer', vocabulary=u"collective.analyticspanel.vocabularies.positions")
class IClassifiedJob(Interface): """A Classified Job Post""" # -*- schema definition goes here -*- # positiondescription = schema.Bytes( title=_(u"Position Description"), required=True, description=_(u"Upload a position description PDF"), ) # jobinfo = schema.SourceText( title=_(u"Job Information"), required=True, description=_(u""), ) # jobsummary = schema.SourceText( title=_(u"Summary"), required=True, description=_(u""), ) # jobduties = schema.SourceText( title=_(u"Job Duties"), required=True, description=_(u""), ) # jobskills = schema.SourceText( title=_(u"Job Knowledge, Skills and Abilities"), required=True, description=_(u""), ) # howtoapply = schema.SourceText( title=_(u"How to Apply"), required=True, description=_(u""), )
class IZipContent(Interface): """A folder containing courses """ title = schema.TextLine(title=_(u"Title"), required=True) description = schema.SourceText( title=_(u"Description"), description=_(u"A short summary of this folder")) filename = schema.Object( schema=INamedFile, title=_(u"Zip File"), description=_(u"The path of the zip package on your local machine."), required=False)
class ISCO(Interface): """A folder containing courses """ title = schema.TextLine(title=_(u"Title"), required=True) description = schema.SourceText( title=_(u"Description"), description=_(u"A short summary of this folder")) filename = schema.Object( schema=INamedFile, title=u"SCORM File", description=u"The name of the scrom package on your local machine.", required=False)
class IPathkeyFinnishForm(Interface): """ Finnish pathkey content """ pathkeyTitle_fi = schema.TextLine( title=_(u"Legend text"), description=_(u"You can give custom legend text"), required=False, default=u"Polkuavain", ) pathkeyDescription_fi = schema.SourceText( title=_(u"Additional description for pathkey requester form"), required=False, default= u"Sisällön omistaja on estänyt pääsyn sisältöön. Anna oikea polkuavain jatkaaksesi.", )
class IPathkeyEnglishForm(Interface): """ English pathkey content """ pathkeyTitle_en = schema.TextLine( title=_(u"Legend text"), description=_(u"You can give custom legend text"), required=False, default=u"Pathkey", ) pathkeyDescription_en = schema.SourceText( title=_(u"Additional description for pathkey requester form"), required=False, default= u"Access restricted by contents owner. Please give correct pathkey to continue.", )
class ISitePathValuePair(Interface): path = schema.TextLine(title=_(u"Site path"), required=True) path_snippet = schema.SourceText(title=_(u"Code to include"), required=False) apply_to = schema.Choice( title=_(u"Apply rule to..."), description=_( 'help_apply_to', default=u'Choose a policy for applying this rule.\n' u'When using "context and children" note that the rule will be ' u'applied to the context and all non-folderish children.\n' u'This make sense only with folderish context.\n' u'See "Advanced settings" section for defining what is a folder ' u'for your site.'), required=True, default=u'subtree', vocabulary=u"collective.analyticspanel.vocabularies.apply_to_choices")
class IElevateSettings(model.Schema): """ """ elevate_schema = schema.SourceText( title=_(u"elevate_schema_label", default=u"Elevate configuration"), description=_( u"elevate_schema_help", default=u"Insert a list of values for elevate.", ), required=False, ) @invariant def elevate_invariant(data): schema = json.loads(data.elevate_schema) request = getRequest() words_mapping = [x["text"] for x in schema] for i, schema_item in enumerate(schema): elevate_text = schema_item.get("text", []) if not elevate_text: raise Invalid( translate( _( "text_required_label", default= "Text field must be filled for Group ${id}.", mapping=dict(id=i + 1), ), context=request, )) for text in elevate_text: for words_i, words in enumerate(words_mapping): if i == words_i: # it's the current config continue if text in words: raise Invalid( translate( _( "text_duplicated_label", default= '"${text}" is used in several groups.', mapping=dict(id=i, text=text), ), context=request, ))
class registroSchema(interface.Interface): nombre = schema.TextLine(title=_(u"Nombre de la Empresa"), description=_(u"Nombre completeo de la Empresa")) username = schema.ASCIILine( title=_(u'Nombre de Usuario'), description=_(u"Ingrese el nombre de usuario, generalmente como \ Juan Perez. \ No use espacios ni caracteres especiales. \ Usernames and passwords are case sensiti."), required=True) telefono = schema.TextLine(title=_(u'Telefono'), description=_(u'Telefono de la Empresa'), required=True) email = schema.ASCIILine(title=_(u'Enter an email address'), description=_(u'Su correo Electronico'), required=True) direccion = schema.TextLine( title=_(u'Direccion'), description=_(u'Introdusca la Direccion Fisica de su Empresa'), required=False) descripcion = schema.SourceText( title=_(u"Perfil de la Empresa"), description=_(u"Agregue una breve descripcion"), required=False) password = schema.Password(title=_(u'Password'), description=_(u'Minimo 5 caracteres.'), required=True) password_ctl = schema.Password( title=_(u'Confirmar el Password'), description=_(u"Vuelva a Ingresar el password."), required=True) denominacion = schema.Choice(title=_(u'Denominacion'), values=[u'Publica', u'Privada'], default=u"Publica")
class ISiteSchema(ILockSettings): site_title = schema.TextLine( title=_(u'Site title'), description=_( u"This shows up in the title bar of " u"browsers and in syndication feeds."), default=u'Plone site') site_logo = schema.ASCII( title=_(u"Site Logo"), description=_(u"This shows a custom Logo on your Site."), required=False, ) exposeDCMetaTags = schema.Bool( title=_(u"Expose Dublin Core metadata"), description=_(u"Exposes the Dublin Core properties as metatags."), default=False, required=False) enable_sitemap = schema.Bool( title=_(u"Expose sitemap.xml.gz"), description=_( u"Exposes your content as a file " u"according to the sitemaps.org standard. You " u"can submit this to compliant search engines " u"like Google, Yahoo and Microsoft. It allows " u"these search engines to more intelligently " u"crawl your site."), default=False, required=False) webstats_js = schema.SourceText( title=_(u'JavaScript for web statistics support'), description=_( u"For enabling web statistics support " u"from external providers (for e.g. Google " u"Analytics). Paste the code snippets provided. " u"It will be included in the rendered HTML as " u"entered near the end of the page."), default=u'', required=False)
class ISettings(Interface): """ Define settings data structure """ style = schema.SourceText( title=_(u'Style'), description=_(u'Some style to be applied to playlist. CSS'), default=u'', required=False, ) stylesheets = schema.List( title=_(u'Stylesheets'), description= _(u'Some stylesheets to be applied to playlist. e.g. https://fonts.googleapis.com/css?family=Ubuntu' ), # noqa E501 default=[], missing_value=None, required=False, value_type=schema.TextLine(), )
class IRawEmbedTile(Schema): """ Raw Embed Tile """ tile_title = schema.TextLine( title=_(u'Title'), description=_(u"""The title will also be used to create identifying class on that tile"""), required=True, ) show_title = schema.Bool( title=_(u'Show tile title'), default=True ) ignore_querystring('html_snippet') html_snippet = schema.SourceText( title=_(u"HTML Snippet"), description=_(u"""Be CAREFUL what you paste here, no security checks or transforms to safe_html will be done!"""), required=False, )
class IRerSolrpushConf(model.Schema): """""" active = schema.Bool( title=_(u"Active"), description=_(u"Enable SOLR indexing on this site."), required=False, default=False, ) force_commit = schema.Bool( title=_(u"Force commit"), description= _(u"Force commits on CRUD operations. If enabled, each indexing " u"operation to SOLR will be immediately committed and persisted. " u"This means that updates are immediately available on SOLR queries." # noqa u"If you are using SolrCloud with ZooKeeper, immediate commits " u"will slow down response performances when indexing, so it's " u"better to turn it off. In this case updates will be available " u"when SOLR periodically commit changes."), required=False, default=True, ) solr_url = schema.TextLine( title=_(u"SOLR url"), description=_(u"The SOLR core to connect to."), required=True, ) frontend_url = schema.TextLine( title=_(u"Frontend url"), description=_(u"If the website has different URL for frontend users."), required=False, ) enabled_types = schema.List( title=_(u"enabled_types_label", default=u"Enabled portal types"), description=_( u"enabled_types_help", default=u"Select a list of portal types to index in solr. " u"Empty list means that all portal types will be indexed.", ), required=False, default=[], missing_value=[], value_type=schema.Choice( vocabulary="plone.app.vocabularies.PortalTypes"), ) index_fields = schema.SourceText( title=_( "index_fields_label", default=u"List of fields loaded from SOLR that we use for " u"indexing.", ), description=_( u"index_fields_help", default=u"We store this list for performance" u" reasons. If the configuration changes, you need to click on" u" Reload button", ), required=False, ) # NASCOSTO DAL PANNELLO DI CONTROLLO (vedi: browser/controlpanel.py) ready = schema.Bool( title=_(u"Ready"), description=_(u"SOLR push is ready to be used."), required=False, default=False, )
class IUnclassifiedJob(Interface): """Content type for unclassified positions""" # -*- schema definition goes here -*- positiondescription = schema.Bytes( title=_(u"Position Description"), required=True, description=_(u""), ) # department = schema.TextLine( title=_(u"Department"), required=True, description=_(u""), ) # responsibilities = schema.SourceText( title=_(u"Responsibilities"), required=True, description=_(u""), ) # requirements = schema.SourceText( title=_(u"Requirements (Degree/Experience)"), required=True, description=_(u""), ) # preferences = schema.SourceText( title=_(u"Preferences"), required=True, description=_(u""), ) # startdate = schema.TextLine( title=_(u"Starting Date"), required=True, description=_(u""), ) # salary = schema.Text( title=_(u"Salary"), required=True, description=_(u""), ) # terms = schema.Text( title=_(u"Terms of Appointment"), required=True, description=_(u""), ) # deadline = schema.TextLine( title=_(u"Application Deadline"), required=True, description=_(u""), ) # howtoapply = schema.Text( title=_(u"How to Apply"), required=True, description=_(u""), )
class IComment(Interface): date = schema.Datetime(title=u"Date", required=True) comment = schema.SourceText(title=u"Comment", required=True) author = schema.TextLine(title=u"Author", required=True)
class IRestructuredTextEntry(IEntry): content = schema.SourceText(title=u"Content")
class IPaste(form.Schema): """ A content-type for source code snippets. """ lexer = schema.Choice(title=_(u"Language"), vocabulary=u"sg.pastebin.languages", default='python') code = schema.SourceText(title=_(u"Source code"))
class IRerUfficiostampaSettings(model.Schema): legislatures = schema.SourceText( title=_( "legislatures_label", default=u"List of legislatures", ), description=_( "legislatures_help", default=u"This is a list of all legislatures. The last one is the" u" one used to fill fields in a new Comunicato.", ), required=True, ) subscription_channels = schema.List( title=_(u"subscription_channels_label", default=u"Subscription Channels"), description=_( u"subscription_channels_description", default=u"List of available subscription channels." u"One per line." u"These channels will be used for users subscriptions " u"and for select to which channel send a Comunicato.", ), required=True, default=[], missing_value=[], value_type=schema.TextLine(), ) token_secret = schema.TextLine( title=_("token_secret_label", default=u"Token secret"), description=_( "token_secret_help", default=u"Insert the secret key for token generation.", ), required=True, ) token_salt = schema.TextLine( title=_("token_salt_label", default=u"Token salt"), description=_( "token_salt_help", default=u"Insert the salt for token generation. This, in " u"conjunction with the secret, will generate unique tokens for " u"subscriptions management links.", ), required=True, ) frontend_url = schema.TextLine( title=_("frontend_url_label", default=u"Frontend URL"), description=_( "frontend_url_help", default=u"If the frontend site is published with a different URL " u"than the backend, insert it here. All links in emails will be " u"converted with that URL.", ), required=False, ) external_sender_url = schema.TextLine( title=_("external_sender_url_label", default=u"External sender URL"), description=_( "external_sender_url_help", default=u"If you want to send emails with an external tool " u"(rer.newsletterdispatcher.flask), insert the url of the service " u"here. If empty, all emails will be sent from Plone.", ), required=False, ) css_styles = schema.SourceText( title=_( "css_styles_label", default=u"Styles", ), description=_( "css_styles_help", default=u"Insert a list of CSS styles for received emails.", ), required=True, ) comunicato_number = schema.Int( title=_( "comunicato_number_label", default=u"Comunicato number", ), description=_( "comunicato_number_help", default=u"The number of last sent Comunicato. You don't have to " "edit this. It's automatically updated when a Comunicato is published.", # noqa ), required=True, default=0, ) comunicato_year = schema.Int( title=_( "comunicato_year_label", default=u"Comunicato year", ), description=_( "comunicato_year_help", default=u"You don't have to edit this. It's automatically updated" u" on every new year.", ), required=True, default=2021, )
class IRerSolrpushConf(model.Schema): """ """ active = schema.Bool( title=_(u"Active"), description=_(u"Enable SOLR indexing on this site."), required=False, default=False, ) solr_url = schema.TextLine( title=_(u"SOLR url"), description=_(u"The SOLR core to connect to."), required=True, ) frontend_url = schema.TextLine( title=_(u"Frontend url"), description=_(u"If the website has different URL for frontend users."), required=False, ) enabled_types = schema.List( title=_(u'enabled_types_label', default=u'Enabled portal types'), description=_( u'enabled_types_help', default=u'Select a list of portal types to index in solr. ' u'Empty list means that all portal types will be indexed.', ), required=False, default=[], missing_value=[], value_type=schema.Choice( vocabulary='plone.app.vocabularies.PortalTypes' ), ) # elevate_xml = schema.Text( # title=u'Configurazione elevate', # description=u'Inserisci una configurazione per l\'elevate come ' # u'se fosse un file xml.', # required=False, # constraint=elevateConstraint, # ) # enable_query_debug = schema.Bool( # title=u'Abilita il debug delle query solr', # description=u'Se selezionato, mostra la query effettuata su solr, ' # u'per il debug. Solo per gli amministratori del sito.', # required=False, # ) # directives.widget(index_fields=SolrFieldsFieldWidget) index_fields = schema.SourceText( title=_( 'index_fields_label', default=u'List of fields loaded from SOLR that we use for indexing.', ), description=_( u'index_fields_help', default=u'We store this list for performance' u' reasons. If the configuration changes, you need to click on' u' Reload button', ), required=False, ) # NASCOSTO DAL PANNELLO DI CONTROLLO (vedi: browser/controlpanel.py) ready = schema.Bool( title=_(u"Ready"), description=_(u"SOLR push is ready to be used."), required=False, default=False, )
class IThemeSettings(Interface): """Transformation settings """ enabled = schema.Bool( title=_('enabled', u"Enabled"), description=_( 'enable_theme_globally', u"Use this option to enable or disable the theme globally. " u"Note that the options will also affect whether the theme " u"is used when this option is enabled."), required=True, default=False, ) currentTheme = schema.TextLine( title=_('current_theme', u"Current theme"), description=_( 'current_theme_description', u"The name of the current theme, i.e. the one applied most " u"recently."), required=True, ) rules = schema.TextLine( title=_('rules_file', u"Rules file"), description=_('rules_file_path', u"File path to the rules file"), required=False, ) absolutePrefix = schema.TextLine( title=_('absolute_url_prefix', u"Absolute URL prefix"), description=_( 'convert_relative_url', u"Convert relative URLs in the theme file to absolute paths " u"using this prefix."), required=False, ) readNetwork = schema.Bool( title=_('readNetwork', u"Read network"), description=_( 'network_urls_allowed', u"If enabled, network (http, https) urls are allowed in " u"the rules file and this config."), required=True, default=False, ) hostnameBlacklist = schema.List( title=_('hostname_blacklist', u"Unthemed host names"), description=_( 'hostname_blacklist_description', u"If there are hostnames that you do not want to be themed, you " u"can list them here. This is useful during theme development, " u"so that you can compare the themed and unthemed sites. In some " u"cases, you may also want to provided an unthemed host alias for " u"content administrators to be able to use 'plain' Plone."), value_type=schema.TextLine(), required=False, default=["127.0.0.1"], ) parameterExpressions = schema.Dict( title=_('parameter_expressions', u"Parameter expressions"), description=_( 'parameter_expressions_description', u"You can define parameters here, which will be passed to the " u"compiled theme. In your rules file, you can refer to a " u"parameter by $name. Parameters are defined using TALES " u"expressions, which should evaluate to a string, a number, a " u"boolean or None. Available variables are `context`, `request`, " u"`portal`, `portal_state`, and `context_state`."), key_type=schema.ASCIILine(), value_type=schema.ASCIILine(), required=False, default={}, ) doctype = schema.ASCIILine( title=_('doctype', u"Doctype"), description=_( 'doctype_description', u'You can specify a Doctype string which will be set on the ' u'for example "<!DOCTYPE html>". If left blank the default XHTML ' u'1.0 transitional Doctype or that set in the Diazo theme is used.' ), required=False, default="", ) custom_css = schema.SourceText( title=_( 'label_custom_css', u'Custom CSS', ), description=_( 'help_custom_css', u'Define your own custom CSS in the field below. This is a good ' u'place for quick customizations of things like colors and the ' u'toolbar. Definitions here will override previously defined CSS ' u'of Plone. Please use this only for small customizations, as it ' u'is hard to keep track of changes here. For bigger changes you most ' u'likely want to customize a full theme and make your changes ' u'there.', ), default=u"", required=False, ) custom_css_timestamp = schema.Datetime( title=_(u'Custom CSS Timestamp', ), description=_( u'Time stamp when the custom CSS was changed. ' u'Used to generate custom.css with timestamp in URL.', ), defaultFactory=get_default_custom_css_timestamp, required=False, )
class ISiteSchema(ILockSettings): site_title = schema.TextLine( title=_(u'Site title'), description=_( u"This shows up in the title bar of " u"browsers and in syndication feeds."), default=u'Plone site') site_logo = schema.ASCII( title=_(u"Site Logo"), description=_(u"This shows a custom Logo on your Site."), required=False, ) exposeDCMetaTags = schema.Bool( title=_(u"Expose Dublin Core metadata"), description=_(u"Exposes the Dublin Core properties as metatags."), default=False, required=False) enable_sitemap = schema.Bool( title=_(u"Expose sitemap.xml.gz"), description=_( u"Exposes your content as a file " u"according to the sitemaps.org standard. You " u"can submit this to compliant search engines " u"like Google, Yahoo and Microsoft. It allows " u"these search engines to more intelligently " u"crawl your site."), default=False, required=False) webstats_js = schema.SourceText( title=_(u'JavaScript for web statistics support'), description=_( u"For enabling web statistics support " u"from external providers (for e.g. Google " u"Analytics). Paste the code snippets provided. " u"It will be included in the rendered HTML as " u"entered near the end of the page."), default=u'', required=False) toolbar_position = schema.Choice( title=_(u'Position where the toolbar is displayed'), description=_( u"It can be in the side vertical mode " u"or in the top horizontal mode"), default=u'side', vocabulary=SimpleVocabulary([ SimpleTerm('side', 'side', _(u"Side")), SimpleTerm('top', 'top', _(u"Top"))]), required=True) toolbar_logo = schema.TextLine( title=_(u"Site based relative url for toolbar logo"), description=_( u"This must be a relative url to portal root site. " u"By default its /++plone++static/plone-toolbarlogo.svg"), default=u'/++plone++static/plone-toolbarlogo.svg', required=False, )
class IErrorCodeValuePair(Interface): message = schema.ASCIILine(title=_(u"Error message"), required=True) message_snippet = schema.SourceText(title=_(u"Code to include"), required=False)
class IExample(model.Schema): """Dexterity-Schema with all field-types.""" # The most used fields # textline, text, bool, richtext, email fieldset( "numberfields", label=u"Number fields", fields=("int_field", "float_field"), ) fieldset( "datetimefields", label=u"Date and time fields", fields=( "datetime_field", "date_field", "time_field", "timedelta_field", ), ) fieldset( "choicefields", label=u"Choice and Multiple Choice fields", fields=( "choice_field", "choice_field_radio", "choice_field_select", "choice_field_voc", "list_field", "list_field_checkbox", "list_field_select", "list_field_voc_unconstrained", "tuple_field", "set_field", "set_field_checkbox", ), ) fieldset( "relationfields", label=u"Relation fields", fields=( "relationchoice_field", "relationlist_field", "relationchoice_field_constrained", "relationlist_field_constrained", "relationlist_field_search_mode", "relationchoice_field_select", "relationchoice_field_radio", "relationlist_field_select", "relationlist_field_checkbox", "relationchoice_field_ajax_select", "relationlist_field_ajax_select", ), ) fieldset( "uuidrelationfields", label=u"Relation widgets with uuids", fields=( "uuid_choice_field", "uuid_list_field", "uuid_choice_field_constrained", "uuid_list_field_constrained", "uuid_list_field_search_mode", "uuid_choice_field_select", "uuid_choice_field_radio", "uuid_list_field_select", "uuid_list_field_checkbox", "uuid_choice_field_ajax_select", "uuid_list_field_ajax_select", ), ) fieldset( "filefields", label=u"File fields", fields=("file_field", "image_field"), ) fieldset( "otherfields", label=u"Other fields", fields=( "uri_field", "sourcetext_field", "ascii_field", "bytesline_field", "asciiline_field", "pythonidentifier_field", "dottedname_field", # 'dict_field', # "vocabularyterms_field", # "vocabularytermstranslation_field", # 'dict_field_with_choice', ), ) fieldset( "datagrid", label=u"Datagrid field", fields=("datagrid_field", ), ) primary("title") title = schema.TextLine( title=u"Primary Field (Textline)", description=u"zope.schema.TextLine", required=True, ) description = schema.TextLine( title=u"Description (Textline)", description=u"zope.schema.TextLine", required=False, ) text_field = schema.Text( title=u"Text Field", description=u"zope.schema.Text", required=False, missing_value=u"", ) textline_field = schema.TextLine( title=u"Textline field", description=u"A simple input field (schema.TextLine)", required=False, ) bool_field = schema.Bool( title=u"Boolean field", description=u"zope.schema.Bool", required=False, ) choice_field = schema.Choice( title=u"Choice field", description=u"zope.schema.Choice", values=[u"One", u"Two", u"Three"], required=True, ) directives.widget(choice_field_radio=RadioFieldWidget) choice_field_radio = schema.Choice( title=u"Choice field with radio boxes", description=u"zope.schema.Choice", values=[u"One", u"Two", u"Three"], required=False, ) choice_field_voc = schema.Choice( title=u"Choicefield with values from named vocabulary", description=u"zope.schema.Choice", vocabulary="plone.app.vocabularies.PortalTypes", required=False, ) directives.widget(choice_field_select=SelectFieldWidget) choice_field_select = schema.Choice( title=u"Choicefield with select2 widget", description=u"zope.schema.Choice", vocabulary="plone.app.vocabularies.PortalTypes", required=False, ) list_field = schema.List( title=u"List field", description=u"zope.schema.List", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=[], ) directives.widget(list_field_checkbox=CheckBoxFieldWidget) list_field_checkbox = schema.List( title=u"List field with checkboxes", description=u"zope.schema.List", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=[], ) directives.widget(list_field_select=SelectFieldWidget) list_field_select = schema.List( title=u"List field with select widget", description=u"zope.schema.List", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=[], ) list_field_voc_unconstrained = schema.List( title= u"List field with values from vocabulary but not constrained to them.", description=u"zope.schema.List", value_type=schema.TextLine(), required=False, missing_value=[], ) directives.widget( "list_field_voc_unconstrained", AjaxSelectFieldWidget, vocabulary="plone.app.vocabularies.PortalTypes", pattern_options={ "closeOnSelect": False, # Select2 option to leave dropdown open for multiple selection }, ) tuple_field = schema.Tuple( title=u"Tuple field", description=u"zope.schema.Tuple", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=(), ) set_field = schema.Set( title=u"Set field", description=u"zope.schema.Set", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value={}, ) directives.widget(set_field_checkbox=CheckBoxFieldWidget) set_field_checkbox = schema.Set( title=u"Set field with checkboxes", description=u"zope.schema.Set", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value={}, ) # File fields image_field = NamedBlobImage( title=u"Image field", description= u"A upload field for images (plone.namedfile.field.NamedBlobImage)", required=False, ) file_field = NamedBlobFile( title=u"File field", description= u"A upload field for files (plone.namedfile.field.NamedBlobFile)", required=False, ) # Date and Time fields datetime_field = schema.Datetime( title=u"Datetime field", description=u"Uses a date and time picker (zope.schema.Datetime)", required=False, ) date_field = schema.Date( title=u"Date field", description=u"Uses a date picker (zope.schema.Date)", required=False, ) time_field = schema.Time( title=u"Time field", description=u"zope.schema.Time", required=False, ) timedelta_field = schema.Timedelta( title=u"Timedelta field", description=u"zope.schema.Timedelta", required=False, ) # Relation Fields relationchoice_field = RelationChoice( title=u"Relationchoice field", description=u"z3c.relationfield.schema.RelationChoice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) relationlist_field = RelationList( title=u"Relationlist Field", description=u"z3c.relationfield.schema.RelationList", default=[], value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) relationchoice_field_constrained = RelationChoice( title=u"Relationchoice field (only allows Documents)", description=u"z3c.relationfield.schema.RelationChoice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) directives.widget( "relationchoice_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document"]}, ) relationlist_field_constrained = RelationList( title=u"Relationlist Field (only allows Documents and Events)", description=u"z3c.relationfield.schema.RelationList", default=[], value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) directives.widget( "relationlist_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document", "Event"]}, ) relationlist_field_search_mode = RelationList( title= u"Relationlist Field in Search Mode (constrained to published Documents and Events)", description=u"z3c.relationfield.schema.RelationList", default=[], value_type=RelationChoice(source=CatalogSource( portal_type=["Document", "Event"], review_state="published")), required=False, missing_value=[], ) directives.widget( "relationlist_field_search_mode", RelatedItemsFieldWidget, pattern_options={ "baseCriteria": [ # This is a optimization that limits the catalog-query { "i": "portal_type", "o": "plone.app.querystring.operation.selection.any", "v": ["Document", "Event"], }, { "i": "review_state", "o": "plone.app.querystring.operation.selection.any", "v": "published", }, ], "mode": "search", }, ) # From here on we use other widgets than the default RelatedItemsFieldWidget # This one also works in Volto! # All other options use the default ObjectWidget in Volto so far. relationchoice_field_select = RelationChoice( title=u"RelationChoice with Select Widget", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", }), required=False, ) directives.widget( "relationchoice_field_select", SelectFieldWidget, ) relationchoice_field_radio = RelationChoice( title= u"RelationChoice with Radio Widget (and customized title-template)", vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event"], "review_state": "published", }, title_template="{brain.Title}", ), # Set a custom vocabulary item title required=False, ) directives.widget( "relationchoice_field_radio", RadioFieldWidget, ) relationlist_field_select = RelationList( title= u"RelationList with select widget with items from a named vocabulary", value_type=RelationChoice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "relationlist_field_select", SelectFieldWidget, pattern_options={ "closeOnSelect": False, # Select2 option to leave dropdown open for multiple selection }, ) relationlist_field_checkbox = RelationList( title=u"RelationList with Checkboxes", value_type=RelationChoice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "relationlist_field_checkbox", CheckBoxFieldWidget, ) relationchoice_field_ajax_select = RelationChoice( title=u"Relationchoice Field with AJAXSelect", description=u"z3c.relationfield.schema.RelationChoice", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), required=False, ) directives.widget( "relationchoice_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query }, ) relationlist_field_ajax_select = RelationList( title=u"Relationlist Field with AJAXSelect", description=u"z3c.relationfield.schema.RelationList", value_type=RelationChoice(vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", })), required=False, ) directives.widget( "relationlist_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event", "Folder"], }, title_template="{brain.Type}: {brain.Title} at {path}", ), # Custom item rendering pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query }, ) # These look like relationsfields (see above) but only store the uuid(s) of the selected target # as a string in a the field instead of a RelationValue. # A good way to use these is in combination with a index that allows you to query these connenctions. uuid_choice_field = schema.Choice( title=u"Choice field with RelatedItems widget storing uuids", description=u"schema.Choice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) directives.widget("uuid_choice_field", RelatedItemsFieldWidget) uuid_list_field = schema.List( title=u"List Field with RelatedItems widget storing uuids", description=u"schema.List", default=[], value_type=schema.Choice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) directives.widget("uuid_list_field", RelatedItemsFieldWidget) uuid_choice_field_constrained = schema.Choice( title= u"Choice field with RelatedItems widget storing uuids (only allows Documents)", description=u"schema.Choice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) directives.widget( "uuid_choice_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document"]}, ) uuid_list_field_constrained = schema.List( title= u"List Field with RelatedItems widget storing uuids (only allows Documents and Events)", description=u"schema.List", default=[], value_type=schema.Choice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) directives.widget( "uuid_list_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document", "Folder"]}, ) uuid_list_field_search_mode = schema.List( title= u"List Field with RelatedItems widget in Search Mode storing uuids", description=u"schema.List", default=[], value_type=schema.Choice(source=CatalogSource( portal_type=["Document", "Event"], review_state="published")), required=False, missing_value=[], ) directives.widget( "uuid_list_field_search_mode", RelatedItemsFieldWidget, pattern_options={ "selectableTypes": ["Document", "Folder"], "basePath": "", # Start the search at the portal root "mode": "search", }, ) # From here on we use other widgets than the default RelatedItemsFieldWidget uuid_choice_field_select = schema.Choice( title=u"UUID Choice with select widget storing uuids", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", }), required=False, ) directives.widget( "uuid_choice_field_select", SelectFieldWidget, ) uuid_choice_field_radio = schema.Choice( title=u"RelationChoice with Radio widget storing uuids", vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event"], "review_state": "published", }, title_template="{brain.Title}", ), # Set a custom vocabulary item title required=False, ) directives.widget( "uuid_choice_field_radio", RadioFieldWidget, ) uuid_list_field_select = schema.List( title= u"RelationList with select widget with items from a named vocabulary storing uuids", value_type=schema.Choice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "uuid_list_field_select", SelectFieldWidget, pattern_options={ "closeOnSelect": False, # Select2 option to leave dropdown open for multiple selection }, ) uuid_list_field_checkbox = schema.List( title=u"RelationList with Checkboxes storing uuids", value_type=schema.Choice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "uuid_list_field_checkbox", CheckBoxFieldWidget, ) uuid_choice_field_ajax_select = schema.Choice( title=u"Relationchoice Field with AJAXSelect storing uuids", description=u"z3c.relationfield.schema.RelationChoice", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), required=False, ) directives.widget( "uuid_choice_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query }, ) uuid_list_field_ajax_select = schema.List( title=u"Relationlist Field with AJAXSelect storing uuids", description=u"z3c.relationfield.schema.RelationList", value_type=schema.Choice(vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", })), required=False, ) directives.widget( "uuid_list_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event"], }, title_template="{brain.Type}: {brain.Title} at {path}", ), # Custom item rendering pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query "closeOnSelect": False, # - Leave dropdown open for multiple selection }, ) # Number fields int_field = schema.Int( title=u"Integer Field (e.g. 12)", description=u"zope.schema.Int", required=False, ) float_field = schema.Float( title=u"Float field, e.g. 12.7", description=u"zope.schema.Float", required=False, ) # Text fields email_field = Email( title=u"Email field", description= u"A simple input field for a email (plone.schema.email.Email)", required=False, ) uri_field = schema.URI( title=u"URI field", description=u"A simple input field for a URLs (zope.schema.URI)", required=False, ) richtext_field = RichText( title=u"RichText field", description= u"This uses a richtext editor. (plone.app.textfield.RichText)", max_length=2000, required=False, ) sourcetext_field = schema.SourceText( title=u"SourceText field", description=u"zope.schema.SourceText", required=False, ) ascii_field = schema.ASCII( title=u"ASCII field", description=u"zope.schema.ASCII", required=False, ) bytesline_field = schema.BytesLine( title=u"BytesLine field", description=u"zope.schema.BytesLine", required=False, ) asciiline_field = schema.ASCIILine( title=u"ASCIILine field", description=u"zope.schema.ASCIILine", required=False, ) pythonidentifier_field = schema.PythonIdentifier( title=u"PythonIdentifier field", description=u"zope.schema.PythonIdentifier", required=False, ) dottedname_field = schema.DottedName( title=u"DottedName field", description=u"zope.schema.DottedName", required=False, ) # dict_field = schema.Dict( # title=u'Dict field', # description=u"zope.schema.Dict", # required=False, # key_type=schema.TextLine( # title=u'Key', # required=False, # ), # value_type=schema.TextLine( # title=u'Value', # required=False, # ), # ) # vocabularyterms_field = Dict( # we use the plone.schema field Dict not zope.schema field to use the attribute 'widget' # title=u"Vocabulary terms field", # description=u"plone.schema.Dict field with value_type schema.TextLine and frontend widget 'VocabularyTermsWidget'", # required=False, # key_type=schema.TextLine( # title=u"Key", # required=False, # ), # value_type=schema.TextLine( # title=u"Value", # required=False, # ), # widget="vocabularyterms", # we use the widget attribute to apply the frontend widget VocabularyWidget # ) # vocabularytermstranslation_field = Dict( # we use the plone.schema field Dict not zope.schema field to use the attribute 'widget' # title=u"Vocabulary terms field with translations", # description=u"plone.schema.Dict field with value_type Dict and frontend widget 'VocabularyTermsWidget'", # required=False, # key_type=schema.TextLine( # title=u"Key", # required=False, # ), # value_type=Dict( # we use the plone.schema field Dict not zope.schema field to use the attribute 'widget' # title=u"Term translation", # description=u"plone.schema.Dict field for translations of vocabulary term", # required=True, # key_type=schema.TextLine( # title=u"Key", # required=False, # ), # value_type=schema.TextLine( # title=u"Value", # required=False, # ), # ), # widget="vocabularyterms", # we use the widget attribute to apply the frontend widget VocabularyWidget # ) # dict_field_with_choice = schema.Dict( # title=u'Dict field with key and value as choice', # description=u"zope.schema.Dict", # required=False, # key_type=schema.Choice( # title=u'Key', # values=[u'One', u'Two', u'Three'], # required=False, # ), # value_type=schema.Set( # title=u'Value', # value_type=schema.Choice( # values=[u'Beginner', u'Advanced', u'Professional'], # ), # required=False, # missing_value={}, # ), # ) datagrid_field = schema.List( title=u"Datagrid field", description=u"schema.List", value_type=DictRow(title=u"Table", schema=IMyRowSchema), default=[], required=False, ) directives.widget("datagrid_field", DataGridFieldFactory)
class IBiXieWu(Interface): """BiXieWu ContentType""" # -*- schema definition goes here -*- data_src = schema.TextLine( title=_(u"Data Source"), required=False, description=_(u"Single Choice."), ) # lct_cou = schema.TextLine( title=_(u"County"), required=False, description=_(u"Enter Text."), ) # lct_tow = schema.TextLine( title=_(u"Town"), required=False, description=_(u"Enter Text."), ) # lct_vil = schema.TextLine( title=_(u"Village"), required=False, description=_(u"Enter Text."), ) # coordinate = schema.TextLine( title=_(u"Coordinate Type"), required=False, description=_(u"Single Choice."), ) # type = schema.TextLine( title=_(u"BiXieWu Type"), required=False, description=_(u"Single Choice."), ) # era = schema.TextLine( title=_(u"Common Era"), required=False, description=_(u"Enter Common Era."), ) # era_ref = schema.SourceText( title=_(u"Era Reference"), required=False, description=_(u"Enter Era Reference."), ) # facing = schema.TextLine( title=_(u"Facing"), required=False, description=_(u"Enter Facing."), ) # material = schema.TextLine( title=_(u"Material"), required=False, description=_(u"Single Choice."), ) # volume = schema.SourceText( title=_(u"Volume"), required=False, description=_(u"Enter Volume Description."), ) # locational = schema.TextLine( title=_(u"Locational Attribute"), required=False, description=_(u"Single Choice."), ) # purpose = schema.TextLine( title=_(u"Purpose"), required=False, description=_(u"Single Choice."), ) # worship = schema.SourceText( title=_(u"Worship Description"), required=False, description=_(u"Enter Text."), ) # establishment = schema.SourceText( title=_(u"Establishment Description"), required=False, description=_(u"Enter Text."), ) # spatial = schema.SourceText( title=_(u"Spatial Attribute"), required=False, description=_(u"Enter Spatial Attributes."), ) # environment = schema.SourceText( title=_(u"Environmental Description"), required=False, description=_(u"Enter Environmental Description."), ) # reference = schema.SourceText( title=_(u"Reference"), required=False, description=_(u"Enter Text."), ) # remark = schema.SourceText( title=_(u"Remark"), required=False, description=_(u"Enter Text."), ) # village = schema.TextLine( title=_(u"Village Name"), required=False, description=_(u"Enter Village."), ) # color = schema.TextLine( title=_(u"Color"), required=False, description=_(u"Single Choice."), ) # genre = schema.TextLine( title=_(u"Genre"), required=False, description=_(u"Single Choice."), ) # posture = schema.TextLine( title=_(u"Posture"), required=False, description=_(u"Single Choice."), ) # gender = schema.TextLine( title=_(u"Gender"), required=False, description=_(u"Single Choice."), ) # shi_d = schema.TextLine( title=_(u"ShiZi Depth"), required=False, description=_(u"In CentiMeter."), ) # shi_w = schema.TextLine( title=_(u"ShiZi Width"), required=False, description=_(u"In CentiMeter."), ) # shi_h = schema.TextLine( title=_(u"ShiZi Height"), required=False, description=_(u"In CentiMeter."), ) # shi_t = schema.TextLine( title=_(u"ShiZi Head"), required=False, description=_(u"In CentiMeter."), ) # base_l = schema.TextLine( title=_(u"Base Length"), required=False, description=_(u"In CentiMeter."), ) # base_w = schema.TextLine( title=_(u"Base Width"), required=False, description=_(u"In CentiMeter."), ) # base_h = schema.TextLine( title=_(u"Base Height"), required=False, description=_(u"In CentiMeter."), )
class IPhoto(Interface): """Photo for CRGIS Contents""" # -*- schema definition goes here -*- category = schema.List( title=_(u"Category"), required=False, description=_(u"Multiple Choices."), ) # cou = schema.TextLine( title=_(u"County"), required=False, description=_(u"Enter Text."), ) # tow = schema.TextLine( title=_(u"Town"), required=False, description=_(u"Enter Text."), ) # vil = schema.TextLine( title=_(u"Village"), required=False, description=_(u"Enter Text."), ) # lng = schema.TextLine( title=_(u"Longtitude"), required=False, description=_(u"Enter Longtitude."), ) # lat = schema.TextLine( title=_(u"Latitude"), required=False, description=_(u"Enter Latitude."), ) # year = schema.TextLine( title=_(u"Photo Year"), required=False, description=_(u"Enter Text."), ) # month = schema.TextLine( title=_(u"Photo Month"), required=False, description=_(u"Enter Text."), ) # day = schema.TextLine( title=_(u"Photo Day"), required=False, description=_(u"Enter Text."), ) # owner_name = schema.TextLine( title=_(u"Owner Name"), required=False, description=_(u"Enter Owner Name."), ) # owner_org = schema.TextLine( title=_(u"Owner Organization"), required=False, description=_(u"Enter Owner Organization."), ) # owner_title = schema.TextLine( title=_(u"Owner Title"), required=False, description=_(u"Enter Owner Title."), ) # reference = schema.SourceText( title=_(u"Reference"), required=False, description=_(u"Enter Text."), )