Plain is headed towards 1.0! Subscribe for development updates →

plain-support

Provides support forms for your application.

Usage

Include the support URLs in your urls.py:

# app/urls.py
from plain.urls import include, path
import plain.support.urls

urlpatterns = [
    path("support/", include(plain.support.urls)),
    # ...
]

Security considerations

Most support forms allow you to type in an email address. Be careful, because anybody can pretend to be anybody else at this point. Conversations either need to continue over email (which confirms they have access to the email account), or include a verification step (emailing a code to the email address, for example).

 1from plain.admin.cards import Card
 2from plain.admin.views import (
 3    AdminModelDetailView,
 4    AdminModelListView,
 5    AdminViewset,
 6    register_viewset,
 7)
 8
 9from .models import SupportFormEntry
10
11
12@register_viewset
13class SupportFormEntryAdmin(AdminViewset):
14    class ListView(AdminModelListView):
15        model = SupportFormEntry
16        nav_section = "Support"
17        title = "Form entries"
18        fields = ["user", "email", "name", "form_slug", "created_at"]
19
20    class DetailView(AdminModelDetailView):
21        model = SupportFormEntry
22
23
24class UserSupportFormEntriesCard(Card):
25    title = "Recent support"
26    template_name = "support/card.html"
27
28    def get_template_context(self):
29        context = super().get_template_context()
30
31        context["entries"] = SupportFormEntry.objects.filter(user=self.view.object)
32
33        return context