code: def accept(self):
          
          # run minimum needs calculator
          try:
              success, self.result_layer = (
                  self.minimum_needs(self.layer.currentLayer()))
              if not success:
                  return
          except Exception as e:
              error_name, traceback = humanise_exception(e)
              message = (
                  'Problem(s) occured. \n%s \nDiagnosis: \n%s' % (
                      error_name, traceback))
              display_critical_message_box(
                  title=self.tr('Error while calculating minimum needs'),
                  message=message)
              return
  
          # remove monkey patching keywords
          del self.result_layer.keywords
  
          # write memory layer to file system
          settings = QSettings()
          default_user_directory = settings.value(
              'inasafe/defaultUserDirectory', defaultValue='')
  
          if default_user_directory:
              output_directory = os.path.join(
                  default_user_directory, 'minimum_needs_calculator')
              if not os.path.exists(output_directory):
                  os.makedirs(output_directory)
          else:
              output_directory = temp_dir(sub_dir='minimum_needs_calculator')
  
          output_layer_name = os.path.split(self.result_layer.name())[1]
  
          # If normal filename doesn't exist, then use normal filename
          random_string_length = len(output_layer_name.split('_')[-1])
          normal_filename = output_layer_name[:-(random_string_length + 1)]
          if not os.path.exists(os.path.join(output_directory, normal_filename)):
              output_layer_name = normal_filename
  
          data_store = Folder(output_directory)
          data_store.default_vector_format = 'geojson'
          data_store.add_layer(self.result_layer, output_layer_name)
  
          self.result_layer = data_store.layer(output_layer_name)
  
          # noinspection PyArgumentList
          QgsProject.instance().addMapLayers(
              [data_store.layer(self.result_layer.name())])
          self.done(QtWidgets.QDialog.Accepted)
docs: Process the layer and field and generate a new layer.
  
          .. note:: This is called on OK click.