Files
Touchh/.venv/lib/python3.10/site-packages/jet/views.py
2024-12-06 10:45:08 +09:00

71 lines
1.7 KiB
Python

from django.views.decorators.http import require_POST, require_GET
from jet.forms import AddBookmarkForm, RemoveBookmarkForm, ToggleApplicationPinForm, ModelLookupForm
from jet.models import Bookmark
from jet.utils import JsonResponse
@require_POST
def add_bookmark_view(request):
result = {'error': False}
form = AddBookmarkForm(request, request.POST)
if form.is_valid():
bookmark = form.save()
result.update({
'id': bookmark.pk,
'title': bookmark.title,
'url': bookmark.url
})
else:
result['error'] = True
return JsonResponse(result)
@require_POST
def remove_bookmark_view(request):
result = {'error': False}
try:
instance = Bookmark.objects.get(pk=request.POST.get('id'))
form = RemoveBookmarkForm(request, request.POST, instance=instance)
if form.is_valid():
form.save()
else:
result['error'] = True
except Bookmark.DoesNotExist:
result['error'] = True
return JsonResponse(result)
@require_POST
def toggle_application_pin_view(request):
result = {'error': False}
form = ToggleApplicationPinForm(request, request.POST)
if form.is_valid():
pinned = form.save()
result['pinned'] = pinned
else:
result['error'] = True
return JsonResponse(result)
@require_GET
def model_lookup_view(request):
result = {'error': False}
form = ModelLookupForm(request, request.GET)
if form.is_valid():
items, total = form.lookup()
result['items'] = items
result['total'] = total
else:
result['error'] = True
return JsonResponse(result)