def render(self, request): packages = self.env.registry.getPackageIds() resourcetypes = self.env.registry.getAllPackagesAndResourceTypes() index_types = sorted(INDEX_TYPES) index_types_dict = {} for i, v in INDEX_TYPES.iteritems(): index_types_dict[v] = i data = { 'index_types': index_types, 'index_types_dict': index_types_dict, 'package_id': '', 'resourcetype_id': '', 'indexes': [], 'error': '', 'xpath': '', 'label': '', 'options': '', 'packages': packages, 'resourcetypes': resourcetypes, 'resturl': self.env.getRestUrl(), } if request.method == 'POST': args = request.args data['package_id'] = args.get('package_id', [''])[0] data['resourcetype_id'] = args.get('resourcetype_id', [''])[0] if 'add' in args.keys() and 'xpath' in args: data['label'] = args.get('label', [''])[0] data['xpath'] = args.get('xpath', [''])[0] data['type_id'] = args.get('type_id', [''])[0] data['options'] = args.get('options', [None])[0] data = self._addIndex(data) elif 'delete' in args and 'index[]' in args: data['index[]'] = args['index[]'] data = self._deleteIndexes(data) elif 'reindex' in args and 'index[]' in args: data['index[]'] = args['index[]'] data = self._reindexIndexes(data) elif 'reindex-all' in args: data = self._reindexResourceType(data) elif 'filter' in args: data = self._getIndexes(data) return data