From 3a6ced388a46c9d340cdbed4c97c6706a63b6241 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Tue, 7 Apr 2020 13:44:13 -0500 Subject: [PATCH] Allow the home page to include quickie search make it easier for any "non-master" view to do so --- tailbone/views/common.py | 11 ++++++++++- tailbone/views/core.py | 18 ++++++++++++++++++ tailbone/views/master.py | 8 +------- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/tailbone/views/common.py b/tailbone/views/common.py index a118de7e..1ceb9e3f 100644 --- a/tailbone/views/common.py +++ b/tailbone/views/common.py @@ -65,7 +65,16 @@ class CommonView(View): image_url = self.rattail_config.get( 'tailbone', 'main_image_url', default=self.request.static_url('tailbone:static/img/home_logo.png')) - return {'image_url': image_url, 'use_buefy': self.get_use_buefy()} + + context = { + 'image_url': image_url, + 'use_buefy': self.get_use_buefy(), + } + + if self.expose_quickie_search: + context['quickie'] = self.get_quickie_context() + + return context def robots_txt(self): """ diff --git a/tailbone/views/core.py b/tailbone/views/core.py index 79a6c797..a3152a8b 100644 --- a/tailbone/views/core.py +++ b/tailbone/views/core.py @@ -31,6 +31,7 @@ import os import six from rattail.db import model +from rattail.core import Object from rattail.util import progress_loop from pyramid import httpexceptions @@ -48,6 +49,8 @@ class View(object): """ Base class for all class-based views. """ + # quickie (search) + expose_quickie_search = False def __init__(self, request, context=None): self.request = request @@ -154,3 +157,18 @@ class View(object): filename = filename.encode('ascii', 'replace') response.content_disposition = str('attachment; filename="{}"'.format(filename)) return response + + def get_quickie_context(self): + return Object( + url=self.get_quickie_url(), + perm=self.get_quickie_perm(), + placeholder=self.get_quickie_placeholder()) + + def get_quickie_url(self): + raise NotImplementedError + + def get_quickie_perm(self): + raise NotImplementedError + + def get_quickie_placeholder(self): + pass diff --git a/tailbone/views/master.py b/tailbone/views/master.py index d7bc8bdb..a263ffce 100644 --- a/tailbone/views/master.py +++ b/tailbone/views/master.py @@ -41,7 +41,6 @@ from sqlalchemy_utils.functions import get_primary_keys, get_columns from rattail.db import model, Session as RattailSession from rattail.db.continuum import model_transaction_query -from rattail.core import Object from rattail.util import prettify, OrderedDict, simple_error from rattail.time import localtime from rattail.threads import Thread @@ -105,7 +104,6 @@ class MasterView(View): # quickie (search) supports_quickie_search = False - expose_quickie_search = False # set to True to declare model as "contact" is_contact = False @@ -2327,11 +2325,7 @@ class MasterView(View): } if self.expose_quickie_search: - context['quickie'] = Object( - url=self.get_quickie_url(), - perm=self.get_quickie_perm(), - placeholder=self.get_quickie_placeholder(), - ) + context['quickie'] = self.get_quickie_context() if self.grid_index: context['grid_count'] = self.grid_count