Exemplo n.º 1
0
def unrelateCalendarOnDeletion(event):
    """When you delete an object, relationships of it's calendar should be removed

        >>> from schooltool.relationship.tests import setUp, tearDown
        >>> from schooltool.testing.setup import setUpCalendaring

        >>> setUp()
        >>> setUpCalendaring()

        >>> import zope.event
        >>> old_subscribers = zope.event.subscribers[:]
        >>> from schooltool.app.overlay import unrelateCalendarOnDeletion
        >>> zope.event.subscribers.append(unrelateCalendarOnDeletion)


    We will need some object that implements IHaveCalendar for that:

        >>> from zope.container.btree import BTreeContainer
        >>> container = BTreeContainer()
        >>> from schooltool.person.person import Person
        >>> container = BTreeContainer()
        >>> container['jonas'] = jonas = Person(username="******")
        >>> container['petras'] = petras =  Person(username="******")

    Let's add calendar of Petras to the list of overlaid calendars:

        >>> jonas.overlaid_calendars.add(ISchoolToolCalendar(petras))
        <...CalendarOverlayInfo object at ...>
        >>> list(jonas.overlaid_calendars)
        [<schooltool.app.overlay.CalendarOverlayInfo object at ...>]

    If we delete Petras - Jonas should have no calendars in his overlay list:

        >>> del container['petras']
        >>> list(jonas.overlaid_calendars)
        []

    Restore old subscribers:

        >>> zope.event.subscribers[:] = old_subscribers
        >>> tearDown()

    """
    if not IObjectRemovedEvent.providedBy(event):
        return
    # event.object may be a ContainedProxy
    obj = getProxiedObject(event.object)
    if not IHaveCalendar.providedBy(obj):
        return
    calendar = ISchoolToolCalendar(obj)
    linkset = IRelationshipLinks(calendar, None)
    if linkset is not None:
        unrelateAll(calendar)
Exemplo n.º 2
0
def unrelateCalendarOnDeletion(event):
    """When you delete an object, relationships of it's calendar should be removed

        >>> from schooltool.relationship.tests import setUp, tearDown
        >>> from schooltool.testing.setup import setUpCalendaring

        >>> setUp()
        >>> setUpCalendaring()

        >>> import zope.event
        >>> old_subscribers = zope.event.subscribers[:]
        >>> from schooltool.app.overlay import unrelateCalendarOnDeletion
        >>> zope.event.subscribers.append(unrelateCalendarOnDeletion)


    We will need some object that implements IHaveCalendar for that:

        >>> from zope.container.btree import BTreeContainer
        >>> container = BTreeContainer()
        >>> from schooltool.person.person import Person
        >>> container = BTreeContainer()
        >>> container['jonas'] = jonas = Person(username="******")
        >>> container['petras'] = petras =  Person(username="******")

    Let's add calendar of Petras to the list of overlaid calendars:

        >>> jonas.overlaid_calendars.add(ISchoolToolCalendar(petras))
        <...CalendarOverlayInfo object at ...>
        >>> list(jonas.overlaid_calendars)
        [<schooltool.app.overlay.CalendarOverlayInfo object at ...>]

    If we delete Petras - Jonas should have no calendars in his overlay list:

        >>> del container['petras']
        >>> list(jonas.overlaid_calendars)
        []

    Restore old subscribers:

        >>> zope.event.subscribers[:] = old_subscribers
        >>> tearDown()

    """
    if not IObjectRemovedEvent.providedBy(event):
        return
    # event.object may be a ContainedProxy
    obj = getProxiedObject(event.object)
    if not IHaveCalendar.providedBy(obj):
        return
    calendar = ISchoolToolCalendar(obj)
    linkset = IRelationshipLinks(calendar, None)
    if linkset is not None:
        unrelateAll(calendar)
