def browse_customers(request, transaction_key): query_str = request.GET.get("query", "").strip() response = {"query": query_str} if query_str: query = search_query(query_str, ["first_name", "last_name", "username", "email", "profile__id_number"]) customers = User.objects.filter(query) else: customers = User.objects.all() results = [] for customer in customers: results.append( { "value": customer.username, "username": customer.username, "fullName": customer.get_full_name(), "idNumber": customer.get_profile().id_number, } ) return JsonResponse( { "query": query_str, "container": "#customers tbody", "results": results, "template": render_to_string("institution/includes/browse_customer.html"), } )
def browse_assets(request, transaction_key): catalog_id = request.GET.get('catalog') catalog = Catalog.objects.get_or_default(catalog_id) filter_by = request.GET.get('filter', 'none') query_str = request.GET.get('query', "").strip() if not query_str and not filter_by: filter_by = 'manufacturer' context = {'transaction_key': transaction_key, 'filter': filter_by, 'query': query_str, 'catalog': catalog, 'assets': None} if query_str: query = search_query(query_str, ['barcode', 'product__title', 'product__manufacturer__name']) assets = Asset.objects.filter(query) else: assets = Asset.objects.all() assets = assets.filter(catalog=catalog).order_by('barcode') if filter_by == 'manufacturer': manufacturer_id = request.GET.get('manufacturer') if manufacturer_id: context['manufacturer'] = Manufacturer.objects.get( id=manufacturer_id) assets = assets.filter(product__manufacturer=manufacturer_id) else: context['manufacturers'] = sorted(Manufacturer.objects.all(), key=lowercase_str) elif filter_by == 'type': type_id = request.GET.get('type') if type_id: context['product_type'] = ProductType.objects.get(id=type_id) assets = assets.filter(product__product_type=type_id) else: context['product_types'] = sorted(ProductType.objects.all(), key=lowercase_str) return JsonResponse({ 'query': query_str, 'results': [{'value': asset.barcode, 'barcode': asset.barcode, 'manufacturer': {'name': asset.product.manufacturer and asset.product.manufacturer.name}, 'product': {'title': asset.product.title}} for asset in assets]})