Exemplo n.º 1
0
def login(request):
    if request.method == 'POST':
        from logic.models import User
        cur_user = User()
        form = RegisterForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['uid']
            password = form.cleaned_data['password']
            q = User.objects.filter(uid=username, password=password)
            if q.__len__() != 0:
                cur_user.name = q[0].name
                cur_user.uid = q[0].uid
                q[0].lobby_id = 0
                q[0].save()
                userdict = {'uid': username, 'name': cur_user.name}
                all_lobbies = Lobby.objects.all()
                lobbies = []
                into_lobby_form = IntoLobbyForm()
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num': User.objects.filter(lobby_id=(i+1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                return render(request, 'login_complete.html', {
                    'lobbies': lobbies,
                    'Dict': json.dumps(userdict),
                    'into_lobby_form': into_lobby_form,
                })
            else:
                return HttpResponse("用户名或密码错误!")
Exemplo n.º 2
0
def login(request):
    if request.method == 'POST':
        from logic.models import User
        cur_user = User()
        form = RegisterForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['uid']
            password = form.cleaned_data['password']
            q = User.objects.filter(uid=username, password=password)
            if q.__len__() != 0:
                cur_user.name = q[0].name
                cur_user.uid = q[0].uid
                q[0].lobby_id = 0
                q[0].save()
                userdict = {'uid': username, 'name': cur_user.name}
                all_lobbies = Lobby.objects.all()
                lobbies = []
                into_lobby_form = IntoLobbyForm()
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num':
                        User.objects.filter(lobby_id=(i + 1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                return render(
                    request, 'login_complete.html', {
                        'lobbies': lobbies,
                        'Dict': json.dumps(userdict),
                        'into_lobby_form': into_lobby_form,
                    })
            else:
                return HttpResponse("用户名或密码错误!")
Exemplo n.º 3
0
    def __call__(self, environ, start_response):

        current_user = users.get_current_user()
        url = users.create_login_url("/")

        req = Request(environ)

        non_auth_urls = ['/create_role', '/p', '/users', '/add_emp', '/edit_user', '/upload_contacts', '/parse_xls']
        if environ['PATH_INFO'] not in non_auth_urls:

            if current_user is None:
                try:
                    auth_header = req.headers['Authorization']
                except KeyError:
                    resp = Response(status="307", location=url)
                    return resp(environ, start_response)

                username, password = '', ''
                try:
                    user_info = base64.decodestring(auth_header[6:])
                    username, password = user_info.split(':')

                except ValueError:
                    resp = Response(status="401")
                    return resp(environ, start_response)

                user_info = User.gql("WHERE username = :username ",
                            username=username).get()

                if user_info is None:
                    resp = Response(status="401")
                    return resp(environ, start_response)

                if not check_password(password, user_info.password):
                    resp = Response(status="401")
                    return resp(environ, start_response)
            else:
                email = str(current_user.email()).strip()
                user_info = User.all().filter('email', email).get()

                if user_info is None:
                    user_info = User(
                        email=current_user.email())
                    user_info.put()

            environ["current_user"] = user_info

            try:
                environ["current_role"] = Model.get(user_info.role[0]).value
            except IndexError:
                environ["current_role"] = ''

        resp = req.get_response(self.app)
        return resp(environ, start_response)
Exemplo n.º 4
0
def new_user():
    username = request.json.get('username')
    password = request.json.get('password')
    email = request.json.get('email')

    if username is None or password is None or email is None:
        abort(400, 'Missing username, password or email')
    if User.query.filter_by(username=username).first() is not None:
        abort(400, 'User already exists')
    user = User(username=username, email=email)
    user.hash_password(password)
    db.session.add(user)
    db.session.commit()
    return jsonify({'response': user.username + ' created'}), 201
Exemplo n.º 5
0
def register():

    # cut the page for authenticated users
    if current_user.is_authenticated:
        return redirect(url_for('index'))

    # declare the Registration Form
    form = RegistrationForm()
    if form.validate_on_submit():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Congrats! You have suceessfully registered.')
        return redirect(url_for('login'))
    return render_template('auth/register.html', title='Register', form=form)
Exemplo n.º 6
0
    def get(self):

        term = self.request.get('term')

        users = User.all().fetch(1000)

        users = filter(lambda x: x.email[:len(term)] == term, users)

        user_list = map(lambda x: x.email, users)

        user_list_json = simplejson.dumps(user_list)
        self.response.out.write(user_list_json)
Exemplo n.º 7
0
def reset_password(token):
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    user = User.verify_reset_password_token(token)
    if not user:
        return redirect(url_for('index'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        user.set_password(form.password.data)
        db.session.commit()
        flash('Your password has been reset.')
        return redirect(url_for('login'))
    return render_template('auth/reset_password.html', form=form)
Exemplo n.º 8
0
    def post(self):

        key = self.request.get('key')

        email = self.request.get('email').strip()

        user = User.get(key)

        user.email = email

        first_name = self.request.get('first_name').strip()
        user.first_name = first_name

        last_name = self.request.get('last_name').strip()
        user.last_name = last_name

        position = self.request.get('position')
        user.position = position

        first_date =  self.request.get('first_date')
        try:
            first_date = datetime.datetime.strptime(first_date, '%Y-%m-%d').date()
        except ValueError:
            first_date = None
        user.first_date = first_date

        dept = self.request.get('dept')
        dept_ref = Dept.all().filter('name', dept).get()

        if dept_ref is None:
            dept_ref = Dept(name=dept)
            dept_ref.put()

        user.dept = dept_ref
        try:
            manager = Model.get(self.request.get('manager'))
        except BadKeyError:
            manager = None
        user.manager = manager

        roles = self.request.get('role')[:-1].split(',')

        user.role = []
        for role in roles:
                role_key = Role.gql("WHERE value = :role",
                                    role=role).get().key()
                user.role.append(role_key)
        user.put()

        self.response.out.write('You have successfully updated user info')
Exemplo n.º 9
0
    def get(self, key):

        users = User.all()
        managers = []
        for user in users:
            for role in user.role:
                if Model.get(role).value == 'manager':
                    managers.append(user)

        roles = []
        if key:
            user = User.get(key)
            for role in user.role:
                roles.append(Role.get(role).value)
        else:
            user = None

        template_values = {'managers': managers,
                           'user': user,
                           'roles': roles}

        path = 'templates/new_user.html'
        self.response.out.write(template.render(path, template_values))
Exemplo n.º 10
0
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return HttpResponseRedirect("http://127.0.0.1:8000")
            else:
                return HttpResponse("same name!")
        else:
            return HttpResponse("两次密码输入不一致!")
Exemplo n.º 11
0
def register():
    """注册
    1. 接收参数(手机号, 短信验证码, 密码(明文))
    2. 校验参数(判断参数是否齐全,手机号是否合法)
    3.查询服务器存储的短信验证码
    4. 跟客户传入的短信验证码对比
    5. 如果对比成功,则创建USer模型对象,并赋值属性
    6. 同步数据模型到数据库
    7. 将状态保持数据写入session(实现注册即登录)
    8. 返回注册结果"""
    # 1.接收参数(手机号, 短信验证码, 密码(明文))
    # json 封装了==json.loads(json_str)
    json_dict = request.json
    mobile = json_dict.get('mobile')
    smscode_client = json_dict.get('smscode')
    password = json_dict.get('password')
    # 2.校验参数(判断参数是否齐全, 手机号是否合法)
    if not all([mobile, smscode_client, password]):
        # '{'errno':'0', 'errmsg':'OK'}'
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='缺少参数')
    if not re.match(r'^1[345678][0-9]{9}$', mobile):
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='手机号格式错误')
    # 3.查询服务器存储的短信验证码
    try:
        smscode_server = redis_store.get('SMS:' + mobile)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=response_code.RET.DBERR, errmsg='查询短信验证码失败')

    if not smscode_server:
        return jsonify(errno=response_code.RET.NODATA, errmsg='短信验证码不存在')
    # 4.跟客户传入的短信验证码对比
    if smscode_client != smscode_server:
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='输入短信验证码错误')
    # 5.如果对比成功, 则创建USer模型对象, 并赋值属性
    user = User()
    user.mobile = mobile
    user.nick_name = mobile
    user.password = password
    user.last_login = datetime.datetime.now()
    # 6.同步数据模型到数据库
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=response_code.RET.DBERR, errmsg='存储数据失败')
    # 7. 将状态保持数据写入session(实现注册即登录)
    session['user_id'] = user.id
    session['mobile'] = user.mobile
    session['nick_name'] = user.nick_name
    # 8. 返回注册结果
    return jsonify(errno=response_code.RET.OK, errmsg='注册成功')
