diff --git a/caravel/models.py b/caravel/models.py index 1fc927981f1d..aec3d11f5782 100644 --- a/caravel/models.py +++ b/caravel/models.py @@ -873,7 +873,7 @@ def perm(self): return ( "{parent_name}.[{obj.metric_name}](id:{obj.id})" ).format(obj=self, - parent_name=self.table.full_name) + parent_name=self.table.full_name) if self.table else None class TableColumn(Model, AuditMixinNullable): @@ -1372,7 +1372,9 @@ def perm(self): return ( "{parent_name}.[{obj.metric_name}](id:{obj.id})" ).format(obj=self, - parent_name=self.datasource.full_name) + parent_name=self.datasource.full_name + ) if self.datasource else None + class DruidColumn(Model, AuditMixinNullable): diff --git a/caravel/utils.py b/caravel/utils.py index 5b59e4d0f584..6ac360cbc5f9 100644 --- a/caravel/utils.py +++ b/caravel/utils.py @@ -228,7 +228,7 @@ def init_metrics_perm(caravel, metrics=None): for model in [models.SqlMetric, models.DruidMetric]: metrics += list(db.session.query(model).all()) - metric_perms = [metric.perm for metric in metrics] + metric_perms = filter(None, [metric.perm for metric in metrics]) for metric_perm in metric_perms: merge_perm(sm, 'metric_access', metric_perm)