Пример #1
0
class IRole(Interface):
    """Role interface

    A role is a set of permissions; by assigning the role to a principal,
    these permissions are also granted to the principal.
    """

    # pylint: disable=invalid-name
    id = TextLine(title="Unique ID",
                  required=True)

    title = TextLine(title="Title",
                     required=True)

    description = Text(title="Description",
                       required=False)

    permissions = Set(title="Permissions",
                      description="ID of role's permissions",
                      value_type=TextLine(),
                      required=False)

    managers = Set(title="Managers",
                   description="List of principal IDs allowed to manage this role. "
                               "If it's a role, use 'role:role_id' syntax...",
                   value_type=TextLine(),
                   required=False)
Пример #2
0
class IEventIfEventTimingRelay(IEventIfEventLogic):
    """ event interface of object """
    eventInpObjs_trigger = Set(
        title = _("trigger event <-"),
        value_type = Choice(
            title = _("objects"),
            vocabulary="AllEventInstances"),
        default = set([]),
        readonly = False,
        required = True)
    eventInpObjs_reset = Set(
        title = _("reset event <-"),
        value_type = Choice(
            title = _("objects"),
            vocabulary="AllEventInstances"),
        default = set([]),
        readonly = False,
        required = True)
    eventOutObjs_delayed = Set(
        title = _("delayed event ->"),
        value_type = Choice(
            title = _("objects"),
            vocabulary="AllEventInstances"),
        default = set([]),
        readonly = False,
        required = True)
    def eventInp_trigger(eventMsg):
        """ start the timer """
    def eventInp_reset(eventMsg):
        """ reset the timer """
    def eventOut_1sec():
        """ sends one-second event """
Пример #3
0
class IEventIfEventTimer(IEventIfEventLogic):
    """ event interface of object """
    eventInpObjs_start = Set(
        title = _("start event <-"),
        value_type = Choice(
            title = _("objects"),
            vocabulary="AllEventInstances"),
        default = set([]),
        readonly = False,
        required = True)
    eventInpObjs_stop = Set(
        title = _("stop event <-"),
        value_type = Choice(
            title = _("objects"),
            vocabulary="AllEventInstances"),
        default = set([]),
        readonly = False,
        required = True)
    eventOutObjs_pulse = Set(
        title = _("pulse event ->"),
        value_type = Choice(
            title = _("objects"),
            vocabulary="AllEventInstances"),
        default = set([]),
        readonly = False,
        required = True)
    def eventInp_start(eventMsg):
        """ start the timer """
    def eventInp_stop(eventMsg):
        """ stop the timer """
    def eventOut_pulse():
        """ sends pulse event """
Пример #4
0
class IMembershipDigestList(IMembershipList):
    digest_subscribers = Set()  # addresses of subscribers who rec'v digests
    nondigest_subscribers = Set()  # addresses of non-digest subscribers

    def is_digest_subscriber(subscriber):
        """
        Returns True or False based on whether or not the provided
        subscriber identifier represents a subscriber who receives in
        digest mode.
        """

    def has_digest_subscribers():
        """
Пример #5
0
    def testCorrectValueType(self):
        # TODO: We should not allow for a None value type.
        Set(value_type=None)

        # do not allow arbitrary value types
        self.assertRaises(ValueError, Set, value_type=object())
        self.assertRaises(ValueError, Set, value_type=Field)

        # however, allow anything that implements IField
        Set(value_type=Field())

        class FakeField(object):
            implements(IField)

        Set(value_type=FakeField())
Пример #6
0
class ICourse(Interface):
    code = TextLine(title=u"Course code", required=True)
    runBy = Set(title=u"Run by",
                value_type=Choice(
                    title=u"Department",
                    vocabulary="vocab_of_IDepartment",
                ))
    prerequisites = Set(title=u"Prerequisite courses",
                        value_type=Choice(
                            title=u"Course",
                            vocabulary="vocab_of_ICourse",
                        ))
    credits = Int(title=u"Credits", )
    assessment = List(title=u"Assessment",
                      value_type=Int(title=u"Assessment", ))
Пример #7
0
class IExtranetMember(Interface):

    mnr = TextLine(
        title=_(u"Mitgliedsnummer"),
        description=_(
            u"Benutzername für den Mitbenutzer (Mitgliedsnummer-lfd.Nr.)"),
        required=True)

    rollen = Set(title=_(u"Berechtigung"),
                 description=_(u"Berechtigung"),
                 value_type=Choice(source=vocab_berechtigungen),
                 required=False)

    passwort = Password(
        title=_(u"Passwort"),
        description=_(u"Bitte tragen Sie hier das Passwort ein."),
        min_length=5,
        max_length=8,
        required=True)

    confirm = Password(
        title=_(u"Bestätigung"),
        description=_(u"Bitte bestätigen Sie das eingegebene Passwort."),
        min_length=5,
        max_length=8,
        required=True)

    @invariant
    def arePasswordsEqual(user):
        if user.passwort != user.confirm:
            raise Invalid(
                u"Das Passwort und die Wiederholung sind nicht gleich.")

    def getBaseUser():
        """Return the User Representation