Exemplo n.º 12
0
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return HttpResponseRedirect("http://127.0.0.1:8000")
            else:
                return HttpResponse("same name!")
        else:
            return HttpResponse("两次密码输入不一致!")
Exemplo n.º 13
0
    def get(self):
        users = User.all().order('first_name').fetch(1000)
        for user in users:
            user.roles = ''
            for role in user.role:
                user.roles = user.roles + Model.get(role).value + ' '
                
        upload_url_first_date = blobstore.create_upload_url('/upload_first_date')
        upload_url = blobstore.create_upload_url('/upload_contacts')




        self.template_values.update({'users': users,
                                     'upload_url_first_date': upload_url_first_date,
                                     'upload_url': upload_url})

        self.response.out.write(template.render(self.path,
                                                self.template_values))
Exemplo n.º 14
0
    def post(self):

        manager_email = self.request.get('manager_email')
        pr_key = self.request.get('pr_key')

        manager = User.gql("WHERE email = :manager_email", manager_email = manager_email).get()
        pr = PerformanceReview.get(pr_key)

        if manager is None:
            self.response.out.write('Some error happened. Try again please')
            return

        comment_to_form = CommentToForm.gql("WHERE pr = :pr AND manager = :manager", pr = pr, manager = manager).get()

        if comment_to_form is None:
            comment_to_form = CommentToForm(manager = manager,
                                        pr = pr)
            comment_to_form.put()

            self.response.out.write('You have successfully requested comment form %s %s' %(manager.first_name, manager.last_name))
        else:
            self.response.out.write('You have already requested comment form %s %s' %(manager.first_name, manager.last_name))
