27
27
from zope.publisher.browser import BrowserView
28
28
from zope.publisher.interfaces.browser import IBrowserRequest
29
29
import grokcore.component
31
import grokcore.viewlet
32
import grokcore.security
31
34
from schooltool.course.interfaces import ISection
32
35
from schooltool.basicperson.browser.interfaces import IPersonDataExporterPlugin
33
36
from schooltool.basicperson.browser.interfaces import IExtraDataExporterPlugin
37
from schooltool.person.interfaces import IPersonContainer, IPerson
38
from schooltool.skin.skin import IActionMenuManager
39
from schooltool.skin.skin import NavigationViewlet
40
from schooltool.common import SchoolToolMessage as _
43
grokcore.view.templatedir("templates")
36
46
class PersonGroupDataExporterPlugin(BrowserView,
100
108
IExtraDataExporterPlugin)
101
109
return [plugin for id, plugin in sorted(plugins)]
104
return self.template()
112
class PersonContainerXMLExportView(PersonContainerXMLExportViewBase,
115
grokcore.component.context(IPersonContainer)
116
grokcore.component.name("person_export.xml")
117
grokcore.security.require("schooltool.edit")
118
grokcore.view.template("persons_xml_export")
107
121
class PersonXMLExportView(PersonContainerXMLExportView):
123
grokcore.component.context(IPerson)
109
125
def persons(self):
110
126
return [self.context]
129
class PersonContainerXMLExportViewActionViewlet(NavigationViewlet,
130
grokcore.viewlet.Viewlet):
132
grokcore.viewlet.context(IPersonContainer)
133
grokcore.viewlet.name("personcontainerxmlexport")
134
grokcore.viewlet.viewletmanager(IActionMenuManager)
135
grokcore.viewlet.require("schooltool.edit")
136
grokcore.viewlet.template("actionsViewlet")
138
link = "person_export.xml"
139
title = _(u"Export Persons as XML")
143
class PersonXMLExportViewActionViewlet(NavigationViewlet,
144
grokcore.viewlet.Viewlet):
146
grokcore.viewlet.context(IPerson)
147
grokcore.viewlet.name("personxmlexport")
148
grokcore.viewlet.viewletmanager(IActionMenuManager)
149
grokcore.viewlet.require("schooltool.edit")
150
grokcore.viewlet.template("actionsViewlet")
152
link = "person_export.xml"