Exemplo n.º 3
0
def clearCalendarOnDeletion(event):
    """When you delete an object, it's calendar should be cleared

        >>> from schooltool.relationship.tests import setUp, tearDown
        >>> from schooltool.testing.setup import setUpCalendaring

        >>> setUp()
        >>> setUpCalendaring()

        >>> import zope.event
        >>> old_subscribers = zope.event.subscribers[:]
        >>> from schooltool.app.cal import clearCalendarOnDeletion
        >>> zope.event.subscribers.append(clearCalendarOnDeletion)

    We will need some object that implements IHaveCalendar for that:

        >>> from zope.container.btree import BTreeContainer
        >>> container = BTreeContainer()
        >>> from schooltool.person.person import Person
        >>> container = BTreeContainer()
        >>> container['petras'] = petras =  Person(username="******")
        >>> def clearCalendar():
        ...     print "Clearing calendar"
        >>> ISchoolToolCalendar(petras).clear = clearCalendar

    If we delete Petras his calendar should be cleared:

        >>> del container['petras']
        Clearing calendar

    Restore old subscribers:

        >>> zope.event.subscribers[:] = old_subscribers
        >>> tearDown()

    """
    if IHaveCalendar.providedBy(event.object):
        ISchoolToolCalendar(event.object).clear()
Exemplo n.º 4
0
def clearCalendarOnDeletion(event):
    """When you delete an object, it's calendar should be cleared

        >>> from schooltool.relationship.tests import setUp, tearDown
        >>> from schooltool.testing.setup import setUpCalendaring

        >>> setUp()
        >>> setUpCalendaring()

        >>> import zope.event
        >>> old_subscribers = zope.event.subscribers[:]
        >>> from schooltool.app.cal import clearCalendarOnDeletion
        >>> zope.event.subscribers.append(clearCalendarOnDeletion)

    We will need some object that implements IHaveCalendar for that:

        >>> from zope.container.btree import BTreeContainer
        >>> container = BTreeContainer()
        >>> from schooltool.person.person import Person
        >>> container = BTreeContainer()
        >>> container['petras'] = petras =  Person(username="******")
        >>> def clearCalendar():
        ...     print "Clearing calendar"
        >>> ISchoolToolCalendar(petras).clear = clearCalendar

    If we delete Petras his calendar should be cleared:

        >>> del container['petras']
        Clearing calendar

    Restore old subscribers:

        >>> zope.event.subscribers[:] = old_subscribers
        >>> tearDown()

    """
    if IHaveCalendar.providedBy(event.object):
        ISchoolToolCalendar(event.object).clear()
Exemplo n.º 5
0
 def haveCalendar():
     from schooltool.resource import resource
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(resource.Resource):
         classImplements(resource.Resource, IHaveCalendar)
Exemplo n.º 6
0
 def haveCalendar():
     from schooltool.resource import resource
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(resource.Resource):
         classImplements(resource.Resource, IHaveCalendar)
Exemplo n.º 7
0
 def haveCalendar():
     from schooltool.app.app import SchoolToolApplication
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(SchoolToolApplication):
         classImplements(SchoolToolApplication, IHaveCalendar)
Exemplo n.º 8
0
 def haveCalendar():
     from schooltool.person import person
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(person.Person):
         classImplements(person.Person, IHaveCalendar)
Exemplo n.º 9
0
    def haveCalendar():
        from schooltool.group import group
        from schooltool.app.interfaces import IHaveCalendar

        if not IHaveCalendar.implementedBy(group.Group):
            classImplements(group.Group, IHaveCalendar)
Exemplo n.º 10
0
 def haveCalendar():
     from schooltool.person import person
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(person.Person):
         classImplements(person.Person, IHaveCalendar)
Exemplo n.º 11
0
 def haveCalendar():
     from schooltool.app.app import SchoolToolApplication
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(SchoolToolApplication):
         classImplements(SchoolToolApplication, IHaveCalendar)
Exemplo n.º 12
0
 def haveCalendar():
     from schooltool.group import group
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(group.Group):
         classImplements(group.Group, IHaveCalendar)
Exemplo n.º 13
0
 def haveCalendar():
     from schooltool.course import section
     from schooltool.app.interfaces import IHaveCalendar
     if not IHaveCalendar.implementedBy(section.Section):
         classImplements(section.Section, IHaveCalendar)