Ejemplo n.º 1
0
class IBannerImage(model.Schema):

    form.order_before(banner_image='IDublinCore.description')
    banner_image = namedfile.NamedBlobImage(
        title=_(u"Banner Image"),
        description=u"",
        required=False,
    )

    form.order_before(banner_image_caption='IDublinCore.description')
    banner_image_caption = schema.TextLine(
        title=_(u"Banner Image Caption"),
        description=u"",
        required=False,
    )
Ejemplo n.º 2
0
class ISurveyGroup(form.Schema, IBasic):
    title = schema.TextLine(
        title=_("label_title", default=u"Title"),
        description=_(
            "help_surveygroup_title",
            default=u"The title of this OiRA Tool. This title is used in "
            u"the OiRA Tool overview in the clients."),
        required=True)
    form.order_before(title="*")

    form.omitted("description")

    obsolete = schema.Bool(
        title=_("label_survey_obsolete", default=u"Obsolete survey"),
        description=_(
            "help_survey_obsolete",
            default=u"This OiRA Tool is obsolete; it has been retired or "
            u"replaced with another OiRA Tool."),
        default=False,
        required=False)

    form.omitted(IEditForm, 'evaluation_algorithm')
    evaluation_algorithm = schema.Choice(
        title=_("label_survey_evaluation_algorithm",
                default=u"Evaluation algorithm"),
        vocabulary=SimpleVocabulary([
            SimpleTerm(u"kinney",
                       title=_("algorithm_kinney",
                               default=u"Standard three criteria")),
            SimpleTerm(u"french",
                       title=_("french", default=u"Simplified two criteria")),
        ]),
        default=u"kinney",
        required=True)
Ejemplo n.º 3
0
class IOGMail(form.Schema):
    """Opengever specific behavior,
    which add a title Field to the form.
    """

    form.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.read_permission(original_message='cmf.ManagePortal')
    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,
    )
Ejemplo n.º 4
0
class ISurveyEditSchema(ISurvey):
    survey_title = schema.TextLine(
        title=_("label_title", default=u"Title"),
        description=_(
            "help_surveygroup_title",
            default=u"The title of this OiRA Tool. This title is used in "
            u"the OiRA Tool overview in the clients."),
        required=True)
    form.order_before(survey_title="*")

    obsolete = schema.Bool(
        title=_("label_survey_obsolete", default=u"Obsolete survey"),
        description=_(
            "help_survey_obsolete",
            default=u"This OiRA Tool is obsolete; it has been retired or "
            u"replaced with another OiRA Tool."),
        default=False,
        required=False)
    form.order_before(obsolete="introduction")
Ejemplo n.º 5
0
class IFaqBlockSchema(ITextBlockSchema):
    """Faq block for simplelayout
    """

    title = schema.TextLine(title=Message(u'label_title',
                                          domain='ftw.simplelayout',
                                          default=u'Title'),
                            required=True)

    form.omitted('show_title')
    form.order_before(title='*')
Ejemplo n.º 6
0
        class IDummy(form.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")
Ejemplo n.º 7
0
class ISector(form.Schema, IUser, IBasic):
    """Sector object.

    A sector is a national organisation for a specific type of
    industry.
    """

    form.order_before(title="*")
    dexterity.write_permission(title="euphorie.content.ManageCountry")

    form.order_after(login="******")
    dexterity.write_permission(login="******")

    form.order_before(password="******")

    form.order_after(locked="password")
    dexterity.write_permission(locked="euphorie.content.ManageCountry")

    contact_name = schema.TextLine(title=_("label_contact_name",
                                           default=u"Contact name"),
                                   required=True)

    form.order_after(contact_email="contact_name")

    logo = filefield.NamedBlobImage(
        title=_("label_logo", default=u"Logo"),
        description=_(
            "help_image_upload",
            default=u"Upload an image. Make sure your image is of format "
            u"png, jpg or gif and does not contain any special "
            u"characters."),
        required=False)

    main_colour = colour.Colour(title=_("label_main_colour",
                                        default=u"Main colour"),
                                required=False)

    support_colour = colour.Colour(title=_("label_support_colour",
                                           default=u"Support colour"),
                                   required=False)
Ejemplo n.º 8
0
class ISection(model.Schema):
    """Behavior interface to make a content type support sections."""

    model.fieldset('categorization', fields=['section'])
    form.order_before(section='genre')

    # nitf/head/pubdata/@position.section
    section = schema.Choice(
        title=_(u'Section'),
        description=_(
            u'help_section',
            default=u'Named section where the item will appear.',
        ),
        vocabulary=u'collective.nitf.AvailableSections',
    )
Ejemplo n.º 9
0
class IForwarding(ITask):
    """Schema interface for forwardings.
    """

    # common fieldset
    form.omitted('task_type')

    # only hide relatedItems - we need it for remembering which documents
    # should be moved after creation when creating forwarding from tabbed view.
    form.mode(relatedItems=HIDDEN_MODE)

    # additional fieldset
    form.omitted('expectedStartOfWork')
    form.omitted('expectedDuration')
    form.omitted('expectedCost')
    form.omitted('effectiveDuration')
    form.omitted('effectiveCost')

    # only hide date_of_completion, it's used
    form.mode(date_of_completion=HIDDEN_MODE)
    # make sure hidden field is not rendered in its own empty fieldset by
    # moving it to the form's first position before title
    form.order_before(date_of_completion='title')

    # deadline is not required
    deadline = schema.Date(
        title=task_mf(u"label_deadline", default=u"Deadline"),
        description=task_mf(u"help_deadline", default=u""),
        required=False,
    )

    form.widget('responsible', KeywordFieldWidget, async=True)
    responsible = schema.Choice(
        title=_(u"label_responsible", default=u"Responsible"),
        description=_(u"help_responsible", default=""),
        source=AllUsersAndInboxesSourceBinder(
            only_current_orgunit=True),
        required=True,
    )
Ejemplo n.º 10
0
class IHtmlBlockSchema(form.Schema):
    """HTML block for simplelayout
    """

    title = schema.TextLine(
        title=_(u'htmlblock_title_label', default=u'Title'),
        required=True,
    )

    show_title = schema.Bool(
        title=_(u'htmlblock_show_title_label', default=u'Show title'),
        default=False,
        required=False,
    )

    content = schema.Text(
        title=_(u'htmlblock_content_label', default=u'Content'),
        description=_(u'htmlblock_content_description',
                      default=u'The content will be rendered without '
                      u'being escaped.'),
        required=False,
    )

    form.order_before(title='*')
Ejemplo n.º 11
0
class ISurvey(form.Schema, IBasic):
    """Survey.

    The survey is the root of a survey.
    """
    title = schema.TextLine(
        title=_("label_survey_title", default=u"Version name"),
        description=_(
            "help_survey_title",
            default=u"This is the title of this OiRA Tool version. This "
            u"name is never shown to users."),
        required=True)
    form.order_before(title="*")

    form.omitted("description")

    introduction = HtmlText(
        title=_("label_introduction", default=u"Introduction text"),
        description=_(
            u"The introduction text is shown when starting a new "
            u"OiRA Tool session. If no introduction is provided here a "
            u"standard text will be shown. Please keep this text brief "
            u"so it will easily fit on screens of small devices such as "
            u"phones and PDAs."),
        required=False)
    form.widget(introduction=WysiwygFieldWidget)

    evaluation_optional = schema.Bool(
        title=_("label_evaluation_optional",
                default=u"Evaluation may be skipped"),
        description=_(
            "help_evaluation_optional",
            default=u"This option allows users to skip the evaluation "
            u"phase."),
        default=False,
        required=False)

    language = schema.Choice(
        title=_("label_language", default=u"Language"),
        vocabulary="plone.app.vocabularies.AvailableContentLanguages",
        default=u"en",
        required=True)

    classification_code = schema.TextLine(
        title=_("label_classification_code", default=u"Classification code"),
        description=_(
            "help_classification_code",
            default=u"A code identifying this sector. Classification "
            u"codes are defined by national standards bodies "
            u"and based on revision 2 of the NACE standard."),
        required=False)

    enable_tool_notification = schema.Bool(
        title=_("label_enable_tool_notification",
                default=u"Show a custom notification for this OiRA tool?"),
        description=_(
            u'description_tool_notification',
            default=u'If you enter text here, it will be shown to users '
            u'in a pop-up when they open the tool. It can be used for '
            u'notifying users about changes.'),
        required=False,
        default=False)

    depends("tool_notification_title", "enable_tool_notification", "on")
    tool_notification_title = ConditionalTextLine(title=_(
        "label_tool_notification_title", default=u"Tool notification title"),
                                                  required=True)

    depends("tool_notification_message", "enable_tool_notification", "on")
    tool_notification_message = ConditionalHtmlText(title=_(
        "label_tool_notification", default=u"Tool notification message"),
                                                    required=True)
    form.widget(tool_notification_message=WysiwygFieldWidget)
Ejemplo n.º 12
0
 class IBar(form.Schema):
     form.order_before(ber='*')
     bar = zope.schema.TextLine()
Ejemplo n.º 13
0
class IRepositoryFolderSchema(form.Schema):
    """ A Repository Folder
    """

    form.fieldset(
        u'common',
        label=_(u'fieldset_common', default=u'Common'),
        fields=[
            u'effective_title',
            u'description',
            u'valid_from',
            u'valid_until',
            u'location',
            u'referenced_activity',
            u'former_reference',
            ],
        )

    #form.omitted('title')
    form.order_before(effective_title='*')
    effective_title = schema.TextLine(
        title=_(u'Title'),
        required=True,
        )

    description = schema.Text(
        title=_(u'label_description', default=u'Description'),
        description=_(
            u'help_description',
            default=u'A short summary of the content.'),
        required=False,
        )

    valid_from = schema.Date(
        title=_(u'label_valid_from', default=u'Valid from'),
        description=_(u'help_valid_from', default=u''),
        required=False,
        )

    valid_until = schema.Date(
        title=_(u'label_valid_until', default=u'Valid until'),
        description=_(u'help_valid_until', default=u''),
        required=False,
        )

    location = schema.TextLine(
        title=_(u'label_location', default=u'Location'),
        description=_(u'help_location', default=u''),
        required=False,
        )

    referenced_activity = schema.TextLine(
        title=_(
            u'label_referenced_activity',
            default=u'Referenced activity'),
        description=_(u'help_referenced_activity', default=u''),
        required=False,
        )

    former_reference = schema.TextLine(
        title=_(u'label_former_reference', default=u'Former reference'),
        description=_(u'help_former_reference', default=u''),
        required=False,
        )

    addable_dossier_types = schema.List(
        title=_(u'label_addable_dossier_types',
                default=u'Addable dossier types'),
        description=_(u'help_addable_dossier_types',
                      default=u'Select all additional dossier types which '
                      'should be addable in this repository folder.'),
        value_type=schema.Choice(vocabulary=u'opengever.repository.'
                                 u'RestrictedAddableDossiersVocabulary'),
        required=False)
Ejemplo n.º 14
0
class INITF(model.Schema):
    """A News Article based on the News Industry Text Format specification."""

    # title = schema.TextLine()
    # nitf/head/title and nitf/body/body.head/hedline/hl1

    form.order_before(subtitle='IDublinCore.title')
    subtitle = schema.TextLine(
        # nitf/body/body.head/hedline/hl2
        title=_(u'Subtitle'),
        description=_(u'help_subtitle',
                      default=u'A subordinate headline for the article.'),
        default=u'',
        missing_value=u'',
        required=False,
    )

    byline = schema.TextLine(
        # nitf/body/body.head/byline/person
        title=_(u'Author'),
        default=u'',
        missing_value=u'',
        required=False,
    )

    location = schema.TextLine(
        # nitf/body/body.head/dateline/location
        title=_(u'Location'),
        description=_(
            u'help_location',
            default=u'Event location. Where an event took place '
            u'(as opposed to where the story was written).',
        ),
        default=u'',
        missing_value=u'',
        required=False,
    )

    text = RichText(
        # nitf/body/body.content
        title=_(u'Body text'),
        required=False,
    )

    model.fieldset('categorization', fields=['genre', 'urgency'])

    genre = schema.Choice(
        # nitf/head/tobject/tobject.property/@tobject.property.type
        title=_(u'Genre'),
        description=_(
            u'help_genre',
            default=u'Describes the nature, journalistic or '
            u'intellectual characteristic of a news '
            u'object, not specifically its content.',
        ),
        vocabulary=u'collective.nitf.AvailableGenres',
        defaultFactory=genre_default_value)

    urgency = schema.Choice(
        # nitf/head/docdata/urgency/@ed-urg
        title=_(u'Urgency'),
        description=_(u'help_urgency', default=u'News importance.'),
        vocabulary=u'collective.nitf.Urgencies',
        defaultFactory=urgency_default_value)
Ejemplo n.º 15
0
class IISAWPublication(form.Schema):
    short_title = TextLine(title=_(u'Short Title'))
    form.order_after(short_title='IBibliographicItem.title')

    tag_line = TextLine(title=_(u'Tag Line'), required=False)
    form.order_after(tag_line='IBibliographicItem.description')

    authors = Tuple(
        title=_(u'Authors'),
        description=_(u'Enter username or plain-text name, one per line'),
        value_type=TextLine(),
        required=False,
        missing_value=(),
    )
    form.order_before(authors='IBibliographicItem.citation_detail')

    editors = Tuple(
        title=_(u'Editors'),
        description=_(u'Enter username or plain-text name, one per line'),
        value_type=TextLine(),
        required=False,
        missing_value=(),
    )
    form.order_before(editors='IBibliographicItem.citation_detail')

    contributors = Tuple(
        title=_(u'Contributors'),
        description=_(u'Enter username or plain-text name, one per line'),
        value_type=TextLine(),
        required=False,
        missing_value=(),
    )
    form.order_before(contributors='IBibliographicItem.citation_detail')

    alt_bib_uri = URI(title=_(u'Alternate Bibliographic URI'), required=False)
    form.order_after(alt_bib_uri='IBibliographicItem.bibliographic_uri')

    publisher = TextLine(title=_(u'Publisher'), required=False)
    form.order_after(publisher='IBibliographicItem.alternate_uri')

    publisher_uri = URI(title=_(u'Publisher URI'), required=False)
    form.order_after(publisher_uri='publisher')

    review_uri = URI(title=_(u'Review URI'), required=False)
    form.order_after(review_uri='publisher_uri')

    isbn = TextLine(title=_(u'ISBN'), required=False)
    form.order_after(isbn='review_uri')

    issn = TextLine(title=_(u'ISSN'), required=False)
    form.order_after(issn='isbn')

    doi = TextLine(title=_(u'DOI'), required=False)
    form.order_after(doi='issn')

    text = RichText(
        title=_(u'Body'),
        default_mime_type='text/html',
        allowed_mime_types=('text/html', ),
        output_mime_type='text/x-safe-html',
        required=False,
    )
    form.order_after(text='doi')

    date_of_publication = TextLine(
        title=_(u'Publication Date'),
        description=_(u'Enter the date on which this publication was issued'),
        required=False)
    form.order_after(date_of_publication='text')

    loc_subjects = List(title=_(u'LOC Subjects'),
                        value_type=DictRow(title=u'Subject',
                                           schema=ILOCSubject),
                        required=False)
    form.widget(loc_subjects=DataGridFieldFactory)
    form.order_after(loc_subjects='*')
Ejemplo n.º 16
0
class IChurchBody(form.Schema, IBasic, IImageScaleTraversable):
    """
    Church Body
    """

    # If you want a schema-defined interface, delete the form.model
    # line below and delete the matching file in the models sub-directory.
    # If you want a model-based interface, edit
    # models/churchbody.xml to define the content type
    # and add directives here as necessary.

    title = schema.TextLine(
        title = _(u'label_short_title', default=u'Short Name / Abbreviation'),
        required = True
    )

    full_title = schema.TextLine(
        title=_(u'label_full_title', u'Full Name'),
        required=True
    )

    dexteritytextindexer.searchable('text')
    form.widget(text="plone.app.z3cform.wysiwyg.WysiwygFieldWidget")
    text = schema.Text(
        title=_(u'label_body_text', u"Body Text"),
        description=u'',
        required=False,
    )

    
    member_of = RelationChoice(
            title=_(u'label_member_of', u"Member Of"),
            source=ObjectProvidesPathSourceBinder(object_provides=[
                'wcc.churches.churchfamily.IChurchFamily',
                'wcc.churches.churchbody.IChurchBody'
            ]),
            required=False
    )

    assoc_member_of = RelationChoice(
            title=_(u'label_assoc_member_of', u'Associate Member Of'),
            source=ObjectProvidesPathSourceBinder(
                object_provides=[
                    'wcc.churches.churchfamily.IChurchFamily',
                    'wcc.churches.churchbody.IChurchBody',
                ]
            ),
            required=False
    )

    form.widget(other_members="plone.app.z3cform.wysiwyg.WysiwygFieldWidget")
    other_members = schema.Text(
        title=_(u'label_other_members', u'Other Members'),
        required=False
    )

    form.widget(other_assoc_members="plone.app.z3cform.wysiwyg.WysiwygFieldWidget")
    other_assoc_members = schema.Text(
        title=_(u'label_other_assoc_members', u'Other Associate Members'),
        required=False
    )

    remoteUrl = schema.TextLine(
        title=_(u"Website"),
        default=u'http://',
        description=u"",
        required=False,
    )


    form.order_before(full_title = '*')
    form.order_before(title = '*')
Ejemplo n.º 17
0
class IEmbedder(form.Schema):
    """ A representation of a content embedder content type
    """

    dexteritytextindexer.searchable('text', 'alternate_content')

    form.order_before(**{'url': '*'})

    url = schema.ASCIILine(
        title=_(u'Multimedia URL'),
        description=_(u'The URL for your multimedia file. Can be a URL ' +
                      u'from YouTube, Vimeo, SlideShare, SoundCloud or ' +
                      u'other main multimedia websites.'),
        required=False,
    )

    width = schema.ASCIILine(
        title=_(u'Width'),
        description=
        _(u'Can be expressed as a decimal number or a percentage, e.g., 270 or 50%.'
          ),
        required=True,
    )

    height = schema.Int(
        title=_(u'Height'),
        description=_(u'Can be expressed as a decimal number, e.g., 480.'),
        required=True,
        min=1,
        max=9999,
    )

    embed_html = schema.Text(
        title=_(u'Embedded HTML code'),
        description=_(u'HTML code to render the embedded media.'),
        required=True,
    )

    player_position = schema.Choice(
        title=_(u'Player position'),
        description=_(u''),
        default=u'Top',
        required=True,
        values=[u'Top', u'Bottom', u'Left', u'Right'],
    )

    form.widget(image=EmbedderImageFieldWidget)
    image = NamedImage(
        title=_(u'Preview image'),
        description=_(u'Image to be used when listing content.'),
        required=False,
    )

    text = RichText(
        title=_(u'Body text'),
        required=False,
    )

    alternate_content = RichText(
        title=_(u'Alternate content'),
        description=_(
            u'Description or transcription for accessibility (WCAG) users.'),
        required=False,
    )
Ejemplo n.º 18
0
class IRisk(form.Schema, IRichDescription, IBasic):
    """A possible risk that can be present in an organisation.
    """

    title = schema.TextLine(
        title=_("label_statement", default=u"Affirmative statement"),
        description=_(
            "help_statement",
            default=u"This is a short affirmative statement about a "
            u"possible risk (e.g. The building is well maintained.)"),
        required=True)
    form.widget(title="euphorie.content.risk.TextLines4Rows")
    form.order_before(title="*")

    problem_description = schema.TextLine(
        title=_("label_problem_description", default=u"Negative statement"),
        description=_(
            "help_problem_description",
            default=u"This is the inverse of the affirmative "
            u"statement (e.g. The building is not well maintained.)"),
        required=True)
    form.widget(problem_description="euphorie.content.risk.TextLines4Rows")
    form.order_after(problem_description="title")

    description = HtmlText(
        title=_("label_description", default=u"Description"),
        description=_(
            "help_risk_description",
            default=u"Describe the risk. Include any relevant information "
            u"that may be helpful for the end-user."),
        required=True)
    form.widget(description="plone.app.z3cform.wysiwyg.WysiwygFieldWidget")
    form.order_after(description="problem_description")

    existing_measures = TextLinesWithBreaks(
        title=_("label_existing_measures", default=u"Existing measures"),
        description=_(
            "help_existing_measures",
            default=u"Use this field to define (common) existing measures."
            u" Separate measures with a line break (Enter). The user will be "
            u"able to deselect those measures that are not applicable to their"
            u" situation."),
        required=False)
    form.widget(existing_measures="euphorie.content.risk.TextLines8Rows")
    form.order_after(existing_measures="description")

    legal_reference = HtmlText(title=_("label_legal_reference",
                                       default=u"Legal and policy references"),
                               required=False)
    form.widget(legal_reference="plone.app.z3cform.wysiwyg.WysiwygFieldWidget")
    form.order_after(legal_reference="description")

    form.fieldset("identification",
                  label=_("header_identification", default=u"Identification"),
                  fields=["show_notapplicable"])

    show_notapplicable = schema.Bool(
        title=_("label_show_notapplicable",
                default=u"Show `not applicable' option"),
        description=_("help_show_notapplicable",
                      default=u"Offer a `not applicable' option in addition "
                      u"to the standard yes/no options."),
        default=False)

    type = schema.Choice(
        title=_("label_risk_type", default=u"Risk type"),
        description=_(
            "help_risk_type",
            default=u'"Priority risk" is one of the high risks in the '
            u'sector. "Risk" is related to the workplace or to the work '
            u'carried out. "Policy" refers to agreements, procedures, '
            u'and management decisions.'),
        vocabulary=SimpleVocabulary([
            SimpleTerm(u"top5",
                       title=_("risktype_top5", default=u"Priority risk")),
            SimpleTerm(u"risk", title=_("risktype_risk", default="Risk")),
            SimpleTerm(u"policy",
                       title=_("risktype_policy", default=u"Policy")),
        ]),
        default=u"risk",
        required=True)

    depends("risk_always_present", "type", "==", "risk")
    risk_always_present = schema.Bool(
        title=_("label_risk_always_present",
                default=u"Risk is always present"),
        description=_(
            "description_risk_always_present",
            default=u'If selected, the user will not be able to answer "Yes" or '
            '"No", since the risk is considered to be always present. The '
            'Evaluation and Action Plan will behave in the same way as for '
            'regular risks.'),
        required=False,
        default=False,
    )

    depends("evaluation_method", "type", "==", "risk")
    evaluation_method = schema.Choice(
        title=_("label_evaluation_method", default=u"Evaluation method"),
        description=_(
            "help_evaluation_method",
            default=u"Select 'estimated' if calcuation is not necessary "
            u"or not possible."),
        vocabulary=SimpleVocabulary([
            SimpleTerm(u"direct",
                       title=_("evalmethod_direct", default=u"Estimated")),
            SimpleTerm(u"calculated",
                       title=_("evalmethod_calculated",
                               default=u"Calculated")),
            SimpleTerm(u"fixed",
                       title=_("evalmethod_fixed",
                               default=u"Skip evaluation")),
        ]),
        default=u"calculated",
        required=False)

    depends("fixed_priority", "type", "==", "risk")
    depends("fixed_priority", "evaluation_method", "==", "fixed")
    fixed_priority = schema.Choice(title=_("report_timeline_priority",
                                           default=u"Priority"),
                                   vocabulary=SimpleVocabulary([
                                       SimpleTerm("low",
                                                  title=_("priority_low",
                                                          default=u"Low")),
                                       SimpleTerm("medium",
                                                  title=_("priority_medium",
                                                          default=u"Medium")),
                                       SimpleTerm("high",
                                                  title=_("priority_high",
                                                          default="High")),
                                   ]),
                                   required=False,
                                   default="low")

    depends("default_priority", "type", "==", "risk")
    depends("default_priority", "evaluation_method", "==", "direct")
    default_priority = schema.Choice(
        title=_("label_default_priority", default=u"Default priority"),
        description=_(
            "help_default_priority",
            default=u"You can help the end-user by selecting a default "
            u"priority. He/she can still change the priority."),
        vocabulary=SimpleVocabulary([
            SimpleTerm("none", title=_("no_default", default=u"No default")),
            SimpleTerm("low", title=_("priority_low", default=u"Low")),
            SimpleTerm("medium", title=_("priority_medium",
                                         default=u"Medium")),
            SimpleTerm("high", title=_("priority_high", default="High")),
        ]),
        required=False,
        default="low")

    form.fieldset(
        "main_image",
        label=_("header_main_image", default=u"Main image"),
        description=_(
            "intro_main_image",
            default=u"The main image will get a more prominent position "
            u"in the client than the other images."),
        fields=["image", "caption"])

    image = filefield.NamedBlobImage(
        title=_("label_image", default=u"Image file"),
        description=_(
            "help_image_upload",
            default=u"Upload an image. Make sure your image is of format "
            u"png, jpg or gif and does not contain any special "
            u"characters."),
        required=False)
    caption = schema.TextLine(title=_("label_caption",
                                      default=u"Image caption"),
                              required=False)

    form.fieldset("secondary_images",
                  label=_("header_secondary_images",
                          default=u"Secondary images"),
                  fields=[
                      "image2", "caption2", "image3", "caption3", "image4",
                      "caption4"
                  ])

    image2 = filefield.NamedBlobImage(
        title=_("label_image", default=u"Image file"),
        description=_(
            "help_image_upload",
            default=u"Upload an image. Make sure your image is of format "
            u"png, jpg or gif and does not contain any special "
            u"characters."),
        required=False)
    caption2 = schema.TextLine(title=_("label_caption",
                                       default=u"Image caption"),
                               required=False)

    image3 = filefield.NamedBlobImage(
        title=_("label_image", default=u"Image file"),
        description=_(
            "help_image_upload",
            default=u"Upload an image. Make sure your image is of format "
            u"png, jpg or gif and does not contain any special "
            u"characters."),
        required=False)
    caption3 = schema.TextLine(title=_("label_caption",
                                       default=u"Image caption"),
                               required=False)

    image4 = filefield.NamedBlobImage(
        title=_("label_image", default=u"Image file"),
        description=_(
            "help_image_upload",
            default=u"Upload an image. Make sure your image is of format "
            u"png, jpg or gif and does not contain any special "
            u"characters."),
        required=False)
    caption4 = schema.TextLine(title=_("label_caption",
                                       default=u"Image caption"),
                               required=False)

    form.fieldset(
        "additional_content",
        label=_("header_additional_content", default=u"Additional content"),
        description=_(
            "intro_additional_content",
            default=u"Attach any additional content you consider helpful "
            "for the user"),
        fields=[
            "file1", "file1_caption", "file2", "file2_caption", "file3",
            "file3_caption", "file4", "file4_caption"
        ])

    file1 = filefield.NamedBlobFile(
        title=_("label_file", default=u"Content file"),
        description=_(
            "help_content_upload",
            default=u"Upload a file that contains additional information, "
            u"like a PDF, Word document or spreadsheet. Optionally provide "
            u"a descriptive caption for your file."),
        required=False)
    file1_caption = schema.TextLine(title=_("label_file_caption",
                                            default=u"Content caption"),
                                    required=False)

    file2 = filefield.NamedBlobFile(
        title=_("label_file", default=u"Content file"),
        description=_(
            "help_content_upload",
            default=u"Upload a file that contains additional information, "
            u"like a PDF, Word document or spreadsheet. Optionally provide "
            u"a descriptive caption for your file."),
        required=False)
    file2_caption = schema.TextLine(title=_("label_file_caption",
                                            default=u"Content caption"),
                                    required=False)

    file3 = filefield.NamedBlobFile(
        title=_("label_file", default=u"Content file"),
        description=_(
            "help_content_upload",
            default=u"Upload a file that contains additional information, "
            u"like a PDF, Word document or spreadsheet. Optionally provide "
            u"a descriptive caption for your file."),
        required=False)
    file3_caption = schema.TextLine(title=_("label_file_caption",
                                            default=u"Content caption"),
                                    required=False)

    file4 = filefield.NamedBlobFile(
        title=_("label_file", default=u"Content file"),
        description=_(
            "help_content_upload",
            default=u"Upload a file that contains additional information, "
            u"like a PDF, Word document or spreadsheet. Optionally provide "
            u"a descriptive caption for your file."),
        required=False)
    file4_caption = schema.TextLine(title=_("label_file_caption",
                                            default=u"Content caption"),
                                    required=False)