[2408] | 1 | import logging |
---|
| 2 | from zope.component import getSiteManager |
---|
| 3 | from zope.component import getGlobalSiteManager |
---|
| 4 | from quintagroup.plonegooglesitemaps.content.newsextender import NewsExtender |
---|
| 5 | |
---|
| 6 | logger = logging.getLogger('quintagroup.plonegooglesitemaps') |
---|
| 7 | |
---|
| 8 | def unregisterSchemaExtenderAdapters(site): |
---|
| 9 | """ Unregister news schema extender adapters |
---|
| 10 | from local component registry. |
---|
| 11 | """ |
---|
| 12 | lsm = getSiteManager(site) |
---|
| 13 | gsm = getGlobalSiteManager() |
---|
| 14 | if lsm == gsm: |
---|
| 15 | logger.warning("Not found local component registry") |
---|
| 16 | return |
---|
| 17 | |
---|
| 18 | unregistered = [] |
---|
| 19 | registrations = tuple(lsm.registeredAdapters()) |
---|
| 20 | for registration in registrations: |
---|
| 21 | factory = registration.factory |
---|
| 22 | if factory == NewsExtender: |
---|
| 23 | required = registration.required |
---|
| 24 | provided = registration.provided |
---|
| 25 | name = registration.name |
---|
| 26 | lsm.unregisterAdapter(factory=factory, |
---|
| 27 | required=required, provided=provided, name=name) |
---|
| 28 | unregistered.append(str(required)) |
---|
| 29 | logger.info("Unregistered news schema extender adapters for: %s" % unregistered) |
---|
| 30 | |
---|
| 31 | |
---|
| 32 | def uninstall(context): |
---|
| 33 | """ Do customized uninstallation. |
---|
| 34 | """ |
---|
| 35 | if context.readDataFile('gsm_uninstall.txt') is None: |
---|
| 36 | return |
---|
| 37 | site = context.getSite() |
---|
| 38 | unregisterSchemaExtenderAdapters(site) |
---|