code: def get_next_step(self):
          
          layer_purpose = self.parent.step_kw_purpose.selected_purpose()
          if layer_purpose != layer_purpose_aggregation:
              subcategory = self.parent.step_kw_subcategory.\
                  selected_subcategory()
          else:
              subcategory = {'key': None}
  
          # Has classifications, go to multi classifications
          if subcategory.get('classifications'):
              if layer_purpose == layer_purpose_hazard:
                  return self.parent.step_kw_multi_classifications
  
          # Check if it can go to inasafe field step
          non_compulsory_fields = get_non_compulsory_fields(
              layer_purpose['key'], subcategory['key'])
          if not skip_inasafe_field(self.parent.layer, non_compulsory_fields):
              # Do not go to InaSAFE Field step if we already visited it.
              # For example in place exposure.
              if (self.parent.step_kw_inasafe_fields not in
                      self.parent.keyword_steps):
                  return self.parent.step_kw_inasafe_fields
  
          # Check if it can go to inasafe default field step
          default_inasafe_fields = get_fields(
              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