def _get_label(self, name, field_args): """ Label for field name. If it is not specified explicitly, then the views prettify_name method is used to find it. :param field_args: Dictionary with additional field arguments """ if 'label' in field_args: return field_args['label'] column_labels = get_property(self.view, 'column_labels', 'rename_columns') if column_labels and name in column_labels: return column_labels.get(name) prettify_override = getattr(self.view, 'prettify_name', None) if prettify_override: return prettify_override(name) return prettify_name(name)
def _get_label(self, name, field_args): """ Label for field name. If it is not specified explicitly, then the views prettify_name method is used to find it. :param field_args: Dictionary with additional field arguments """ if 'label' in field_args: return field_args['label'] column_labels = get_property(self.view, 'column_labels', 'rename_columns') if column_labels: return column_labels.get(name) prettify_override = getattr(self.view, 'prettify_name', None) if prettify_override: return prettify_override(name) return prettify_name(name)
def generate_permissions(self): permission_codes = [] for tenant_admin, _ in self.admin._tenant_admins: permission_code = '{}.*'.format(tenant_admin.endpoint) permission_name = prettify_name('{}.all'.format( tenant_admin.endpoint)) permission_codes.append((permission_code, permission_name)) for view in tenant_admin._views: endpoint = view.endpoint if isinstance(view, AdminIndexView): permission_code = '{}.index'.format(tenant_admin.endpoint) permission_name = prettify_name(permission_code) permission_codes.append((permission_code, permission_name)) continue permission_code = '{}.{}.list'.format(tenant_admin.endpoint, endpoint) permission_name = view._prettify_name(permission_code) permission_codes.append((permission_code, permission_name)) for action in view._actions: permission_code = '{}.{}.{}'.format( tenant_admin.endpoint, endpoint, action) permission_name = view._prettify_name(permission_code) permission_codes.append((permission_code, permission_name)) permission_code = '*' permission_name = 'All' permission_codes.append((permission_code, permission_name)) for view in self.admin._views: endpoint = view.endpoint if isinstance(view, AdminIndexView): permission_code = 'index' permission_name = prettify_name(permission_code) permission_codes.append((permission_code, permission_name)) continue permission_code = '{}.list'.format(endpoint) permission_name = view._prettify_name(permission_code) permission_codes.append((permission_code, permission_name)) for action in view._actions: permission_code = '{}.{}'.format(endpoint, action) permission_name = view._prettify_name(permission_code) permission_codes.append((permission_code, permission_name)) for permission_code, permission_name in permission_codes: query = self.Permission.query.filter_by(code=permission_code) permission = query.one_or_none() if permission is None: permission = self.Permission(code=permission_code) self.db.session.add(permission) permission.name = permission_name to_delete_permissions = [] permission_codes = [p[0] for p in permission_codes] for permission in self.Permission.query.all(): if permission.code not in permission_codes: to_delete_permissions.append(permission) for permission in to_delete_permissions: self.db.session.delete(permission) self.db.session.commit()