def dashboard(request): try: if request.is_ajax(): data = DataTable.result_list() delete_action_list = [{ 'title': 'Delete', 'icon': 'fa fa-times color-danger', 'message': 'Do you want to delete this todo?', 'event': 'confirm', 'confirmurl': reverse('delete_todo', args=[0]), }] comp_and_del_action_list = [{ 'title': 'Complete Todo', 'icon': 'fa fa-check color-success', 'message': 'Do you want to complete this todo?', 'event': 'confirm', 'confirmurl': reverse('complete_todo', args=[0]), }, { 'title': 'Delete', 'icon': 'fa fa-times color-danger', 'message': 'Do you want to delete this todo?', 'event': 'confirm', 'confirmurl': reverse('delete_todo', args=[0]), }] delete_action = DataTable.datatable_actions(delete_action_list) comp_and_del_action = DataTable.datatable_actions( comp_and_del_action_list) start = int(request.GET.get('start', 0)) length = start + int(request.GET.get('length', 10)) order = DataTable.datatable_order([ 'text', 'user__username', 'is_completed', 'created_time', 'last_updated', ], (int(request.GET.get('order[0][column]', 2)) - 2), request.GET.get( 'order[0][dir]', 'desc')) items = Todo.objects.all() total = items.count() items = DataTable.filtering(request, items, [{ 'text': 'icontains' }, { 'user__username': '******' }, 'is_completed']) filtered = items.count() items = items.order_by(order)[start:length] rows = [] for item in items: actions = delete_action if item.is_completed else comp_and_del_action rows.append({ 'id': item.id, 'text': item.text, 'user__username': item.user.username, 'is_completed': 'Completed' if item.is_completed else 'Not Completed', 'created_time': Helper.format_date_to_str(item.created_time), 'last_updated': Helper.format_date_to_str(item.last_updated), 'actions': actions.replace('/0', '/' + str(item.id)) }) data = DataTable.result_list(True, start, total, filtered, rows) return JsonResponse(data) return render( request, 'base/list.html', { 'table': DataTable.datatable([ { 'id': 'text', 'title': 'Todo Text', 'filter': '<input type="text" class="form-control form-control-sm form-filter m-input">' }, { 'id': 'user__username', 'title': 'User', 'filter': '<input type="text" class="form-control form-control-sm form-filter m-input">' }, { 'id': 'is_completed', 'title': 'Status', 'filter': '<select class="form-control form-control-sm form-filter m-input">' + DataTable.datatable_filter_options([ ('true', 'Completed'), ('false', 'Not Completed') ]) + '</select>' }, { 'id': 'created_time', 'title': 'Created', }, { 'id': 'last_updated', 'title': 'Updated', }, ], url=''), 'actions': [{ 'label': 'Export', 'class': 'btn btn-success', 'icon': 'icon-plus', 'target': '_blank', 'url': reverse('export_todo_list') }, { 'label': 'Import', 'class': 'btn btn-info', 'icon': 'icon-plus', 'onclick': "App.dialogForm('Import Todo', '" + reverse('import_todo_list') + "')" }, { 'label': 'New Record', 'class': 'btn btn-primary', 'icon': 'icon-plus', 'onclick': "App.dialogForm('New Todo', '" + reverse('todo_form', args=[0]) + "')" }], }) except Exception as ex: print(ex) pass
def user_list(request): try: if request.is_ajax(): data = DataTable.result_list() action_list = [] actions = DataTable.datatable_actions(action_list) start = int(request.GET.get('start', 0)) length = start + int(request.GET.get('length', 10)) order = DataTable.datatable_order([ 'first_name', 'last_name', 'last_login', ], (int(request.GET.get('order[0][column]', 2)) - 2), request.GET.get('order[0][dir]', 'desc')) items = User.objects.all() total = items.count() items = DataTable.filtering(request, items, [ {'first_name': 'icontains'}, {'last_name': 'icontains'}, ]) filtered = items.count() items = items.order_by(order)[start:length] rows = [] for item in items: rows.append({ 'id': item.id, 'first_name': item.first_name, 'last_name': item.last_name, 'last_login': Helper.format_date_to_str(item.last_login) if item.last_login else '', 'actions': actions.replace('/0', '/' + str(item.id)).replace('{id}', str(item.id)) }) data = DataTable.result_list(True, start, total, filtered, rows) return JsonResponse(data) return render(request, 'base/list.html', { 'table': DataTable.datatable([ { 'id': 'first_name', 'title': 'First Name', 'filter': '<input type="text" class="form-control form-control-sm form-filter m-input">' }, { 'id': 'last_name', 'title': 'Last Name', 'filter': '<input type="text" class="form-control form-control-sm form-filter m-input">' }, { 'id': 'last_login', 'title': 'Last Login', }, ], url=''), 'actions': [{ 'label': 'New Record', 'class': 'btn btn-primary', 'icon': 'icon-plus', 'onclick': "App.dialogForm('New User', '" + reverse('user_form', args=[0]) + "',{'large':true})" }], }) except Exception as ex: print(ex) pass