Exemplo n.º 15
0
def create_admin(name, password):

    if not all([name, password]):
        print("参数错误")

    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
    except Exception as err:
        print(err)
        db.session.rollback()
Exemplo n.º 16
0
    def post(self):

        upload_files = self.get_uploads('file')
        blob_info = upload_files[0]

        file = blob_info.open().read()

        wb = xlrd.open_workbook(file_contents=file)
        wb.sheet_names()
        sh = wb.sheet_by_index(0)

        cols_dict = {'name': 0,
                     'date': 1}


        for rownum in range(sh.nrows)[6:]:

            date = sh.cell_value(rownum, cols_dict['date']) - 2

            first_date = datetime.date(year=1900, month=1, day=1)

            date = first_date + datetime.timedelta(days=date)

            name = sh.cell_value(rownum, cols_dict['name']).replace('  ', ' ')

            last_name, first_name = name.split(' ')[:2]
            user = User.all().filter('last_name',
                                        last_name).filter('first_name',
                                                              first_name).get()
            if user:
                user.first_date = date
                user.put()
            else:
                logging.debug('last name: "%s" first_name: "%s" string: %s' %(last_name, first_name, name))

        self.redirect('/users')
Exemplo n.º 17
0
    def get(self, role, pr_key, blob_key):

        blob_key = str(urllib.unquote(blob_key))
        blob_info = blobstore.BlobInfo.get(blob_key)

        current_pr = PerformanceReview.get(pr_key)

        if role == 'manager':
            url = '/#/manager/pr/get/manager/%s' %current_pr.key()
        elif role == 'hr':
            url = '/#/hr/get/manager/%s' %current_pr.key()
        elif role == 'employee':
            url = '/#/employee/pr/get/employee/%s' %current_pr.key()
        else:
            url = '/'

        file = blob_info.open()

        employee = current_pr.employee

        NAMESPACES = {
            'w':"http://schemas.microsoft.com/office/word/2003/wordml",
            'v':"urn:schemas-microsoft-com:vml",
            'w10':"urn:schemas-microsoft-com:office:word",
            'sl':"http://schemas.microsoft.com/schemaLibrary/2003/core",
            'aml':"http://schemas.microsoft.com/aml/2001/core",
            'wx':"http://schemas.microsoft.com/office/word/2003/auxHint",
            'o':"urn:schemas-microsoft-com:office:office",
            'dt':"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",
            'wsp':"http://schemas.microsoft.com/office/word/2003/wordml/sp2",
            'ns0':"GD_AssessmentReportManager.xsl",
        }

        ElementTree.register_namespace(
                                'o',
                                'urn:schemas-microsoft-com:office:office')

        try:
            parser = ElementTree.parse(file)
        except SyntaxError:
            self.response.out.write('incorrect type')
            return

        date = parser.find('.//w:body//ns0:ActionDateFormat//w:t',
                          namespaces=NAMESPACES).text
        manager_type = parser.find(
                          './/w:body//ns0:GD_ManagerAssessmentForm//w:t',
                          namespaces=NAMESPACES)
        if manager_type is None:

            blob_info.delete()
            self.response.out.write('incorrect type')
