forked from CGM_Public/pretix_original
Add add-ons to ticket editor
This commit is contained in:
@@ -165,7 +165,8 @@ var editor = {
|
|||||||
"event_admission_time": gettext("19:00"),
|
"event_admission_time": gettext("19:00"),
|
||||||
"event_begin": gettext("2017-05-31 20:00"),
|
"event_begin": gettext("2017-05-31 20:00"),
|
||||||
"event_admission": gettext("2017-05-31 19:00"),
|
"event_admission": gettext("2017-05-31 19:00"),
|
||||||
"event_location": gettext("Random City")
|
"event_location": gettext("Random City"),
|
||||||
|
"addons": gettext("Addon 1\nAddon 2"),
|
||||||
},
|
},
|
||||||
|
|
||||||
_load_pdf: function (dump) {
|
_load_pdf: function (dump) {
|
||||||
|
|||||||
@@ -272,6 +272,7 @@
|
|||||||
<option value="event_admission">{% trans "Event admission date and time" %}</option>
|
<option value="event_admission">{% trans "Event admission date and time" %}</option>
|
||||||
<option value="event_admission_time">{% trans "Event admission time" %}</option>
|
<option value="event_admission_time">{% trans "Event admission time" %}</option>
|
||||||
<option value="event_location">{% trans "Event location" %}</option>
|
<option value="event_location">{% trans "Event location" %}</option>
|
||||||
|
<option value="addons">{% trans "List of Add-Ons" %}</option>
|
||||||
<option value="other">{% trans "Other…" %}</option>
|
<option value="other">{% trans "Other…" %}</option>
|
||||||
</select>
|
</select>
|
||||||
<textarea type="text" value="" class="input-block-level form-control"
|
<textarea type="text" value="" class="input-block-level form-control"
|
||||||
|
|||||||
@@ -97,6 +97,11 @@ class PdfTicketOutput(BaseTicketOutput):
|
|||||||
if order.event.date_admission:
|
if order.event.date_admission:
|
||||||
tz = timezone(order.event.settings.timezone)
|
tz = timezone(order.event.settings.timezone)
|
||||||
return date_format(order.event.date_admission.astimezone(tz), "TIME_FORMAT")
|
return date_format(order.event.date_admission.astimezone(tz), "TIME_FORMAT")
|
||||||
|
elif o['content'] == 'addons':
|
||||||
|
return "<br/>".join([
|
||||||
|
'{} - {}'.format(p.item, p.variation) if p.variation else str(p.item)
|
||||||
|
for p in op.addons.select_related('item', 'variation')
|
||||||
|
])
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
def _draw_textarea(self, canvas: Canvas, op: OrderPosition, order: Order, o: dict):
|
def _draw_textarea(self, canvas: Canvas, op: OrderPosition, order: Order, o: dict):
|
||||||
@@ -228,7 +233,7 @@ class PdfTicketOutput(BaseTicketOutput):
|
|||||||
{"type": "textarea", "left": "17.50", "bottom": "242.10", "fontsize": "13.0", "color": [0, 0, 0, 1],
|
{"type": "textarea", "left": "17.50", "bottom": "242.10", "fontsize": "13.0", "color": [0, 0, 0, 1],
|
||||||
"fontfamily": "Open Sans", "bold": False, "italic": False, "width": "110.00", "content": "event_date",
|
"fontfamily": "Open Sans", "bold": False, "italic": False, "width": "110.00", "content": "event_date",
|
||||||
"text": "May 31st, 2017", "align": "left"},
|
"text": "May 31st, 2017", "align": "left"},
|
||||||
{"type": "textarea", "left": "17.50", "bottom": "234.30", "fontsize": "13.0", "color": [0, 0, 0, 1],
|
{"type": "textarea", "left": "17.50", "bottom": "204.80", "fontsize": "13.0", "color": [0, 0, 0, 1],
|
||||||
"fontfamily": "Open Sans", "bold": False, "italic": False, "width": "110.00", "content": "event_location",
|
"fontfamily": "Open Sans", "bold": False, "italic": False, "width": "110.00", "content": "event_location",
|
||||||
"text": "Random City", "align": "left"},
|
"text": "Random City", "align": "left"},
|
||||||
{"type": "textarea", "left": "17.50", "bottom": "194.50", "fontsize": "13.0", "color": [0, 0, 0, 1],
|
{"type": "textarea", "left": "17.50", "bottom": "194.50", "fontsize": "13.0", "color": [0, 0, 0, 1],
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ class EditorView(EventPermissionRequiredMixin, ChartContainingView, TemplateView
|
|||||||
if "preview" in request.POST:
|
if "preview" in request.POST:
|
||||||
with rolledback_transaction(), language(request.event.settings.locale):
|
with rolledback_transaction(), language(request.event.settings.locale):
|
||||||
item = request.event.items.create(name=_("Sample product"), default_price=42.23)
|
item = request.event.items.create(name=_("Sample product"), default_price=42.23)
|
||||||
|
item2 = request.event.items.create(name=_("Sample workshop"), default_price=23.40)
|
||||||
|
|
||||||
from pretix.base.models import Order
|
from pretix.base.models import Order
|
||||||
order = request.event.orders.create(status=Order.STATUS_PENDING, datetime=now(),
|
order = request.event.orders.create(status=Order.STATUS_PENDING, datetime=now(),
|
||||||
@@ -92,6 +93,8 @@ class EditorView(EventPermissionRequiredMixin, ChartContainingView, TemplateView
|
|||||||
expires=now(), code="PREVIEW1234", total=119)
|
expires=now(), code="PREVIEW1234", total=119)
|
||||||
|
|
||||||
p = order.positions.create(item=item, attendee_name=_("John Doe"), price=item.default_price)
|
p = order.positions.create(item=item, attendee_name=_("John Doe"), price=item.default_price)
|
||||||
|
order.positions.create(item=item2, attendee_name=_("John Doe"), price=item.default_price, addon_to=p)
|
||||||
|
order.positions.create(item=item2, attendee_name=_("John Doe"), price=item.default_price, addon_to=p)
|
||||||
|
|
||||||
prov = PdfTicketOutput(request.event,
|
prov = PdfTicketOutput(request.event,
|
||||||
override_layout=(json.loads(request.POST.get("data"))
|
override_layout=(json.loads(request.POST.get("data"))
|
||||||
|
|||||||
Reference in New Issue
Block a user