def users_view(request): # Authentication check authentication_result = views.authentication_check( request, [Account.ACCOUNT_ADMIN]) if authentication_result is not None: return authentication_result # Get the template data from the session template_data = views.parse_session(request) # Proceed with the rest of the view if request.method == 'POST' and 'role' in request.POST: pk = request.POST['pk'] role = request.POST['role'] account = Account.objects.get(pk=pk) if account is not None: account.role = role account.save() template_data['alert_success'] = "Updated " + \ account.user.username + "'s role!" if request.method == 'POST' and 'SIG' in request.POST: pk = request.POST['pk'] SIG = request.POST['SIG'] account = Account.objects.get(pk=pk) if account is not None: account.SIG = SIG account.save() template_data['alert_success'] = "Updated " + \ account.user.username + "'s SIG!" # Parse search sorting template_data['query'] = Account.objects.filter( archive=False, role__in=[1, 2, 4]).order_by('-role') return render(request, 'ienitk/admin/users.html', template_data)
def candidates_view(request): # Authentication check authentication_result = views.authentication_check( request, [Account.ACCOUNT_ADMIN, Account.ACCOUNT_MEMBER, Account.ACCOUNT_AUX_ADMIN]) if authentication_result is not None: return authentication_result # Get the template data from the session template_data = views.parse_session(request) # Get the SIG information of the user current_user = request.user SIG_User = current_user.account.SIG # update status of candidates if request.method == 'POST': pk = request.POST['pk'] status = request.POST['status'] candidate = Status.objects.get(pk=pk) if candidate is not None: candidate.status = status candidate.save() template_data['alert_success'] = "Updated" + \ candidate.user.user.username + "'s status!" # Parse search sorting template_data['query'] = Status.objects.filter(SIG=SIG_User) if current_user.account.role == 4: template_data['query'] = Status.objects.filter( SIG__in=["SR", "VR", "RO", "CA", "TE"]) template_data['logged_in_user'] = current_user return render(request, 'ienitk/admin/candidates.html', template_data)
def add_user(request): # Authentication check authentication_result = views.authentication_check( request, [Account.ACCOUNT_ADMIN]) if authentication_result is not None: return authentication_result # Get the template data from the session template_data = views.parse_session(request, {'form_button': "Register"}) # Proceed with the rest of the view if request.method == 'POST': form = AddUserForm(request.POST) if form.is_valid(): user = views.register_user( form.cleaned_data['email'], form.cleaned_data['password_first'], form.cleaned_data['firstname'], form.cleaned_data['lastname'], 0, "", True, form.cleaned_data['member_type'] ) request.session['alert_success'] = "Successfully created new member account. Please ask them to change the password first" return HttpResponseRedirect(reverse('webadmin:admin/users')) else: form = AddUserForm() template_data['form'] = form return render(request, 'ienitk/admin/createuser.html', template_data)
def not_applied_candidate_view(request): authentication_result = views.authentication_check(request, [ Account.ACCOUNT_ADMIN, Account.ACCOUNT_MEMBER, Account.ACCOUNT_AUX_ADMIN ]) if authentication_result is not None: return authentication_result # Get the template data from the session template_data = views.parse_session(request) current_user = request.user if current_user.account.role != 1: return all_candidates = Account.objects.filter(role=3) applied_candidates = BasicResponses.objects.all() not_applied_candidates = [] for candidate in all_candidates: flag = True for applied_candidate in applied_candidates: if (candidate == applied_candidate.user): flag = False break if (flag): not_applied_candidates.append(candidate) template_data['query'] = not_applied_candidates template_data['logged_in_user'] = current_user return render(request, 'ienitk/admin/not_applied_candidates.html', template_data)
def view_archived_users(request): # Authentication check. authentication_result = views.authentication_check( request, [Account.ACCOUNT_ADMIN]) if authentication_result is not None: return authentication_result # Get the template data from the session template_data = views.parse_session(request) # Proceed with the rest of the view template_data['query'] = Account.objects.filter(archive=True) return render(request, 'ienitk/admin/archived_users.html', template_data)
def restore_user(request): # Authentication check. authentication_result = views.authentication_check( request, [Account.ACCOUNT_ADMIN]) if authentication_result is not None: return authentication_result # Get the template data from the session template_data = views.parse_session(request) # Proceed with the rest of the view if request.method == 'POST': if 'restore' in request.POST and 'pk' in request.POST: pk = request.POST['pk'] try: user = Account.objects.get(pk=pk) except Exception: template_data['alert_danger'] = "Unable to delete the user. Please try again later" return HttpResponseRedirect(reverse('webadmin:admin/users')) user.archive = False user.save() template_data['alert_success'] = "The user has been restored." return HttpResponseRedirect(reverse('webadmin:admin/users')) return HttpResponseRedirect(reverse('webadmin:admin/users'))