diff --git a/src/pretix/base/services/stats.py b/src/pretix/base/services/stats.py index 52f4c9870..12a15bd00 100644 --- a/src/pretix/base/services/stats.py +++ b/src/pretix/base/services/stats.py @@ -112,7 +112,7 @@ def dictsum(*dicts) -> dict: def order_overview( event: Event, subevent: SubEvent=None, date_filter='', date_from=None, date_until=None, fees=False, - admission_only=False, base_qs=None, base_fees_qs=None, subevent_date_from=None, subevent_date_until=None + admission_only=False, base_qs=None, base_fees_qs=None, ) -> Tuple[List[Tuple[ItemCategory, List[Item]]], Dict[str, Tuple[Decimal, Decimal]]]: items = event.items.all().select_related( 'category', # for re-grouping @@ -125,11 +125,6 @@ def order_overview( qs = qs.filter(subevent__in=subevent) elif subevent: qs = qs.filter(subevent=subevent) - if subevent_date_from: - qs = qs.filter(subevent__date_from__gte=subevent_date_from) - if subevent_date_until: - qs = qs.filter(subevent__date_from__lt=subevent_date_until) - if admission_only: qs = qs.filter(item__admission=True) items = items.filter(admission=True) @@ -237,7 +232,7 @@ def order_overview( payment_cat_obj.name = _('Fees') payment_items = [] - if subevent is None and not subevent_date_from and not subevent_date_until and fees: + if subevent is None and fees: qs = OrderFee.all if base_fees_qs is None else base_fees_qs qs = qs.filter( order__event=event diff --git a/src/pretix/control/forms/filter.py b/src/pretix/control/forms/filter.py index 7f61baba7..a1fb95357 100644 --- a/src/pretix/control/forms/filter.py +++ b/src/pretix/control/forms/filter.py @@ -57,7 +57,7 @@ from pretix.base.forms.widgets import ( from pretix.base.models import ( Checkin, CheckinList, Device, Event, EventMetaProperty, EventMetaValue, Gate, Invoice, InvoiceAddress, Item, Order, OrderPayment, OrderPosition, - OrderRefund, Organizer, Question, QuestionAnswer, Quota, SubEvent, + OrderRefund, Organizer, Question, QuestionAnswer, SubEvent, SubEventMetaValue, Team, TeamAPIToken, TeamInvite, Voucher, ) from pretix.base.signals import register_payment_providers @@ -591,10 +591,11 @@ class EventOrderExpertFilterForm(EventOrderFilterForm): widget=FilterNullBooleanSelect, label=_('At least one ticket with check-in'), ) - quota = SafeModelChoiceField( - queryset=Quota.objects.none(), - label=_('Affected quota'), + checkin_attention = forms.NullBooleanField( required=False, + widget=FilterNullBooleanSelect, + label=_('Requires special attention'), + help_text=_('Only matches orders with the attention checkbox set directly for the order, not based on the product.'), ) def __init__(self, *args, **kwargs): @@ -679,17 +680,6 @@ class EventOrderExpertFilterForm(EventOrderFilterForm): label=_('Ticket secret'), required=False ) - self.fields['quota'].queryset = self.event.quotas.all() - self.fields['quota'].widget = Select2( - attrs={ - 'data-model-select2': 'generic', - 'data-select2-url': reverse('control:event.items.quotas.select2', kwargs={ - 'event': self.event.slug, - 'organizer': self.event.organizer.slug, - }), - } - ) - self.fields['quota'].widget.choices = self.fields['quota'].choices for q in self.event.questions.all(): self.fields['question_{}'.format(q.pk)] = forms.CharField( label=q.question, @@ -783,12 +773,6 @@ class EventOrderExpertFilterForm(EventOrderFilterForm): qs = qs.filter( all_positions__secret__icontains=fdata.get('ticket_secret') ).distinct() - if fdata.get('quota'): - quota = fdata['quota'] - qs = qs.filter( - Q(all_positions__item__in=quota.items.all(), all_positions__variation__isnull=True) | - Q(all_positions__variation__in=quota.variations.all()) - ).distinct() for q in self.event.questions.all(): if fdata.get(f'question_{q.pk}'): answers = QuestionAnswer.objects.filter( diff --git a/src/pretix/plugins/reports/exporters.py b/src/pretix/plugins/reports/exporters.py index 1ec4e1be1..1a33f6cc3 100644 --- a/src/pretix/plugins/reports/exporters.py +++ b/src/pretix/plugins/reports/exporters.py @@ -296,17 +296,6 @@ class OverviewReport(Report): subevent = self.form_data.get('subevent') story.append(Paragraph(pgettext('subevent', 'Date: {}').format(subevent), self.get_style())) story.append(Spacer(1, 5 * mm)) - - if form_data.get('subevent_date_range'): - d_start, d_end = resolve_timeframe_to_dates_inclusive(now(), form_data['subevent_date_range'], self.timezone) - story += [ - Paragraph(_('{axis} between {start} and {end}').format( - axis=_('Event date'), - start=date_format(d_start, 'SHORT_DATE_FORMAT') if d_start else '–', - end=date_format(d_end, 'SHORT_DATE_FORMAT') if d_end else '–', - ), self.get_style()), - Spacer(1, 5 * mm) - ] return story def _get_data(self, form_data): @@ -314,18 +303,12 @@ class OverviewReport(Report): d_start, d_end = resolve_timeframe_to_dates_inclusive(now(), form_data['date_range'], self.timezone) else: d_start, d_end = None, None - if form_data.get('subevent_date_range'): - sd_start, sd_end = resolve_timeframe_to_dates_inclusive(now(), form_data['subevent_date_range'], self.timezone) - else: - sd_start, sd_end = None, None return order_overview( self.event, subevent=form_data.get('subevent'), date_filter=form_data.get('date_axis'), date_from=d_start, date_until=d_end, - subevent_date_from=sd_start, - subevent_date_until=sd_end, fees=True ) @@ -444,18 +427,9 @@ class OverviewReport(Report): @property def export_form_fields(self) -> dict: f = OverviewFilterForm(event=self.event) - f.fields = OrderedDict(f.fields.items()) del f.fields['ordering'] del f.fields['date_from'] del f.fields['date_until'] - if self.event.has_subevents: - f.fields['subevent_date_range'] = DateFrameField( - label=_('Event date'), - include_future_frames=True, - required=False, - ) - f.fields.move_to_end("subevent_date_range", last=False) - f.fields.move_to_end("subevent", last=False) f.fields['date_range'] = DateFrameField( label=_('Date range'), include_future_frames=False,