class IMultiForm(IBaseForm, IRecordContainer, ISchemaProvider): """ A multi-form is a content item that provides 0..* form entry records providing IFormEntry via an IRecordContainer inteface, identifying record values by a record UUID (key). """ # omit IRecordContainer['factory'] from generated form form.omitted('factory') form.omitted('catalog') catalog = schema.Object( title=u'Catalog', description=u'Catalog indexes multi-record form data', schema=ISimpleCatalog, required=False, # may initially be None ) entry_notes = schema.Text( title=_(u'Entry notes'), description=_(u'Any notes about form entries for this period.'), required=False, )
class IReservation(Interface): title = schema.TextLine( title=_(u'Title'), required=False ) date = schema.Datetime( title=_(u'Reservation Date Time'), required=False ) peroid1 = schema.TextLine( title=_(u'Peroid1 Reservation Name'), required=False, ) peroid2 = schema.TextLine( title=_(u'Peroid2 Reservation Name'), required=False, ) peroid3 = schema.TextLine( title=_(u'Peroid3 Reservation Name'), required=False, ) peroid4 = schema.TextLine( title=_(u'Peroid4 Reservation Name'), required=False, ) peroid5 = schema.TextLine( title=_(u'Peroid5 Reservation Name'), required=False, ) peroid6 = schema.TextLine( title=_(u'Peroid6 Reservation Name'), required=False, ) alternate = schema.Text( title=_(u'Alternate Name'), required=False, )
class IAlertTile(model.Schema): title = schema.TextLine(title=_(u'Alert title'), required=False) content = schema.Text(title=_(u'Alert message'), required=False) content_uid = schema.Choice( title=_(u'Select an existing content item to link to (optional)'), required=False, source=CatalogSource(), ) if RelatedItemsWidget is not None: form.widget('content_uid', RelatedItemsWidget) url = schema.TextLine( title=_(u'Specify external url to link to (optional)'), description="Please include full url with 'http/https' prefix", required=False, ) publication_date = TileDatetime(title=_(u'Publication Date (optional)'), description="Display tile from this date", required=False) expiration_date = TileDatetime(title=_(u'Expiration Date (optional)'), description="Display tile until this date", required=False) form.widget('publication_date', DatetimeWidget) form.widget('expiration_date', DatetimeWidget) # can add more alert styles here 1/3 style = schema.Choice( title=_(u'Select alert style'), default=u'primary', values=(u'primary', u'warning'), )
class ILegislature(model.Schema): """Represents a legislature.""" title = schema.TextLine( title=_(u'Number'), description=_(u''), required=True, ) description = schema.Text( title=_(u'Description'), description=_(u''), required=False, ) form.widget(start_date=DateFieldWidget) start_date = schema.Date( title=_(u'Start date'), description=_(u''), required=True, ) form.widget(end_date=DateFieldWidget) end_date = schema.Date( title=_(u'End date'), description=_(u''), required=True, ) members = RelationList( title=_(u'Members'), required=False, default=[], value_type=RelationChoice( title=_(u'Members'), source=ObjPathSourceBinder(object_provides=IParliamentarian.__identifier__), ), )
class ISession(model.Schema): """Represents a legislative session.""" title = schema.TextLine( title=_(u'Number'), description=_(u''), required=True, ) description = schema.Text( title=_(u'Description'), description=_(u''), required=False, ) form.widget(start_date=DateFieldWidget) start_date = schema.Date( title=_(u'Start date'), description=_(u''), required=True, ) form.widget(end_date=DateFieldWidget) end_date = schema.Date( title=_(u'End date'), description=_(u''), required=True, ) form.widget(legislative_board=DataGridFieldFactory) legislative_board = schema.List( title=_(u'Legislative Board'), description=_(u''), required=False, value_type=DictRow(title=u'legislative_board_row', schema=IBoardMember), default=[], )
def test_all(self): mapping = [ (schema.Object(schema=IResource), serialize_schema_field.DefaultSchemaFieldSerializer), (schema.Text(), serialize_schema_field.DefaultTextSchemaFieldSerializer), (schema.TextLine(), serialize_schema_field.DefaultTextLineSchemaFieldSerializer), (schema.Float(), serialize_schema_field.DefaultFloatSchemaFieldSerializer), (schema.Int(), serialize_schema_field.DefaultIntSchemaFieldSerializer), (schema.Bool(), serialize_schema_field.DefaultBoolSchemaFieldSerializer), (schema.List(), serialize_schema_field.DefaultCollectionSchemaFieldSerializer), (schema.Choice(values=('one', 'two')), serialize_schema_field.DefaultChoiceSchemaFieldSerializer), (schema.Object(schema=IResource), serialize_schema_field.DefaultObjectSchemaFieldSerializer), (RichText(), serialize_schema_field.DefaultRichTextSchemaFieldSerializer), (schema.Date(), serialize_schema_field.DefaultDateSchemaFieldSerializer), (schema.Time(), serialize_schema_field.DefaultTimeSchemaFieldSerializer), (schema.Dict(), serialize_schema_field.DefaultDictSchemaFieldSerializer), (schema.Datetime(), serialize_schema_field.DefaultDateTimeSchemaFieldSerializer), ] root = self.layer.new_root() site = root['plone'] for field, klass in mapping: adapter = getMultiAdapter((field, site, self.request), interface=ISchemaFieldSerializeToJson) self.assertTrue(isinstance(adapter, klass))
class IZoomItInfo(Interface): id = schema.TextLine(title=_(u'Zoom.it ID')) url = schema.URI(title=_(u'Zoom.it URL')) ready = schema.Bool(title=_(u'Upload Ready')) progress = schema.Float(title=_(u'Upload Progress')) failed = schema.Bool(title=_(u'Upload Failure?')) last_status = schema.Int(title=_(u'Last Response Status')) last_response = schema.Int(title=_(u'Last Response'), required=False) update_timestamp = schema.Datetime(title=_(u'Last Timestamp'), required=False) retry_after = schema.Int(title=_(u'Retry After'), required=False) embed = schema.Text(title=_(u'Embed HTML')) dzi = schema.URI(title=_(u'DZI URL'), required=False) image_url = schema.URI(title=_(u'Image URL'), readonly=True) image_modified = schema.Datetime(title=_(u'Image Last Modified'), readonly=True, required=False) api_url = schema.URI(title=_(u'DZI URL'), readonly=True) def create_content(self): """Initializes zoom.it content""" def update_status(self): """Updates status of zoomit content"""
class IBoaPraticaEditForm(form.Schema): title = schema.TextLine( title=u"Título", required=False, ) directives.widget(esfera='z3c.form.browser.radio.RadioFieldWidget') esfera = schema.Choice(title=u"Essa prática é esfera", required=False, vocabulary="mpdg.govbr.observatorio.EsferaPratica") uf = schema.Choice( title=u"UF", description=u"Selecione o seu Estado.", required=False, vocabulary="brasil.estados", ) orgparticipantes = schema.TextLine( title=u"Órgãos participantes", description= u"Se a prática estiver relacionada a algum órgão de governo, favor informar no campo abaixo", required=False, ) directives.widget( description='plone.app.z3cform.wysiwyg.WysiwygFieldWidget') description = schema.Text(title=u"Descrição", required=False) directives.widget(sitesrelacionados= 'collective.z3cform.datagridfield.DataGridFieldFactory') sitesrelacionados = schema.List(title=u"Sites relacionados", value_type=DictRow( title=u"tablerow", schema=ITableRowEditSchema), required=False)
class ISearchResult(Interface): """Defines a common API for search results.""" title = schema.TextLine(title=_(u'The title of this search result')) description = schema.TextLine( title=_(u'The description of this search result')) contact_email = schema.TextLine( title=_(u'A contact email address for this search result')) contact_telephone = schema.TextLine( title=_(u'The description of this search result')) portal_type = schema.TextLine( title=_(u'The portal type of this search result')) friendly_type_name = schema.TextLine( title=_(u'The friendly label for the type of search result')) highlighted_summary = schema.Text( title=_(u'A highlighted summary of this search result')) preview_image_path = schema.ASCIILine( title=_(u'The relative path to a preview image' u'representing this search result')) preview_image_url = schema.ASCIILine( title=_(u'The absolute URL for a preview image ' u'representing search result')) path = schema.ASCIILine( title=_(u'The relative path to the content for this search result')) url = schema.ASCIILine( title=_(u'The absolute URL to the content for this search result ' u'based on the path and the host in the current request'))
class IPloneRelease(Schema): """ A Plone release """ version = schema.TextLine( title=_(u'Version'), required=True ) description = schema.Text( title=_(u"Description"), required=False, ) release_date = schema.Date( title=_(u'Release date'), required=False, default=datetime.date.today() ) release_notes = RichText( title=_(u'Release notes'), default_mime_type='text/html', output_mime_type='text/html', allowed_mime_types=('text/plain', 'text/html', 'text/restructured', 'text/x-web-markdown'), required=False, ) changelog = RichText( title=_(u"Changelog"), default_mime_type='text/restructured', output_mime_type='text/html', allowed_mime_types=('text/plain', 'text/html', 'text/restructured', 'text/x-web-markdown'), required=False, ) form.widget(files=DataGridFieldFactory) files = schema.List( title=_(u'Files'), value_type=DictRow(title=_(u'Uploads'), schema=IReleaseUpload), required=False )
class IFeaturedPortlet(IPortletDataProvider): image = schema.Field( title=_(u'Featured Image'), description=_(u'A small image from the current feature'), required=False) featured_title = schema.TextLine( title=_(u'Title of Current Feature'), description=_( u'Title to appear on the front page about current feature.'), required=False) featured_description = schema.Text( title=_(u'Description of Current Feature'), description= _(u'Description of current feature as it will appear on the front page.' ), required=False) featured_lefttext = schema.TextLine( title=_(u'The text that appears to the left of this portlet'), description=_(u'Text to appear on the left'), required=False)
class IXPlotlyBehavior(form.Schema): """ A field where you can set URL to a CSV file""" form.fieldset( 'plotly', label=_(u'Plotly'), fields=[ 'csv_url', ], ) csv_url = schema.URI( title = _("label_plotly_csv", default=u"CSV URL"), description = _("help_plotly_csv", default=""), required = False, ) form.mode(plotly_html='hidden') plotly_html = schema.Text( title=u'Plotly html', default=u'', required=False, )
class IAssignSchema(Schema): """ Form schema interface for assign wizard which makes it possible to a task to another person. """ # hidden transition = schema.Choice( title=_("label_transition", default="Transition"), source=getTransitionVocab, required=True, ) responsible = schema.Choice( title=_(u"label_responsible", default=u"Responsible"), description=_(u"help_responsible", default=""), source=AllUsersInboxesAndTeamsSourceBinder(only_current_inbox=False, only_current_orgunit=False, include_teams=True), required=True, ) text = schema.Text( title=_('label_response', default="Response"), required=False, )
class IHtmlBlockSchema(form.Schema): """HTML block for simplelayout """ title = schema.TextLine( title=_(u'htmlblock_title_label', default=u'Title'), required=True, ) show_title = schema.Bool( title=_(u'htmlblock_show_title_label', default=u'Show title'), default=False, required=False, ) content = schema.Text( title=_(u'htmlblock_content_label', default=u'Content'), description=_(u'htmlblock_content_description', default=u'The content will be rendered without ' u'being escaped.'), required=False, ) form.order_before(title='*')
class IBaseProposal(model.Schema): dexteritytextindexer.searchable('title') title = schema.TextLine(title=_(u"label_title", default=u"Title"), required=True, max_length=256, defaultFactory=default_title) dexteritytextindexer.searchable('description') description = schema.Text( title=_(u'label_description', default=u'Description'), required=False, missing_value=u'', default=u'', ) widget('issuer', KeywordFieldWidget, async=True) issuer = schema.Choice( title=_(u"label_issuer", default="Issuer"), source=AssignedUsersSourceBinder(), required=True, ) omitted('date_of_submission') date_of_submission = schema.Date( description=_('label_date_of_submission', default='Date of submission'), default=None, missing_value=None, required=False, ) language = schema.Choice(title=_('language', default=u'Language'), source='opengever.meeting.LanguagesVocabulary', required=True, defaultFactory=get_preferred_language_code)
class ICustomerServiceCall(BaseModel): """Interface for Customer Service Call objects CSC """ csc_client = schema.Choice( title=_(u"Client"), description=_(u"Client"), required=True, values=[_(u'Quarantined'), _(u'Released')], ) csc_instance = schema.Choice( title=_(u"Instance Type"), description=_(u"Instance Type"), required=True, values=[_(u'Quarantined'), _(u'Released')], ) csc_datetime = schema.Datetime( title=_(u"Date and Time of Instance"), description=_(u"Date and Time of Instance"), required=False, ) csc_follow_up_needed = schema.Bool( title=_(u"Is Follow Up Needed"), description=_(u"Is Follow Up Needed"), required=False, ) csc_status = schema.Choice( title=_(u"Status of CSI"), description=_(u"Status of CSI"), required=True, values=[_(u'Open'), _(u'Closed'), _(u'Held')], ) csc_details = schema.Text( title=_(u"Details of CSI"), description=_(u"Details of CSI"), required=False, )
class INamedDataSequence(form.Schema, IDataSeries, ISeriesDisplay): """Named category seqeuence with embedded data stored as content""" form.fieldset( 'display', label=u"Display settings", fields=[ 'color', 'show_trend', 'trend_width', 'trend_color', 'display_precision', 'point_labels', ], ) input = schema.Text( title=_(u'Data input'), description=_(u'Comma-separated records, one per line ' u'(name, numeric value, [note], [URL]). ' u'Note and URL are optional.'), default=u'', required=False, ) # data field to store CSV source: form.omitted('data') data = schema.List( title=_(u'Data'), description=_(u'Data points for series: name, value; values are ' u'either whole/integer or decimal numbers.'), value_type=schema.Object( schema=INamedDataPoint, ), readonly=True, )
class ISugerencia(form.Schema): """ Sugerencia de lectura que complementa una colección o una exhibición """ title = schema.TextLine( title=u"Cita", required=False, ) form.omitted('description') description = schema.Text( title=u"Año de publicacion", required=False, ) tipoMedio = schema.Choice( title=u"Tipo de sugerencia", vocabulary=tiposVocab, required=True, ) form.widget(autores=TextLinesFieldWidget) autores = schema.List( title=u"Autores o responsables", description=u"Cargar un autor por linea", required=False, default=[], value_type=schema.TextLine(), ) urlRemoto = schema.TextLine( title=u"Enlace externo", description=u"Enlace. debe incluir el http://", required=False, constraint=isValidURL, )
class IOpenGeverBase(form.Schema): """ IOpengeverBase contains title and description fields This is a schema interface, not a marker interface! """ form.fieldset( u'common', label=_(u'fieldset_common', default=u'Common'), fields=[ u'title', u'description', ], ) dexteritytextindexer.searchable('title') title = schema.TextLine(title=_(u'label_title', default=u'Title'), required=True) dexteritytextindexer.searchable('description') description = schema.Text( title=_(u'label_description', default=u'Description'), description=_(u'help_description', default=u''), required=False, missing_value=u'', )
class IAnswer(form.Schema, IImageScaleTraversable): """ Answer """ dexteritytextindexer.searchable('answer') form.widget(answer=WysiwygFieldWidget) answer = schema.Text(title=u"Answer") dexteritytextindexer.searchable('question_creator') form.mode(question_creator='hidden') question_creator = schema.TextLine( title=_(u"Question Creator"), required=False, ) dexteritytextindexer.searchable('answer_creator') form.mode(answer_creator='hidden') answer_creator = schema.TextLine( title=_(u"Answer Creator"), required=False, ) pass
class IAddTramite(IBaseFormSchema): form.mode(protocolo_id='hidden') protocolo_id = schema.Int( title=_(u'ID do Protocolo'), description=_(u'Identificador do Protocolo.'), defaultFactory=getProtocoloId, required=False) areas = schema.List( title=_(u'Área'), description=_(u'Área para qual o protocolo deve tramitar. Selecione mais de uma área para realizar tramitação por cópia.'), value_type=schema.Choice(vocabulary='il.spdo.areas-vocab')) despacho = schema.Text( title=_(u'Despacho'), description=_(u'Despacho que descreve as ações que devem ser tormadas para a tramitação prosseguir.'), required=False) if ENABLE_FLASH_MULTIFILE: form.widget(anexos=MultiFileFieldWidget) anexos = schema.List( title=_(u'Anexos'), description=_(u'Adicione anexos ao protocolo (opcional).'), required=False, value_type=NamedFile()) @interface.invariant def verifyFluxo(tramite): if not tramite.protocolo_id: raise interface.Invalid(_(u'O parâmetro protocolo_id não foi informado.')) if not tramite.areas: raise interface.Invalid(_(u'O parâmetro areas não foi informado.')) sc = getUtility(ISecurityChecker) if not sc.check('fluxo_rigoroso', protocolo_id=tramite.protocolo_id, areas=tramite.areas): raise interface.Invalid(_(u'Não é possível tramitar esse protocolo para as áreas escolhidas. O fluxo de tramitação definido para o tipo de protocolo e documento não é flexível.'))
class IBasic(model.Schema): # default fieldset title = schema.TextLine( title=_PMF(u'label_title', default=u'Title'), required=True ) description = schema.Text( title=_PMF(u'label_description', default=u'Summary'), description=_PMF( u'help_description', default=u'Used in item listings and search results.' ), required=False, missing_value=u'', ) form.order_before(description='*') form.order_before(title='*') form.omitted('title', 'description') form.no_omit(IEditForm, 'title', 'description') form.no_omit(IAddForm, 'title', 'description')
class ISubmittedProposal(IProposal): dexteritytextindexer.searchable('considerations') considerations = schema.Text( title=_('label_considerations', default=u"Considerations"), required=False, ) excerpts = RelationList( title=_(u'label_excerpts', default=u'Excerpts'), default=[], missing_value=[], value_type=RelationChoice( title=u'Excerpt', source=DossierPathSourceBinder( portal_type=('opengever.document.document', ), navigation_tree_query={ 'object_provides': [ 'opengever.dossier.behaviors.dossier.IDossierMarker', 'opengever.document.document.IDocumentSchema' ], }), ), required=False)
class IMember(IEmail): """ Member """ first_name = schema.TextLine( title=_(u"First Name"), required=True, ) last_name = schema.TextLine( title=_(u"Last Name"), required=True, ) homepage = schema.TextLine( # url format title=_(u"External Homepage"), required=False, constraint=is_url, ) if PLONE5: directives.widget("bio", RichTextFieldWidget) bio = RichText( title=_(u"Biography"), required=False, ) else: directives.widget(bio="plone.app.z3cform.wysiwyg.WysiwygFieldWidget") bio = schema.Text( title=_(u"Biography"), required=False, )
class IOrderForm(form.Schema): """ Define form fields """ greeting = schema.List(title = _(u'greeting'), required = True, value_type=schema.Choice(source=greetings)) titles = schema.List(title = _(u'title'), required = True, value_type=schema.Choice(source=titles)) organization = schema.TextLine(title=_(u'Organization'), required=False) lastname = schema.TextLine(title=_(u'Lastname'), required=True) firstname = schema.TextLine(title=_(u'Firstname'), required=True) street = schema.TextLine(title=_(u'Street'), required=True) number = schema.TextLine(title=_(u'Number'), required=True) zipcode = schema.TextLine(title=_(u'Zipcode'), required=True) city = schema.TextLine(title=_(u'City'), required=True) country = schema.TextLine(title=_(u'Country'), required=True) email = schema.TextLine(title=_(u'Email'), required=True, constraint=validateaddress) phone = schema.TextLine(title=_(u'Phone'), required=False) publications = schema.Text( title=_(u"publications") ) form.widget(greeting=z3c.form.browser.select.SelectFieldWidget) form.widget(titles=z3c.form.browser.select.SelectFieldWidget)
class IPlominoAgent(model.Schema): """ Plomino agent schema """ directives.widget('content', klass='plomino-formula') content = schema.Text( title=_("CMFPlomino_label_AgentContent", default="Code to execute"), description=_("CMFPlomino_help_AgentContent", default='Code to execute'), required=True, ) run_as = schema.Choice( title=_('CMFPlomino_label_AgentRunAs', default="Run as"), description=_('CMFPlomino_help_AgentRunAs', default='Run the agent using current user access rights, or using ' 'the developer access rights.'), required=True, default='CURRENT', vocabulary=SimpleVocabulary.fromItems([ (_("Current user"), "CURRENT"), (_("Agent owner"), "OWNER"), ]), )
class IEventRecurrence(model.Schema, IDXEventRecurrence): """ Recurring Event Schema. """ recurrence = schema.Text( title=_( u'label_event_recurrence', default=u'Recurrence' ), description=_( u'help_event_recurrence', default=u'Define the event recurrence rule.' ), required=False, default=None ) directives.widget( 'recurrence', RecurrenceFieldWidget, start_field=u'IEventBasic.start', first_day=first_weekday_sun0, show_repeat_forever=False, klass=u'event_recurrence' )
class IMovedPrenotazioneAction(Interface): """Definition of the configuration available for a mail action """ subject = schema.TextLine(title=_(u"Subject"), description=_(u"Subject of the message"), required=True) source = schema.TextLine( title=_(u"Sender email"), description=_( 'source_help', default=u"The email address that sends the email. If no email is " u"provided here, it will use the address from portal."), required=False) message = schema.Text( title=_(u"Message"), description=_( 'message_help', default=u"Type in here the message that you want to mail. Some " u"defined content can be replaced: ${title} will be replaced with booking title (user fullname). ${date} will be replaced with booking new date. ${url} will be replaced by the booking url. ${portal} will be replaced by the title " u"of the portal."), required=True)
class IProfileForm(interface.Interface): first_name = schema.TextLine(title=_(u"First name")) last_name = schema.TextLine(title=_(u"Last name")) middle_name = schema.TextLine(title=_(u"Middle name"), required=False) email = schema.TextLine(title=_(u"Email"),constraint=check_email) description = schema.Text(title=_(u"Biographical notes"), required=False) gender = schema.Choice(title=_("Gender"), vocabulary=vocabulary.Gender) date_of_birth = schema.Date(title=_("Date of Birth")) birth_nationality = schema.Choice(title=_("Nationality at Birth"), source=countries) birth_country = schema.Choice(title=_("Country of Birth"), source=countries) current_nationality = schema.Choice(title=_("Current Nationality"), source=countries) image = schema.Bytes(title=_("Image")) @invariant def checkEmail(self): session = Session() users = session.query(User).filter(User.email==self.email) if users.count() > 1: raise interface.Invalid(_("Email already taken!"),"email") if users.count() == 1 and users.first().user_id != get_db_user().user_id: raise interface.Invalid(_("Email already taken!"),"email")
class IPlominoColumn(model.Schema): """ Plomino view schema """ displayed_field = schema.Choice( source=get_fields, title=_('CMFPlomino_label_DisplayedField', default="Displayed field"), description=_( 'CMFPlomino_help_DisplayedField', default="Field value " "to display in the column. It does not apply if Formula is " "provided."), required=False, ) directives.widget('formula', klass='plomino-formula') formula = schema.Text( title=_('CMFPlomino_label_ColumnFormula', default="Formula"), description=_('CMFPlomino_help_ColumnFormula', default='Python code ' 'returning the column value.'), required=False, ) hidden_column = schema.Bool( title=_('CMFPlomino_label_HiddenColumn', default="Hidden column"), default=False, ) @invariant def formulaInvariant(data): if not (data.displayed_field or data.formula): raise Invalid( _("CMFPlomino_validation_column", default=u"If you don't specify a column " "formula, you need to select a field."))