def __iter__(self):
        assert IBugTask.providedBy(self.context), (
            "BugWatchVocabulary expects its context to be an IBugTask.")
        bug = self.context.bug

        for watch in bug.watches:
            yield self.toTerm(watch)
 def __init__(self, default_bugtask=None, milestones=None):
     assert default_bugtask is None or IBugTask.providedBy(default_bugtask)
     self.default_bugtask = default_bugtask
     self._milestones = None
     if milestones is not None:
         self._milestones = dict(
             (str(milestone.id), milestone) for milestone in milestones)
    def __iter__(self):
        assert IBugTask.providedBy(self.context), (
            "BugWatchVocabulary expects its context to be an IBugTask.")
        bug = self.context.bug

        for watch in bug.watches:
            yield self.toTerm(watch)
 def __init__(self, default_bugtask=None, milestones=None):
     assert default_bugtask is None or IBugTask.providedBy(default_bugtask)
     self.default_bugtask = default_bugtask
     self._milestones = None
     if milestones is not None:
         self._milestones = dict(
             (str(milestone.id), milestone) for milestone in milestones)
 def initialize(self):
     """Create a notifcation for a linked bug status change."""
     assert IObjectModifiedEvent.providedBy(self.event), (
         "Should only be subscribed for IObjectModifiedEvent.")
     assert IBugTask.providedBy(self.event.object), (
         "Should only be subscribed for IBugTask modification.")
     self.bugtask = self.event.object
     self.old_bugtask = self.event.object_before_modification
def get_bug_and_bugtasks(bug_or_bugtask):
    """Return a bug and a list of bugtasks given a bug or a bugtask.

    :param bug_or_bugtask: An `IBug` or `IBugTask`.
    :raises ValueError: If `bug_or_bugtask` does not provide `IBug` or
        `IBugTask`.
    """
    if IBug.providedBy(bug_or_bugtask):
        return bug_or_bugtask, bug_or_bugtask.bugtasks
    elif IBugTask.providedBy(bug_or_bugtask):
        return bug_or_bugtask.bug, [bug_or_bugtask]
    else:
        raise ValueError("Expected bug or bugtask, got %r" % (bug_or_bugtask,))
Beispiel #7
0
def get_bug_change_class(obj, field_name):
    """Return a suitable IBugChange to describe obj and field_name."""

    if IBugTask.providedBy(obj):
        lookup = BUGTASK_CHANGE_LOOKUP
    else:
        lookup = BUG_CHANGE_LOOKUP

    try:
        return lookup[field_name]
    except KeyError:
        raise NoBugChangeFoundError(
            "Unable to find a suitable BugChange for field '%s' on object "
            "%s" % (field_name, obj))
Beispiel #8
0
def get_bug_and_bugtasks(bug_or_bugtask):
    """Return a bug and a list of bugtasks given a bug or a bugtask.

    :param bug_or_bugtask: An `IBug` or `IBugTask`.
    :raises ValueError: If `bug_or_bugtask` does not provide `IBug` or
        `IBugTask`.
    """
    if IBug.providedBy(bug_or_bugtask):
        return bug_or_bugtask, bug_or_bugtask.bugtasks
    elif IBugTask.providedBy(bug_or_bugtask):
        return bug_or_bugtask.bug, [bug_or_bugtask]
    else:
        raise ValueError(
            "Expected bug or bugtask, got %r" % (bug_or_bugtask,))
def get_bug_change_class(obj, field_name):
    """Return a suitable IBugChange to describe obj and field_name."""

    if IBugTask.providedBy(obj):
        lookup = BUGTASK_CHANGE_LOOKUP
    else:
        lookup = BUG_CHANGE_LOOKUP

    try:
        return lookup[field_name]
    except KeyError:
        raise NoBugChangeFoundError(
            "Unable to find a suitable BugChange for field '%s' on object "
            "%s" % (field_name, obj))
Beispiel #10
0
    def _getSubscriptionDetails(self):
        cache = dict()
        # The subscription details for the current user.
        self.extractBugSubscriptionDetails(self.user, self.context.bug, cache)

        # The subscription details for other users to populate the subscribers
        # list in the portlet.
        if IBugTask.providedBy(self.context):
            bug = self.context.bug
        else:
            bug = self.context
        subscribers_portlet = BugPortletSubscribersWithDetails(
            bug, self.request)
        subscription_data = subscribers_portlet.subscriber_data
        result_data = dict(
            cache_data=cache,
            subscription_data=subscription_data)
        return result_data