Exemple #1
0
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)
Exemple #2
0
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)
Exemple #4
0
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)
Exemple #7
0
class ISablonTemplate(IDocumentSchema):

    model.primary('file')
    file = NamedBlobFile(
        title=_(u'label_sablon_template_file', default='File'),
        required=True,
    )
Exemple #8
0
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,
    )
Exemple #9
0
class IImioDmsFile(IDmsFile):
    """Schema for DmsFile"""
    model.primary('file')
    file = RestrictedNamedBlobFile(
        title=_CDB(u"File"),
        required=True,
    )
Exemple #10
0
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,
    )
Exemple #11
0
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)
Exemple #12
0
class IRichText(model.Schema):

    text = RichTextField(
        title=_(u'Text'),
        description=u"",
        required=False,
    )
    model.primary('text')
Exemple #13
0
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')
Exemple #16
0
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)
Exemple #17
0
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')
Exemple #18
0
class IRichTextCustom(model.Schema):

    text = RichTextField(
        title=_(u'Text'),
        description=u'',
        required=False,
        )
    dexteritytextindexer.searchable('text')
    form.widget('text', RichTextFieldWidget)
    model.primary('text')
Exemple #19
0
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,
    )
Exemple #21
0
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.')
Exemple #22
0
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')
Exemple #24
0
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)
Exemple #25
0
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,
    )
Exemple #26
0
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')
Exemple #27
0
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."
                  ))
Exemple #29
0
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)
Exemple #30
0
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,
    )