|
|
@@ -24,14 +24,14 @@ def do_basket_form(parse, token):
|
|
24
|
24
|
"{%% basket_form request product_var as "
|
|
25
|
25
|
"form_var %%}" % tokens[0])
|
|
26
|
26
|
|
|
27
|
|
- request, product_var, form_var = tokens[1], tokens[2], tokens[4]
|
|
|
27
|
+ request_var, product_var, form_var = tokens[1], tokens[2], tokens[4]
|
|
28
|
28
|
|
|
29
|
29
|
quantity_type = tokens[5] if len(tokens) == 6 else QNT_MULTIPLE
|
|
30
|
30
|
if quantity_type not in (QNT_SINGLE, QNT_MULTIPLE):
|
|
31
|
31
|
raise template.TemplateSyntaxError(
|
|
32
|
32
|
"%r tag only accepts the following quantity types: "
|
|
33
|
33
|
"'single', 'multiple'" % tokens[0])
|
|
34
|
|
- return BasketFormNode(request, product_var, form_var, quantity_type)
|
|
|
34
|
+ return BasketFormNode(request_var, product_var, form_var, quantity_type)
|
|
35
|
35
|
|
|
36
|
36
|
|
|
37
|
37
|
class BasketFormNode(template.Node):
|
|
|
@@ -44,7 +44,7 @@ class BasketFormNode(template.Node):
|
|
44
|
44
|
|
|
45
|
45
|
def render(self, context):
|
|
46
|
46
|
try:
|
|
47
|
|
- request = self.request_var.resolve(context)
|
|
|
47
|
+ self.request = self.request_var.resolve(context)
|
|
48
|
48
|
product = self.product_var.resolve(context)
|
|
49
|
49
|
except template.VariableDoesNotExist:
|
|
50
|
50
|
return ''
|
|
|
@@ -53,6 +53,15 @@ class BasketFormNode(template.Node):
|
|
53
|
53
|
initial = {}
|
|
54
|
54
|
if not product.is_group:
|
|
55
|
55
|
initial['product_id'] = product.id
|
|
56
|
|
- context[self.form_var] = self.form_class(
|
|
57
|
|
- request, instance=product, initial=initial)
|
|
|
56
|
+ self.form = self.form_class(
|
|
|
57
|
+ self.request, instance=product, initial=initial)
|
|
|
58
|
+
|
|
|
59
|
+ user = self.request.user
|
|
|
60
|
+ is_permitted, reason = self.form.is_purchase_permitted(user,
|
|
|
61
|
+ product, 1)
|
|
|
62
|
+
|
|
|
63
|
+ self.form.purchase_permitted = is_permitted
|
|
|
64
|
+ self.form.reason = reason
|
|
|
65
|
+
|
|
|
66
|
+ context[self.form_var] = self.form
|
|
58
|
67
|
return ''
|