class IContribPartner(model.Schema): """ Partner contributor """ form.mode(IEditForm, title='display') title = schema.TextLine( title=_(u"Name"), required=True, ) partner_roles = schema.Choice( title=_(u"Partner roles"), description=_(u"The role of partner in project"), source=utils.settings_partner_roles, required=False, ) incash = schema.Decimal( title=_(u'In-cash'), required=False, ) directives.mode(currency_incash='display') currency_incash = schema.TextLine(title=_(u""), ) inkind = schema.Decimal( title=_(u'In-kind'), required=False, ) directives.mode(currency_inkind='display') currency_inkind = schema.TextLine(title=_(u""), )
class ITaggedValuesSchema(model.Schema): form.mode(field_mode_hidden="hidden") field_mode_hidden = schema.TextLine(title="ModeHidden", description="") form.mode(field_mode_display="display") field_mode_display = schema.TextLine(title="ModeDisplay", description="") form.mode(field_mode_input="input") field_mode_input = schema.TextLine(title="ModeInput", description="") field_mode_default = schema.TextLine(title="ModeInput", description="") parametrized_widget_field = schema.TextLine( title="Parametrized widget field") form.widget("parametrized_widget_field", a_param="some_value", defaultFactory=lambda: "Foo") not_parametrized_widget_field = schema.TextLine( title="No parametrized widget field") form.widget(not_parametrized_widget_field=TextWidget) directives.languageindependent("test_language_independent_field") test_language_independent_field = schema.TextLine(required=False, )
class IDataset(model.Schema): """Interface all datasets inherit from""" # TODO: need behavior to add metadata details? directives.mode(downloadable=HIDDEN_MODE) downloadable = Bool( title=_(u"Download allowed"), description=_( u"If set, then users are allowed to directly download this dataset." ), required=True, default=True) directives.mode(part_of=HIDDEN_MODE) part_of = TextLine(title=_(u'Part of Dataset Collection'), description=u'', required=False, default=None) directives.mode(dataSource=HIDDEN_MODE) dataSource = TextLine( title=_(u'Data Source'), description=u'e.g. ala, gbif, aekos, upload, experiment, ...', required=False, default=None)
class ITaggedValuesSchema(model.Schema): form.mode(field_mode_hidden='hidden') field_mode_hidden = schema.TextLine( title=u"ModeHidden", description=u"", ) form.mode(field_mode_display='display') field_mode_display = schema.TextLine( title=u"ModeDisplay", description=u"", ) form.mode(field_mode_input='input') field_mode_input = schema.TextLine( title=u"ModeInput", description=u"", ) field_mode_default = schema.TextLine( title=u"ModeInput", description=u"", ) another_field = schema.TextLine(title=u"Tagged Values widget params") form.widget('another_field', a_param='some_value')
class ITaskContent(model.Schema): """ Interface for task content type """ title = schema.TextLine(title=_PMF(u'label_title', default=u'Title'), required=True) parents_assigned_groups = LocalRolesField( title=_(u"Parents assigned groups"), required=False, value_type=schema.Choice(vocabulary=u'collective.task.AssignedGroups')) # must change widget to hide it, because default widget (orderedselect) doesn't have hidden widget template directives.widget('parents_assigned_groups', SelectFieldWidget, multiple='multiple', size=10) directives.mode(parents_assigned_groups='hidden') parents_enquirers = LocalRolesField( title=_(u"Parents enquirers"), required=False, value_type=schema.Choice(vocabulary=u'collective.task.Enquirer')) # must change widget to hide it, because default widget (orderedselect) doesn't have hidden widget template directives.widget('parents_enquirers', SelectFieldWidget, multiple='multiple', size=10) directives.mode(parents_enquirers='hidden')
class IContribOther(model.Schema): """ Other contributor """ title = schema.TextLine( title=_(u"Name"), required=True, ) organization_roles = schema.Choice( title=_(u"Organization roles"), description=_(u"The roles of other organizations in project"), source=utils.settings_organization_roles, required=False, ) incash = schema.Decimal( title=_(u'In-cash'), required=False, ) directives.mode(currency_incash='display') currency_incash = schema.TextLine(title=_(u""), ) inkind = schema.Decimal( title=_(u'In-kind'), required=False, ) directives.mode(currency_inkind='display') currency_inkind = schema.TextLine(title=_(u""), )
class IImprovementArea(form.Schema): """ Improvement Area type """ form.mode(title='input') title = schema.Choice( title=_(u"Title"), source=utils.area_title, required=True, ) form.mode(description='input') description = schema.Text( title=_(u'Description'), required=False, missing_value=u'', ) image = namedfile.NamedBlobImage( title=_(u'Image'), description=_(u"Image used to describe the Area. If no file chosen, a defult one will be used."), required=False, ) directives.mode(title_es='hidden') title_es = schema.TextLine( title=_(u"Title Spanish"), required=False, ) directives.mode(title_fr='hidden') title_fr = schema.TextLine( title=_(u"Title French"), required=False, )
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 ITaggedValuesSchema(model.Schema): form.mode(field_mode_hidden='hidden') field_mode_hidden = schema.TextLine( title=u"ModeHidden", description=u"", ) form.mode(field_mode_display='display') field_mode_display = schema.TextLine( title=u"ModeDisplay", description=u"", ) form.mode(field_mode_input='input') field_mode_input = schema.TextLine( title=u"ModeInput", description=u"", ) field_mode_default = schema.TextLine( title=u"ModeInput", description=u"", ) parametrized_widget_field = schema.TextLine( title=u"Parametrized widget field") form.widget('parametrized_widget_field', a_param='some_value', defaultFactory=lambda: 'Foo') not_parametrized_widget_field = schema.TextLine( title=u"No parametrized widget field") form.widget(not_parametrized_widget_field=TextWidget)
class ISettings(Interface): form.mode(client_id="display") client_id = schema.TextLine( title=_(u"The client unique identifier"), description=_( u"This information is configured in the instance configuration file" ), required=False, ) form.mode(application_id="display") application_id = schema.TextLine( title=_(u"The application identifier"), description=_( u"This information is configured in the instance configuration file" ), required=False, ) form.mode(application_url="display") application_url = schema.TextLine( title=_(u"The public url of this application"), description=_( u"This information is configured in the instance configuration file" ), required=False, ) form.mode(ws_url="display") ws_url = schema.TextLine( title=_(u"The url of the Webservice instance"), description=_( u"This information is configured in the instance configuration file" ), required=False, ) form.widget(application_links=MultiSelect2FieldWidget) application_links = schema.List( title=_(u"Application links"), description=_( u"List of application with who this application will communicate"), value_type=schema.Choice(title=_(u"Application links"), vocabulary="imio.restapi.applications"), required=False, ) form.mode(return_fullobject_after_creation_default="display") form.widget(return_fullobject_after_creation_default=RadioFieldWidget) return_fullobject_after_creation_default = schema.Bool( title=_(u"Return full object after creation by default?"), description=_( u"When an element is created, check the box if the full object " u"must be returned by default (default is true)"), default=True, required=False, )
class IResponderSelecionadosForm(form.Schema): directives.mode(uids='hidden') uids = schema.TextLine(title=u"UIDS", required=True) directives.widget(mensagem='plone.app.z3cform.wysiwyg.WysiwygFieldWidget') mensagem = schema.Text(title=u'Mensagem', required=True) directives.mode(estado='hidden') estado = schema.TextLine(title=u"Workflow", required=True, default=u'responder')
class IConsentForm(Interface): lang = api.portal.get_current_language() for reason_id, reason in sorted(reasons.items()): reason_match = (validated_user and validated_user[0] == reason.identifier_factory.__name__) if reason_match: if (reason.identifier_factory.getIdentifierForUser( validated_user[1]) is None): continue elif (reason.identifier_factory.getIdentifierForCurrentRequest( self.request) is None): continue reason_id = reason_id.encode("ascii", "replace") directives.widget(safe_fieldname(reason_id), RadioFieldWidget) if not reason.can_object: directives.mode(**{safe_fieldname(reason_id): "display"}) translated_title = translate(_(reason.Title), target_language=lang) locals()[safe_fieldname(reason_id)] = schema.Choice( title=translated_title, description=reason.html_description, vocabulary=consent_values, required=True, default="Allowed" if reason.isProcessingAllowed( self.request, identifier=validated_user[1] if reason_match else None, ) else "Blocked", ) del lang del translated_title del reason_id del reason_match del reason
class IProjectionExperiment(IExperiment): # TODO: ignore context here? don't really need to store this? directives.widget( 'species_distribution_models', ExperimentSDMFieldWidget, experiment_type=[ISDMExperiment.__identifier__], errmsg=u"Please select at least 1 Species Distribution Model") species_distribution_models = Dict( title=u'Species Distribution Models', key_type=TextLine(), value_type=Dict(key_type=TextLine(), value_type=Dict()), default=None, required=True, ) directives.widget( 'future_climate_datasets', FutureDatasetsFieldWidget, errmsg=u"Please select at least 1 future climate dataset.", vizclass=u'bccvl-absence-viz') future_climate_datasets = List(title=u'Future Climate Data', value_type=TextLine(), default=None, required=True) directives.mode(projection_region=HIDDEN_MODE) directives.widget('projection_region', TextAreaFieldWidget) projection_region = NamedBlobFile( title=u"Projection Region", description= u"GEOJson describing the geographic region the onto which the selected model is projected,", required=False, )
class ICategorization(model.Schema): # directives.mode(subjects="hidden") subjects = schema.Tuple( title=_(u'label_tags', default=u'Tags'), description=_( u'help_tags', default=u'Tags are commonly used for ad-hoc organization of ' + u'content.'), value_type=schema.TextLine(), required=False, missing_value=(), ) directives.widget('subjects', AjaxSelectFieldWidget, vocabulary='plone.app.vocabularies.Keywords') directives.mode(language="hidden") language = schema.Choice( title=_(u'label_language', default=u'Language'), vocabulary='plone.app.vocabularies.AvailableContentLanguages', required=False, missing_value='', defaultFactory=default_language, ) directives.widget('language', SelectFieldWidget) directives.omitted('subjects', 'language') directives.no_omit(IEditForm, 'subjects', 'language') directives.no_omit(IAddForm, 'subjects', 'language')
class IBaseAdviceInfoSchema(model.Schema): directives.mode(advice_uid='hidden') advice_uid = schema.TextLine(title=_(u"Advice uid"), description=_(u""), defaultFactory=advice_uid_default, required=False)
class ISendMessageUserView(form.Schema): directives.mode(uids="hidden") uids = schema.TextLine(title=u"UIDS", required=True) directives.widget(mensagem='plone.app.z3cform.wysiwyg.WysiwygFieldWidget') mensagem = schema.Text(title=u'Mensagem', required=True)
class IOutcomecc(model.Schema): """ OutcomeCC Generic """ directives.mode(title='hidden') title = schema.TextLine( title=_(u"Title"), required=True, ) description = schema.Text( title=_(u'Summary'), required=False, missing_value=u'', ) baseline = schema.TextLine( title=_(u"Baseline"), required=True, ) baseline_date = schema.Date(title=_(u'Baseline date'), required=True) objective = schema.Text( title=_(u"Objective"), required=False, ) objective_date = schema.Date(title=_(u"Objective date"), required=False) stage = schema.TextLine( title=_(u"Stage"), 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 IProject(model.Schema): """IProject""" title = schema.TextLine(title=DXMF(u"label_title", default=u"Title"), required=True) form.widget(project_theme=MultiSelect2FieldWidget) project_theme = schema.List( title=_(u"Domain(s) concerned"), value_type=schema.Choice(title=_(u"Domain(s) concerned"), vocabulary=u"collective.taxonomy.theme"), required=True, ) form.widget(project_district=MultiSelect2FieldWidget) project_district = schema.List( title=_(u"District(s) concerned"), value_type=schema.Choice( title=_(u"District(s) concerned"), vocabulary=u"collective.taxonomy.district", ), required=True, ) body = RichText(title=_(u"Content"), required=True) form.widget("body", RichTextFieldWidget) model.primary("body") form.mode(original_author="hidden") original_author = schema.TextLine(title=_(u"Original author"), required=False)
class ISpeaker(model.Schema): directives.mode(oid='hidden') oid = schema.TextLine(title=u"UUID", default=u'{}'.format(uuid.uuid4().hex)) first_name = schema.TextLine(title=_(u"First Name")) last_name = schema.TextLine(title=_(u"Last Name"), ) email = Email(title=_(u'label_email', default=u'Email'), description=_(u'help_email', default=u''), required=False) profession = schema.TextLine( title=_(u"Profession"), required=False, ) description = schema.Text( title=_(u"Biography"), required=False, ) website = schema.URI(title=_(u'label_website', default=u'Website'), description=_(u'help_website', default=u''), required=False) directives.widget('website', LinkWidget) phone = schema.TextLine(title=_(u'label_phone', default=u'Phone'), description=_(u'help_phone', default=u''), required=False) picture = schema.ASCII( title=_(u"Please upload an image"), required=False, ) directives.widget('picture', NamedImageFieldWidget)
class IServiceNavigationSchema(model.Schema): directives.widget('links', DataGridFieldFactory, allow_reorder=True) links = schema.List( title=_(u'label_service_links', default=u'Service links'), value_type=schema.Object( title=u'link', schema=IServiceNavigationSchemaGrid ), required=False, missing_value=[], ) disable = schema.Bool( title=_(u'label_disable_service_links', default=u'Disable service links'), required=False, missing_value=False, ) directives.mode(modified='hidden') modified = schema.Bool( title=u'modified_marker', required=False, default=True, missing_value=True, ) @invariant def link_validator(data): for link in data.links: if link.get('internal_link', None) and link.get('external_url', None): raise Invalid(_('error_link_validator', u'Choose between an external or an internal link.'))
class ICourse(model.Schema): form.mode(title='hidden') title = schema.TextLine( title=_(u"Title"), required=False, ) department = schema.List( title=_(u"Department"), description=_(u""), value_type=schema.Choice(vocabulary="agsci.syllabus.department"), ) course_prefix = schema.Choice( title=_(u"Course Prefix"), required=True, vocabulary="agsci.syllabus.course_prefix", ) course_number = schema.TextLine( title=_(u"Course Number"), required=True, ) course_name = schema.TextLine( title=_(u"Course Name"), required=True, ) description = schema.Text( title=_(u"Course Description"), required=False, )
class IComunicatoStampa(model.Schema): arguments = schema.Tuple( title=_("arguments_label", default=u"Arguments"), description=_("arguments_help", default="Select one or more values."), value_type=schema.TextLine(), required=True, missing_value=(), ) directives.widget( "arguments", AjaxSelectFieldWidget, vocabulary="rer.ufficiostampa.vocabularies.arguments", pattern_options={"allowNewItems": "false"}, ) legislature = schema.TextLine( title=_(u"label_legislature", default=u"Legislature"), description=u"", required=True, defaultFactory=defaultLegislature, ) directives.mode(legislature="display") message_sent = schema.Bool( title=_(u"label_sent", default=u"Sent"), description=u"", required=False, default=False, ) comunicato_number = schema.TextLine(title=u"", description=u"", required=False) directives.omitted("message_sent") directives.omitted("comunicato_number")
class IWorkflowMessageSchema(form.Schema): """ Schema to set message on transition """ directives.mode(workflow_action='hidden') workflow_action = schema.ASCIILine(title=u"Workflow action") message = schema.Text(title=u"Message", required=True)
class IAssetStorage(model.Schema): assets = schema.TextLine( title=_(u"Assigned Assets"), description=_(u"JSON formated listing of asigned assets"), required=False, ) form.mode(assets="hidden")
class IDummy(model.Schema): form.omitted('foo', 'bar') form.omitted(model.Schema, 'qux') form.no_omit(model.Schema, 'bar') form.widget(foo='some.dummy.Widget', baz='other.Widget') form.mode(bar='hidden') form.mode(model.Schema, bar='input') form.order_before(baz='title') form.order_after(qux='title') form.read_permission(foo='zope2.View') form.write_permission(foo='cmf.ModifyPortalContent') 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 IMMExperiment(IExperiment): directives.widget('function', FunctionsRadioFieldWidget) function = Choice( title=u'Algorithm', vocabulary='sdm_functions_source', default=None, required=True, ) directives.widget('species_occurrence_dataset', DatasetFieldWidget, genre=['DataGenreSpeciesOccurrence'], errmsg=u"Please select at least 1 occurrence dataset.", vizclass=u'bccvl-occurrence-viz') species_occurrence_dataset = TextLine( title=u'Species Occurrence Datasets', default=None, required=True, ) directives.widget('species_absence_dataset', DatasetFieldWidget, genre=['DataGenreSpeciesAbsence'], errmsg=u"Please select at least 1 absence dataset.", vizclass=u'bccvl-absence-viz') species_absence_dataset = TextLine( title=u'Species Absence Datasets', default=None, required=False, ) directives.widget('scale_down', BoolRadioFieldWidget, true_label=u"Scale to finest resolution", false_label=u"Scale to coarsest resolution") scale_down = Bool( title=u'Select common resolution', description= u'Environmental datasets will be scaled to the same resolution. This option allows to select to scale to highest or lowest resolution.', default=False, required=False) directives.widget('datasubsets', DataSubsetsFieldWidget) datasubsets = List( title=u'Climate & Environmental Data Subsets', value_type=Dict(), required=True, ) directives.mode(modelling_region=HIDDEN_MODE) directives.widget('modelling_region', TextAreaFieldWidget) modelling_region = NamedBlobFile( title=u"Modelling Region", description= u"GEOJson describing the geographic region which is used to generate the model.", required=False, )
class IEventBasic(model.Schema, IDXEvent): """ Basic event schema. """ start = schema.Datetime( title=_(u'label_event_start', default=u'Event Starts'), description=_(u'help_event_start', default=u'Date and Time, when the event begins.'), required=True, defaultFactory=default_start) directives.widget('start', DatetimeFieldWidget, default_timezone=default_timezone, klass=u'event_start') end = schema.Datetime(title=_(u'label_event_end', default=u'Event Ends'), description=_( u'help_event_end', default=u'Date and Time, when the event ends.'), required=True, defaultFactory=default_end) directives.widget('end', DatetimeFieldWidget, default_timezone=default_timezone, klass=u'event_end') whole_day = schema.Bool(title=_(u'label_event_whole_day', default=u'Whole Day'), description=_(u'help_event_whole_day', default=u'Event lasts whole day.'), required=False, default=False) directives.widget('whole_day', SingleCheckBoxFieldWidget, klass=u'event_whole_day') open_end = schema.Bool(title=_(u'label_event_open_end', default=u'Open End'), description=_(u'help_event_open_end', default=u"This event is open ended."), required=False, default=False) directives.widget('open_end', SingleCheckBoxFieldWidget, klass=u'event_open_end') # icalendar event uid sync_uid = schema.TextLine(required=False) directives.mode(sync_uid='hidden') @invariant def validate_start_end(data): if (data.start and data.end and data.start > data.end and not data.open_end): raise StartBeforeEnd( _("error_end_must_be_after_start_date", default=u"End date must be after start date."))
class IWorkshopfolder(model.Schema): directives.mode(title='hidden') title = schema.TextLine(title=_(u'Name Of The Workshopfolder'), default=_(u'Workshops')) description = schema.Text( title=_(u'Workshop Folder Description'), required=False, )
class ITalksfolder(model.Schema): directives.mode(title='hidden') title = schema.TextLine(title=_(u'Name Of The Folder For Talks'), default=_(u'Talks')) description = schema.Text( title=_(u'Talk Folder Description'), required=False, )