Example #1
0
class IAnuncioTile(IPersistentCoverTile, form.Schema):
    uuid = schema.TextLine(
        title=_(u'UUID'),
        readonly=True,
    )

    form.omitted('total')
    form.no_omit(IDefaultConfigureForm, 'total')
    total = schema.List(
        title=_(u'Numero de itens para se exibir'),
        value_type=schema.TextLine(),
        required=False,
    )

    header = schema.TextLine(
        title=_(u'Header'),
        required=False,
    )

    form.omitted('description')
    form.no_omit(IDefaultConfigureForm, 'description')
    description = schema.Text(
        title=_(u'Description'),
        required=False,
    )

    form.omitted('title')
    form.no_omit(IDefaultConfigureForm, 'title')
    title = schema.TextLine(
        title=_(u'Title'),
        required=False,
    )
Example #2
0
class ICollectionTile(IPersistentCoverTile, form.Schema):

    title = schema.TextLine(title=u'Title')

    form.omitted(ICoverTileEditView, 'description')
    description = schema.Text(
        title=u'Description',
        required=False,
    )

    form.omitted(ICoverTileEditView, 'date')
    date = schema.Datetime(
        title=u'Date',
        required=False,
    )

    form.omitted(ICoverTileEditView, 'image')
    image = NamedImage(
        title=u'Image',
        required=False,
    )

    form.omitted(ICoverTileEditView, 'number_to_show')
    number_to_show = schema.List(
        title=u'number of elements to show',
        value_type=schema.TextLine(),
        required=False,
    )

    uuid = schema.TextLine(title=u'Collection uuid', readonly=True)
Example #3
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)
Example #4
0
class IDefinitionBase(form.Schema, ISchemaProvider, IAttributeUUID):
    """Base for form, form-group definitions"""

    form.omitted('signature')  # instance attribute, not editable form field
    signature = schema.BytesLine(
        title=_(u'Schema signature'),
        description=_(u'MD5 hexidecimal digest hash of entry_schema XML.'),
        default=DEFAULT_SIGNATURE,
        required=False,
    )

    form.omitted('signature_history')  # attribute, not editable form field
    signature_history = schema.List(
        title=_(u'Signature history stack'),
        description=_(u'Chronologically-ordered list of MD5 hexidecimal '
                      u'digest hashes of entry_schema XML.'),
        value_type=schema.BytesLine(),
        defaultFactory=list,
    )

    title = schema.TextLine(
        title=u'Title',
        description=u'Name of definition; this is used as a label displayed '
        u'when binding forms to this definition, and also is '
        u'used to help create a unique short name for the '
        u'definition used in its URL.',
        required=True,
    )

    description = schema.Text(
        title=u'Description',
        description=u'Optional description of this form definition.',
        required=False,
    )

    form.widget(entry_schema=TextAreaFieldWidget)
    entry_schema = schema.Bytes(
        title=_(u'Form schema XML'),
        description=_(u'Serialized form schema XML.'),
        constraint=valid_xml_schema,
        default=DEFAULT_MODEL_XML,
        required=False,
    )

    # NOTE: this field must be last in interface code: identifier collision
    form.omitted('schema')  # instance attribute, but not editable form field
    schema = schema.Object(
        title=_(u'Form schema'),
        description=_(u'Form schema based upon entry_schema XML, usually '
                      u'a reference to a transient interface object '
                      u'looked up from persistent attribute self.signature.'),
        schema=IInterface,
        required=True,  # implementations should provide empty default
        readonly=True,  # read-only property, though object returned is mutable
    )

    def schema_version(signature):
        """
class ICollectionTile(IPersistentCoverTile, form.Schema):

    title = schema.TextLine(title=u'Title')

    form.omitted(ICoverTileEditView, 'description')
    description = schema.Text(
        title=u'Description',
        required=False,
    )

    form.omitted(ICoverTileEditView, 'date')
    date = schema.Datetime(
        title=u'Date',
        required=False,
    )

    form.omitted(ICoverTileEditView, 'image')
    image = NamedImage(
        title=u'Image',
        required=False,
    )

    form.omitted(ICoverTileEditView, 'number_to_show')
    number_to_show = schema.List(
        title=u'number of elements to show',
        value_type=schema.TextLine(),
        required=False,
    )

    uuid = schema.TextLine(title=u'Collection uuid', readonly=True)

    def results():
        """
        This method return a list og
        A method to return the rich text stored in the tile
        """

    def populate_with_object(obj):
        """
        This method will take a CT Collection as parameter, and it will store a
        reference to it.
        """

    def delete():
        """
        This method removes the persistent data created for this tile
        """

    def accepted_ct():
        """
        Return a list of supported content types.
        """

    def has_data():
        """
