Upgrade pagedown
This commit is contained in:
parent
ab64ab6134
commit
1ef68e0fdb
8 changed files with 61 additions and 25 deletions
|
@ -14,13 +14,14 @@ from django.shortcuts import get_object_or_404
|
|||
from django.utils.translation import gettext as _
|
||||
from django.views.decorators.http import require_POST
|
||||
from django.views.generic import DetailView, UpdateView
|
||||
from django.urls import reverse_lazy
|
||||
from reversion import revisions
|
||||
from reversion.models import Version
|
||||
|
||||
from judge.dblock import LockModel
|
||||
from judge.models import Comment, CommentVote, Notification
|
||||
from judge.utils.views import TitleMixin
|
||||
from judge.widgets import MathJaxPagedownWidget
|
||||
from judge.widgets import MathJaxPagedownWidget, HeavyPreviewPageDownWidget
|
||||
from judge.comments import add_mention_notifications, del_mention_notifications
|
||||
|
||||
__all__ = [
|
||||
|
@ -133,10 +134,11 @@ class CommentEditForm(ModelForm):
|
|||
class Meta:
|
||||
model = Comment
|
||||
fields = ["body"]
|
||||
if MathJaxPagedownWidget is not None:
|
||||
widgets = {
|
||||
"body": MathJaxPagedownWidget(attrs={"id": "id-edit-comment-body"})
|
||||
}
|
||||
widgets = {
|
||||
"body": HeavyPreviewPageDownWidget(
|
||||
id="id-edit-comment-body", preview=reverse_lazy("comment_preview")
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
class CommentEditAjax(LoginRequiredMixin, CommentMixin, UpdateView):
|
||||
|
|
|
@ -3,6 +3,7 @@ from django.forms.utils import flatatt
|
|||
from django.template.loader import get_template
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.html import conditional_escape
|
||||
from django.conf import settings
|
||||
|
||||
from judge.widgets.mixins import CompressorWidgetMixin
|
||||
|
||||
|
@ -34,9 +35,15 @@ else:
|
|||
compress_js = True
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault("css", ("pagedown_widget.css",))
|
||||
super(PagedownWidget, self).__init__(*args, **kwargs)
|
||||
|
||||
class Media:
|
||||
css = {
|
||||
"all": [
|
||||
"pagedown_widget.css",
|
||||
]
|
||||
}
|
||||
|
||||
class AdminPagedownWidget(PagedownWidget, admin_widgets.AdminTextareaWidget):
|
||||
class Media:
|
||||
css = {
|
||||
|
@ -60,7 +67,8 @@ else:
|
|||
|
||||
class HeavyPreviewPageDownWidget(PagedownWidget):
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault("template", "pagedown.html")
|
||||
self.template = "pagedown.html"
|
||||
self.id = kwargs.pop("id", None)
|
||||
self.preview_url = kwargs.pop("preview")
|
||||
self.preview_timeout = kwargs.pop("preview_timeout", None)
|
||||
self.hide_preview_button = kwargs.pop("hide_preview_button", False)
|
||||
|
@ -73,16 +81,21 @@ else:
|
|||
if "class" not in final_attrs:
|
||||
final_attrs["class"] = ""
|
||||
final_attrs["class"] += " wmd-input"
|
||||
if self.id:
|
||||
final_attrs["id"] = self.id
|
||||
return get_template(self.template).render(
|
||||
self.get_template_context(final_attrs, value)
|
||||
)
|
||||
|
||||
def get_template_context(self, attrs, value):
|
||||
return {
|
||||
"image_upload_enabled": getattr(
|
||||
settings, "PAGEDOWN_IMAGE_UPLOAD_ENABLED", False
|
||||
),
|
||||
"attrs": flatatt(attrs),
|
||||
"body": conditional_escape(force_text(value)),
|
||||
"id": attrs["id"],
|
||||
"show_preview": self.show_preview,
|
||||
"postfix": attrs["id"],
|
||||
"show_preview": True,
|
||||
"preview_url": self.preview_url,
|
||||
"preview_timeout": self.preview_timeout,
|
||||
"extra_classes": "dmmd-no-button" if self.hide_preview_button else None,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue