Example #1
0
 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)
Example #2
0
 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)
Example #3
0
    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)
Example #4
0
 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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)