2022-12-25 13:45:24 -05:00
|
|
|
from django import forms
|
|
|
|
from markdownx.fields import MarkdownxFormField
|
|
|
|
import django.contrib.postgres.forms as postgres
|
|
|
|
from django.utils import formats
|
|
|
|
from django.core.exceptions import ValidationError
|
|
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
import json
|
|
|
|
from .models import *
|
2022-12-28 01:09:55 -05:00
|
|
|
from common.forms import PreviewImageInput
|
2022-12-25 13:45:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
class ReviewForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = Review
|
|
|
|
fields = [
|
|
|
|
'id',
|
|
|
|
'item',
|
|
|
|
'title',
|
|
|
|
'body',
|
|
|
|
'visibility'
|
|
|
|
]
|
|
|
|
widgets = {
|
|
|
|
'item': forms.TextInput(attrs={"hidden": ""}),
|
|
|
|
}
|
|
|
|
title = forms.CharField(label=_("评论标题"))
|
|
|
|
body = MarkdownxFormField(label=_("评论正文 (Markdown)"))
|
|
|
|
share_to_mastodon = forms.BooleanField(
|
|
|
|
label=_("分享到联邦网络"), initial=True, required=False)
|
|
|
|
id = forms.IntegerField(required=False, widget=forms.HiddenInput())
|
|
|
|
visibility = forms.TypedChoiceField(
|
|
|
|
label=_("可见性"),
|
|
|
|
initial=0,
|
|
|
|
coerce=int,
|
|
|
|
choices=VisibilityType.choices,
|
|
|
|
widget=forms.RadioSelect
|
|
|
|
)
|
2022-12-28 01:09:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
COLLABORATIVE_CHOICES = [
|
|
|
|
(0, _("仅限创建者")),
|
|
|
|
(1, _("创建者及其互关用户")),
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
class CollectionForm(forms.ModelForm):
|
|
|
|
# id = forms.IntegerField(required=False, widget=forms.HiddenInput())
|
|
|
|
title = forms.CharField(label=_("标题"))
|
|
|
|
brief = MarkdownxFormField(label=_("介绍 (Markdown)"))
|
|
|
|
# share_to_mastodon = forms.BooleanField(label=_("分享到联邦网络"), initial=True, required=False)
|
|
|
|
visibility = forms.TypedChoiceField(
|
|
|
|
label=_("可见性"),
|
|
|
|
initial=0,
|
|
|
|
coerce=int,
|
|
|
|
choices=VisibilityType.choices,
|
|
|
|
widget=forms.RadioSelect
|
|
|
|
)
|
|
|
|
collaborative = forms.TypedChoiceField(
|
|
|
|
label=_("协作整理权限"),
|
|
|
|
initial=0,
|
|
|
|
coerce=int,
|
|
|
|
choices=COLLABORATIVE_CHOICES,
|
|
|
|
widget=forms.RadioSelect
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = Collection
|
|
|
|
fields = [
|
|
|
|
'title',
|
|
|
|
'cover',
|
|
|
|
'visibility',
|
|
|
|
'collaborative',
|
|
|
|
'brief',
|
|
|
|
]
|
|
|
|
|
|
|
|
widgets = {
|
|
|
|
'cover': PreviewImageInput(),
|
|
|
|
}
|