2025.09.17-19:07:57
This commit is contained in:
43
tinywiki/views/base.py
Normal file
43
tinywiki/views/base.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from .. import settings
|
||||
from django.views import View as DjangoView
|
||||
from django.views.generic import FormView as DjangoFormView
|
||||
from typing import Any
|
||||
|
||||
class Base:
|
||||
base_template_name = settings.TINYWIKI_BASE_TEMPLATE
|
||||
|
||||
@classmethod
|
||||
def get_base_template_name(cls)->str:
|
||||
return cls.base_template_name
|
||||
|
||||
@classmethod
|
||||
def get_template_name(cls)->str:
|
||||
return cls.template_name
|
||||
|
||||
def get_tinywiki_context_data(self):
|
||||
create_pages = False
|
||||
if self.request.user.is_authenticated:
|
||||
if self.request.user.is_staff or self.request.user.has_perm('tinywiki.tinywiki-create'):
|
||||
create_pages = True
|
||||
return {
|
||||
'brand_logo': settings.TINYWIKI_BRAND_LOGO,
|
||||
'brand_name': settings.TINYWIKI_BRAND_NAME,
|
||||
'base_template': self.get_base_template_name(),
|
||||
'use_bootstrap': settings.USE_BOOTSTRAP,
|
||||
'user_can_create_wiki_pages':create_pages
|
||||
}
|
||||
|
||||
class View(Base,DjangoView):
|
||||
template_name = "tinywiki"
|
||||
|
||||
def get_context_data(self,**kwargs):
|
||||
context = self.get_tinywiki_context_data()
|
||||
context.update(kwargs)
|
||||
return context
|
||||
|
||||
class FormView(Base,DjangoFormView):
|
||||
def get_context_data(self, **kwargs) -> dict[str, Any]:
|
||||
context = self.get_tinywiki_context_data()
|
||||
context.update(kwargs)
|
||||
return super().get_context_data(**context)
|
||||
|
||||
Reference in New Issue
Block a user