code: def listen(self):
          
          requested_action = self._request.POST.get('category_action', False)
  
          if not requested_action:
              return None  # No action supplied. Pass.
  
          if requested_action not in self.KNOWN_ACTIONS:
              raise SitecatsSecurityException('Unknown `category_action` - `%s` - requested.')
  
          category_base_id = self._request.POST.get('category_base_id', False)
          if category_base_id == 'None':
              category_base_id = None
          else:
              category_base_id = int(category_base_id)
          if category_base_id not in self._lists.keys():
              raise SitecatsSecurityException('Unknown `category_base_id` - `%s` - requested.')
  
          category_list = self._lists[category_base_id]
          if category_list.editor is None:
              raise SitecatsSecurityException('Editor is disabled for `%s` category.' % category_list.alias)
  
          action_method = getattr(self, 'action_%s' % requested_action)
  
          try:
              return action_method(self._request, category_list)
          except SitecatsNewCategoryException as e:
              messages.error(self._request, e, extra_tags=self.error_messages_extra_tags, fail_silently=True)
              return None
          except SitecatsValidationError as e:
              messages.error(self._request, e.messages[0], extra_tags=self.error_messages_extra_tags, fail_silently=True)
              return None
          finally:
              self._request.POST = {}
docs: Instructs handler to listen to Django request and handle
          CategoryList editor requests (if any).
  
          :return: None on success otherwise and exception from SitecatsException family is raised.