def save(self): cmpn = Campaign.load(self.request.POST.get('campaign_id')) if not cmpn: cmpn = Campaign() else: self.forbid_if(cmpn.company.enterprise_id != self.enterprise_id) cmpn.bind(self.request.POST) cmpn.save() cmpn.clear_attributes() for i in range(10): attr_name = self.request.POST.get('attr_name[%d]' % i) attr_value = self.request.POST.get('attr_value[%d]' % i) if attr_name and attr_value: cmpn.set_attr(attr_name, attr_value) cmpn.save() cmpn.flush() cmpn.invalidate_self() cmpn.invalidate_caches() self.request.session.flash('Successfully saved %s.' % cmpn.name) return HTTPFound('/crm/campaign/edit/%s' % cmpn.campaign_id)