integrate tiptap text editor

This commit is contained in:
bkfox
2024-04-30 18:29:34 +02:00
parent 55123c386d
commit 93fba2d46d
21 changed files with 327 additions and 149 deletions

View File

@ -33,6 +33,17 @@ def attach(cls):
return cls
class CanEditMixin:
"""Add context 'can_edit' set to True when object is editable by user."""
def can_edit(self, object):
"""Return True if user can edit current page."""
return False
def get_context_data(self, **kwargs):
return super().get_context_data(can_edit=self.can_edit(self.object), **kwargs)
class BasePageMixin:
category = None
@ -156,16 +167,12 @@ class PageListView(FiltersMixin, BasePageListView):
return super().get_context_data(**kwargs)
class PageDetailView(BasePageDetailView):
class PageDetailView(CanEditMixin, BasePageDetailView):
"""Base view class for pages."""
template_name = None
context_object_name = "page"
def can_edit(self, object):
"""Return True if user can edit current page."""
return False
def get_template_names(self):
return super().get_template_names() + ["aircox/page_detail.html"]
@ -185,7 +192,6 @@ class PageDetailView(BasePageDetailView):
if related:
related = related[: self.related_count]
kwargs["related_objects"] = related
kwargs["can_edit"] = self.can_edit(self.object)
return super().get_context_data(**kwargs)
def get_comment_form(self):
@ -210,7 +216,7 @@ class PageDetailView(BasePageDetailView):
return self.get(request, *args, **kwargs)
class PageCreateView(BaseView, CreateView):
class PageCreateView(CanEditMixin, BaseView, CreateView):
def get_page(self):
return self.object
@ -218,7 +224,7 @@ class PageCreateView(BaseView, CreateView):
return self.request.path
class PageUpdateView(BaseView, UpdateView):
class PageUpdateView(CanEditMixin, BaseView, UpdateView):
def get_page(self):
return self.object