var $column = $(e.currentTarget);
var col_name = $column.data('id');
var field = this.fields_view.fields[col_name];
- // test if the field is a function field with store=false, since it's impossible
- // for the server to sort those fields we desactivate the feature
- if (field && field.store === false) {
+ // test whether the field is sortable
+ if (field && !field.sortable) {
return false;
}
this.dataset.sort(col_name);
self.compute = self._compute_related
self.inverse = self._inverse_related
if field._description_searchable(env):
+ # allow searching on self only if the related field is searchable
self.search = self._search_related
# copy attributes from field to self (string, help, etc.)
bool(getattr(column, '_fnct_search', False))
return bool(self.search)
+ def _description_sortable(self, env):
+ if self.store:
+ column = env[self.model_name]._columns.get(self.name)
+ return bool(getattr(column, 'store', True))
+ if self.inherited:
+ # self is sortable if the inherited field is itself sortable
+ return self.related_field._description_sortable(env)
+ return False
+
_description_manual = property(attrgetter('manual'))
_description_depends = property(attrgetter('depends'))
_description_related = property(attrgetter('related'))