Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
class ListQueryResult(QueryResult):
_type = "list"
class GalleryQueryResult(QueryResult):
_type = "gallery"
COLLECTION_VIEW_TYPES = {
cls._type: cls
for cls in locals().values()
if type(cls) == type and issubclass(cls, CollectionView) and hasattr(cls, "_type")
}
QUERY_RESULT_TYPES = {
cls._type: cls
for cls in locals().values()
if type(cls) == type and issubclass(cls, QueryResult) and hasattr(cls, "_type")
}
block_id, view_id = match.groups()
collection = self.get_block(
block_id, force_refresh=force_refresh
).collection
else:
view_id = url_or_id
assert (
collection is not None
), "If 'url_or_id' is an ID (not a URL), you must also pass the 'collection'"
view = self.get_record_data(
"collection_view", view_id, force_refresh=force_refresh
)
return (
COLLECTION_VIEW_TYPES.get(view.get("type", ""), CollectionView)(
self, view_id, collection=collection
)
if view
else None
)
_table = "collection_view"
def __init__(self, *args, collection, **kwargs):
self.collection = collection
super().__init__(*args, **kwargs)
def build_query(self, **kwargs):
return CollectionQuery(
collection=self.collection, collection_view=self, **kwargs
)
def default_query(self):
return self.build_query(**self.get("query", {}))
class BoardView(CollectionView):
_type = "board"
group_by = field_map("query.group_by")
class TableView(CollectionView):
_type = "table"
class ListView(CollectionView):
_type = "list"
return CollectionQuery(
collection=self.collection, collection_view=self, **kwargs
)
def default_query(self):
return self.build_query(**self.get("query", {}))
class BoardView(CollectionView):
_type = "board"
group_by = field_map("query.group_by")
class TableView(CollectionView):
_type = "table"
class ListView(CollectionView):
_type = "list"
class CalendarView(CollectionView):
_type = "calendar"
def build_query(self, **kwargs):
calendar_by = self._client.get_record_data("collection_view", self._id)[
"query"
_type = "list"
class CalendarView(CollectionView):
_type = "calendar"
def build_query(self, **kwargs):
calendar_by = self._client.get_record_data("collection_view", self._id)[
"query"
]["calendar_by"]
return super().build_query(calendar_by=calendar_by, **kwargs)
class GalleryView(CollectionView):
_type = "gallery"
def _normalize_property_name(prop_name, collection):
if not prop_name:
return ""
else:
prop = collection.get_schema_property(prop_name)
if not prop:
return ""
return prop["id"]
def _normalize_query_list(query_list, collection):
query_list = deepcopy(query_list)
return self.build_query(**self.get("query", {}))
class BoardView(CollectionView):
_type = "board"
group_by = field_map("query.group_by")
class TableView(CollectionView):
_type = "table"
class ListView(CollectionView):
_type = "list"
class CalendarView(CollectionView):
_type = "calendar"
def build_query(self, **kwargs):
calendar_by = self._client.get_record_data("collection_view", self._id)[
"query"
]["calendar_by"]
return super().build_query(calendar_by=calendar_by, **kwargs)
class GalleryView(CollectionView):
_type = "board"
group_by = field_map("query.group_by")
class TableView(CollectionView):
_type = "table"
class ListView(CollectionView):
_type = "list"
class CalendarView(CollectionView):
_type = "calendar"
def build_query(self, **kwargs):
calendar_by = self._client.get_record_data("collection_view", self._id)[
"query"
]["calendar_by"]
return super().build_query(calendar_by=calendar_by, **kwargs)
class GalleryView(CollectionView):
_type = "gallery"
def _normalize_property_name(prop_name, collection):