def setProperties(self):
     context = aq_inner(self.context)
     utils = getToolByName(context, 'plone_utils')
     utility = self.getUtility()
     
     for currency in currency_list.keys():
         if self.request.has_key(currency):
             utility.registerFactor(currency, self.request.get(currency, 1), context)
     
     props = getToolByName(context, 'portal_properties').currency_properties
     for property in self.properties:
         props._setPropValue(property, self.request.get(property, ''))
     utils.addPortalMessage(_(u'Properties saved'))
    def __call__(self):
        self.request.set('disable_border', True)
        
        utility = self.getUtility()
        if self.request.form.has_key('currency_update'):
            utility.update(self.context)
            utils = getToolByName(self.context, 'plone_utils')
            utils.addPortalMessage(_(u'Factors updated'))
        elif self.request.form.has_key('currency_save'):
            self.setProperties()

        props = getToolByName(self.context, 'portal_properties').currency_properties
        for property in self.properties:
            self.values[property] = props.getProperty(property, '')
        
        for currency in currency_list.keys():
            self.values[currency] = utility.getFactor(currency, self.context)
        
        return self.template()