How to build an interactive guide for users in the Wagtail CMS admin

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • shepherd

    Guide your users through a tour of your app

  • # guide/models.py from django.db import models from modelcluster.fields import ParentalKey from modelcluster.models import ClusterableModel from wagtail.admin.edit_handlers import ( FieldPanel, InlinePanel, ObjectList, TabbedInterface, ) from wagtail.core.models import Orderable class GuideStep(models.Model): """ Each step is a model to represent the step used by https://shepherdjs.dev/docs/Step.html This is an abstract model as `GuideRelatedStep` will be used for the actual model with a relation """ title = models.CharField(max_length=255) text = models.CharField(max_length=255) element = models.CharField(max_length=255, blank=True) panels = [ FieldPanel("title"), FieldPanel("text"), FieldPanel("element"), ] class Meta: abstract = True class GuideRelatedStep(Orderable, GuideStep): """ Creates an orderable (user can re-order in the admin) and related 'step' Will be a many to one relation against `Guide` """ guide = ParentalKey("guide.Guide", on_delete=models.CASCADE, related_name="steps") class Guide(ClusterableModel): """ `ClusterableModel` used to ensure that this model can have orderable relations using the modelcluster library (similar to ForeignKey). edit_handler """ title = models.CharField(max_length=255) # steps - see GuideRelatedStep url_path = models.CharField(max_length=255, blank=True) content_panels = [ FieldPanel("title"), InlinePanel("steps", label="Steps", min_num=1), ] settings_panels = [ FieldPanel("url_path"), ] edit_handler = TabbedInterface( [ ObjectList(content_panels, heading="Content"), ObjectList(settings_panels, heading="Settings"), ] )

  • bakerydemo

    Next generation Wagtail demo, born in Reykjavik

  • It is assumed that you will have a Wagtail application running, if not you can use the Wagtail Bakery Demo as your starting point.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Wagtail

    A Django content management system focused on flexibility and user experience

  • Each MenuItem has a method get_context which provides the template context to the menu_item.html template.

  • bakerydemo

    Next generation Wagtail demo, born in Reykjavik (by lb-)

  • You can see all the final code on github https://github.com/lb-/bakerydemo/tree/tutorial/guide-app/guide

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts