-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Description
I am trying to use this new awesome features but get the following error: TypeError: can_be_triggered_on_page_type() missing 1 required positional argument: 'page_type'. Callback traces to here:
My wagtail_hooks.py looks like this:
from wagtail.core import hooks
from wagtail_ab_testing.events import BaseEvent
from .models import ProductDetailPage
class ExternalLinkClickEvent(BaseEvent):
name = "External Link Click"
def get_page_types(self):
return [
ProductDetailPage,
]
@hooks.register('register_ab_testing_event_types')
def register_external_link_click_event_type():
return {
'external-link-click': ExternalLinkClickEvent,
}In my models.py file, I was planning to use RoutablePageMixin with a custom route and javascript call on button click to trigger a request to the route to log any potential conversion. Not sure how the javascript part works yet or what the best solution would be?
class ProductDetailPage(MetadataPageMixin, RoutablePageMixin, Page):
"""
A generic product detail page.
"""
product_primary_cta_link = models.URLField(
help_text='Link to docassemble interview',
blank=True,
null=True
)
# other Fields...
@route(r'^external_link_clicked/$')
def external_link_clicked(self, request, *args, **kwargs):
"""
View function for tracking click to external link.
"""
# Check if the user is trackable
if request_is_trackable(request):
# Check if the page is the goal of any running tests
tests = AbTest.objects.filter(goal_event='external-link-click', goal_page=self, status=AbTest.STATUS_RUNNING)
for test in tests:
# Is the user a participant in this test?
if f'wagtail-ab-testing_{test.id}_version' not in request.session:
continue
# Has the user already completed the test?
if f'wagtail-ab-testing_{test.id}_completed' in request.session:
continue
# Log a conversion
test.log_conversion(request.session[f'wagtail-ab-testing_{test.id}_version'])
request.session[f'wagtail-ab-testing_{test.id}_completed'] = 'yes'
Any help would be very much appreciated! Thanks 🙏
Metadata
Metadata
Assignees
Labels
No labels