mirror of
https://github.com/pretix/pretix.git
synced 2026-05-09 15:54:03 +00:00
Add new signal pretix.control.signals.order_search_filter_q
This commit is contained in:
@@ -49,8 +49,8 @@ Backend
|
|||||||
|
|
||||||
.. automodule:: pretix.control.signals
|
.. automodule:: pretix.control.signals
|
||||||
:members: nav_event, html_head, html_page_start, quota_detail_html, nav_topbar, nav_global, nav_organizer, nav_event_settings,
|
:members: nav_event, html_head, html_page_start, quota_detail_html, nav_topbar, nav_global, nav_organizer, nav_event_settings,
|
||||||
order_info, event_settings_widget, oauth_application_registered, order_position_buttons, subevent_forms, item_formsets
|
order_info, event_settings_widget, oauth_application_registered, order_position_buttons, subevent_forms,
|
||||||
|
item_formsets, order_search_filter_q
|
||||||
|
|
||||||
.. automodule:: pretix.base.signals
|
.. automodule:: pretix.base.signals
|
||||||
:members: logentry_display, logentry_object_link, requiredaction_display, timeline_events
|
:members: logentry_display, logentry_object_link, requiredaction_display, timeline_events
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ from pretix.base.models import (
|
|||||||
)
|
)
|
||||||
from pretix.base.signals import register_payment_providers
|
from pretix.base.signals import register_payment_providers
|
||||||
from pretix.control.forms.widgets import Select2
|
from pretix.control.forms.widgets import Select2
|
||||||
|
from pretix.control.signals import order_search_filter_q
|
||||||
from pretix.helpers.database import FixedOrderBy, rolledback_transaction
|
from pretix.helpers.database import FixedOrderBy, rolledback_transaction
|
||||||
from pretix.helpers.i18n import i18ncomp
|
from pretix.helpers.i18n import i18ncomp
|
||||||
|
|
||||||
@@ -139,7 +140,7 @@ class OrderFilterForm(FilterForm):
|
|||||||
)
|
)
|
||||||
).values('id')
|
).values('id')
|
||||||
|
|
||||||
qs = qs.annotate(has_pos=Exists(matching_positions)).filter(
|
mainq = (
|
||||||
code
|
code
|
||||||
| Q(email__icontains=u)
|
| Q(email__icontains=u)
|
||||||
| Q(invoice_address__name_cached__icontains=u)
|
| Q(invoice_address__name_cached__icontains=u)
|
||||||
@@ -148,6 +149,11 @@ class OrderFilterForm(FilterForm):
|
|||||||
| Q(comment__icontains=u)
|
| Q(comment__icontains=u)
|
||||||
| Q(has_pos=True)
|
| Q(has_pos=True)
|
||||||
)
|
)
|
||||||
|
for recv, q in order_search_filter_q.send(sender=getattr(self, 'event', None), query=u):
|
||||||
|
mainq = mainq | q
|
||||||
|
qs = qs.annotate(has_pos=Exists(matching_positions)).filter(
|
||||||
|
mainq
|
||||||
|
)
|
||||||
|
|
||||||
if fdata.get('status'):
|
if fdata.get('status'):
|
||||||
s = fdata.get('status')
|
s = fdata.get('status')
|
||||||
|
|||||||
@@ -301,3 +301,14 @@ oauth_application_registered = Signal(
|
|||||||
"""
|
"""
|
||||||
This signal will be called whenever a user registers a new OAuth application.
|
This signal will be called whenever a user registers a new OAuth application.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
order_search_filter_q = Signal(
|
||||||
|
providing_args=["query"]
|
||||||
|
)
|
||||||
|
"""
|
||||||
|
This signal will be called whenever a free-text order search is performed. You are expected to return one
|
||||||
|
Q object that will be OR-ed with existing search queries. As order search exists on a global level as well,
|
||||||
|
this is not an Event signal and will be called even if your plugin is not active. ``sender`` will contain the
|
||||||
|
event if the search is performed within an event, and ``None`` otherwise. The search query will be passed as
|
||||||
|
``query``.
|
||||||
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user