mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Cleaned up view constructors to accept just a datasette instance
This commit is contained in:
parent
d08faa8987
commit
71b46fd9f5
4 changed files with 5 additions and 14 deletions
|
|
@ -42,7 +42,7 @@ class DatasetteError(Exception):
|
||||||
class RenderMixin(HTTPMethodView):
|
class RenderMixin(HTTPMethodView):
|
||||||
|
|
||||||
def render(self, templates, **context):
|
def render(self, templates, **context):
|
||||||
template = self.jinja_env.select_template(templates)
|
template = self.ds.jinja_env.select_template(templates)
|
||||||
select_templates = [
|
select_templates = [
|
||||||
"{}{}".format("*" if template_name == template.name else "", template_name)
|
"{}{}".format("*" if template_name == template.name else "", template_name)
|
||||||
for template_name in templates
|
for template_name in templates
|
||||||
|
|
@ -66,11 +66,6 @@ class BaseView(RenderMixin):
|
||||||
|
|
||||||
def __init__(self, datasette):
|
def __init__(self, datasette):
|
||||||
self.ds = datasette
|
self.ds = datasette
|
||||||
self.files = datasette.files
|
|
||||||
self.jinja_env = datasette.jinja_env
|
|
||||||
self.executor = datasette.executor
|
|
||||||
self.page_size = datasette.page_size
|
|
||||||
self.max_returned_rows = datasette.max_returned_rows
|
|
||||||
|
|
||||||
def table_metadata(self, database, table):
|
def table_metadata(self, database, table):
|
||||||
"Fetch table-specific metadata."
|
"Fetch table-specific metadata."
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,6 @@ class IndexView(RenderMixin):
|
||||||
|
|
||||||
def __init__(self, datasette):
|
def __init__(self, datasette):
|
||||||
self.ds = datasette
|
self.ds = datasette
|
||||||
self.files = datasette.files
|
|
||||||
self.jinja_env = datasette.jinja_env
|
|
||||||
self.executor = datasette.executor
|
|
||||||
|
|
||||||
async def get(self, request, as_format):
|
async def get(self, request, as_format):
|
||||||
databases = []
|
databases = []
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ from .base import RenderMixin
|
||||||
class JsonDataView(RenderMixin):
|
class JsonDataView(RenderMixin):
|
||||||
def __init__(self, datasette, filename, data_callback):
|
def __init__(self, datasette, filename, data_callback):
|
||||||
self.ds = datasette
|
self.ds = datasette
|
||||||
self.jinja_env = datasette.jinja_env
|
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
self.data_callback = data_callback
|
self.data_callback = data_callback
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -466,7 +466,7 @@ class TableView(RowTableShared):
|
||||||
page_size = _size or request.raw_args.get("_size")
|
page_size = _size or request.raw_args.get("_size")
|
||||||
if page_size:
|
if page_size:
|
||||||
if page_size == "max":
|
if page_size == "max":
|
||||||
page_size = self.max_returned_rows
|
page_size = self.ds.max_returned_rows
|
||||||
try:
|
try:
|
||||||
page_size = int(page_size)
|
page_size = int(page_size)
|
||||||
if page_size < 0:
|
if page_size < 0:
|
||||||
|
|
@ -475,14 +475,14 @@ class TableView(RowTableShared):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise DatasetteError("_size must be a positive integer", status=400)
|
raise DatasetteError("_size must be a positive integer", status=400)
|
||||||
|
|
||||||
if page_size > self.max_returned_rows:
|
if page_size > self.ds.max_returned_rows:
|
||||||
raise DatasetteError(
|
raise DatasetteError(
|
||||||
"_size must be <= {}".format(self.max_returned_rows), status=400
|
"_size must be <= {}".format(self.ds.max_returned_rows), status=400
|
||||||
)
|
)
|
||||||
|
|
||||||
extra_args["page_size"] = page_size
|
extra_args["page_size"] = page_size
|
||||||
else:
|
else:
|
||||||
page_size = self.page_size
|
page_size = self.ds.page_size
|
||||||
|
|
||||||
sql = "select {select} from {table_name} {where}{order_by}limit {limit}{offset}".format(
|
sql = "select {select} from {table_name} {where}{order_by}limit {limit}{offset}".format(
|
||||||
select=select,
|
select=select,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue