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
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
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
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