mirror of
https://github.com/pretix/pretix.git
synced 2026-02-22 09:22:27 +00:00
Compare commits
1 Commits
error-back
...
export-ove
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70a304d37c |
@@ -112,7 +112,8 @@ def dictsum(*dicts) -> dict:
|
|||||||
|
|
||||||
def order_overview(
|
def order_overview(
|
||||||
event: Event, subevent: SubEvent=None, date_filter='', date_from=None, date_until=None, fees=False,
|
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, subevent_date_from=None, subevent_date_until=None,
|
||||||
|
skip_empty_lines=False,
|
||||||
) -> Tuple[List[Tuple[ItemCategory, List[Item]]], Dict[str, Tuple[Decimal, Decimal]]]:
|
) -> Tuple[List[Tuple[ItemCategory, List[Item]]], Dict[str, Tuple[Decimal, Decimal]]]:
|
||||||
items = event.items.all().select_related(
|
items = event.items.all().select_related(
|
||||||
'category', # for re-grouping
|
'category', # for re-grouping
|
||||||
@@ -205,13 +206,21 @@ def order_overview(
|
|||||||
for l in states.keys():
|
for l in states.keys():
|
||||||
var.num[l] = num[l].get((item.id, variid), (0, 0, 0))
|
var.num[l] = num[l].get((item.id, variid), (0, 0, 0))
|
||||||
var.num['total'] = num['total'].get((item.id, variid), (0, 0, 0))
|
var.num['total'] = num['total'].get((item.id, variid), (0, 0, 0))
|
||||||
|
var._skip = all(v[0] == 0 for v in var.num.values())
|
||||||
for l in states.keys():
|
for l in states.keys():
|
||||||
item.num[l] = tuplesum(var.num[l] for var in item.all_variations)
|
item.num[l] = tuplesum(var.num[l] for var in item.all_variations)
|
||||||
item.num['total'] = tuplesum(var.num['total'] for var in item.all_variations)
|
item.num['total'] = tuplesum(var.num['total'] for var in item.all_variations)
|
||||||
|
if skip_empty_lines:
|
||||||
|
item.all_variations = [v for v in item.all_variations if not v._skip]
|
||||||
|
item._skip = not item.all_variations
|
||||||
else:
|
else:
|
||||||
for l in states.keys():
|
for l in states.keys():
|
||||||
item.num[l] = num[l].get((item.id, None), (0, 0, 0))
|
item.num[l] = num[l].get((item.id, None), (0, 0, 0))
|
||||||
item.num['total'] = num['total'].get((item.id, None), (0, 0, 0))
|
item.num['total'] = num['total'].get((item.id, None), (0, 0, 0))
|
||||||
|
item._skip = all(v[0] == 0 for v in item.num.values())
|
||||||
|
|
||||||
|
if skip_empty_lines:
|
||||||
|
items = [i for i in items if not i._skip]
|
||||||
|
|
||||||
nonecat = ItemCategory(name=_('Uncategorized'))
|
nonecat = ItemCategory(name=_('Uncategorized'))
|
||||||
# Regroup those by category
|
# Regroup those by category
|
||||||
|
|||||||
@@ -337,7 +337,8 @@ class OverviewReport(Report):
|
|||||||
date_until=d_end,
|
date_until=d_end,
|
||||||
subevent_date_from=sd_start,
|
subevent_date_from=sd_start,
|
||||||
subevent_date_until=sd_end,
|
subevent_date_until=sd_end,
|
||||||
fees=True
|
fees=True,
|
||||||
|
skip_empty_lines=form_data.get("skip_empty_lines")
|
||||||
)
|
)
|
||||||
|
|
||||||
def _table_story(self, doc, form_data, net=False):
|
def _table_story(self, doc, form_data, net=False):
|
||||||
@@ -478,6 +479,10 @@ class OverviewReport(Report):
|
|||||||
'Use the "Accounting report" in the export section instead.'
|
'Use the "Accounting report" in the export section instead.'
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
|
f.fields['skip_empty_lines'] = forms.BooleanField(
|
||||||
|
label=_("Skip empty lines"),
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
return f.fields
|
return f.fields
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user