Created
December 28, 2019 14:01
-
-
Save sam-thecoder/87cb4a3ee52a165364c2c4a6990cbba8 to your computer and use it in GitHub Desktop.
Company data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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