#
            return

        fio = parser.find('.//w:body//ns0:EmployeeName//w:t',
                          namespaces=NAMESPACES).text.replace('  ',' ').strip()

        last_name, first_name = fio.split(' ')[:2]

        employee_from_form = User.gql(
            "WHERE last_name = :last_name AND first_name = :first_name",
                                      last_name=last_name,
                                      first_name=first_name).get()

        if employee_from_form is None or \
            employee_from_form.email != employee.email:

            blob_info.delete()
            self.response.out.write('incorrect user')
            return

        date = datetime.datetime.strptime(date, '%d/%m/%Y').date()
        type = 'annual'
        description = "PR %s: %s-%s" % (type, date, date)

        month = datetime.timedelta(days=30)

        period = PerformanceReviewPeriod.gql("WHERE start_date >= \
                                            :min_start_date AND \
                                            start_date <= :max_start_date",
                                             max_start_date=date+month,
                                             min_start_date=date-month).get()
        if period is None:
            period = PerformanceReviewPeriod(start_date=date,
                                             finish_date=date,
                                             description=description,
                                             type=type)
            period.put()

        pr = PerformanceReview(employee=employee,
                               first_effective_date=employee.first_date,
                               manager=employee.manager,
                               period=period,
                               date=date)
        pr.put()

        manager_form = PerformanceReviewForm(pr=pr,
                                             status='approved',
                                     type='manager')
        manager_form.put()

        achievements = parser.findall(
                    './/w:body//ns0:AchievementMngList//ns0:Description//w:t',
                    namespaces=NAMESPACES)

        for achievement in achievements:

            achievement = achievement.text.replace('\n', '').replace('  ',' ')

            logging.debug(achievement)
            ach = Achievements(value=achievement,
                               form=manager_form)
            ach.put()

        challenges = parser.findall(
                    './/w:body//ns0:ChallengeMngList//ns0:Description//w:t',
                    namespaces=NAMESPACES)

        for challenge in challenges:

            challenge = challenge.text.replace('\n', '').replace('  ',' ')
            ch = Challenges(value=challenge,
                               form=manager_form)
            ch.put()

        goals = parser.findall(
                    './/w:body//ns0:NextYearGoalsMng//ns0:Goal//w:t',
                    namespaces=NAMESPACES)
        
        for goal in goals:

            goal = goal.text.replace('\n', '').replace('  ',' ')
            g = NextGoals(value=goal,
                               form=manager_form)
            g.put()

        blob_info.delete()
        self.response.out.write('done')