Пример #8
0
    def testValidateRequiredAltMissingValue(self):
        missing = object()
        field = Set(required=True, missing_value=missing)
        field.validate(set())
        field.validate(set())

        self.assertRaises(RequiredMissing, field.validate, missing)
Пример #9
0
 def test_widget_set_not_orderable(self):
     from plone.app.widgets.dx import SelectWidget
     widget = SelectWidget(self.request)
     # A set is not orderable
     widget.field = Set(
         __name__='selectfield',
         value_type=Choice(values=['one', 'two', 'three'])
     )
     widget.terms = widget.field.value_type.vocabulary
     self.assertEqual(
         {
             'multiple': True,
             'name': None,
             'pattern_options': {
                 'multiple': True, 'separator': ';'},
             'pattern': 'select2',
             'value': (),
             'items': [
                 ('one', 'one'),
                 ('two', 'two'),
                 ('three', 'three')
             ]
         },
         widget._base_args(),
     )
Пример #10
0
class IBugNominationForm(Interface):
    """The browser form for nominating bugs for series."""

    nominatable_series = Set(
        title=_("Series that can be nominated"), required=True,
        value_type=Choice(vocabulary="BugNominatableSeries"),
        constraint=can_be_nominated_for_series)
Пример #11
0
class IHasCustomLanguageCodes(Interface):
    """A context that can have custom language codes attached.

    Implemented by `Product` and `SourcePackage`.
    """
    custom_language_codes = Set(
        title=_("Custom language codes"),
        description=_("Translations for these language codes are re-routed."),
        value_type=Object(schema=ICustomLanguageCode),
        required=False,
        readonly=False)

    has_custom_language_codes = Bool(
        title=_("There are custom language codes in this context."),
        readonly=True,
        required=True)

    def getCustomLanguageCode(language_code):
        """Retrieve `CustomLanguageCode` for `language_code`.

        :return: a `CustomLanguageCode`, or None.
        """

    def createCustomLanguageCode(language_code, language):
        """Create `CustomLanguageCode`.

        :return: the new `CustomLanguageCode` object.
        """

    def removeCustomLanguageCode(language_code):
        """Remove `CustomLanguageCode`.
Пример #12
0
class IReservedNames(Interface):
    """A sequence of names that are reserved for that container"""

    reservedNames = Set(
        title=_(u'Reserved Names'),
        description=_(u'Names that are not allowed for addable content'),
        required=True,
    )
Пример #13
0
class IMembershipList(ISubscriptionList):
    allowed_senders = Set()  #email addresses of all allowed senders
    allowed_senders_data = Dict()  #full dictionary of emails and userid for

    #allowed senders and their subscription status

    def is_allowed_sender(allowed_sender):
        """ 
