예제 #1
0
def login_demo(request, *args, **kwargs):
    if request.method == 'GET':
        ret = {'msg': ""}
        return render_to_response('winter_sakura/login.html',
                                  {"ret_data": ret})

    if request.method == 'POST':
        ret = {}
        # 通过name获取form中post来的数据
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)

        # 检验用户名和密码
        if username is None or password is None:
            if request.is_ajax():
                ret['msg'] = '用户名和密码不能为空'
                return JsonResponse(ret)
            else:
                return render_to_response('winter_sakura/login.html')

        else:
            pass

        # 从数据库中对用户进行检测(记得传递request对象)
        ret_data = user_ctrl.select_user(request=request,
                                         username=username,
                                         password=password,
                                         login=1)

        # 判断返回的参数is_success是否为0
        if ret_data["is_success"] == 0:
            # 注意使用嵌套字典传递,方便使用自定义过滤器
            # 如登录未成功,跳转到错误页面
            # 判断ajax的使用
            if request.is_ajax():
                return JsonResponse(ret_data)
            else:
                return render_to_response('winter_sakura/login.html',
                                          {"ret_data": ret_data})
        else:
            # 如果登录成功则重定向到index
            if request.is_ajax():
                ret_data['msg'] = ''
                return JsonResponse(ret_data)

            else:
                response = redirect('/index/', {"ret_data": ret_data})

                # 设置 cookie保存用户信息,设置session给服务器用
                nickname = ret_data['nickname']
                request.session['username'] = username
                request.session['nickname'] = nickname
                response.set_cookie('username', username, 24 * 60 * 60)
                response.set_cookie('is_login', 1, 24 * 60 * 60)

                # 打印session_key
                # print(request.session.session_key)

                return response
예제 #2
0
def check_record(request):
    ret = {}
    username = request.COOKIES.get('username', '')
    with transaction.atomic():
        ret_data = models.CheckInfo.objects.all().order_by('-check_time')[:20]
        ret['ret_data'] = ret_data

        ret_user = user_ctrl.select_user(request=request, username=username)
        ret['ret_user'] = ret_user

    return render_to_response('winter_sakura/registerInfo.html', ret)
예제 #3
0
def publish_notice(request, *args, **kwargs):
    ret = {}
    username = request.COOKIES.get('username', '')
    ret_user = user_ctrl.select_user(request=request, username=username)
    ret['ret_user'] = ret_user

    if request.method == 'GET':
        return render_to_response('winter_sakura/publish.html', ret)

    if request.method == 'POST':
        notice_text = request.POST.get('publishContent', None)
        with transaction.atomic():
            models.Notice.objects.create(notice_text=notice_text,
                                         pub_user=ret_user)
        return redirect('/index/', ret)
예제 #4
0
def person(request, *args, **kwargs):
    # 定义返回数据
    ret = {}
    username = request.COOKIES.get('username', '')

    # 获取用户信息和考勤信息
    with transaction.atomic():
        ret_user = user_ctrl.select_user(request=request, username=username)
        ret_check_info = check_info_ctrl.select_check_info(username=username,
                                                           num=5)

        ret['ret_user'] = ret_user
        ret['ret_check_info'] = ret_check_info

    # 跳转页面
    return render_to_response('winter_sakura/person.html', ret)
예제 #5
0
def index_demo(request, *args, **kwargs):
    if request.method == 'GET':
        # 返回值
        ret = {}
        # 判断
        username = request.COOKIES.get('username', '')
        is_login = request.COOKIES.get('is_login', 0)

        if is_login:
            # 获取用户数据并存入字典
            ret_user = user_ctrl.select_user(request=request,
                                             username=username)
            ret['ret_user'] = ret_user

            return render_to_response('winter_sakura/index_demo.html', ret)
        else:
            return render_to_response('winter_sakura/index_demo.html', ret)
예제 #6
0
def index(request, *args, **kwargs):
    # 返回值
    ret = {}
    if request.method == 'GET':

        # 判断
        username = request.COOKIES.get('username', '')
        is_login = request.COOKIES.get('is_login', 0)

        if is_login:
            # 获取用户数据并存入字典
            # 获取返回数据
            with transaction.atomic():
                ret_user = user_ctrl.select_user(request=request,
                                                 username=username)
                ret['ret_user'] = ret_user

                ret_theme = models.Theme.objects.all().order_by(
                    '-create_date')[:5]
                ret['ret_theme'] = ret_theme

                ret_notice = models.Notice.objects.all().order_by(
                    '-create_time')[:5]
                ret['ret_notice'] = ret_notice

            return render_to_response('winter_sakura/index.html', ret)
        else:
            with transaction.atomic():
                ret_theme = models.Theme.objects.all().order_by(
                    '-create_date')[:5]
                ret['ret_theme'] = ret_theme

                ret_notice = models.Notice.objects.all().order_by(
                    '-create_time')[:5]
                ret['ret_notice'] = ret_notice
            return render_to_response('winter_sakura/index.html', ret)
    else:
        return render_to_response('winter_sakura/index.html')
예제 #7
0
def master(request, *args, **kwargs):
    # 定义返回数据
    ret = {}
    username = request.COOKIES.get('username', '')

    # 返回用户信息
    with transaction.atomic():
        ret_user = user_ctrl.select_user(request=request, username=username)
        # 判断用户类型
        if ret_user.user_type_id != 2:
            return redirect('/index/', ret)

        ret['ret_user'] = ret_user

        # 返回请假信息
        ret_leave_info = system_ctrl.get_leave_info()
        ret['ret_leave_info'] = ret_leave_info

        # 返回设定时间
        ret['ret_setting_1'] = models.TimeSetting.objects.get(setting=1)
        ret['ret_setting_2'] = models.TimeSetting.objects.get(setting=2)

    return render_to_response('winter_sakura/master.html', ret)
예제 #8
0
def leave_publish(request, *args, **kwargs):
    ret = {}
    if request.method == 'POST':
        start_date = request.POST.get('start_time', None)
        end_date = request.POST.get('end_time', None)
        reason = request.POST.get('reason', None)
        username = request.COOKIES.get('username', '')
        ret_user = user_ctrl.select_user(request=request, username=username)

        # 保存请假信息
        with transaction.atomic():
            check_type_in = models.CheckType.objects.get(id=3)
            ret_check_info = models.CheckInfo.objects.create(
                dept_id=ret_user.staff_dept,
                check_type=check_type_in,
                staff_id=ret_user,
                remarks='未查看')
            models.Leave.objects.create(reason=reason,
                                        start_date=start_date,
                                        end_date=end_date,
                                        staff_id=ret_user,
                                        staff_no=ret_user.staff_no,
                                        check_id=ret_check_info)
        return redirect('/person/', ret)