code: def admin_approve_announcement_view(request, req_id):
      
      req = get_object_or_404(AnnouncementRequest, id=req_id)
  
      requested_teachers = req.teachers_requested.all()
      logger.debug(requested_teachers)
  
      if request.method == "POST":
          form = AnnouncementRequestForm(request.POST, instance=req)
          if form.is_valid():
              req = form.save(commit=True)
              # SAFE HTML
              req.content = safe_html(req.content)
              if "approve" in request.POST:
                  groups = []
                  if "groups" in request.POST:
                      group_ids = request.POST.getlist("groups")
                      groups = Group.objects.filter(id__in=group_ids)
                  logger.debug(groups)
                  announcement = Announcement.objects.create(title=req.title, content=req.content, author=req.author, user=req.user,
                                                             expiration_date=req.expiration_date)
                  for g in groups:
                      announcement.groups.add(g)
                  announcement.save()
  
                  req.posted = announcement
                  req.posted_by = request.user
                  req.save()
  
                  announcement_approved_hook(request, announcement, req)
                  announcement_posted_hook(request, announcement)
  
                  messages.success(request, "Successfully approved announcement request. It has been posted.")
              else:
                  req.rejected = True
                  req.rejected_by = request.user
                  req.save()
                  messages.success(request, "You did not approve this request. It will be hidden.")
              return redirect("index")
  
      form = AnnouncementRequestForm(instance=req)
      all_groups = Group.objects.all()
      context = {"form": form, "req": req, "admin_approve": True, "all_groups": all_groups}
      return render(request, "announcements/approve.html", context)
docs: The administrator approval announcement request page. Admins will view this page through the
      UI.
  
      req_id: The ID of the AnnouncementRequest