def post(self, request, announcement_id): """edit announcement""" announcement = get_object_or_404(models.Announcement, id=announcement_id) form = forms.AnnouncementForm(request.POST, instance=announcement) if form.is_valid(): announcement = form.save() form = forms.AnnouncementForm(instance=announcement) data = { "announcement": announcement, "form": form, } return TemplateResponse(request, "settings/announcement.html", data)
def post(self, request): """edit the site settings""" form = forms.AnnouncementForm(request.POST) if form.is_valid(): form.save() # reset the create form form = forms.AnnouncementForm() data = { "announcements": Paginator( models.Announcement.objects.all(), PAGE_LENGTH ).get_page(request.GET.get("page")), "form": form, } return TemplateResponse(request, "settings/announcements.html", data)
def get(self, request): """view and create announcements""" announcements = models.Announcement.objects sort = request.GET.get("sort", "-created_date") sort_fields = [ "created_date", "preview", "start_date", "end_date", "active", ] # pylint: disable=consider-using-f-string if sort in sort_fields + ["-{:s}".format(f) for f in sort_fields]: announcements = announcements.order_by(sort) data = { "announcements": Paginator(announcements, PAGE_LENGTH).get_page(request.GET.get("page")), "form": forms.AnnouncementForm(), "sort": sort, } return TemplateResponse(request, "settings/announcements/announcements.html", data)
def get(self, request, announcement_id): """view announcement""" announcement = get_object_or_404(models.Announcement, id=announcement_id) data = { "announcement": announcement, "form": forms.AnnouncementForm(instance=announcement), } return TemplateResponse(request, "settings/announcement.html", data)
def post(self, request, announcement_id=None): """edit announcement""" announcement = None if announcement_id: announcement = get_object_or_404(models.Announcement, id=announcement_id) form = forms.AnnouncementForm(request.POST, instance=announcement) if not form.is_valid(): data = { "announcement": announcement, "form": form, } return TemplateResponse( request, "settings/announcements/edit_announcement.html", data) announcement = form.save() return redirect("settings-announcements", announcement.id)
def test_create_announcement(self): """create a new announcement""" view = views.Announcements.as_view() form = forms.AnnouncementForm() form.data["preview"] = "hi hi" form.data["start_date"] = "2021-05-20" form.data["user"] = self.local_user.id request = self.factory.post("", form.data) request.user = self.local_user request.user.is_superuser = True view(request) announcement = models.Announcement.objects.get() self.assertEqual(announcement.preview, "hi hi") self.assertEqual(announcement.start_date.year, 2021) self.assertEqual(announcement.start_date.month, 5) self.assertEqual(announcement.start_date.day, 20)
def test_edit_announcement(self): """edit an announcement""" announcement = models.Announcement.objects.create(preview="hi", user=self.local_user) view = views.Announcement.as_view() form = forms.AnnouncementForm(instance=announcement) form.data["preview"] = "hi hi" form.data["start_date"] = "2021-05-20" form.data["user"] = self.local_user.id request = self.factory.post("", form.data) request.user = self.local_user request.user.is_superuser = True view(request, announcement.id) announcement.refresh_from_db() self.assertEqual(announcement.preview, "hi hi") self.assertEqual(announcement.start_date.year, 2021) self.assertEqual(announcement.start_date.month, 5) self.assertEqual(announcement.start_date.day, 20)