Esempio n. 1
0
def admin_del_user(request):
    """
    This function is used to delete the user by admin.


    :type request: http request
    :param request: the request sent for the task
    :return: redirecting to the page according to http request
    """
    if request.method == 'POST':
        if request.session.keys():
            handle = request.session.get("handle")
            user_type = request.session.get("user_type")
            if viewhelper.is_admin(user_type):
                user = models.get_user(handle=handle)
                fd = request.POST
                del_user_handle = fd.get("del_user_handle")
                message = "Invalid handle"
                if del_user_handle is not None:
                    message = "User does not exists"
                    del_user = models.get_user(del_user_handle)
                    if del_user is not None and viewhelper.is_user(
                            del_user.user_type):
                        models.admin_del_user(handle=del_user_handle)
                        message = "User Deleted"
                context = {'user': user, 'message': message}
                return render(request, 'janta/admin.html', context)
            return redirect("/janta/index/")
        return redirect("/janta/login/")
Esempio n. 2
0
def login(request):
    """
    This function deals with the login of user by request.
    
    :type request: http request
    :param request: the request sent for the task
    :return: redirecting to the page according to http request
    """
    if request.method == 'POST':
        form = forms.LoginForm(request.POST)
        message = 'Invalid form please try again'
        if form.is_valid():
            login_data = form.cleaned_data
            handle = login_data.get("handle")
            password = login_data.get("password")
            status, message = viewhelper.validate_login(handle, password)
            if status:
                user = models.get_user(handle)
                viewhelper.set_session(request, user)
                if viewhelper.is_admin(user.user_type):
                    return redirect("/janta/admin/")
                if viewhelper.is_moderator(user.user_type):
                    return redirect("/janta/moderator/")
                if viewhelper.is_user(user.user_type):
                    return redirect("/janta/user/")
                message = 'Session creation failed please try again'
        context = {'login_form': form, 'message': message}
        return render(request, 'janta/login.html', context)
    elif request.method == 'GET':
        # do not redirect here otherwise it will fall in loop or change url pattern instead
        form = forms.LoginForm()
        context = {'login_form': form}
        return render(request, 'janta/login.html', context)
Esempio n. 3
0
def submit_task(request):
    """
    This function submits the task by request.
    
    :type request: http request
    :param request: the request sent for the task
    :return: redirecting to the page according to http request
    """
    if request.method == 'POST':
        if request.session.keys():
            handle = request.session.get("handle")
            user_type = request.session.get("user_type")
            if viewhelper.is_user(user_type):
                fd = request.POST
                task_id = fd.get("task_id")
                task = models.get_task(task_id=task_id)
                if task is not None:
                    if viewhelper.is_info(task_type=task.task_type):
                        models.submit_task(task_id=task_id,
                                           handle=handle,
                                           submission="")
                        return redirect('/janta/submitted-tasks/')
                    elif viewhelper.is_text(task_type=task.task_type):
                        models.submit_task(task_id=task_id,
                                           handle=handle,
                                           submission=fd.get("input_txt"))
                        return redirect('/janta/submitted-tasks/')
                    elif viewhelper.is_upload(task_type=task.task_type):
                        file = request.FILES.get("input_file")
                        if file is not None and viewhelper.is_file_name(
                                file.name):
                            path = viewhelper.save_file(file=file,
                                                        handle=handle,
                                                        task_id=task_id)
                            models.submit_task(task_id=task_id,
                                               handle=handle,
                                               submission=path)
                            return redirect('/janta/submitted-tasks/')
                        user = models.get_user(handle)
                        message = 'Invalid file name please submit again. file name regex: [a-zA-Z0-9_. ]{1,45}'
                        return render(request,
                                      'janta/error.html',
                                      context={
                                          'message': message,
                                          'user': user
                                      })
            return redirect("/janta/index/")
        return redirect("/janta/login/")
Esempio n. 4
0
def submitted_tasks(request):
    """
    This function keeps track of the submitted task by request.
    
    :type request: http request
    :param request: the request sent for the task
    :return: redirecting to the page according to http request
    """
    if request.method == 'GET':
        if request.session.keys():
            handle = request.session.get("handle")
            user_type = request.session.get("user_type")
            if viewhelper.is_user(user_type):
                fn_tasks = models.get_submitted_tasks(handle=handle)
                user = models.get_user(handle)
                context = {'submitted_task': fn_tasks, 'user': user}
                return render(request, 'janta/submitted-tasks.html', context)
            return redirect("/janta/index/")
        return redirect("/janta/login/")
    if request.method == 'POST':
        return redirect("/janta/index/")
Esempio n. 5
0
def overdue_tasks(request):
    """
    This function maintains the overdue task by request.
    
    :type request: http request
    :param request: the request sent for the task
    :return: redirecting to the page according to http request
    """
    if request.method == 'GET':
        if request.session.keys():
            handle = request.session.get("handle")
            user_type = request.session.get("user_type")
            if viewhelper.is_user(user_type):
                over_tasks = models.get_overdue_tasks(handle=handle)
                user = models.get_user(handle)
                context = {'overdue_tasks': over_tasks, 'user': user}
                return render(request, 'janta/overdue-tasks.html', context)
            return redirect("/janta/index/")
        return redirect("/janta/login/")
    if request.method == 'POST':
        return redirect("/janta/index/")
Esempio n. 6
0
def user_home(request):
    """
    This function handles the notification by request.
    
    :type request: http request
    :param request: the request sent for the task
    :return: redirecting to the page according to http request
    """
    if request.method == 'GET':
        if request.session.keys():
            handle = request.session.get("handle")
            user_type = request.session.get("user_type")
            if viewhelper.is_user(user_type):
                ong_tasks = models.get_recent_ongoing_tasks(handle=handle)
                user = models.get_user(handle)
                notifications = models.get_notifications(handle)
                context = {
                    'rcnt_ong_tasks': ong_tasks,
                    'user': user,
                    'notifications': notifications
                }
                return render(request, 'janta/user.html', context)
            return redirect("/janta/index/")
        return redirect("/janta/login/")