2025.12.31 02:49:47 (cachyos.cmoser.eu)

This commit is contained in:
2025-12-31 02:49:47 +01:00
parent 6243f87732
commit a5722c163b
154 changed files with 35338 additions and 56 deletions

View File

@@ -87,13 +87,13 @@ class PageCreateView(LoginRequiredMixin, UserPassesTestMixin, FormView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['create']=True
context['slug'] = self.request.GET.get('slug',None)
context.setdefault("title_extra","")
context.setdefault("slug_extra","")
context.setdefault("content_type_extra","")
context.setdefault("status_extra","")
context.setdefault("content_extra","")
context['create'] = True
context['slug'] = self.request.GET.get('slug', None)
context.setdefault("title_extra", "")
context.setdefault("slug_extra", "")
context.setdefault("content_type_extra", "")
context.setdefault("status_extra", "")
context.setdefault("content_extra", "")
return context
@@ -169,7 +169,7 @@ class PageCreateView(LoginRequiredMixin, UserPassesTestMixin, FormView):
))
class PageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
class PageEditView(LoginRequiredMixin, UserPassesTestMixin, FormView):
template_name = "tinywiki/page/edit.html"
bs_template_name = "tinywiki/page/bs-edit.html"
form_class = PageForm
@@ -185,15 +185,15 @@ class PageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
return self.bs_template_name
return self.template_name
def get_context_data(self,page,**kwargs):
def get_context_data(self, page, **kwargs):
context = super().get_context_data(**kwargs)
context['create']=False
context['page']=page
context.setdefault("title_extra","")
context.setdefault("slug_extra","")
context.setdefault("content_type_extra","")
context.setdefault("status_extra","")
context.setdefault("content_extra","")
context['create'] = False
context['page'] = page
context.setdefault("title_extra", "")
context.setdefault("slug_extra", "")
context.setdefault("content_type_extra", "")
context.setdefault("status_extra", "")
context.setdefault("content_extra", "")
return context
def form_invalid(self, form):
@@ -233,12 +233,12 @@ class PageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
content_extra=content_extra,
))
def get(self,request,slug:str):
instance = get_object_or_404(Page,slug=slug)
def get(self, request, slug:str):
instance = get_object_or_404(Page, slug=slug)
user = request.user
if (instance.slug.startswith('tw-')
and not user.is_staff
and not user.has_perm('page.tinywiki-edit-system')):
and not user.is_staff
and not user.has_perm('page.tinywiki-edit-system')):
raise PermissionDenied(_("Only staff users and wiki-admins are allowed to edit TinyWiki system pages!"))
if user.pk != instance.author.pk:
@@ -254,8 +254,8 @@ class PageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
self.get_template_name(),
self.get_context_data(page=instance))
def post(self,request,slug:str):
instance = get_object_or_404(Page,slug=slug)
def post(self, request, slug:str):
instance = get_object_or_404(Page, slug=slug)
user = request.user
if (instance.slug.startswith('tw-') and not user.is_staff):
raise PermissionDenied(_("Only staff users are allowed to edit TinyWiki system pages!"))
@@ -274,7 +274,7 @@ class PageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
def get_form(self):
return self.get_form_class()(instance=self.instance,**self.get_form_kwargs())
def form_valid(self,form):
def form_valid(self, form):
user = self.request.user
instance = form.save(commit=False)
instance.created_by = user
@@ -289,9 +289,11 @@ class PageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
self.get_template_name(),
self.get_context_data(slug_invalid=True))
class PageDeleteView(LoginRequiredMixin,UserPassesTestMixin,FormView):
class PageDeleteView(LoginRequiredMixin, UserPassesTestMixin, FormView):
template_name = "tinywiki/page/delete.html"
form_class = PageDeleteForm
def test_func(self) -> bool:
if self.request.user.is_staff:
return True
@@ -299,36 +301,38 @@ class PageDeleteView(LoginRequiredMixin,UserPassesTestMixin,FormView):
return True
return False
def get(self,request:HttpRequest,slug:str)->HttpResponse:
instance = get_object_or_404(Page,slug=slug)
def get(self, request: HttpRequest, slug: str) -> HttpResponse:
instance = get_object_or_404(Page, slug=slug)
if not request.user.is_staff and not instance.author == request.user:
raise PermissionDenied()
print("PAGE-DELETE")
return render(request,
self.template_name,
self.get_context_data(form=self.get_form_class()(),
page=instance))
def form_invalid(self,form:PageDeleteForm)->HttpResponse:
return redirect(reverse('tinywiki:page',kwargs={'slug':self.instance.slug}))
def form_invalid(self, form: PageDeleteForm) -> HttpResponse:
return redirect(reverse('tinywiki:page', kwargs={'slug': self.instance.slug}))
def form_valid(self,form:PageDeleteForm)->HttpResponse:
def form_valid(self, form: PageDeleteForm) -> HttpResponse:
if self.instance.slug == form.cleaned_data['slug']:
try:
self.instance.delete()
return redirect(reverse("tinywiki:home"))
except: pass
except Exception:
pass
return redirect(reverse('tinywiki:page',kwargs={'slug':self.instance.slug}))
def post(self,request:HttpRequest,slug:str)->HttpResponse:
self.instance = get_object_or_404(Page,slug=slug)
if not request.user.is_staff and not instance.author == request.user:
def post(self, request: HttpRequest, slug: str) -> HttpResponse:
self.instance = get_object_or_404(Page, slug=slug)
if not request.user.is_staff and not self.instance.author == request.user:
raise PermissionDenied()
return super().post(request)
class HxPageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
class HxPageEditView(LoginRequiredMixin, UserPassesTestMixin, FormView):
template_name = "tinywiki/page/hx-edit.html"
bs_template_name = "tinywiki/page/hx-bs-edit.html"
form_class = PageForm
@@ -389,8 +393,8 @@ class HxPageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
page=self.instance,
))
def post(self,request,pk:int):
instance = get_object_or_404(Page,pk=pk)
def post(self, request, pk:int):
instance = get_object_or_404(Page, pk=pk)
user = request.user
if (instance.slug.startswith('tw-') and not user.is_staff):
raise PermissionDenied(_("Only staff users are allowed to edit TinyWiki system pages!"))
@@ -416,11 +420,48 @@ class HxPageEditView(LoginRequiredMixin,UserPassesTestMixin,FormView):
instance.last_edited_by = user
try:
form.save(commit=True)
return render(self.request,self.get_template_name(),self.get_context_data(save_success=True))
return render(self.request, self.get_template_name(),self.get_context_data(save_success=True))
except:
return render(self.request,
self.get_template_name(),
self.get_context_data(save_success=False))
class HxPageDeleteView(View):
pass
class HxPageDeleteView(LoginRequiredMixin, UserPassesTestMixin, FormView):
template_name = "tinywiki/page/hx-bs-delete.html"
form_class = PageDeleteForm
def test_func(self) -> bool:
if self.request.user.is_staff:
return True
if self.request.user.has_perm('tinyiwki-delete-all') or self.request.user.has_perm('tinywiki-delete'):
return True
return False
def get(self, request: HttpRequest, pk: int) -> HttpResponse:
instance = get_object_or_404(Page, pk=pk)
if not request.user.is_staff and not instance.author == request.user:
raise PermissionDenied()
return render(request,
self.template_name,
self.get_context_data(form=self.get_form_class()(),
page=instance))
def form_invalid(self, form: PageDeleteForm) -> HttpResponse:
return redirect(reverse('tinywiki:page', kwargs={'slug': self.instance.slug}))
def form_valid(self, form: PageDeleteForm) -> HttpResponse:
if self.instance.slug == form.cleaned_data['slug']:
try:
self.instance.delete()
return redirect(reverse("tinywiki:home"))
except Exception as ex:
print(ex)
else:
print(form.cleaned_data['slug'])
return redirect(reverse('tinywiki:page', kwargs={'slug': self.instance.slug}))
def post(self, request: HttpRequest, pk: int) -> HttpResponse:
self.instance = get_object_or_404(Page, pk=pk)
return super().post(request)