Пример #14
0
class IAdmUtilUserManagement(ISupernode, IAuthentication):
    """
    major component for user registration and management
    """
    timezone = Choice(
        title=_("Time Zone"),
        description=_("Time Zone used to display your calendar"),
        values=pytz.common_timezones,
        required = False)
    email = EmailValid(
        title = _(u"Email address"),
        required=False
        )
    notifierChannels = Set(
        title = _("Notifier channels"),
        value_type = Choice(
            title = _("notifier channel"),
            vocabulary="notifierChannels"),
        default = set([]),
        readonly = False,
        required = True)
    notifierLevel = Choice(
        title=_("Notifier level"),
        description=_("minimum notification level"),
        default=u"warning",
        required = True,
        vocabulary = "notifierLevels")

    shortEmail = EmailValid(
        title = _(u"Short email address"),
        required=False
        )
    shortNotifierChannels = Set(
        title = _("Short notifier channels"),
        value_type = Choice(
            title = _("notifier channel"),
            vocabulary="notifierChannels"),
        default = set([]),
        readonly = False,
        required = True)
    shortNotifierLevel = Choice(
        title=_("Short notifier level"),
        description=_("minimum notification level for short messages"),
        default=u"error",
        required = True,
        vocabulary = "notifierLevels")
Пример #15
0
class ISDMExperiment(IExperiment):

    form.widget('functions', FunctionsFieldWidget)
    functions = List(
        title=u'Algorithm',
        value_type=Choice(vocabulary='sdm_functions_source'),
        default=None,
        required=True,
    )

    form.widget('species_occurrence_dataset',
                DatasetFieldWidget,
                genre=['DataGenreSpeciesOccurrence'],
                errmsg=u"Please select at least 1 occurrence dataset.",
                vizclass=u'bccvl-occurrence-viz')
    species_occurrence_dataset = TextLine(
        title=u'Species Occurrence Datasets',
        default=None,
        required=True,
    )

    form.widget('species_absence_dataset',
                DatasetFieldWidget,
                genre=['DataGenreSpeciesAbsence'],
                errmsg=u"Please select at least 1 emmission scenario.",
                vizclass=u'bccvl-absence-viz')
    species_absence_dataset = TextLine(
        title=u'Species Absence Datasets',
        default=None,
        required=False,
    )

    species_pseudo_absence_points = Bool(
        title=u"Pseudo absence points",
        description=u"Enable generation of random pseudo absence "
        u"points across area defined in environmental data",
        default=False,
        required=False)

    species_number_pseudo_absence_points = Int(
        title=u"Number of pseudo absence points",
        description=u"The number of random pseudo absence points to generate",
        default=10000,
        required=False)

    form.widget('environmental_datasets',
                DatasetDictFieldWidget,
                multiple='multiple',
                genre=['DataGenreCC', 'DataGenreE'],
                filters=['text', 'source', 'layer', 'resolution'],
                errmsg=u"Please select at least 1 layer.")
    environmental_datasets = Dict(
        title=u'Climate & Environmental Datasets',
        key_type=TextLine(),
        value_type=Set(value_type=TextLine()),
        required=True,
    )
Пример #16
0
class ICategoryAssignment(Interface):

    portal_type = Choice(title=_(u"Portal Type"),
                         required=True,
                         vocabulary="plone.contentratings.portal_types")
    assigned_categories = Set(
        title=_(u"Categories"),
        value_type=Choice(title=_(u"Category"),
                          vocabulary="plone.contentratings.categories"),
        required=False)
