def _add_input_handler(self, message=None): """Interactive filter creation. The function populates a dictionary with the user's replies which is used to construct the RecordFilter object. """ global _input_index, _is_input fields = len(_input_fields) if _input_index <= fields: # first question, no previous answer if _input_index > 0: # store answer for previous question _input_values[_input_fields[_input_index - 1]] = message.body if _input_index < fields: # show next message template_values = {'i': _input_index} message.reply(render_to_string('filter_add.plain', template_values)) _input_index += 1 elif _input_index == fields: # end of questions jid = _sender_jid(message) filters.add_filter(jid, **_input_values) _is_input = False _input_index = 0 message.reply('Filter added')
def post(self): """Store a newly created filter""" try: filters.add_filter( users.get_current_user().email(), fileName = self.request.get('fileName'), funcName = self.request.get('funcName'), levelName = self.request.get('levelName'), lineNo = self.request.get('lineNo'), message = self.request.get('message')) except filters.NotSubscribedError, e: resp = e.msg