Exemplo n.º 18
0
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        new_user.iconnum = request.GET['iconnum']
        new_user.status = 10000
        new_user.latest_time = "2015-01-01 12:00:00"
        new_user.score = 0
        new_user.win_num = 0
        new_user.tie_num = 0
        new_user.lose_num = 0
        dict1 = {'login': '******', 'reg': '0' }
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            user_num = User.objects.filter(lobby_id=(i+1)).__len__()
            lobby = {
                'user_num': user_num,
                'lobby_name': all_lobbies[i].name
            }
            lobbies.append(lobby)
        if new_user.password == password_again :
            if not has_same_uid(new_user):
                new_user.save()
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
            else:
                dict1['reg'] = '1'
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
        else:
            dict1['reg'] = '2'
            return render(request, 'index.html', {
                'Dict': json.dumps(dict1),
                'lobbies': lobbies,
                'form': form,
            })
Exemplo n.º 19
0
    def get(self):

        file_key = ContactXlsFile.all().get().file_key
        blob_info = blobstore.BlobInfo.get(file_key)
        file = blob_info.open().read()

        wb = xlrd.open_workbook(file_contents=file)
        wb.sheet_names()
        sh = wb.sheet_by_index(0)

        cols_dict = {'first_name': 1,
                     'last_name': 0,
                     'dept': 2,
                     'position': 3,
                     'email': 4,
                     'manager': 12}
        manager_dict = {}

        reg = "^\s+|\n|\r|\s+$"

        employee_role = Role.all().filter('value', 'employee').get().key()

        for rownum in range(sh.nrows)[6:]:
            email = sh.cell_value(rownum, cols_dict['email']).strip()
            user = User.all().filter('email', email).get()
            if user is None:
                user = User(email=email)
                user.put()

            if not user.role:
                user.role.append(employee_role)

            string_fields = ['first_name',
                             'last_name',
                             'position',
                             ]

            for field in string_fields:
                value = re.sub(reg,
                               '',
                               sh.cell_value(rownum, cols_dict[field]))
                setattr(user, field, value)

            department_str = re.sub(reg,
                                    '',
                                    sh.cell_value(rownum, cols_dict['dept']))
            department = Dept.all().filter('name', department_str).get()
            if department is None:
                department = Dept(name=department_str)
                department.put()
            user.dept = department

            user.put()

            manager_str = re.sub(reg,
                                 '',
                                 sh.cell_value(rownum, cols_dict['manager']))
            manager_dict[user.key()] = manager_str

        manager_role = Role.all().filter('value', 'manager').get().key()

        for user_key in manager_dict:

            manager_str = manager_dict[user_key].replace('  ', ' ')

            if manager_str:
                last_name, first_name = manager_str.split(' ')[:2]
                manager = User.all().filter('last_name',
                                            last_name).filter('first_name',
                                                              first_name).get()
            else:
                manager = None

            if manager is not None:
                if manager_role not in manager.role:
                    manager.role.append(manager_role)
                    manager.put()

            user = User.get(user_key)
            user.manager = manager
            user.put()

        self.redirect('/users')
