11
11
'IQuestionSubscription',
14
from lazr.restful.declarations import (
15
export_as_webservice_entry,
18
from lazr.restful.fields import Reference
20
from zope.interface import Interface
21
from zope.schema import (
26
from canonical.launchpad import _
27
from lp.services.fields import PersonChoice
14
from zope.interface import (
30
20
class IQuestionSubscription(Interface):
31
21
"""A subscription for a person to a question."""
33
export_as_webservice_entry(publish_web_link=False, as_of='devel')
35
id = Int(title=_('ID'), readonly=True, required=True)
36
person = exported(PersonChoice(
37
title=_('Person'), required=True, vocabulary='ValidPersonOrTeam',
38
readonly=True, description=_("The person's Launchpad ID or "
39
"e-mail address.")), as_of="devel")
40
question = exported(Reference(
41
Interface, title=_("Question"), required=True, readonly=True),
43
date_created = exported(
44
Datetime(title=_('Date subscribed'), required=True, readonly=True),
47
def canBeUnsubscribedByUser(user):
48
"""Can the user unsubscribe the subscriber from the question?"""
23
person = Attribute("The subscriber.")
24
question = Attribute("The question.")