コード例 #1
0
def block_item(request: HttpRequest) -> HttpResponse:
    """Block an item from search results using AJAX"""
    if is_ajax(request) and request.user.is_superuser:
        obj_type = request.POST["type"]
        pk = request.POST["id"]
        if obj_type == "docket":
            # Block the docket
            d = get_object_or_404(Docket, pk=pk)
            d.blocked = True
            d.date_blocked = now()
            d.save()
        elif obj_type == "cluster":
            # Block the cluster and the docket
            cluster = get_object_or_404(OpinionCluster, pk=pk)
            cluster.blocked = True
            cluster.date_blocked = now()
            cluster.save(index=False)
            cluster.docket.blocked = True
            cluster.docket.date_blocked = now()
            cluster.docket.save()
        return HttpResponse("It worked")
    else:
        return HttpResponseNotAllowed(
            permitted_methods=["POST"], content="Not an ajax request"
        )
コード例 #2
0
def delete_favorite(request: HttpRequest) -> HttpResponse:
    """Delete a user's favorite

    Deletes a favorite for a user using an ajax call and post data.
    """
    if is_ajax(request):
        fave = get_favorite(request)
        if fave is None:
            return HttpResponseServerError(
                "Unknown document, audio, docket, or recap document id.")
        fave.delete()

        try:
            if request.POST["message"] == "True":
                # used on the profile page. True is a string, not a bool.
                messages.add_message(
                    request,
                    messages.SUCCESS,
                    "Your favorite was deleted successfully.",
                )
        except MultiValueDictKeyError:
            # This happens if message isn't set.
            pass

        return HttpResponse("It worked.")

    else:
        return HttpResponseNotAllowed(permitted_methods=["POST"],
                                      content="Not an ajax request.")
コード例 #3
0
def save_or_update_favorite(request: HttpRequest) -> HttpResponse:
    """Uses ajax to save or update a favorite.

    Receives a request as an argument, and then uses that plus POST data to
    create or update a favorite in the database for a specific user. If the
    user already has the document favorited, it updates the favorite with the
    new information. If not, it creates a new favorite.
    """
    if is_ajax(request):
        fave = get_favorite(request)
        if fave is None:
            return HttpResponseServerError(
                "Unknown document, audio, docket or recap document id.")

        f = FavoriteForm(request.POST, instance=fave)
        if f.is_valid():
            new_fave = f.save(commit=False)
            new_fave.user = request.user
            try:
                new_fave.save()
            except IntegrityError:
                # User already has this favorite.
                return HttpResponse("It worked")
        else:
            # Validation errors fail silently. Probably could be better.
            return HttpResponseServerError("Failure. Form invalid")

        return HttpResponse("It worked")
    else:
        return HttpResponseNotAllowed(permitted_methods={"POST"},
                                      content="Not an ajax request.")
コード例 #4
0
ファイル: views.py プロジェクト: nathreed/courtlistener
def privatize_visualization(request: HttpRequest) -> HttpResponse:
    if is_ajax(request):
        v = SCOTUSMap.objects.get(pk=request.POST.get("pk"), user=request.user)
        v.published = False
        v.save()
        return HttpResponse("It worked")
    else:
        return HttpResponseNotAllowed(permitted_methods=["POST"],
                                      content="Not an ajax request")
コード例 #5
0
ファイル: views.py プロジェクト: nathreed/courtlistener
def toggle_monthly_donation(request: HttpRequest) -> HttpResponse:
    """Use Ajax to enable/disable monthly contributions"""
    if is_ajax(request) and request.method == "POST":
        monthly_pk = request.POST.get("id")
        m_donation = MonthlyDonation.objects.get(pk=monthly_pk)
        state = m_donation.enabled
        if state:
            m_donation.enabled = False
            msg = "Monthly contribution disabled successfully"
        else:
            m_donation.enabled = True
            msg = "Monthly contribution enabled successfully"
        m_donation.save()
        return HttpResponse(msg)
    else:
        return HttpResponseNotAllowed(permitted_methods={"POST"},
                                      content="Not an Ajax POST request.")
コード例 #6
0
ファイル: views.py プロジェクト: weiplanet/courtlistener
def toggle_docket_alert(request: AuthenticatedHttpRequest) -> HttpResponse:
    """Use Ajax to create or delete an alert for a user."""
    if request.user.is_anonymous:
        return HttpResponse("Please log in to continue.")

    if is_ajax(request) and request.method == "POST":
        docket_pk = request.POST.get("id")
        if not docket_pk:
            msg = "Unable to alter alert. Please provide ID attribute"
            return HttpResponse(msg)
        existing_alert = DocketAlert.objects.filter(user=request.user,
                                                    docket_id=docket_pk)
        if existing_alert.exists():
            existing_alert.delete()
            msg = "Alert disabled successfully"
        else:
            DocketAlert.objects.create(docket_id=docket_pk, user=request.user)
            msg = "Alerts are now enabled for this docket"
        return HttpResponse(msg)
    else:
        return HttpResponseNotAllowed(permitted_methods={"POST"},
                                      content="Not an ajax POST request.")