完善公告管理
This commit is contained in:
@@ -2,12 +2,11 @@
|
|||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from django.utils.translation import ugettext as _
|
||||||
from utils.shortcuts import serializer_invalid_response, error_response, success_response
|
from utils.shortcuts import serializer_invalid_response, error_response, success_response
|
||||||
|
|
||||||
from utils.shortcuts import paginate, error_page
|
from utils.shortcuts import paginate, error_page
|
||||||
from account.models import SUPER_ADMIN, ADMIN
|
|
||||||
from account.decorators import super_admin_required
|
from account.decorators import super_admin_required
|
||||||
from group.models import Group
|
|
||||||
from .models import Announcement
|
from .models import Announcement
|
||||||
from .serializers import (CreateAnnouncementSerializer, AnnouncementSerializer,
|
from .serializers import (CreateAnnouncementSerializer, AnnouncementSerializer,
|
||||||
EditAnnouncementSerializer)
|
EditAnnouncementSerializer)
|
||||||
@@ -72,8 +71,12 @@ class AnnouncementAdminAPIView(APIView):
|
|||||||
---
|
---
|
||||||
response_serializer: AnnouncementSerializer
|
response_serializer: AnnouncementSerializer
|
||||||
"""
|
"""
|
||||||
|
announcement_id = request.GET.get("announcement_id")
|
||||||
|
if announcement_id:
|
||||||
|
try:
|
||||||
|
announcement = Announcement.objects.get(id=announcement_id)
|
||||||
|
return success_response(AnnouncementSerializer(announcement).data)
|
||||||
|
except Announcement.DoesNotExist:
|
||||||
|
return error_response(_("Announcement does not exist"))
|
||||||
announcement = Announcement.objects.all().order_by("-create_time")
|
announcement = Announcement.objects.all().order_by("-create_time")
|
||||||
visible = request.GET.get("visible", None)
|
|
||||||
if visible:
|
|
||||||
announcement = announcement.filter(visible=(visible == "true"))
|
|
||||||
return paginate(request, announcement, AnnouncementSerializer)
|
return paginate(request, announcement, AnnouncementSerializer)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-md-12">
|
<div class="form-group col-md-12">
|
||||||
<label>{{ $t("adminUtils.title") }}</label>
|
<label>{{ $t("adminUtils.title") }}</label>
|
||||||
<input type="text" class="form-control">
|
<input type="text" class="form-control" v-model="title" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-md-12">
|
<div class="form-group col-md-12">
|
||||||
<label>{{ $t("adminUtils.content") }}</label>
|
<label>{{ $t("adminUtils.content") }}</label>
|
||||||
@@ -24,15 +24,24 @@
|
|||||||
|
|
||||||
export default({
|
export default({
|
||||||
data() {
|
data() {
|
||||||
return {}
|
return {
|
||||||
|
title: ""
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
submit() {
|
submit() {
|
||||||
|
var content = this.$refs.editor.getContent();
|
||||||
|
if (!content) {
|
||||||
|
alert(this.$t("announcement.contentCanNotBeEmpty"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.request({
|
||||||
|
url: "/api/admin/announcement/",
|
||||||
|
method: "post",
|
||||||
|
data: {title: this.title, content: content}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
route: {
|
|
||||||
},
|
|
||||||
components: {
|
components: {
|
||||||
simditor
|
simditor
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,13 +7,17 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-md-12">
|
<div class="form-group col-md-12">
|
||||||
<label>{{ $t("adminUtils.title") }}</label>
|
<label>{{ $t("adminUtils.title") }}</label>
|
||||||
<input type="text" class="form-control">
|
<input type="text" class="form-control" v-model="announcement.title" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-md-12">
|
<div class="form-group col-md-12">
|
||||||
<label>{{ $t("adminUtils.content") }}</label>
|
<label>{{ $t("adminUtils.content") }}</label>
|
||||||
<simditor editorid="editAnnouncement" :content="content" v-ref:editor></simditor>
|
<simditor editorid="editAnnouncement" v-ref:editor></simditor>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{ $t("adminUtils.isVisible") }}</label>
|
||||||
|
<input type="checkbox" class="form-control" v-model="announcement.visible">
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="submit" class="btn btn-success" value='{{ $t("adminUtils.saveChanges") }}'>
|
<input type="submit" class="btn btn-success" value='{{ $t("adminUtils.saveChanges") }}'>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,13 +31,33 @@
|
|||||||
export default({
|
export default({
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
announcement: {},
|
announcement: {}
|
||||||
content: ""
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
submit() {
|
submit() {
|
||||||
|
this.request({
|
||||||
|
url: "/api/admin/announcement/",
|
||||||
|
method: "put",
|
||||||
|
data: {
|
||||||
|
id: this.$route.params.announcementId,
|
||||||
|
title: this.announcement.title,
|
||||||
|
content: this.$refs.editor.getContent(),
|
||||||
|
visible: this.announcement.visible
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
route: {
|
||||||
|
data() {
|
||||||
|
this.request({
|
||||||
|
url: "/api/admin/announcement/?announcement_id=" + this.$route.params.announcementId,
|
||||||
|
method: "get",
|
||||||
|
success: (data)=> {
|
||||||
|
this.announcement = data.data;
|
||||||
|
this.$refs.editor.setContent(data.data.content);
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -14,9 +14,6 @@
|
|||||||
props: {
|
props: {
|
||||||
editorid: {
|
editorid: {
|
||||||
required: true
|
required: true
|
||||||
},
|
|
||||||
content: {
|
|
||||||
required: true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -48,8 +48,7 @@ export default {
|
|||||||
announcementList: "公告列表",
|
announcementList: "公告列表",
|
||||||
editAnnouncement: "编辑公告",
|
editAnnouncement: "编辑公告",
|
||||||
createAnnouncement: "创建公告",
|
createAnnouncement: "创建公告",
|
||||||
|
contentCanNotBeEmpty: "内容不能为空"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user