code: def get_next_step(self):
          
          if self.layer_purpose != layer_purpose_aggregation:
              subcategory = self.parent.step_kw_subcategory.\
                  selected_subcategory()
          else:
              subcategory = {'key': None}
  
          if is_raster_layer(self.parent.layer):
              return self.parent.step_kw_source
  
          # Check if it can go to inasafe field step
          inasafe_fields = get_non_compulsory_fields(
              self.layer_purpose['key'], subcategory['key'])
  
          if not skip_inasafe_field(self.parent.layer, inasafe_fields):
              return self.parent.step_kw_inasafe_fields
  
          # Check if it can go to inasafe default field step
          default_inasafe_fields = get_fields(
              self.layer_purpose['key'],
              subcategory['key'],
              replace_null=True,
              in_group=False
          )
          if default_inasafe_fields:
              return self.parent.step_kw_default_inasafe_fields
  
          # Any other case
          return self.parent.step_kw_source
docs: Find the proper step when user clicks the Next button.
  
          :returns: The step to be switched to.
          :rtype: WizardStep instance or None