code: def _calc_avg_and_last_val(self, has_no_column, sum_existing_columns):
          
          sum_no_columns = len(has_no_column)
          columns_left = self.ALLOWED_COLUMNS - sum_existing_columns
  
          if sum_no_columns == 0:
              columns_avg = columns_left
          else:
              columns_avg = int(columns_left / sum_no_columns)
  
          remainder = columns_left - (columns_avg * sum_no_columns)
          columns_for_last_element = columns_avg + remainder
          return columns_avg, columns_for_last_element
docs: Calculate the average of all columns and return a rounded down number.
          Store the remainder and add it to the last row. Could be implemented
          better. If the enduser wants more control, he can also just add the
          amount of columns. Will work fine with small number (<4) of items in a
          row.
  
          :param has_no_column:
          :param sum_existing_columns:
          :return: average, columns_for_last_element