class IAssessmentItem(form.Schema):
    """Assessment Item
    """

    form.widget(referenceMaterial=ContentTreeFieldWidget)
    referenceMaterial = RelationChoice(
        title=_(u"Reference Material"),
        source=ObjPathSourceBinder(
            object_provides=ITextContent.__identifier__),
        required=False,
    )

    question = RichText(title=_(u"Question"), required=True)

    answer = RichText(
        title=_(u"Answer"),
        required=False,
    )

    marks = schema.Int(
        title=_(u"Marks"),
        required=False,
        default=0,
    )

    form.omitted('answerMarkedCorrect')
    answerMarkedCorrect = schema.Int(
        title=_(u"Answer Marked Correct"),
        description=_(u"The number of times other members have "
                      "confirmed the answer as correct"),
        required=False,
        default=0,
    )

    form.omitted('answerMarkedIncorrect')
    answerMarkedIncorrect = schema.Int(
        title=_(u"Answer Marked Incorrect"),
        description=_(u"The number of times other members have "
                      "marked the answer as incorrect"),
        required=False,
        default=0,
    )

    form.omitted('dateLastUsed')
    dateLastUsed = schema.Datetime(
        title=_(u"Date Last Used"),
        description=_(u"The last time this item was used in a test"),
        required=False,
    )

    learnerResponseTime = schema.Int(
        title=_(u"Learner Response Time"),
        required=False,
    )
class ICollectionTile(IPersistentCoverTile, form.Schema):

    header = schema.TextLine(
        title=_(u'Header'),
        required=False,
    )

    form.omitted('title')
    form.no_omit(IDefaultConfigureForm, 'title')
    title = schema.TextLine(
        title=_(u'Title'),
        required=False,
    )

    form.omitted('description')
    form.no_omit(IDefaultConfigureForm, 'description')
    description = schema.Text(
        title=_(u'Description'),
        required=False,
    )

    form.omitted('date')
    form.no_omit(IDefaultConfigureForm, 'date')
    date = schema.Datetime(
        title=_(u'Date'),
        required=False,
    )

    form.omitted('image')
    form.no_omit(IDefaultConfigureForm, 'image')
    image = NamedImage(
        title=_(u'Image'),
        required=False,
    )

    # FIXME: this field should be named 'count'
    form.omitted('number_to_show')
    form.no_omit(IDefaultConfigureForm, 'number_to_show')
    number_to_show = schema.List(
        title=_(u'Number of items to display'),
        value_type=schema.TextLine(),
        required=False,
    )

    footer = schema.TextLine(
        title=_(u'Footer'),
        required=False,
    )

    uuid = schema.TextLine(
        title=_(u'UUID'),
        readonly=True,
    )
Example #8
0
class IListTile(IPersistentCoverTile):

    uuids = schema.List(
        title=_(u'Elements'),
        value_type=schema.TextLine(),
        required=False,
    )
    form.omitted('uuids')

    # XXX: this field should be used to replace the 'limit' attribute
    form.omitted('count')
    form.no_omit(IDefaultConfigureForm, 'count')
    count = schema.Int(
        title=_(u'Number of items to display'),
        required=False,
        default=5,
    )

    form.omitted('title')
    form.no_omit(IDefaultConfigureForm, 'title')
    title = schema.TextLine(
        title=_(u'Title'),
        required=False,
    )

    form.omitted('description')
    form.no_omit(IDefaultConfigureForm, 'description')
    description = schema.Text(
        title=_(u'Description'),
        required=False,
    )

    form.omitted('image')
    form.no_omit(IDefaultConfigureForm, 'image')
    image = NamedBlobImage(
        title=_(u'Image'),
        required=False,
    )

    form.omitted('date')
    form.no_omit(IDefaultConfigureForm, 'date')
    date = schema.Datetime(
        title=_(u'Date'),
        required=False,
    )

    tile_title = schema.TextLine(title=_(u'Tile Title'), required=False)
    form.omitted('tile_title')
    form.no_omit(ITileEditForm, 'tile_title')

    more_link = schema.TextLine(title=_('Show more... link'), required=False)
    form.omitted('more_link')
    form.no_omit(ITileEditForm, 'more_link')
    form.widget(more_link='collective.cover.tiles.edit_widgets.more_link.MoreLinkFieldWidget')

    more_link_text = schema.TextLine(title=_('Show more... link text'), required=False)
    form.omitted('more_link_text')
    form.no_omit(ITileEditForm, 'more_link_text')
Example #9
0
class IChartStyleBook(IChartDisplay):
    """
    Style book for charts, can contain (as folder) ILineStyle items,
    in an ordered manner.
    """

    form.widget(quick_styles=DataGridFieldFactory)
    quick_styles = schema.List(
        title=u'Quick series styles',
        value_type=DictRow(schema=ISeriesQuickStyles),
    )

    # hide fields that are per-chart-specific
    form.omitted('x_label')
    form.omitted('y_label')
Example #10
0
class IABCTune(form.Schema):

    dexteritytextindexer.searchable('abc')
    form.primary('abc')
    abc = schema.Text(title=_(u"Tune abc"),
                      description=_(u'The tune in abc format'),)

    dexteritytextindexer.searchable('tunekeys')
    form.omitted('tunekeys')
    tunekeys = schema.List(title=u'keys',
                           description=u'set by abc content',
                           required=False,
                           value_type=schema.TextLine(required=False),
                           )

    dexteritytextindexer.searchable('tunetype')
    form.omitted('tunetype')
    tunetype = schema.TextLine(title=_(u"The type of the tune"),
                               description=_(u"from the field R:"),
                               required=False,
                               )
    # NOTE: as specified in the v2.1 standard, A: field is deprecated
    # so, only O: is used to specified country and areas... separated
    # by ';'
    dexteritytextindexer.searchable('tunearea')
    form.omitted('tunearea')
    tunearea = schema.TextLine(title=tunearea_title,
                               description=tunearea_desc,
                               required=False,
                               )
    dexteritytextindexer.searchable('tunecountry')
    form.omitted('tunecountry')
    tunecountry = schema.TextLine(title=tunecountry_title,
                                  description=_(u"The country"),
                                  required=False,
                                  )

    form.omitted('score')
    score = NamedBlobImage(title=_(u"Score"),
                           description=score_desc,
                           required=False,)

    form.omitted('pdfscore')
    pdfscore = NamedBlobFile(title=_(u"PDF Score"),
                             description=_(u'The score of the tune as PDF'),
                             required=False,
                             )

    form.omitted('midi')
    midi = NamedBlobFile(title=_(u"Midi"),
                         description=_(u'Midi sound of the tune'),
                         required=False,
                         )
    form.omitted('sound')
    sound = NamedBlobFile(title=_(u"sound"),
                          description=_(u'The mp3 sound of the tune'),
                          required=False,
                          )
