Skip to content

Instantly share code, notes, and snippets.

@sam-thecoder
Created December 28, 2019 14:01
Show Gist options
  • Save sam-thecoder/87cb4a3ee52a165364c2c4a6990cbba8 to your computer and use it in GitHub Desktop.
Save sam-thecoder/87cb4a3ee52a165364c2c4a6990cbba8 to your computer and use it in GitHub Desktop.
Company data
from django.shortcuts import render
from company.models import Company
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.db.models import Q
from django.core.paginator import Paginator
import json
from django.contrib.auth.decorators import login_required
#Ajax Calls
@csrf_exempt
def get_companies_json(request, items_per_page=None, page=1):
response = {'complete': False}
if request.user.is_authenticated:
user = request.user
permissions = list(user.get_all_permissions())
if 'company.view_company' in permissions:
items = Company.objects.all()
items_list = []
for item in items:
items_list.append(get_company_json(item))
if not items_per_page:
items_per_page = len(items_list)
p = Paginator(items_list, items_per_page)
response['companies'] = p.page(page).object_list
response['has-next'] = p.page(page).has_next()
response['has-previous'] = p.page(page).has_previous()
response['pages'] = p.num_pages
response['complete'] = True
else:
response['error'] = "You Don't Have Permission To View Companies"
else:
response['error'] = 'Please Log In First'
return HttpResponse(
json.dumps(response),
content_type="application/json"
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment