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 IAudio(model.Schema): # main file will always be converted to mp4 form.widget(audio_file=StreamNamedFileFieldWidget) model.primary('audio_file') audio_file = namedfile.NamedBlobFile( title=_(u"Audio File"), description=u"", required=True, constraint=valid_audio ) form.omitted('metadata') metadata = schema.Text( required=False ) transcript = RichText( title=_(u"Transcript"), default_mime_type='text/html', output_mime_type='text/html', allowed_mime_types=('text/html', 'text/plain'), default=u"", required=False )
class IMultiSpeciesDataset(IDatasetCollection): """A species dataset based on a single file""" model.primary('file') file = NamedBlobFile(title=_(u"File"), description=_(u"Data content"), required=True)
class IDocumentSchema(model.Schema): """Document Schema Interface.""" model.fieldset( u'common', label=_(u'fieldset_common', u'Common'), fields=[ u'title', u'file', ], ) dexteritytextindexer.searchable('title') form.order_before(title='IDocumentMetadata.description') title = schema.TextLine(title=_(u'label_title', default=u'Title'), required=False) model.primary('file') form.order_after(file='IDocumentMetadata.document_author') file = field.NamedBlobFile( title=_(u'label_file', default='File'), description=_(u'help_file', default=''), required=False, ) @invariant def title_or_file_required(data): if not data.title and not data.file: raise Invalid( _(u'error_title_or_file_required', default=u'Either the title or the file is ' 'required.'))
class IPODTemplate(model.Schema): """ PODTemplate dexterity schema. """ model.primary('odt_file') form.widget('odt_file', NamedFileWidget) odt_file = NamedBlobFile(title=_(u'ODT File'), ) form.omitted('initial_md5') initial_md5 = schema.TextLine( description= u'Initially loaded file md5. Will be compared with os file md5.') form.omitted('style_modification_md5') style_modification_md5 = schema.TextLine( description=u'Working md5, stored when styles only update.') form.widget('enabled', RadioFieldWidget) enabled = schema.Bool( title=_(u'Enabled'), default=True, required=False, ) form.widget('style_template', SelectWidget) style_template = schema.List( title=_(u'Style template'), description=_( u'Choose the style template to apply for this template.'), value_type=schema.Choice( source='collective.documentgenerator.StyleTemplates'), required=True, )
class IBlobDataset(IDataset): # TODO: a primary field should not be required. possible bug in plone core model.primary('file') file = NamedBlobFile(title=_(u"File"), description=_(u"Data content"), required=True)
class ISablonTemplate(IDocumentSchema): model.primary('file') file = NamedBlobFile( title=_(u'label_sablon_template_file', default='File'), required=True, )
class IPdfFile(model.Schema): """ Marker interfce and Dexterity Python Schema for Promotion """ # directives.omitted('title') title = schema.TextLine( title=_(u'Title'), # description=u"", required=False, defaultFactory=request_title, ) description = schema.Text( title=_(u'Description'), # description=u"", required=False) file = namedfile.NamedBlobFile( title=_(u'File'), required=True, constraint=isValidFileType, # primary=True, ) model.primary('file') directives.omitted('thumbfile') thumbfile = namedfile.NamedBlobImage( title=_(u'ImageThumb'), required=False, )
class IImioDmsFile(IDmsFile): """Schema for DmsFile""" model.primary('file') file = RestrictedNamedBlobFile( title=_CDB(u"File"), required=True, )
class ISession(model.Schema): """A conference session. Sessions are managed inside Programs. """ title = schema.TextLine( title=_(u"Title"), description=_(u"Session title"), ) description = schema.Text( title=_(u"Session summary"), ) model.primary('details') details = RichText( title=_(u"Session details"), required=False ) # use an autocomplete selection widget instead of the default content tree form.widget(presenter=AutocompleteFieldWidget) presenter = RelationChoice( title=_(u"Presenter"), source=ObjPathSourceBinder( object_provides=IPresenter.__identifier__), required=False, ) dexterity.write_permission(track='example.conference.ModifyTrack') track = schema.Choice( title=_(u"Track"), source=possibleTracks, required=False, )
class IMPEGAudioFile(form.Schema): """ Representa um Arquivo de Audio MPEG""" model.primary('file') file = NamedBlobFile(title=_(u'File'), description=_(u'Please upload a audio file.'), required=True, constraint=validate_mpeg)
class IRichText(model.Schema): text = RichTextField( title=_(u'Text'), description=u"", required=False, ) model.primary('text')
class IStyleTemplate(model.Schema): """ StyleTemplate dexterity schema. """ model.primary('odt_file') form.widget('odt_file', NamedFileWidget) odt_file = NamedBlobFile(title=_(u'ODT File'), )
class IOGGAudioFile(form.Schema): ''' Representa um Arquivo de Audio OGG''' model.primary('file') file = NamedBlobFile(title=_(u'File'), description=_(u'Please upload a audio file.'), required=True, constraint=validate_ogg)
class IRichText(model.Schema): text = RichTextField( title=_(u'Text'), description=u'', required=False, ) form.widget('text', RichTextFieldWidget) model.primary('text')
class IVideo(model.Schema): form.omitted('image') image = namedfile.NamedBlobImage( title=_(u"Cover Image"), description=u"", required=False, ) # main file will always be converted to mp4 form.widget(video_file=StreamNamedFileFieldWidget) model.primary('video_file') video_file = namedfile.NamedBlobFile(title=_(u"Video File"), description=u"", required=False, constraint=valid_video) form.omitted(IAddForm, 'video_file_ogv') form.omitted(IEditForm, 'video_file_ogv') form.widget(video_file_ogv=StreamNamedFileFieldWidget) video_file_ogv = namedfile.NamedBlobFile(required=False, ) form.omitted(IAddForm, 'video_file_webm') form.omitted(IEditForm, 'video_file_webm') form.widget(video_file_webm=StreamNamedFileFieldWidget) video_file_webm = namedfile.NamedBlobFile(required=False, ) youtube_url = schema.TextLine( title=_(u"Youtube URL"), description=_(u"Alternatively, you can provide a youtube video url. " u"If this is specified, video file will be ignored."), required=False) @invariant def validate_videos(data): if not data.video_file and not data.youtube_url: raise Invalid("Must specify either a video file or youtube url") width = schema.Int(title=_(u"Width"), default=640) height = schema.Int(title=_(u"Height"), default=320) subtitle_file = namedfile.NamedBlobFile( title=_(u"Subtitle file"), description=_(u"Provide a file in srt format"), required=False) form.omitted('metadata') metadata = schema.Text(required=False) transcript = RichText(title=_(u"Transcript"), default_mime_type='text/html', output_mime_type='text/html', allowed_mime_types=('text/html', 'text/plain'), default=u"", required=False)
class ISource(model.Schema): """Source Type""" title = schema.TextLine(title=_(u'Title'), ) text = RichTextField( title=_(u'Text'), description=u'', required=False, ) directives.widget('text', RichTextFieldWidget) model.primary('text')
class IRichTextCustom(model.Schema): text = RichTextField( title=_(u'Text'), description=u'', required=False, ) dexteritytextindexer.searchable('text') form.widget('text', RichTextFieldWidget) model.primary('text')
class IPaneSchema(Schema): title = schema.TextLine( title=_PMF(u'label_title', default=u'Title'), required=True ) show_title = schema.Bool( title=_(u'label_show_title', default=u'Show title'), required=False, default=False, missing_value=False, ) text = RichText( title=_(u'label_text', default=u'Text'), description=_(u'help_text', default=u''), required=False, ) model.primary('image') image = NamedImage( title=_(u'label_image', default='Image'), required=True, ) image_alt_text = schema.TextLine( title=_(u'label_image_alt_text', default=u'Image alt text'), required=False ) form.widget(link=ReferenceWidgetFactory) link = schema.TextLine( title=_(u'label_link', default=u'Link'), description=_(u'help_link', default=u''), required=False, ) external_url = schema.URI( title=_(u'label_external_url', default=u'External URL'), required=False, ) @invariant def validate_links(data): """ It is not allowed to add a link and an external url at the same time. """ if data.link and data.external_url: raise Invalid(_( u'error_message_links', default=u'It\'s not possible to add a link and an ' u'external url at the same time') )
class ITune(Interface): dexteritytextindexer.searchable('title') model.primary('title') title = schema.TextLine( title=_(u'Tune name'), description=_(u'The main name as you know this tune'), ) description = schema.Text( title=_(u'Short description'), description=_(u'Short tune description for, i.e., tooltips'), required=False, )
class IStyleTemplate(model.Schema): """ StyleTemplate dexterity schema. """ model.primary('odt_file') form.widget('odt_file', NamedFileWidget) odt_file = NamedBlobFile(title=_(u'ODT File'), ) form.omitted('initial_md5') initial_md5 = schema.TextLine( description= u'Initially loaded file md5. Will be compared with os file md5.')
class IPODTemplate(model.Schema): """ PODTemplate dexterity schema. """ model.primary('odt_file') form.widget('odt_file', NamedFileWidget) odt_file = NamedBlobFile(title=_(u'ODT File'), ) form.omitted('initial_md5') initial_md5 = schema.TextLine() enabled = schema.Bool( title=_(u'Enabled'), default=True, required=False, )
class IAgreementFile(model.Schema, IImageScaleTraversable): """ E-Deposit - file with agreement for producent """ # If you want a schema-defined interface, delete the model.load # line below and delete the matching file in the models sub-directory. # If you want a model-based interface, edit # models/agreement_file.xml to define the content type. agreement = NamedBlobFile( title=_(u'Agreement'), description=_( u'Upload file with agreement between National Library and you.'), required=False, ) model.primary('agreement')
class IKaltura_Video(model.Schema): dexteritytextindexer.searchable('title') title = schema.TextLine(title=_('Video Title'), description=_('Title of your video')) dexteritytextindexer.searchable('description') description = schema.Text(title=_('Video summary'), ) player = schema.Choice(title=_('Player'), description=_('Choose the player to use'), source=VideoPlayerVocabularyFactory) categories = schema.List( title=_('Categories'), description=_("Select video category(ies) this video belongs in"), value_type=schema.Choice(source=CategoryVocabularyFactory(None))) dexteritytextindexer.searchable('tags') tags = schema.Tuple( title=_('Tags'), description=_( "keyword tag(s) associated with this video (one per line)"), value_type=schema.TextLine(), required=False, missing_value=(), ) directives.widget('tags', AjaxSelectFieldWidget, vocabulary='plone.app.vocabularies.Keywords') video_file = NamedBlobFile(title=_('video file'), ) model.primary('video_file') ##Hidden Fields #User never interacts with these fields directives.omitted('entryId', 'KalturaObject') entryId = schema.Text( title=_('entryid'), description=_('Entry Id set by Kaltura after upload (read only)'), default=None) #This stores the python object representing the entry in the Kaltura Media Center KalturaObject = schema.Object(IKalturaMediaEntry)
class IAudio(model.Schema): """ The IAudio interface""" title = schema.TextLine( title=_(u"Titel"), description=u'Der Titel wird oberhalb des Audio-Players angezeigt.', required=False, ) model.primary('file') file = namedfile.NamedBlobFile( title=_(u'label_file', default=u'Audio-Datei (.mp3)'), description=u'Die Audio-Datei muss das .mp3-Format haben.', required=True, ) image = namedfile.NamedBlobImage( title=_(u'label_image', default=u'Bild'), description=u'Dieses Bild wird oberhalb des Audio-Players angezeigt.', required=False, )
class IMail(model.Schema): mail_from = TextLine( title=_('from', u'From'), description=u'', default=u'', ) mail_to = Tuple( title=_('to', u'To'), description=u'', value_type=TextLine(), default=(), required=False, ) mail_cc = Tuple( title=_('cc', u'CC'), description=u'', value_type=TextLine(), default=(), required=False, ) mail_bcc = Tuple( title=_('bcc', u'BCC'), description=u'', value_type=TextLine(), missing_value=(), required=False, ) mail_body = RichTextField( title=_('body', u'Body'), description=u"", required=False, default=RichTextValue(u''), ) form.widget('mail_body', RichTextFieldWidget) model.primary('mail_body')
class IVideo(model.Schema): form.omitted('image') image = namedfile.NamedBlobImage( title=_(u"Cover Image"), description=u"", required=False, ) # main file will always be converted to mp4 form.widget(video_file=StreamNamedFileFieldWidget) model.primary('video_file') video_file = namedfile.NamedBlobFile( title=_(u"Video File"), description=u"", required=False, constraint=valid_video ) if youtube: upload_video_to_youtube = schema.Bool( title=_(u'Upload to youtube'), description=_(u'Requires having youtube account connected. ' u'Videos that are private will remain unlisted on YouTube. ' u'Once published, video will be made public on YouTube. '), required=False, default=False) form.omitted(IAddForm, 'video_file_ogv') form.omitted(IEditForm, 'video_file_ogv') form.widget(video_file_ogv=StreamNamedFileFieldWidget) video_file_ogv = namedfile.NamedBlobFile( required=False, ) form.omitted(IAddForm, 'video_file_webm') form.omitted(IEditForm, 'video_file_webm') form.widget(video_file_webm=StreamNamedFileFieldWidget) video_file_webm = namedfile.NamedBlobFile( required=False, ) youtube_url = schema.TextLine( title=_(u"Youtube URL"), description=_(u"Alternatively, you can provide a youtube video url. " u"If this is specified, video file will be ignored. " u"If video was uploaded to youtube, this field will be filled " u"with video url."), required=False ) retrieve_thumb = schema.Bool( title=_(u'Retrieve original thumbnail from youtube'), description=_(u"If checked, try to download original thumbnail from " u"youtube into this video."), required=False, default=False) @invariant def validate_videos(data): if not data.video_file and not data.youtube_url: raise Invalid("Must specify either a video file or youtube url") width = schema.Int( title=_(u"Width"), defaultFactory=getDefaultWidth ) height = schema.Int( title=_(u"Height"), defaultFactory=getDefaultHeight ) subtitle_file = namedfile.NamedBlobFile( title=_(u"Subtitle file"), description=_(u"Provide a file in srt format"), required=False ) form.omitted('metadata') metadata = schema.Text( required=False ) transcript = RichText( title=_(u"Transcript"), default_mime_type='text/html', output_mime_type='text/html', allowed_mime_types=('text/html', 'text/plain'), default=u"", required=False )
class IEUpRelease(model.Schema): form.mode(projecttitle='hidden') projecttitle = schema.TextLine( title=_(u"The Computed Project Title"), description=_( u"The release title will be computed from the parent project title." ), defaultFactory=getContainerTitle) releasenumber = schema.TextLine( title=_(u"Release Number"), description=_(u"Release Number (up to twelf chars)"), default=_(u"1.0"), max_length=12, ) description = schema.Text(title=_(u"Release Summary"), ) form.primary('details') details = RichText(title=_(u"Full Release Description"), required=False) form.primary('changelog') changelog = RichText( title=_(u"Changelog"), description=_( u"A detailed log of what has changed since the previous release."), required=False, ) form.widget(licenses_choice=CheckBoxFieldWidget) licenses_choice = schema.List( title=_(u'License of the uploaded file'), description=_( u"Please mark one or more licenses you publish your release."), value_type=schema.Choice(source=vocabAvailLicenses), required=True, ) form.widget(compatibility_choice=CheckBoxFieldWidget) compatibility_choice = schema.List( title=_(u"Compatible with versions of LibreOffice"), description= _(u"Please mark one or more program versions with which this release is compatible with." ), value_type=schema.Choice(source=vocabAvailVersions), required=True, default=[]) form.mode(title_declaration_legal='display') title_declaration_legal = schema.TextLine( title=_(u""), required=False, defaultFactory=legal_declaration_title) form.mode(declaration_legal='display') declaration_legal = schema.Text(title=_(u""), required=False, defaultFactory=legal_declaration_text) accept_legal_declaration = schema.Bool( title=_(u"Accept the above legal disclaimer"), description=_( u"Please declare that you accept the above legal disclaimer."), required=True) contact_address2 = schema.TextLine( title=_(u"Contact email-address"), description=_(u"Contact email-address for the project."), required=False, defaultFactory=contactinfoDefault) source_code_inside = schema.Choice( title=_(u"Is the source code inside the extension?"), vocabulary=yesnochoice, required=True) link_to_source = schema.URI( title=_(u"Please fill in the Link (URL) to the Source Code."), required=False) file = NamedBlobFile( title=_(u"The first file you want to upload."), description=_(u"Please upload your file."), required=True, constraint=validatefileextension, ) form.widget(platform_choice=CheckBoxFieldWidget) platform_choice = schema.List( title=_(u"First uploaded file is compatible with the Platform(s)"), description= _(u"Please mark one or more platforms with which the uploaded file is compatible." ), value_type=schema.Choice(source=vocabAvailPlatforms), required=True, ) form.mode(information_further_file_uploads='display') model.primary('information_further_file_uploads') information_further_file_uploads = RichText( title=_(u"Further File Uploads for this Release"), description=_(u"If you want to upload more files for this release, " u"e.g. because there are files for other operating " u"systems, you'll find the upload fields on the " u"register 'File Upload 1' and 'File Upload 2'."), required=False) form.fieldset('fileset1', label=u"File Upload 1", fields=[ 'filetitlefield1', 'file1', 'platform_choice1', 'filetitlefield2', 'file2', 'platform_choice2', 'filetitlefield3', 'file3', 'platform_choice3' ]) form.mode(filetitlefield1='display') filetitlefield1 = schema.TextLine(title=_(u"Second Release File"), ) file1 = NamedBlobFile( title=_(u"The second file you want to upload (this is optional)"), description=_(u"Please upload your file."), required=False, constraint=validatefileextension, ) form.widget(platform_choice1=CheckBoxFieldWidget) platform_choice1 = schema.List( title=_(u"Second uploaded file is compatible with the Platform(s)"), description= _(u"Please mark one or more platforms with which the uploaded file is compatible." ), value_type=schema.Choice(source=vocabAvailPlatforms), required=False, ) form.mode(filetitlefield2='display') filetitlefield2 = schema.TextLine(title=_(u"Third Release File"), ) file2 = NamedBlobFile( title=_(u"The third file you want to upload (this is optional)"), description=_(u"Please upload your file."), required=False, constraint=validatefileextension, ) form.widget(platform_choice2=CheckBoxFieldWidget) platform_choice2 = schema.List( title=_(u"Third uploaded file is compatible with the Platform(s))"), description= _(u"Please mark one or more platforms with which the uploaded file is compatible." ), value_type=schema.Choice(source=vocabAvailPlatforms), required=False, ) form.mode(filetitlefield3='display') filetitlefield3 = schema.TextLine(title=_(u"Fourth Release File"), ) file3 = NamedBlobFile( title=_(u"The fourth file you want to upload (this is optional)"), description=_(u"Please upload your file."), required=False, constraint=validatefileextension, ) form.widget(platform_choice3=CheckBoxFieldWidget) platform_choice3 = schema.List( title=_(u"Fourth uploaded file is compatible with the Platform(s)"), description= _(u"Please mark one or more platforms with which the uploaded file is compatible." ), value_type=schema.Choice(source=vocabAvailPlatforms), required=False, ) form.fieldset('fileset2', label=u"File Upload 2", fields=[ 'filetitlefield4', 'file4', 'platform_choice4', 'filetitlefield5', 'file5', 'platform_choice5' ]) form.mode(filetitlefield4='display') filetitlefield4 = schema.TextLine(title=_(u"Fifth Release File"), ) file4 = NamedBlobFile( title=_(u"The fifth file you want to upload (this is optional)"), description=_(u"Please upload your file."), required=False, constraint=validatefileextension, ) form.widget(platform_choice4=CheckBoxFieldWidget) platform_choice4 = schema.List( title=_(u"Fifth uploaded file is compatible with the Platform(s)"), description= _(u"Please mark one or more platforms with which the uploaded file is compatible." ), value_type=schema.Choice(source=vocabAvailPlatforms), required=False, ) form.mode(filetitlefield5='display') filetitlefield5 = schema.TextLine(title=_(u"Sixth Release File"), ) file5 = NamedBlobFile( title=_(u"The sixth file you want to upload (this is optional)"), description=_(u"Please upload your file."), required=False, constraint=validatefileextension, ) form.widget(platform_choice5=CheckBoxFieldWidget) platform_choice5 = schema.List( title=_(u"Sixth uploaded file is compatible with the Platform(s)"), description= _(u"Please mark one or more platforms with which the uploaded file is compatible." ), value_type=schema.Choice(source=vocabAvailPlatforms), required=False, ) @invariant def licensenotchoosen(value): if not value.licenses_choice: raise Invalid(_(u"Please choose a license for your release.")) @invariant def compatibilitynotchoosen(data): if not data.compatibility_choice: raise Invalid( _(u"Please choose one or more compatible product versions for your release." )) @invariant def legaldeclarationaccepted(data): if data.accept_legal_declaration is not True: raise AcceptLegalDeclaration( _(u"Please accept the Legal Declaration about your Release and your Uploaded File" )) @invariant def testingvalue(data): if data.source_code_inside is not 1 and data.link_to_source is None: raise Invalid( _(u"You answered the question, whether the source code is inside your extension with no " u"(default answer). If this is the correct answer, please fill in the Link (URL) " u"to the Source Code.")) @invariant def noOSChosen(data): if data.file is not None and data.platform_choice == []: raise Invalid( _(u"Please choose a compatible platform for the uploaded file." ))
class ITask(model.Schema): """Define the task schema.""" model.fieldset( u'common', label=_(u'fieldset_common', default=u'Common'), fields=[ u'title', u'issuer', u'task_type', u'responsible_client', u'responsible', u'deadline', u'text', u'relatedItems', ], ) model.fieldset( u'additional', label=_(u'fieldset_additional', u'Additional'), fields=[ u'expectedStartOfWork', u'expectedDuration', u'expectedCost', u'effectiveDuration', u'effectiveCost', u'date_of_completion', ], ) dexteritytextindexer.searchable('title') title = schema.TextLine( title=_(u"label_title", default=u"Title"), description=_('help_title', default=u""), required=True, max_length=256, ) form.widget('issuer', KeywordFieldWidget, async=True) issuer = schema.Choice( title=_(u"label_issuer", default=u"Issuer"), source=UsersContactsInboxesSourceBinder(), required=True, ) form.widget(task_type='z3c.form.browser.radio.RadioFieldWidget') task_type = schema.Choice( title=_(u'label_task_type', default=u'Task Type'), description=_('help_task_type', default=u''), required=True, readonly=False, default=None, missing_value=None, source=util.getTaskTypeVocabulary, ) form.mode(responsible_client='hidden') responsible_client = schema.Choice( title=_( u'label_resonsible_client', default=u'Responsible Client', ), description=_( u'help_responsible_client', default=u'', ), vocabulary='opengever.ogds.base.OrgUnitsVocabularyFactory', required=True, ) form.widget('responsible', KeywordFieldWidget, async=True) responsible = schema.Choice( title=_(u"label_responsible", default=u"Responsible"), description=_(u"help_responsible", default=""), source=AllUsersInboxesAndTeamsSourceBinder(include_teams=True), required=True, ) form.widget(deadline=DatePickerFieldWidget) deadline = schema.Date( title=_(u"label_deadline", default=u"Deadline"), description=_(u"help_deadline", default=u""), required=True, defaultFactory=deadline_default, ) form.widget(date_of_completion=DatePickerFieldWidget) form.mode(IAddForm, date_of_completion=HIDDEN_MODE) date_of_completion = schema.Date( title=_(u"label_date_of_completion", default=u"Date of completion"), description=_(u"help_date_of_completion", default=u""), required=False, ) dexteritytextindexer.searchable('text') model.primary('text') text = schema.Text( title=_(u"label_text", default=u"Text"), description=_(u"help_text", default=u""), required=False, ) relatedItems = RelationList( title=_(u'label_related_items', default=u'Related Items'), default=[], missing_value=[], value_type=RelationChoice( title=u"Related", source=DossierPathSourceBinder( portal_type=("opengever.document.document", "ftw.mail.mail"), navigation_tree_query={ 'object_provides': [ 'opengever.dossier.behaviors.dossier.IDossierMarker', 'opengever.document.document.IDocumentSchema', 'opengever.task.task.ITask', 'ftw.mail.mail.IMail', 'opengever.meeting.proposal.IProposal', ], }, ), ), required=False, ) form.widget(expectedStartOfWork=DatePickerFieldWidget) expectedStartOfWork = schema.Date( title=_(u"label_expectedStartOfWork", default="Start with work"), required=False, ) expectedDuration = schema.Float( title=_( u"label_expectedDuration", default="Expected duration", ), description=_(u"help_expectedDuration", default="Duration in h"), required=False, ) expectedCost = schema.Float( title=_(u"label_expectedCost", default="expected cost"), description=_(u"help_expectedCost", default="Cost in CHF"), required=False, ) effectiveDuration = schema.Float( title=_(u"label_effectiveDuration", default="effective duration"), description=_(u"help_effectiveDuration", default="Duration in h"), required=False, ) effectiveCost = schema.Float( title=_(u"label_effectiveCost", default="effective cost"), description=_(u"help_effectiveCost", default="Cost in CHF"), required=False, ) form.omitted('predecessor') predecessor = schema.TextLine(title=_(u'label_predecessor', default=u'Predecessor'), required=False)
class ITaskTemplate(model.Schema): model.fieldset( u'common', label=_(u'fieldset_common', default=u'Common'), fields=[ u'title', u'issuer', u'task_type', u'responsible_client', u'responsible', u'deadline', u'text', u'preselected' ], ) title = schema.TextLine( title=_(u"label_title", default=u"Title"), description=_('help_title', default=u""), required=True, ) form.widget('issuer', KeywordFieldWidget, async=True) issuer = schema.Choice( title=_(u"label_issuer", default=u"Issuer"), description=_('help_issuer', default=u""), source=TaskTemplateIssuerSourceBinder(), required=True, ) form.widget(task_type='z3c.form.browser.radio.RadioFieldWidget') task_type = schema.Choice( title=_(u'label_task_type', default=u'Task Type'), description=_('help_task_type', default=u''), required=True, readonly=False, default=None, missing_value=None, source=util.getTaskTypeVocabulary, ) form.mode(responsible_client='hidden') responsible_client = schema.Choice( title=_(u'label_resonsible_client', default=u'Responsible Client'), description=_(u'help_responsible_client', default=u''), vocabulary='opengever.tasktemplates.ResponsibleOrgUnitVocabulary', required=True) form.widget('responsible', KeywordFieldWidget, async=True) responsible = schema.Choice( title=_(u"label_responsible", default="Responsible"), description=_(u"help_responsible", default=""), source=TaskResponsibleSourceBinder(include_teams=True), required=True, ) deadline = schema.Int( title=_(u"label_deadline", default=u"Deadline in Days"), description=_('help_deadline', default=u""), required=True, ) model.primary('text') text = schema.Text( title=_(u"label_text", default=u"Text"), description=_(u"help_text", default=u""), required=False, ) form.widget(preselected=checkbox.SingleCheckBoxFieldWidget) preselected = schema.Bool( title=_(u'label_preselected', default='Preselect'), description=_(u'help_preselected', default=''), required=False, )