def render_admin_panel(self, req, cat, page, disclaimer_name): # Detail view? data = {} obj = DisclaimerModel(self.env) if disclaimer_name: name = disclaimer_name if req.method == 'POST': if req.args.get('save'): new_name = req.args.get('name').strip() if disclaimer_name != new_name: obj.update(new_name, disclaimer_name) name = new_name add_notice(req, _('Disclaimer name renamed successfully.')) elif req.args.get('cancel'): pass #just skip req.redirect(req.href.admin(cat, page)) data = {'view': 'detail', 'name':name } else: if req.method == 'POST': if req.args.get('add') : name = req.args.get('name').strip() body = req.args.get('body').strip() author = req.authname obj.insert(name, body, author) elif req.args.get('remove'): sel = req.args.get('sel') if not sel: raise TracError(_('No disclaimer selected')) if not isinstance(sel, list): sel = [sel] for id in sel: name, version = obj.get_by_id(id) if name == self.c_name and version == self.c_version: add_warning(req, _('You cannot delete disclaimer "%s" with version:%s' %(name,version))) continue obj.delete(id) add_notice(req, _('Disclaimer "%s" with version:%s deleted succesfully' %(name, version))) elif req.args.get('apply'): id = req.args.get('default') if id: name, version = obj.get_by_id(id) self.config.set('disclaimer', 'name', name) self.config.set('disclaimer', 'version', version) self.config.save() add_notice(req, _('Disclaimer "%s" with version:%s saved succesfully' %(name, version))) req.redirect(req.href.admin(cat, page)) data['disclaimers'] = obj.getall() row = obj.get_by_name_version(self.c_name,self.c_version) if row: data['default'] = row[0] else: data['default'] = None Chrome(self.env).add_wiki_toolbars(req) return 'admin-disclaimer.html', data