Example #11
0
class ITimeSeriesChart(IBaseChart, ITimeSeriesCollection):
    """Chart content item; container for sequences"""

    form.order_after(auto_crop='frequency')
    auto_crop = schema.Bool(
        title=u'Auto-crop to completed data?',
        description=u'If data contains sequential null values (incomplete '
                    u'or no data calculable) on the right-hand of a '
                    u'time-series plot, should that right-hand side '
                    u'be cropped to only show the latest meaningful '
                    u'data?  The default is to crop automatically.',
        default=True,
        )

    form.order_after(force_crop='auto_crop')
    force_crop = schema.Bool(
        title=u'Forced crop of data?',
        description=u'If data points are available before a specified '
                    u'start date or after a specified end-date, should '
                    u'those points be excluded from the visualization?',
        default=False,
        )

    form.omitted('label_overrides')
    label_overrides = schema.Dict(
        key_type=schema.Date(),
        value_type=schema.BytesLine(),
        required=False,
        )

    def series():
        """
Example #12
0
class INamedDataSequence(form.Schema, IDataSeries, ISeriesDisplay):
    """Named category seqeuence with embedded data stored as content"""

    form.fieldset(
        'display',
        label=u"Display settings",
        fields=[
            'color',
            'show_trend',
            'trend_width',
            'trend_color',
            'display_precision',
            'point_labels',
        ],
    )

    input = schema.Text(
        title=_(u'Data input'),
        description=_(u'Comma-separated records, one per line '
                      u'(name, numeric value, [note], [URL]). '
                      u'Note and URL are optional.'),
        default=u'',
        required=False,
    )

    # data field to store CSV source:
    form.omitted('data')
    data = schema.List(
        title=_(u'Data'),
        description=_(u'Data points for series: name, value; values are '
                      u'either whole/integer or decimal numbers.'),
        value_type=schema.Object(schema=INamedDataPoint, ),
        readonly=True,
    )
Example #13
0
class ITimeDataSequence(form.Schema, IDataSeries, ILineDisplay):
    """Content item interface for a data series stored as content"""

    input = schema.Text(
        title=_(u'Data input'),
        description=_(u'Comma-separated records, one per line '
                      u'(date, numeric value, [note], [URL]). '
                      u'Note and URL are optional. Date '
                      u'should be in MM/DD/YYYY format.'),
        default=u'',
        required=False,
        )

    label_default = schema.Choice(
        title=_(u'Label default'),
        description=_(u'Default format for X-Axis labels.'),
        default='locale',
        vocabulary=DATE_AXIS_LABEL_CHOICES,
        )

    form.omitted('data')
    data = schema.List(
        title=_(u'Data'),
        description=_(u'Data points for time series: date, value; values are '
                      u'either whole/integer or decimal numbers.'),
        value_type=schema.Object(
            schema=ITimeSeriesDataPoint,
            ),
        readonly=True,
        )
Example #14
0
class IProvidePasswords(form.Schema):
    """Add password fields"""

    # Putting this in a separate fieldset for the moment:
    form.fieldset('membership', label=_(u"Membership"),
                  fields=['password', 'confirm_password'])

    # Note that the passwords fields are not required; this means we
    # can add members without having to add passwords at that time.
    # The password reset tool should hopefully be able to deal with
    # that.
    password = schema.Password(
        title=_(u"Password"),
        required=False,
    )

    confirm_password = schema.Password(
        title=_(u"Confirm Password"),
        required=False,
    )

    @invariant
    def password_matches_confirmation(data):
        """password field must match confirm_password field.
        """
        password = getattr(data, 'password', None)
        confirm_password = getattr(data, 'confirm_password', None)
        if (password or confirm_password) and (password != confirm_password):
            raise Invalid(_(u"The password and confirmation do not match."))

    form.omitted('password', 'confirm_password')
    form.no_omit(IAddForm, 'password', 'confirm_password')
Example #15
0
class IRelevantAceContentItemsTile(ISearchAceContentTile):

    show_share_btn = Bool(
        title=_(u"Show the share button"),
        default=False,
    )

    combine_results = Bool(
        title=_(u"Show listing results, in addition to assigned items"),
        default=False,
    )

    uuids = Dict(
        title=_(u"Elements"),
        key_type=TextLine(),
        value_type=Dict(
            key_type=TextLine(),
            value_type=TextLine(),
        ),
        required=False,
    )

    sortBy = Choice(
        title=_(u"Sort order for results and assigned items"),
        vocabulary=sortby_vocabulary,
    )

    form.omitted("uuids")
Example #16
0
class IChartStyleBook(IChartDisplay):
    """
    Style book for charts, can contain (as folder) ILineStyle items,
    in an ordered manner.
    """

    goal = schema.Float(
        title=_(u'Goal'),
        description=_(u'Common goal value as decimal number.  If each '
                      u'series has different respective goals, edit '
                      u'those goals on each series.'),
        required=False,
        )

    # hide fields that are per-chart-specific
    form.omitted('x_label')
    form.omitted('y_label')
        class IDummy(form.Schema):

            form.omitted('foo', 'bar')
            form.omitted(form.Schema, 'qux')
            form.no_omit(form.Schema, 'bar')
            form.widget(foo='some.dummy.Widget', baz='other.Widget')
            form.mode(bar='hidden')
            form.mode(form.Schema, bar='input')
            form.order_before(baz='title')
            form.order_after(qux='title')
            form.read_permission(foo='zope2.View')
            form.write_permission(foo='cmf.ModifyPortalContent')

            foo = zope.schema.TextLine(title=u"Foo")
            bar = zope.schema.TextLine(title=u"Bar")
            baz = zope.schema.TextLine(title=u"Baz")
            qux = zope.schema.TextLine(title=u"Qux")
class IProvidePasswords(IProvidePasswordsSchema):
    """Add password fields"""

    # Putting this in a separate fieldset for the moment:
    form.fieldset('membership', label=_(u"Membership"),
                  fields=['password', 'confirm_password'])

    form.omitted('password', 'confirm_password')
    form.no_omit(IAddForm, 'password', 'confirm_password')
class IAction(form.Schema, IField):
    form.omitted('required', 'order', 'default', 'missing_value', 'readonly')
    # required = Bool(
        # title=_('Enabled'),
        #description=_('Tells whether a action is enabled.'),
        # default=True)

    def onSuccess(fields, request):
        pass
class IVideoGalleryTile(IListTile, form.Schema):
    """
    """

    header = schema.TextLine(
        title=_(u'Header'),
        required=False,
    )

    form.omitted('title')
    form.no_omit(IDefaultConfigureForm, 'title')
    title = schema.TextLine(
        title=_(u'Title'),
        required=False,
        readonly=True,
    )

    subtitle = schema.TextLine(
        title=_(u'Subtitle'),
        required=False,
        readonly=False,
    )

    footer_text = schema.TextLine(
        title=_(u'Footer Link'),
        required=False,
        readonly=False,
    )

    form.omitted('image')
    form.no_omit(IDefaultConfigureForm, 'image')
    image = NamedImage(
        title=_(u'Image'),
        required=False,
        readonly=True,
    )

    form.omitted('uuids')
    form.no_omit(IDefaultConfigureForm, 'uuids')
    uuids = schema.List(
        title=_(u'Videos'),
        value_type=schema.TextLine(),
        required=False,
    )
class IHTMLImageCacheableFromContent(model.Schema,
                                     interfaces.IHTMLImageCacheable):

    form.fieldset(
        'image-caching',
        label=_(u'Image caching'),
        fields=('save_images_locally', ),
    )

    form.omitted('html')
Example #22
0
class ICreator(form.Schema):

    form.omitted('creators')
    creators = schema.Tuple(
        title=_(u'label_creators', u'Creators'),
        description=_(u'help_creators', u''),
        value_type=schema.TextLine(),
        required=False,
        missing_value=(),
    )
Example #23
0
class IRelatedProfile(model.Schema):
    """
       Marker/Form interface for RelatedProfile
    """
    form.omitted("relatedProfile")
    relatedProfile = RelationChoice(
        title=_(u"Related profile"),
        source=getProfileBinder,
        required=False,
    )
Example #24
0
class IBenutzer(model.Schema):
    """ Content-Type Interface fuer den INWI-Benutzer """

    title = schema.TextLine(title=u'Vollständiger Name', required=True)

    user_id = schema.TextLine(
        title=u'Anmeldename',
        description=
        u"Die Nutzung der E-Mail-Adresse oder einer eindeutigen, trägerindividuellen Benutzerkennung\
                                            wird empfohlen.",
        constraint=userid_constraint,
        required=True)

    email = schema.TextLine(title=u'E-Mail-Adresse',
                            constraint=email_constraint,
                            required=True)

    location = schema.TextLine(title=u"Dienstort oder Dienstsitz",
                               required=False)

    form.omitted(IEditForm, 'password')
    password = schema.TextLine(
        title=u'Passwort',
        description=
        u"Mindestens 8 Zeichen, 1 Großbuchstabe, 1 Kleinbuchstabe und eine Zahl müssen enthalten\
                               sein.",
        constraint=passwort_constraint,
        required=True)

    form.omitted(IEditForm, 'password_repeat')
    password_repeat = schema.TextLine(title=u'Passwort wiederholen',
                                      required=True)

    biography = schema.Text(title=u'Vita des Benutzers', required=False)

    portrait = NamedBlobImage(title=u'Porträtbild', required=False)

    @invariant
    def password_invariant(data):
        if data.password != data.password_repeat:
            raise Invalid(
                u"Die eingegebenen Passworte stimmen leider nicht überein.")
Example #25
0
class ISketch(form.Schema):
    """A Fritzing Sketch file
    """
    
    orderItem = NamedBlobFile(
        title = _(u"Sketch file"),
        description = _(u"The .fzz file of your sketch"))
    
    copies = Int(
        title = _(u"Copies"),
        description = _(u"The more copies, the cheaper each one gets"),
        min = 1,
        default = 1)
    
    form.omitted('check')
    check = Bool(
        title = _(u"File Check"),
        description = _(u"Have us check your design for an extra 4 EUR"),
        default = True)
    
    form.omitted(
        'width', 
        'height', 
        'area')
    
    width = Float(
        title = _(u"Width"),
        description = _(u"The width of this sketch in cm"),
        min = 0.0,
        default = 0.0)
    
    height = Float(
        title = _(u"Height"),
        description = _(u"The height of this sketch in cm"),
        min = 0.0,
        default = 0.0)
    
    area = Float(
        title = _(u"Area"),
        description = _(u"The area of this sketch in cm^2"),
        min = 0.0,
        default = 0.0)
Example #26
0
class IListTile(IPersistentCoverTile, form.Schema):

    header = schema.TextLine(
        title=_(u'Header'),
        required=False,
    )

    form.omitted('title')
    form.no_omit(IDefaultConfigureForm, 'title')
    title = schema.TextLine(
        title=_(u'Title'),
        required=False,
    )

    form.omitted('description')
    form.no_omit(IDefaultConfigureForm, 'description')
    description = schema.Text(
        title=_(u'Description'),
        required=False,
    )

    form.omitted('date')
    form.no_omit(IDefaultConfigureForm, 'date')
    date = schema.Datetime(
        title=_(u'Date'),
        required=False,
    )

    form.omitted('image')
    form.no_omit(IDefaultConfigureForm, 'image')
    image = NamedImage(
        title=_(u'Image'),
        required=False,
    )

    form.omitted('uuids')
    form.no_omit(IDefaultConfigureForm, 'uuids')
    uuids = schema.List(
        title=_(u'Elements'),
        value_type=schema.TextLine(),
        required=False,
    )
Example #27
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='*')
Example #28
0
class IMinutes(form.Schema):
    """Minutes document schema"""

    body = RichText(title=_(u"Body text"),
                    default_mime_type="text/x-rst",
                    output_mime_type="text/x-html-safe",
                    allowed_mime_types=("text/x-rst", "text/html"),
                    required=True)

    form.omitted("deliverable")
    deliverable = NamedBlobFileField(title=_(u"Deliverable"), required=False)
Example #29
0
class IMeasureSeriesProvider(form.Schema, IDataSeries, ILineDisplay):

    form.widget(measure=ContentTreeFieldWidget)
    measure = schema.Choice(
        title=u'Bound measure',
        description=u'Measure definition that defines a function to apply '
                    u'to a dataset of forms to obtain a computed value for '
                    u'each as a data-point.',
        source=UUIDSourceBinder(
            portal_type=MEASURE_DEFINITION_TYPE,
            ),
        )

    dataset = schema.Choice(
        title=u'Data set (collection)',
        description=u'Select a dataset that enumerates which forms are '
                    u'considered part of the data set to query for data. '
                    u'You must select a dataset within the same measure '
                    u'group in which the bound measure definition is '
                    u'contained.',
        source=MeasureGroupParentBinder(
            portal_type='uu.formlibrary.setspecifier',
            ),
        required=False,
        )

    summarization_strategy = schema.Choice(
        title=u'Summarization strategy',
        description=u'How should data be summarized into a single value '
                    u'when multiple competing values for date or name '
                    u'are found in the data stream provided by the measure '
                    u'and data set?  For example you may average or sum '
                    u'the multiple values, take the first or last, '
                    u'or you may choose to treat such competing values as '
                    u'a conflict, and omit any value on duplication.',
        vocabulary=VOCAB_SUMMARIZATION,
        default='AVG',
        )

    form.omitted('data')
    data = schema.List(
        title=_(u'Data'),
        description=_(u'Data points computed from bound dataset, measure '
                      u'selected.  Should return an empty list if any '
                      u'bindings are missing. '
                      u'Whether the data point key/identity type is a date '
                      u'or a name will depend on the type of chart '
                      u'containing this data provider.'),
        value_type=schema.Object(
            schema=IDataPoint,
            ),
        readonly=True,
        )
Example #30
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)

    # 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=AutocompleteFieldWidget)
    responsible = schema.Choice(
        title=_(u"label_responsible", default=u"Responsible"),
        description=_(u"help_responsible", default=""),
        vocabulary=u'opengever.ogds.base.InboxesVocabulary',
        required=True,
    )