Skip to content

Commit

Permalink
gamma: filter slices available for dashboards in DashboardModelView
Browse files Browse the repository at this point in the history
Refs #359
  • Loading branch information
xrmx committed Aug 5, 2016
1 parent 8df2924 commit d94c961
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions caravel/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,14 @@ def apply(self, query, func): # noqa
return query


class FilterDashboardSlices(CaravelFilter):
def apply(self, query, value): # noqa
if any([r.name in ('Admin', 'Alpha') for r in get_user_roles()]):
return query
qry = query.filter(self.model.perm.in_(self.get_perms()))
return qry


def validate_json(form, field): # noqa
try:
json.loads(field.data)
Expand Down Expand Up @@ -666,6 +674,8 @@ class DashboardModelView(CaravelModelView, DeleteMixin): # noqa
'owners': _("Owners is a list of users who can alter the dashboard."),
}
base_filters = [['slice', FilterDashboard, lambda: []]]
add_form_query_rel_fields = {'slices': [['slices', FilterDashboardSlices, None]]}
edit_form_query_rel_fields = {'slices': [['slices', FilterDashboardSlices, None]]}
label_columns = {
'dashboard_link': _("Dashboard"),
'dashboard_title': _("Title"),
Expand Down

0 comments on commit d94c961

Please sign in to comment.