class Payments(BrowserView, Location): interface.implements(IBrowserPublisher, IEnumerableMapping) __name__ = u'attachments' def __init__(self, context, request): self.context = context self.request = request self.payments = IPayableExtension(context).payments def publishTraverse(self, request, name): attach = self.payments.get(name.lower()) if attach is None: raise NotFound(self, name, request) return LocationProxy(attach, self, name) def browserDefault(self, request): return empty, () def keys(self): return self.payments.keys() def __iter__(self): return iter(self.payments) def values(self): return self.payments.values() def items(self): return self.payments.items() def __len__(self): return len(self.payments) def get(self, key, default=None): try: return self[key] except KeyError: return default def __getitem__(self, name): configlet = IPayableExtension(self.context) attach = configlet.payments.get(name) if resource is None: raise KeyError(name) return LocationProxy(attach, self, name)
def __init__(self, context, request): self.context = context self.request = request self.payments = IPayableExtension(context).payments