kawaz.apps.announcements.views のソースコード

from django.views.generic import CreateView
from django.views.generic import UpdateView
from django.views.generic import DeleteView
from django.views.generic import DetailView
from django.views.generic import ListView
from django.contrib.messages.views import SuccessMessageMixin
from django.core.urlresolvers import reverse_lazy
from django.utils.translation import ugettext_lazy as _
from permission.decorators import permission_required
from kawaz.core.views.delete import DeleteSuccessMessageMixin
from .models import Announcement
from .forms import AnnouncementForm


@permission_required('announcements.add_announcement')
[ドキュメント]class AnnouncementCreateView(SuccessMessageMixin, CreateView): model = Announcement form_class = AnnouncementForm
[ドキュメント] def form_valid(self, form): form.instance.author = self.request.user form.instance.last_modifier = self.request.user return super().form_valid(form)
[ドキュメント] def get_success_message(self, cleaned_data): return _("An announcement '%(title)s' was successfully created.") % { 'title': cleaned_data['title'] }
@permission_required('announcements.change_announcement')
[ドキュメント]class AnnouncementUpdateView(SuccessMessageMixin, UpdateView): model = Announcement form_class = AnnouncementForm
[ドキュメント] def form_valid(self, form): form.instance.last_modifier = self.request.user return super().form_valid(form)
[ドキュメント] def get_success_message(self, cleaned_data): return _("The announcement '%(title)s' was successfully updated.") % { 'title': cleaned_data['title'] }
@permission_required('announcements.delete_announcement')
[ドキュメント]class AnnouncementDeleteView(DeleteSuccessMessageMixin, DeleteView): model = Announcement success_url = reverse_lazy('announcements_announcement_list')
[ドキュメント] def get_success_message(self): return _("The announcement was successfully deleted.")
@permission_required('announcements.view_announcement')
[ドキュメント]class AnnouncementDetailView(DetailView): model = Announcement
@permission_required('announcements.view_announcement')
[ドキュメント]class AnnouncementListView(ListView): model = Announcement paginate_by = 5
[ドキュメント] def get_queryset(self): return Announcement.objects.published(self.request.user)