Пример #17
0
class IEventSchema(Interface):

    """Schema for event views.
    """

    title = TextLine(
        title=_(u'Title'),
        required=False,
        missing_value=u'',
        max_length=100)

    contact_name = TextLine(
        title=_(u'Contact Name'),
        required=False,
        missing_value=u'',
        max_length=100)

    location = TextLine(
        title=_(u'Location'),
        required=False,
        missing_value=u'',
        max_length=100)

    contact_email = EmailLine(
        title=_(u'Contact Email'),
        required=False)

    categories = Set(
        title=_(u'Category'),
        required=False,
        missing_value=set(),
        value_type=Choice(vocabulary="cmf.calendar.AvailableEventTypes"))

    contact_phone = TextLine(
        title=_(u'Contact Phone'),
        required=False,
        missing_value=u'',
        max_length=100)

    event_url = URI(
        title=_(u'URL'),
        required=False,
        missing_value=u'',
        max_length=100)

    start_date = Datetime(
        title=_(u'From'),)

    stop_date = Datetime(
        title=_(u'To'),)

    description = Text(
        title=_(u'Description'),
        required=False,
        missing_value=u'')
Пример #18
0
class IStaff(IPerson):
    department = Choice(
        title=u"Department",
        vocabulary="vocab_of_IDepartment",
    )
    teaches = Set(title=u"Teaches",
                  value_type=Choice(
                      title=u"Course",
                      vocabulary="vocab_of_ICourse",
                  ))
    salary = Int(title=u"Name", )
Пример #19
0
class IVCGECondition(Interface):
    """ Interface utilizada para descrever os elementos configuraveis
        desta condicao.
    """

    skos = Set(title=_(u'VCGE'),
               description=_(u'Termos a serem procurados. Deixe em branco '
                             u'para selecionar conteúdos sem nenhum termo VCGE '
                             u'aplicado.'),
               required=False,
               value_type=Choice(vocabulary=VOCAB))
Пример #20
0
class IDemoContent(Interface):

    now = Datetime(title=u"Now", readonly=True)

    startDate = Date(title=u"Start Date")
    endDate = Date(title=u"End Date")

    startDatetime = Datetime(title=u"Start Datetime")
    endDatetime = Datetime(title=u"End Datetime")

    severalDates = Set(title=u"Several dates", value_type=Date(title=u"Date"))
Пример #21
0
class ISubjectCondition(Interface):
    '''Interface for the configurable aspects of a Tag condition.
       This is also used to create add and edit forms, below.
    '''

    subject = Set(title=_(u'Tags'),
                  description=_(u'Tags to check for. Leave it blank '
                                u'to check for contents without any '
                                u'tag set'),
                  required=False,
                  value_type=Choice(vocabulary=VOCAB))
