def handleSave(self, action):
     data, errors = self.extractData()
     if errors:
         self.status = self.formErrorsMessage
         return
     self.applyChanges(data)
     IStatusMessage(self.request).addStatusMessage(_(u"Changes saved"),
                                                   "info")
     self.context.REQUEST.RESPONSE.redirect("@@type-criterion-settings")
 def __call__(self, context):
     
     registry = queryUtility(IRegistry)
     settings = registry.forInterface(ITypesCriterionSettings, check=False)
     terms = []
     
     for conf in settings.type_criterion_defined:
         type_name = conf.type_name.encode('utf-8')
         msgid = _(conf.type_name)
         terms.append(SimpleTerm(type_name, token=type_name, title=msgid))
     
     return SimpleVocabulary(terms)
 def handleCancel(self, action):
     IStatusMessage(self.request).addStatusMessage(_(u"Edit cancelled"),
                                                   "info")
     self.request.response.redirect("%s/%s" % (self.context.absolute_url(),
                                               self.control_panel_view))