@property
    def _tabular_column_list(self):
        column_list          = []
        excluded_column_list = []
        virtual_column_list  = []
        state = self.state
        # set priorities
        column_list_priorities          = []
        excluded_column_list_priorities = []
        virtual_column_list_priorities  = []
        if state == 'insert':
            column_list_priorities          = [self.__tabular_insert_column__, self.__tabular_form_column__, self.__tabular_shown_column__]
            excluded_column_list_priorities = [self.__tabular_excluded_insert_column__, self.__tabular_excluded_form_column__]
            virtual_column_list_priorities  = [self.__tabular_virtual_insert_column__, self.__tabular_virtual_form_column__]
        elif state == 'update':
            column_list_priorities          = [self.__tabular_update_column__, self.__tabular_form_column__, self.__tabular_shown_column__]
            excluded_column_list_priorities = [self.__tabular_excluded_update_column__, self.__tabular_excluded_form_column__]
            virtual_column_list_priorities  = [self.__tabular_virtual_update_column__, self.__tabular_virtual_form_column__]
        else:
            column_list_priorities          = [self.__tabular_shown_column__]
            excluded_column_list_priorities = [self.__tabular_excluded_shown_column__]
            virtual_column_list_priorities  = [self.__tabular_virtual_shown_column__]
        # assign default value to column_list
        for config_list in column_list_priorities:
            if config_list is not None:
                column_list = config_list
                break
        if len(column_list) == 0:
            column_list = self._column_list
        # add virtual_columns
        for config_list in virtual_column_list_priorities:
            if config_list is not None:
                virtual_column_list = config_list
                break
        column_list += virtual_column_list
        # remove excluded_columns
        for config_list in excluded_column_list_priorities:
            if config_list is not None:
                excluded_column_list = config_list
                break
        for column_name in excluded_column_list:
            if column_name in column_list:
                column_list.remove(column_name)
        return column_list
dataset/ETHPy150Open goFrendiAsgard/kokoropy/kokoropy/model.py/DB_Model._tabular_column_list/original