Exemplo n.º 20
0
def login(request):
    if request.method == 'POST':
        if request.session['has_loggedin']:
            from logic.models import User
            cur_user = User.objects.get(uid=request.session['uid'])
            userdict = {'uid': cur_user.uid, 'name': cur_user.name, 'iconnum': cur_user.iconnum}
            all_lobbies = Lobby.objects.all()
            lobbies =[]
            lobby_length = all_lobbies.__len__()
            for i in range(0, lobby_length):
                 lobby = {
                    'user_num': User.objects.filter(lobby_id=(i+1)).__len__(),
                    'lobby_name': all_lobbies[i].name
                 }
                 lobbies.append(lobby)
            into_lobby_form = IntoLobbyForm()
            return render(request, 'login_complete.html', {
                'Dict': json.dumps(userdict),
                'lobbies': lobbies,
                'into_lobby_form': into_lobby_form,
            })
        from logic.models import User
        cur_user = User()
        form = RegisterForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['uid']
            password = form.cleaned_data['password']
            q = User.objects.filter(uid=username, password=password)
            if q.__len__() != 0:
                cur_user.name = q[0].name
                cur_user.uid = q[0].uid
                cur_user.iconnum = q[0].iconnum
                userdict = {'uid': username, 'name': cur_user.name, 'iconnum': cur_user.iconnum}
                request.session['has_loggedin'] = True
                request.session['uid'] = cur_user.uid
                all_lobbies = Lobby.objects.all()
                lobbies =[]
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num': User.objects.filter(lobby_id=(i+1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                into_lobby_form = IntoLobbyForm()
                return render(request, 'login_complete.html', {
                    'Dict': json.dumps(userdict),
                    'lobbies': lobbies,
                    'into_lobby_form': into_lobby_form,
                })
            else:
                all_lobbies = Lobby.objects.all()
                lobbies = []
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num': User.objects.filter(lobby_id=(i+1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                dict1 = {'login': '******', 'reg': '0'}
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })

    else:
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            lobby = {
                'user_num': User.objects.filter(lobby_id=(i+1)).__len__(),
                'lobby_name': all_lobbies[i].name
            }
            lobbies.append(lobby)
        return render_to_response("index.html",
                            {'form': form, 'lobbies': lobbies, }, context_instance=RequestContext(request))
    def get(self):
        today = datetime.date.today()
        events = Event.all()
        employees = User.all()
        month = datetime.timedelta(days=30)
        week = datetime.timedelta(weeks=1)

        for event in events:

            if event.start_date < today:
                event.start_date = event.start_date.replace(year = (today.year + 1))
                event.put()

        for employee in employees:

            first_date = employee.first_date

            if not first_date:
                first_date = datetime.date.min

            start_date = first_date + datetime.timedelta(weeks=13)
            finish_date = start_date + datetime.timedelta(weeks=2)

            if start_date - month == today:

                description = "PR annual: %s-%s" % (start_date, finish_date)

                period = PerformanceReviewPeriod(type='annual',
                                                description=description,
                                                start_date=start_date,
                                                finish_date=finish_date)
                period.put()

                pr = PerformanceReview(employee=employee,
                                        manager=employee.manager,
                                        date=period.start_date,
                                        period=period)
                pr.put()

            next_pr_start_date = start_date + 13 * week

            for event in events:

                delta = next_pr_start_date - event.start_date

                if next_pr_start_date > today:

                    if delta < month and delta > -month:

                        if event.start_date - month == today:

                            description = "PR %s: %s-%s" % (event.type, event.start_date, event.finish_date)
                            period = PerformanceReviewPeriod(start_date=event.start_date,
                                description=description,
                                finish_date=event.finish_date)
                            period.put()

                            pr = PerformanceReview(period=period,
                                employee=employee,
                                manager=employee.manager,
                                date=period.start_date
                            )
                            pr.put()
                    else:

                        if next_pr_start_date == today + month:

                            finish_date = next_pr_start_date + 2 * week
                            description = "PR custom: %s-%s" % (next_pr_start_date, finish_date)
                            period = PerformanceReviewPeriod(start_date=next_pr_start_date,
                                description=description,
                                finish_date=finish_date)
                            period.put()

                            pr = PerformanceReview(period=period,
                                employee=employee,
                                manager=employee.manager,
                                date=period.start_date
                            )
                            pr.put()

                else:

                    for event in events:
                        if event.start_date - month == today or event.start_date.replace(year=(today.year + 1)):

                            description = "PR %s: %s-%s" % (event.type, event.start_date, event.finish_date)
                            period = PerformanceReviewPeriod(start_date=event.start_date,
                                description=description,
                                finish_date=event.finish_date)
                            period.put()

                            pr = PerformanceReview(period=period,
                                employee=employee,
                                manager=employee.manager,
                                date=period.start_date
                            )
                            pr.put()
