~replaceafill/ubuntu/trusty/schooltool/2.8_custom-css

« back to all changes in this revision

Viewing changes to src/schooltool/generations/evolve40.py

  • Committer: Gediminas Paulauskas
  • Date: 2014-04-18 16:25:33 UTC
  • mfrom: (1.1.33)
  • Revision ID: menesis@pov.lt-20140418162533-noklnc6b89w2epee
Tags: 1:2.7.0-0ubuntu1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
After permissions remap, update person groups.
22
22
"""
23
23
 
24
 
from zope.app.generations.utility import getRootFolder, findObjectsProviding
 
24
from zope.app.generations.utility import getRootFolder
25
25
from zope.component.hooks import getSite, setSite
26
26
 
 
27
from schooltool.generations import linkcatalogs
27
28
from schooltool.app.membership import Membership
28
 
from schooltool.app.interfaces import ISchoolToolApplication
29
29
from schooltool.schoolyear.interfaces import ISchoolYearContainer
30
30
from schooltool.group.interfaces import IGroupContainer
31
31
 
47
47
 
48
48
 
49
49
def evolve(context):
 
50
    linkcatalogs.ensureEvolved(context)
50
51
    root = getRootFolder(context)
51
 
 
52
52
    old_site = getSite()
53
 
    apps = list(findObjectsProviding(root, ISchoolToolApplication))
54
 
    for app in apps:
55
 
        setSite(app)
56
 
        syc = ISchoolYearContainer(app)
57
 
        if not syc.values():
58
 
            continue
59
 
        sy = syc.getActiveSchoolYear()
60
 
        if sy is None:
61
 
            sy = syc.values()[-1]
62
 
        for person in app['persons'].values():
63
 
            evolvePerson(app, sy, person)
 
53
 
 
54
    app = root
 
55
    setSite(app)
 
56
    syc = ISchoolYearContainer(app)
 
57
    if not syc.values():
 
58
        setSite(old_site)
 
59
        return
 
60
 
 
61
    sy = syc.getActiveSchoolYear()
 
62
    if sy is None:
 
63
        sy = syc.values()[-1]
 
64
    for person in app['persons'].values():
 
65
        evolvePerson(app, sy, person)
64
66
 
65
67
    setSite(old_site)