class IRICPerson(model.Schema): functions = schema.List( title=_(u"Fonctions"), description=_(u"Vous pouvez sélectionner plusieurs fonctions en appuyant sur la touche CTRL"), required=True, value_type=schema.Choice(source=FunctionsList), ) form.widget('functions', SelectFieldWidget, multiple='multiple', size=3) invalidmail = schema.Bool(title=_(u"E-mail invalide"), required=True) form.read_permission(invalidmail='RIC.ActualPersonOwner') form.write_permission(invalidmail='RIC.Administrator') form.widget('invalidmail', RadioFieldWidget) multimail = schema.List(title=_(u"Envoi mail"), required=False, value_type=schema.Choice(source=MultimailTypes()), ) form.widget('multimail', SelectFieldWidget, multiple='multiple', size=2) userid = schema.TextLine(title=_(u"Identifiant de l'utilisateur"), required=False) form.read_permission(userid='RIC.Administrator') form.write_permission(userid='RIC.Administrator')
class IPost(Interface): """ 貼文分享 """ title = schema.TextLine( title=_(u"Title"), required=True, ) form.write_permission(image='cmf.ReviewPortalContent') image = NamedBlobImage( title=_(u"Image"), description=_(u"If want to show this page to home page, please upload a image."), required=False, ) form.write_permission(shortText='cmf.ReviewPortalContent') shortText = schema.TextLine( title=_(u"Short Text"), description=_(u"Short Text, show in Cover."), required=False, ) url = schema.URI( title=_(u"URL"), required=False, ) text = RichText( title=_(u"Text"), default_mime_type='text/html', allowed_mime_types=['text/html', 'text/plain'], required=True, )
class IUser(model.Schema): title = schema.TextLine(title=_("label_user_title", default="Name"), required=True) contact_email = schema.TextLine(title=_("label_contact_email", default="Contact email address"), required=True) login = LoginField( title=_("label_login_name", default="Login name"), required=True, constraint=validLoginValue, ) directives.write_permission(login="******") password = schema.Password( title=_("label_password", default="Password"), required=True, constraint=_check_password, ) directives.widget(password=PasswordWithConfirmationFieldWidget) locked = schema.Bool( title=_("label_account_locked", default="Account is locked"), required=False, default=False, ) directives.write_permission(locked="euphorie.content.ManageCountry")
class ISector(model.Schema, IUser, IBasic): """Sector object. A sector is a national organisation for a specific type of industry. """ directives.order_before(title="*") directives.write_permission(title="euphorie.content.ManageCountry") directives.order_after(login="******") directives.write_permission(login="******") directives.order_before(password="******") directives.order_after(locked="password") directives.write_permission(locked="euphorie.content.ManageCountry") contact_name = schema.TextLine( title=_("label_contact_name", default="Contact name"), required=True ) directives.order_after(contact_email="contact_name") logo = filefield.NamedBlobImage( title=_("label_logo", default="Logo"), description=_( "help_image_upload", default="Upload an image. Make sure your image is of format " "png, jpg or gif and does not contain any special " "characters. The minimum size is 1000 (width) x 430 (height) pixels.", ), required=False, )
class IDCAT(model.Schema): """Marker interface for all DCAT-AP.de Content Types""" read_permission(dct_identifier='pkan.dcatapde.ProviderDataEditor') write_permission(dct_identifier='pkan.dcatapde.ProviderDataEditor') dct_identifier = schema.URI( required=False, title=i18n.LABEL_DCT_IDENTIFIER, description=i18n.IDENTIFIER_DESCRIPTION, ) read_permission(adms_identifier='pkan.dcatapde.ProviderDataEditor') write_permission(adms_identifier='pkan.dcatapde.ProviderDataEditor') adms_identifier = schema.URI( required=False, title=i18n.LABEL_ADMS_IDENTIFIER, description=i18n.IDENTIFIER_DESCRIPTION, ) # read_permission(uri_in_triplestore='pkan.dcatapde.Admin') # write_permission(uri_in_triplestore='pkan.dcatapde.Admin') # uri_in_triplestore = schema.URI( # required=False, # title=_(u'Uri in Triplestore'), # ) model.fieldset( 'object_identifier', label=i18n.FIELDSET_INTERNAL_INFO, fields=[ 'dct_identifier', 'adms_identifier', ], )
class IOGMail(model.Schema): """Opengever specific behavior, which add a title Field to the form. """ model.fieldset(u'common', label=base_mf(u'fieldset_common', u'Common'), fields=[u'title', 'original_message', 'message_source']) form.order_before(title='message') dexteritytextindexer.searchable('title') title = schema.TextLine( title=dossier_mf(u'label_title', default=u'Title'), required=False, ) form.mode(original_message=DISPLAY_MODE) form.write_permission(original_message='cmf.ManagePortal') original_message = field.NamedBlobFile( title=_(u'label_original_message', default=u'Raw *.msg message before conversion'), required=False, ) form.mode(message_source=DISPLAY_MODE) form.read_permission(message_source='cmf.ManagePortal') form.write_permission(message_source='cmf.ManagePortal') message_source = schema.Choice( title=_('label_message_source', default='Message source'), vocabulary=get_message_source_vocabulary(), required=False, )
class IConferencebreak(model.Schema): title = schema.TextLine( title=_(safe_unicode('Title')), description=_(safe_unicode('Conference break title')), ) description = schema.Text( title=_(safe_unicode('Conference break summary')), required=False, ) primary('details') details = RichText( title=_(safe_unicode('Conference break details')), required=False, ) write_permission(startitem='collective.conferences.ModifyTalktime') startitem = schema.Datetime( title=_(safe_unicode('Startdate')), description=_(safe_unicode('Start date')), defaultFactory=startDefaultValue, required=False, ) write_permission(enditem='collective.conferences.ModifyTalktime') enditem = schema.Datetime( title=_(safe_unicode('Enddate')), description=_(safe_unicode('End date')), defaultFactory=endDefaultValue, required=False, ) write_permission(twclength='collective.conferences.ModifyTalktime') directives.widget(twclength=RadioFieldWidget) twclength = schema.List( title=_(safe_unicode('Length')), value_type=schema.Choice(source='BreakLength'), required=True, ) write_permission(conferencetrack='collective.conferences.ModifyTalktime') conferencetrack = RelationList( title=_(safe_unicode('Choose the track for this break')), default=[], value_type=RelationChoice(vocabulary='ConferenceTrack'), required=False, missing_value=[], ) directives.widget( 'conferencetrack', RadioFieldWidget, ) positionintrack = schema.Int( title=_(safe_unicode('Position In The Track')), description=_( safe_unicode('Choose a number for the order in the track')), required=False, )
class ITransportationexpenses(model.Schema): """ """ amount_transportation = schema.Float( title=_(u'label_applications_amount_transportation', u'Amount for Transportation Expenses'), required=True, min=0.0, ) directives.widget(transportation_type=CheckBoxFieldWidget) transportation_type = schema.Set( title=_(u'label_applications_transportation_type', default=u'Type Transportation'), value_type=schema.Choice( vocabulary='im.applications.TransportationType', ), required=False, ) directives.read_permission(amount_transportation_recommended='im.applications.ViewComision') directives.write_permission(amount_transportation_recommended='im.applications.EditComision') amount_transportation_recommended = schema.Float( title=_(u'label_applications_amount_transportation_recommended', u'Approved Amount by Special Comision for Transportation Expenses'), required=True, min=0.0, ) directives.read_permission(amount_transportation_authorized='im.applications.ViewCantidadAutorizada') directives.write_permission(amount_transportation_authorized='im.applications.EditConsejo') amount_transportation_authorized = schema.Float( title=_(u'label_applications_amount_transportation_authorized', u'Approved Amount by Consejo Interno for Transportation Expenses'), required=True, min=0.0, ) directives.read_permission(amount_transportation_used='im.applications.ViewCantidadUtilizada') directives.write_permission(amount_transportation_used='im.applications.EditCantidadUtilizada') amount_transportation_used = schema.Float( title=_(u'label_applications_amount_transportation_used', u'Used Amount for Transportation Expenses'), required=True, min=0.0, ) @invariant def validateFields(data): if data.amount_transportation > 0 and data.transportation_type == set([]): message = 'Invalid Transportation Type: You must select at least one transportation, please correct it.' raise Invalid(_('label_im_applications_error_transportation', default=message)) elif data.amount_transportation == 0: if data.transportation_type.__contains__('groudtransportation') or data.transportation_type.__contains__('airtransport'): message = 'Invalid Transportation Type: You amount transportation is zero the transportation type must be empty, please correct it.' raise Invalid(_('label_im_applications_error_transportation2', default=message))
class ISocialMediaBase(model.Schema): __doc__ = "Social Media" form.write_permission(newsletter_url="cmf.ManagePortal") facebook_url = schema.TextLine( title=_(u"Facebook URL"), required=False, ) twitter_url = schema.TextLine( title=_(u"Twitter URL"), required=False, ) youtube_url = schema.TextLine( title=_(u"YouTube URL"), required=False, ) instagram_url = schema.TextLine( title=_(u"Instagram URL"), required=False, ) linkedin_url = schema.TextLine( title=_(u"LinkedIn URL"), required=False, ) newsletter_url = schema.TextLine( title=_(u"Newsletter Subscribe URL"), required=False, )
class ILeadImageExtra(ILeadImage): form.write_permission(image_show_jumbotron="cmf.ManagePortal") model.fieldset( 'settings', label=_(u'Settings'), fields=( 'image_full_width', 'image_show', 'image_show_jumbotron', ), ) image_full_width = schema.Bool( title=_(u"Full width lead image"), description=_( u"This will show a large lead image on the object display."), default=True, required=False, ) image_show = schema.Bool( title=_(u"Show Lead Image on this item"), description=_(u"This will show the lead image on the object display."), default=True, required=False, ) image_show_jumbotron = schema.Bool( title=_(u"Show Lead Image as Jumbtron"), description=_(u"Shows the image above the content as a jumbotron."), default=False, required=False, )
class IProvider(Interface): """ 供應商檔案 """ title = schema.TextLine( title=_(u"Provider Name"), required=True, ) description = schema.Text( title=_(u"Description"), required=False, ) image = NamedBlobImage( title=_(u"Provider Logo"), description=_(u"Provider logo image"), required=False, ) webSite = schema.URI( title=_(u"Website"), description=_(u"Provider website url, must include http:// or https://"), required=False, ) form.write_permission(productsFile='cmf.ReviewPortalContent') productsFile = NamedBlobFile( title=_(u"Products File"), description=_(u"zip file, include a .cvs file and image files"), required=False, )
class IQuestion(Interface): """ 專家給問 """ title = schema.TextLine( title=_(u"Question Title"), required=True, ) form.mode(description='hidden') description = schema.Text( title=_(u"Question Detail"), required=False, ) question = RichText( title=_(u"Question Detail"), default_mime_type='text/plain', allowed_mime_types=['text/plain', 'text/plain'], required=True, ) form.write_permission(image='cmf.ReviewPortalContent') image = NamedBlobImage( title=_(u"Image"), description=_(u"If want to show this page to home page, please upload a image."), required=False, )
class IRICOrganization(model.Schema): citizen = schema.Int( title=_(u"Nombre d'habitants"), required=True, min=1 ) #servers = schema.TextLine( # title=_(u"Serveurs"), # required=True #) #softwares = schema.TextLine( # title=_(u"Logiciels"), # required=True #) subscriptions = schema.List( title=_(u"Cotisations"), value_type=DictRow(title=_(u"Cotisation"), schema=ICotisationRow), required=False, ) form.read_permission(subscriptions='RIC.ActualOrganizationMember') form.write_permission(subscriptions='RIC.Administrator') form.widget('subscriptions', DataGridField)
class IRichPreviewSettings(Interface): """Schema for the control panel form.""" enable = schema.Bool( title=_(u'Enable Rich Link Previews?'), description= _(u'Rich Link Previews are only available for Dexterity-based content types.' ), default=True, ) form.widget('public_key', rows=5) public_key = schema.Text( title=_(u'Public Key'), description=_(u'Used to encrypt the URL.'), constraint=validate_public_key, ) form.widget('private_key', rows=15) private_key = schema.Text( title=_(u'Private Key'), description=_( u'Used to decrypt the URL. Never share this key with anyone.'), constraint=validate_private_key, ) # keys are available to Administrators only form.read_permission(public_key='cmf.ManagePortal', private_key='cmf.ManagePortal') form.write_permission(public_key='cmf.ManagePortal', private_key='cmf.ManagePortal') @invariant def _validate_key_pair(data): validate_key_pair(data)
class IDocument(form.Schema, IImageScaleTraversable): """ Document """ dexteritytextindexer.searchable('title') title = schema.TextLine( title=_(u"Title"), required=False, ) dexteritytextindexer.searchable('multifile') write_permission(multifile='cmf.ReviewPortalContent') read_permission(multifile='cmf.ReviewPortalContent') # multifile = NamedBlobFile( # title=_(u"Document"), # description=_(u"Please attach a file"), # required=False, # ) form.widget(multifile=MultiFileFieldWidget) multifile = schema.List( title=_(u"Document"), required=False, value_type=NamedFile(), ) pass
class ISponsor(model.Schema): """Dexterity-Schema for Sponsors """ directives.widget(level=RadioFieldWidget) level = schema.Choice(title=_(u"Sponsoring Level"), vocabulary=LevelVocabulary, required=True) text = RichText(title=_(u"Text"), required=False) url = schema.URI(title=_(u"Link"), required=False) fieldset('Images', fields=['logo', 'advertisment']) logo = namedfile.NamedBlobImage( title=_(u"Logo"), required=False, ) advertisment = namedfile.NamedBlobImage( title=_(u"Advertisment (Gold-sponsors and above)"), required=False, ) directives.read_permission(notes="cmf.ManagePortal") directives.write_permission(notes="cmf.ManagePortal") notes = RichText(title=_(u"Secret Notes (only for site-admins)"), required=False)
class IHeartIdChooser(IProvideHeartIdChooser): """ """ model.fieldset( 'settings', label=_(u"Settings"), fields=['id'], ) directives.write_permission(id='cmf.AddPortalContent')
class IElasticSearchBlocks(model.Schema): """ """ directives.read_permission(blocks_plaintext='cmf.ManagePortal') directives.write_permission(blocks_plaintext='cmf.ManagePortal') blocks_plaintext = schema.TextLine( title=_(u'Blocks content in plain text'), required=False, default="")
class IRegistrationfees(model.Schema): """ """ amount_registration = schema.Float( title=_(u'label_applications_amount_registration', u'Amount for Registration Fees'), required=True, min=0.0, ) directives.read_permission( amount_registration_recommended='im.applications.ViewComision') directives.write_permission( amount_registration_recommended='im.applications.EditComision') amount_registration_recommended = schema.Float( title=_(u'label_applications_amount_registration_recommended', u'Approved Amount by Special Comision for Registration Fees'), required=True, min=0.0, ) directives.read_permission( amount_registration_authorized='im.applications.ViewCantidadAutorizada' ) directives.write_permission( amount_registration_authorized='im.applications.EditConsejo') amount_registration_authorized = schema.Float( title=_(u'label_applications_amount_registration_authorized', u'Approved Amount by Consejo Interno for Registration Fees'), required=True, min=0.0, ) directives.read_permission( amount_registration_used='im.applications.ViewCantidadUtilizada') directives.write_permission( amount_registration_used='im.applications.EditCantidadUtilizada') amount_registration_used = schema.Float( title=_(u'label_applications_amount_registration_used', u'Used Amount for Registration Fees'), required=True, min=0.0, )
class IClientAndExpertpoolAssignmentBehavior(model.Schema): client = schema.Tuple( title=_(u"Client"), value_type=schema.TextLine(), required=False, missing_value=(), ) widget( "client", AjaxSelectFieldWidget, vocabulary="plone.app.vocabularies.Users", pattern_options={"placeholder": _(u"Type and select client.")}, ) write_permission(client="bda.empower.ModifyClient") coordinators = schema.Tuple( title=_(u"Coordinators"), value_type=schema.TextLine(), required=False, missing_value=(), ) widget( "coordinators", AjaxSelectFieldWidget, vocabulary="plone.app.vocabularies.Users", pattern_options={"placeholder": _(u"Type and select coordinator.")}, ) write_permission(expert_pool="bda.empower.ModifyExpertPool") expert_pool = schema.Tuple( title=_(u"Expert Pool"), value_type=schema.TextLine(), required=False, missing_value=(), ) widget( "expert_pool", AjaxSelectFieldWidget, vocabulary="plone.app.vocabularies.Users", pattern_options={"placeholder": _(u"Type and select expert.")}, ) write_permission(expert_pool="bda.empower.ModifyExpertPool")
class IMappaSimulazione(model.Schema): """ Marker interface and Dexterity Python Schema for MappaSimulazione """ # If you want, you can load a xml model created TTW here # and customize it in Python: # model.load('mappa_simulazione.xml') # 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', 'advertisement']) # logo = namedfile.NamedBlobImage( # title=_(u'Logo'), # required=False, # ) start = schema.Date( title=u'First day of the conference', required=False, default=date(2019, 10, 21), ) end = schema.Date( title=u'First day of the conference', required=False, default=date(2019, 10, 21), ) file_simulazione = namedfile.NamedBlobFile( title=_(u'File di simulazione (file SWMM5)'), required=True, ) directives.read_permission(notes='cmf.ManagePortal') directives.write_permission(notes='cmf.ManagePortal') notes = RichText( title=_(u'Secret Notes (only for site-admins)'), required=False )
class IDmsPerson(IPerson): userid = schema.Choice( title=_(u'Plone user'), required=False, vocabulary=u'plone.app.vocabularies.Users', ) #directives.widget('userid', AjaxChosenFieldWidget, populate_select=True) directives.read_permission(userid='imio.dms.mail.write_userid_field') directives.write_permission(userid='imio.dms.mail.write_userid_field')
class ITagsRoot(model.Schema): form.write_permission(available_public_tags="cmf.ManagePortal") available_public_tags = schema.List( title=_(u"Available public tags"), description= _(u"Add the tags that will be available for contributors to this blog." ), value_type=schema.TextLine(required=True), required=False, )
class IPrivateContactInformations(model.Schema): model.fieldset( "private_contact_informations", label=_("Private contact informations"), fields=[ "private_phones", "private_mails", "private_urls", "private_note" ], ) private_phones = schema.List( title=_("Phones"), value_type=DictRow( title="Value", schema=IPhoneRowSchema, ), required=False, ) widget("private_phones", DataGridFieldFactory, allow_reorder=True) private_mails = schema.List( title=_("E-mails"), value_type=DictRow( title="Value", schema=IMailRowSchema, ), required=False, ) widget("private_mails", DataGridFieldFactory, allow_reorder=True) private_urls = schema.List( title=_("URLs"), value_type=DictRow( title="Value", schema=IUrlRowSchema, ), required=False, ) widget("private_urls", DataGridFieldFactory, allow_reorder=True) private_note = schema.Text(title=_("Internal note"), required=False) read_permission( private_phones="imio.directory.core.ViewContactPrivateInformations", private_mails="imio.directory.core.ViewContactPrivateInformations", private_urls="imio.directory.core.ViewContactPrivateInformations", private_note="imio.directory.core.ViewContactPrivateInformations", ) write_permission( private_phones="imio.directory.core.ModifyContactPrivateInformations", private_mails="imio.directory.core.ModifyContactPrivateInformations", private_urls="imio.directory.core.ModifyContactPrivateInformations", private_note="imio.directory.core.ModifyContactPrivateInformations", )
class ICustomScript(IAction): """Executes a Python script for form data""" directives.read_permission(ProxyRole=MODIFY_PORTAL_CONTENT) directives.write_permission(ProxyRole=config.EDIT_PYTHON_PERMISSION) ProxyRole = zope.schema.Choice( title=_(u'label_script_proxy', default=u'Proxy role'), description=_(u'help_script_proxy', default=u'Role under which to run the script.'), default=u'none', required=True, vocabulary='easyform.ProxyRoleChoices', ) directives.read_permission(ScriptBody=MODIFY_PORTAL_CONTENT) directives.write_permission(ScriptBody=config.EDIT_PYTHON_PERMISSION) ScriptBody = zope.schema.Text( title=_(u'label_script_body', default=u'Script body'), description=_(u'help_script_body', default=u'Write your script here.'), default=config.DEFAULT_SCRIPT, required=False, missing_value=u'', )
class IDummy(model.Schema): form.omitted('foo') form.omitted('bar') form.widget(foo='some.dummy.Widget') form.widget(baz='other.Widget') form.mode(bar='hidden') form.mode(foo='display') form.order_before(baz='title') form.order_after(baz='qux') form.order_after(qux='bar') form.order_before(foo='body') form.read_permission(foo='zope2.View', bar='zope2.View') form.read_permission(baz='random.Permission') form.write_permission(foo='cmf.ModifyPortalContent') form.write_permission(baz='another.Permission') foo = zope.schema.TextLine(title=u'Foo') bar = zope.schema.TextLine(title=u'Bar') baz = zope.schema.TextLine(title=u'Baz') qux = zope.schema.TextLine(title=u'Qux')
class IDmsMailCreatingGroup(model.Schema): creating_group = LocalRoleField( title=_(u"Creating group"), required=True, vocabulary=u'imio.dms.mail.ActiveCreatingGroupVocabulary', defaultFactory=user_creating_group, ) # directives.write_permission(creating_group='imio.dms.mail.write_creating_group_field') directives.write_permission( creating_group='imio.dms.mail.write_base_fields')
class IDefaultExcludeFromNavigation(IExcludeFromNavigation): form.write_permission(exclude_from_nav="cmf.ManagePortal") exclude_from_nav = schema.Bool( title=_(u'label_exclude_from_nav', default=u'Exclude from navigation'), description=_(u'help_exclude_from_nav', default=u'If selected, this item will not appear in the ' u'navigation tree'), default=True, required=False, )
class IConferencebreak(model.Schema): title = schema.TextLine( title=_(u"Title"), description=_(u"Conference break title"), ) description = schema.Text(title=_(u"Conference break summary"), required=False) primary('details') details = RichText(title=_(u"Conference break details"), required=False) # form.widget(track=AutocompleteFieldWidget) # track = RelationChoice( # title=_(u"Track"), # source=ObjPathSourceBinder(object_provides=ITrack.__identifier__), # required=False, # ) write_permission(startitem='collective.conferences.ModifyTalktime') startitem = schema.Datetime( title=_(u"Startdate"), description=_(u"Start date"), required=False, ) write_permission(enditem='collective.conferences.ModifyTalktime') enditem = schema.Datetime( title=_(u"Enddate"), description=_(u"End date"), required=False, ) directives.widget(breaklength=RadioFieldWidget) breaklength = schema.List( title=_(u"Length"), value_type=schema.Choice(source=vocabBreakLength), required=True, )
class ITestType1(Schema): test_text = schema.TextLine(title=u"Test text field", ) test_int = schema.Int(title=u"Integer test field", ) test_bool = schema.Bool(title=u"Boolean test field", ) directives.widget(funky=FunkyFieldWidget, ) funky = schema.TextLine(title=u"Test funky field", ) directives.read_permission(topsecret='cmf.ModifyPortalContent') directives.write_permission(topsecret='cmf.ManagePortal') topsecret = schema.TextLine(title=u"Top secret field", )