Пример #22
0
class IEventIfHostVMwareEsx(IEventIfEventHost):
    """ event interface of object """
    eventInpObjs_inward_relaying_shutdown = Set(
        title=_("inward relaying shutdown <-"),
        value_type=Choice(title=_("objects"), vocabulary="AllEventInstances"),
        default=set([]),
        readonly=False,
        required=True)

    def eventInp_inward_relaying_shutdown(eventMsg):
        """
Пример #23
0
class IEventIfAdmUtilTicker(IEventIfSupernode):
    """ event interface of object """
    eventOutObjs_1sec = Set(title=_("1sec. event ->"),
                            value_type=Choice(title=_("objects"),
                                              vocabulary="AllEventInstances"),
                            default=set([]),
                            readonly=False,
                            required=True)

    def eventOut_1sec(self):
        """ sends one-second event """
Пример #24
0
class IEventIfEventHost(IEventIfSupernode):
    """ event interface of object """

    eventInpObjs_shutdown = Set(title=_("shutdown event <-"),
                                value_type=Choice(
                                    title=_("objects"),
                                    vocabulary="AllEventInstances"),
                                default=set([]),
                                readonly=False,
                                required=True)

    eventOutObjs_nagiosError = Set(title=_("nagiosError ->"),
                                   value_type=Choice(
                                       title=_("objects"),
                                       vocabulary="AllEventInstances"),
                                   default=set([]),
                                   readonly=False,
                                   required=False)

    def eventInp_shutdown(eventMsg):
        """ start the shutdown of the host """
Пример #25
0
    def testValidateRequired(self):
        field = Set(title=u'Set field',
                    description=u'',
                    readonly=False,
                    required=True)
        field.validate(set())
        field.validate(set((1, 2)))
        field.validate(set((3, )))
        field.validate(set())
        field.validate(set((1, 2)))
        field.validate(set((3, )))

        self.assertRaises(RequiredMissing, field.validate, None)
Пример #26
0
class INegotiator(Interface):
    """Local negotiator utility manager interface."""

    policy = Choice(
        title=_("Language lookup policy"),
        description=_("Defines how the language lookup is working."),
        values=LANGUAGE_POLICIES,
        default='session --> browser --> server',
        required=True)

    server_language = Choice(
        title=_("Server language"),
        description=_("The language used for server policy."),
        vocabulary=BASE_LANGUAGES_VOCABULARY_NAME,
        default='en',
        required=True)

    offered_languages = Set(
        title=_("Offered languages"),
        description=_("A list of offered languages. Can be used to "
                      "user select languages which are offered in "
                      "a skin."
                      ""),
        value_type=Choice(vocabulary=BASE_LANGUAGES_VOCABULARY_NAME),
        default={'en'},
        required=True)

    cache_enabled = Bool(
        title=_("Language caching enabled"),
        description=_("Language caching enabled (per request)"),
        required=True,
        default=False)

    @invariant
    def check_policy(self):
        """Check against invalid policy"""
        if self.policy not in LANGUAGE_POLICIES:
            raise Invalid(_("Unsupported language policy"))

    def get_language(self, request):
        """Return the matching language to use.

        If 'lang' parameter is defined into request, this lang is returned.
        Otherwise, returned language is based on browser settings, user's session or
        server's language, depending on negotiator's settings.

        If no match is found, None is returned.
        """

    def clear_cache(self, request):
        """Clear cached language value"""
Пример #27
0
 def test_widget_set_not_orderable(self):
     from plone.app.widgets.dx import AjaxSelectWidget
     widget = AjaxSelectWidget(self.request)
     # A set is not orderable
     widget.field = Set(__name__='selectfield')
     self.assertEqual(
         {
             'name': None,
             'value': u'',
             'pattern': 'select2',
             'pattern_options': {'separator': ';'},
         },
         widget._base_args(),
     )
Пример #28
0
class ISearchQuestionsForm(Interface):
    """Schema for the search question form."""

    search_text = TextLine(title=_('Search text'), required=False)

    sort = Choice(title=_('Sort order'),
                  required=True,
                  vocabulary=QuestionSort,
                  default=QuestionSort.RELEVANCY)

    status = Set(title=_('Status'),
                 required=False,
                 value_type=Choice(vocabulary=QuestionStatus),
                 default=set(QUESTION_STATUS_DEFAULT_SEARCH))
Пример #29
0
class FeaturedProjectForm(Interface):
    """Form that requires the user to choose a pillar to feature."""

    add = Choice(
        title=_("Add project"),
        description=_(
            "Choose a project to feature on the Launchpad home page."),
        required=False, vocabulary='DistributionOrProductOrProjectGroup')

    remove = Set(
        title=u'Remove projects',
        description=_(
            'Select projects that you would like to remove from the list.'),
        required=False,
        value_type=Choice(vocabulary="FeaturedProject"))
Пример #30
0
class IStudent(IPerson):
    major = Choice(
        title=u"Department",
        vocabulary="vocab_of_IDepartment",
    )
    supervisedBy = List(title=u"Supervised by",
                        value_type=Choice(
                            title=u"Member of staff",
                            vocabulary="vocab_of_IStaff",
                        ))
    takes = Set(title=u"Takes",
                value_type=Choice(
                    title=u"Course",
                    vocabulary="vocab_of_ICourse",
                ))