Exemplo n.º 22
0
def login(request):
    if request.method == 'POST':
        if request.session['has_loggedin']:
            from logic.models import User
            cur_user = User.objects.get(uid=request.session['uid'])
            userdict = {
                'uid': cur_user.uid,
                'name': cur_user.name,
                'iconnum': cur_user.iconnum
            }
            all_lobbies = Lobby.objects.all()
            lobbies = []
            lobby_length = all_lobbies.__len__()
            for i in range(0, lobby_length):
                lobby = {
                    'user_num':
                    User.objects.filter(lobby_id=(i + 1)).__len__(),
                    'lobby_name': all_lobbies[i].name
                }
                lobbies.append(lobby)
            into_lobby_form = IntoLobbyForm()
            return render(
                request, 'login_complete.html', {
                    'Dict': json.dumps(userdict),
                    'lobbies': lobbies,
                    'into_lobby_form': into_lobby_form,
                })
        from logic.models import User
        cur_user = User()
        form = RegisterForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['uid']
            password = form.cleaned_data['password']
            q = User.objects.filter(uid=username, password=password)
            if q.__len__() != 0:
                cur_user.name = q[0].name
                cur_user.uid = q[0].uid
                cur_user.iconnum = q[0].iconnum
                userdict = {
                    'uid': username,
                    'name': cur_user.name,
                    'iconnum': cur_user.iconnum
                }
                request.session['has_loggedin'] = True
                request.session['uid'] = cur_user.uid
                all_lobbies = Lobby.objects.all()
                lobbies = []
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num':
                        User.objects.filter(lobby_id=(i + 1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                into_lobby_form = IntoLobbyForm()
                return render(
                    request, 'login_complete.html', {
                        'Dict': json.dumps(userdict),
                        'lobbies': lobbies,
                        'into_lobby_form': into_lobby_form,
                    })
            else:
                all_lobbies = Lobby.objects.all()
                lobbies = []
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num':
                        User.objects.filter(lobby_id=(i + 1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                dict1 = {'login': '******', 'reg': '0'}
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })

    else:
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            lobby = {
                'user_num': User.objects.filter(lobby_id=(i + 1)).__len__(),
                'lobby_name': all_lobbies[i].name
            }
            lobbies.append(lobby)
        return render_to_response("index.html", {
            'form': form,
            'lobbies': lobbies,
        },
                                  context_instance=RequestContext(request))
Exemplo n.º 23
0
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        new_user.iconnum = request.GET['iconnum']
        new_user.status = 10000
        new_user.latest_time = "2015-01-01 12:00:00"
        new_user.score = 0
        new_user.win_num = 0
        new_user.tie_num = 0
        new_user.lose_num = 0
        dict1 = {'login': '******', 'reg': '0'}
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            user_num = User.objects.filter(lobby_id=(i + 1)).__len__()
            lobby = {'user_num': user_num, 'lobby_name': all_lobbies[i].name}
            lobbies.append(lobby)
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
            else:
                dict1['reg'] = '1'
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
        else:
            dict1['reg'] = '2'
            return render(request, 'index.html', {
                'Dict': json.dumps(dict1),
                'lobbies': lobbies,
                'form': form,
            })