Ejemplo n.º 1
0
    def _load_fields_map(self, rest):
        '''List of column definitions
        '''
        fields = self._fields
        fields.db_columns = get_columns(self.db_model())._data
        cols = fields.db_columns.copy()

        def _set_field(field):
            if field.name in fields.hidden:
                field.hidden = True
            if is_rel_field(field) and field.field:
                fields.add_exclude(field.field)
            rest[field.name] = field

        # process input columns first
        for info in fields.include:
            col = RestField.make(info)
            if col.name not in rest:
                dbcol = cols.pop(col.name, None)
                # If a database column
                if isinstance(dbcol, Column):
                    info = column_info(col.name, dbcol)
                    info.update(col.tojson())
                    col = RestField.make(info)
                _set_field(col)

        for name, col in cols.items():
            if name not in rest:
                _set_field(RestField.make(column_info(name, col)))

        return rest
Ejemplo n.º 2
0
    def _load_fields_map(self, rest):
        '''List of column definitions
        '''
        fields = self._fields
        fields.db_columns = get_columns(self.db_model())._data
        cols = fields.db_columns.copy()

        def _set_field(field):
            if field.name in fields.hidden:
                field.hidden = True
            if is_rel_field(field) and field.field:
                fields.add_exclude(field.field)
            rest[field.name] = field

        # process input columns first
        for info in fields.include:
            col = RestField.make(info)
            if col.name not in rest:
                dbcol = cols.pop(col.name, None)
                # If a database column
                if isinstance(dbcol, Column):
                    info = column_info(col.name, dbcol)
                    info.update(col.tojson())
                    col = RestField.make(info)
                _set_field(col)

        for name, col in cols.items():
            if name not in rest:
                _set_field(RestField.make(column_info(name, col)))

        return rest
Ejemplo n.º 3
0
    def _load_columns(self, app):
        '''List of column definitions
        '''
        model = self.db_model()
        self._db_columns = get_columns(model)
        self._rest_columns = {}
        input_columns = self._columns or []
        cols = self._db_columns._data.copy()
        columns = []

        for info in input_columns:
            col = RestColumn.make(info)
            if col.name not in self._rest_columns:
                dbcol = cols.pop(col.name, None)
                # If a database column
                if isinstance(dbcol, Column):
                    info = column_info(col.name, dbcol)
                    info.update(col.as_dict(defaults=False))
                else:
                    info = col.as_dict()
                self._append_col(col, columns, info)

        for name, col in cols.items():
            if name not in self._rest_columns:
                self._append_col(col, columns, column_info(name, col))

        return columns
Ejemplo n.º 4
0
    def _load_columns(self, app):
        '''List of column definitions
        '''
        model = self.db_model()
        self._db_columns = get_columns(model)
        self._rest_columns = {}
        input_columns = self._columns or []
        cols = self._db_columns._data.copy()
        columns = []

        for info in input_columns:
            col = RestColumn.make(info)
            if col.name not in self._rest_columns:
                dbcol = cols.pop(col.name, None)
                # If a database column
                if isinstance(dbcol, Column):
                    info = column_info(col.name, dbcol)
                    info.update(col.as_dict(defaults=False))
                else:
                    info = col.as_dict()
                self._append_col(col, columns, info)

        for name, col in cols.items():
            if name not in self._rest_columns:
                self._append_col(col, columns, column_info(name, col))

        return columns