'Init Properties'

def _init_properties(self):

    super(BaseCRUDView, self)._init_properties()
    self.related_views = (self.related_views or [])
    self._related_views = (self._related_views or [])
    self.description_columns = (self.description_columns or {})
    self.validators_columns = (self.validators_columns or {})
    self.formatters_columns = (self.formatters_columns or {})
    self.add_form_extra_fields = (self.add_form_extra_fields or {})
    self.edit_form_extra_fields = (self.edit_form_extra_fields or {})
    self.show_exclude_columns = (self.show_exclude_columns or [])
    self.add_exclude_columns = (self.add_exclude_columns or [])
    self.edit_exclude_columns = (self.edit_exclude_columns or [])
    list_cols = self.datamodel.get_user_columns_list()
    self.list_columns = (self.list_columns or [list_cols[0]])
    self._gen_labels_columns(self.list_columns)
    self.order_columns = (self.order_columns or self.datamodel.get_order_columns_list(list_columns=self.list_columns))
    if self.show_fieldsets:
        self.show_columns = []
        for fieldset_item in self.show_fieldsets:
            self.show_columns = (self.show_columns + list(fieldset_item[1].get('fields')))
    elif (not self.show_columns):
        self.show_columns = [x for x in list_cols if (x not in self.show_exclude_columns)]
    if self.add_fieldsets:
        self.add_columns = []
        for fieldset_item in self.add_fieldsets:
            self.add_columns = (self.add_columns + list(fieldset_item[1].get('fields')))
    elif (not self.add_columns):
        self.add_columns = [x for x in list_cols if (x not in self.add_exclude_columns)]
    if self.edit_fieldsets:
        self.edit_columns = []
        for fieldset_item in self.edit_fieldsets:
            self.edit_columns = (self.edit_columns + list(fieldset_item[1].get('fields')))
    elif (not self.edit_columns):
        self.edit_columns = [x for x in list_cols if (x not in self.edit_exclude_columns)]
