mirror of
https://github.com/pretix/pretix.git
synced 2026-05-08 15:44:02 +00:00
Widget: Expose variations filter in JavaScript
This commit is contained in:
@@ -224,12 +224,12 @@ class WidgetAPIProductList(EventListMixin, View):
|
|||||||
def _get_items(self):
|
def _get_items(self):
|
||||||
qs = self.request.event.items
|
qs = self.request.event.items
|
||||||
if 'items' in self.request.GET:
|
if 'items' in self.request.GET:
|
||||||
qs = qs.filter(pk__in=[pk for pk in self.request.GET.get('items').split(",") if pk.isdigit()])
|
qs = qs.filter(pk__in=[pk.strip() for pk in self.request.GET.get('items').split(",") if pk.strip().isdigit()])
|
||||||
if 'categories' in self.request.GET:
|
if 'categories' in self.request.GET:
|
||||||
qs = qs.filter(category__pk__in=[pk for pk in self.request.GET.get('categories').split(",") if pk.isdigit()])
|
qs = qs.filter(category__pk__in=[pk.strip() for pk in self.request.GET.get('categories').split(",") if pk.strip().isdigit()])
|
||||||
variation_filter = None
|
variation_filter = None
|
||||||
if 'variations' in self.request.GET:
|
if 'variations' in self.request.GET:
|
||||||
variation_filter = [int(pk) for pk in self.request.GET.get('variations').split(",") if pk.isdigit()]
|
variation_filter = [int(pk.strip()) for pk in self.request.GET.get('variations').split(",") if pk.strip().isdigit()]
|
||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
pk__in=ItemVariation.objects.filter(
|
pk__in=ItemVariation.objects.filter(
|
||||||
item__event=self.request.event,
|
item__event=self.request.event,
|
||||||
|
|||||||
@@ -1398,6 +1398,9 @@ var shared_root_methods = {
|
|||||||
if (this.$root.category_filter) {
|
if (this.$root.category_filter) {
|
||||||
url += '&categories=' + encodeURIComponent(this.$root.category_filter);
|
url += '&categories=' + encodeURIComponent(this.$root.category_filter);
|
||||||
}
|
}
|
||||||
|
if (this.$root.variation_filter) {
|
||||||
|
url += '&variations=' + encodeURIComponent(this.$root.variation_filter);
|
||||||
|
}
|
||||||
var cart_id = getCookie(this.cookieName);
|
var cart_id = getCookie(this.cookieName);
|
||||||
if (this.$root.voucher_code) {
|
if (this.$root.voucher_code) {
|
||||||
url += '&voucher=' + encodeURIComponent(this.$root.voucher_code);
|
url += '&voucher=' + encodeURIComponent(this.$root.voucher_code);
|
||||||
@@ -1464,7 +1467,7 @@ var shared_root_methods = {
|
|||||||
root.error = data.error;
|
root.error = data.error;
|
||||||
root.display_add_to_cart = data.display_add_to_cart;
|
root.display_add_to_cart = data.display_add_to_cart;
|
||||||
root.waiting_list_enabled = data.waiting_list_enabled;
|
root.waiting_list_enabled = data.waiting_list_enabled;
|
||||||
root.show_variations_expanded = data.show_variations_expanded;
|
root.show_variations_expanded = data.show_variations_expanded || !!root.variation_filter;
|
||||||
root.cart_id = cart_id;
|
root.cart_id = cart_id;
|
||||||
root.cart_exists = data.cart_exists;
|
root.cart_exists = data.cart_exists;
|
||||||
root.vouchers_exist = data.vouchers_exist;
|
root.vouchers_exist = data.vouchers_exist;
|
||||||
@@ -1665,6 +1668,7 @@ var create_widget = function (element) {
|
|||||||
var widget_data = JSON.parse(JSON.stringify(window.PretixWidget.widget_data));
|
var widget_data = JSON.parse(JSON.stringify(window.PretixWidget.widget_data));
|
||||||
var filter = element.attributes.filter ? element.attributes.filter.value : null;
|
var filter = element.attributes.filter ? element.attributes.filter.value : null;
|
||||||
var items = element.attributes.items ? element.attributes.items.value : null;
|
var items = element.attributes.items ? element.attributes.items.value : null;
|
||||||
|
var variations = element.attributes.variations ? element.attributes.variations.value : null;
|
||||||
var categories = element.attributes.categories ? element.attributes.categories.value : null;
|
var categories = element.attributes.categories ? element.attributes.categories.value : null;
|
||||||
for (var i = 0; i < element.attributes.length; i++) {
|
for (var i = 0; i < element.attributes.length; i++) {
|
||||||
var attrib = element.attributes[i];
|
var attrib = element.attributes[i];
|
||||||
@@ -1696,10 +1700,11 @@ var create_widget = function (element) {
|
|||||||
filter: filter,
|
filter: filter,
|
||||||
item_filter: items,
|
item_filter: items,
|
||||||
category_filter: categories,
|
category_filter: categories,
|
||||||
|
variation_filter: variations,
|
||||||
voucher_code: voucher,
|
voucher_code: voucher,
|
||||||
display_net_prices: false,
|
display_net_prices: false,
|
||||||
voucher_explanation_text: null,
|
voucher_explanation_text: null,
|
||||||
show_variations_expanded: false,
|
show_variations_expanded: !!variations,
|
||||||
skip_ssl: skip_ssl,
|
skip_ssl: skip_ssl,
|
||||||
disable_iframe: disable_iframe,
|
disable_iframe: disable_iframe,
|
||||||
style: style,
|
style: style,
|
||||||
|
|||||||
Reference in New Issue
Block a user