def create_client(user, params): name = params.get("name", "") if not name or len(name) > 30: return {"error_code": 20251, "msg": "name invalid"} #team = Team.select().where(Team.user == user, Team.name == name).first() team = Team.select().where(Team.user == user).first() if team: return {"error_code": 20252, "msg": "team is exists and must one"} team_id = GUID.guid() team = Team() team.id = team_id team.user = user team.name = name team.status = "normal" team.team_type = 'client' team.logo = widget.logo() team.save(force_insert=True) user.to_req = True user.identify = "c%s" % team.id user.save() team_profile = TeamProfile() team_profile.team = team team_profile.save() #Member.create(user=user, team=team, mtype='owner') return {"error_code": 0, "msg": "ok"}
def create_client(user, params): name = params.get("name", "") if not name or len(name) > 30: return {"error_code":20251, "msg":"name invalid"} #team = Team.select().where(Team.user == user, Team.name == name).first() team = Team.select().where(Team.user == user).first() if team: return {"error_code":20252, "msg":"team is exists and must one"} team_id = GUID.guid() team = Team() team.id = team_id team.user = user team.name = name team.status = "normal" team.team_type = 'client' team.logo = widget.logo() team.save(force_insert=True) user.to_req = True user.identify = "c%s" % team.id user.save() team_profile = TeamProfile() team_profile.team = team team_profile.save() #Member.create(user=user, team=team, mtype='owner') return {"error_code":0, "msg":"ok"}
def _process_project(self, project): team = Team.objects(team_id=project.namespace.id).first() # We reset team statistics when we first encounter it if team and project.namespace.id not in self.teams_seen: team.delete() team = None self.teams_seen.add(project.namespace.id) if not team: team = Team(team_id=project.namespace.id) for (lang, total) in self._lang_stats(project).items(): if lang in team.languages: team.languages[lang] += total else: team.languages[lang] = total team.save()
def join_team(): """ Joining team view. :return: HTTP Response """ team = Team.get(team_name=request.form['team_name']) if not team: team = Team(team_name=request.form['team_name']) team.save() else: team = team[0] current_user.set_team(team.team_id) team.increase_rank(current_user.rank) return redirect(request.referrer)
def post(self, *args, **kwargs): if 'user' not in kwargs or args: self.raise401() name = self.get_argument('name', None) description = self.get_argument('description', None) url = self.get_argument('url', None) leader = self.get_argument('leader', None) members = self.get_argument('members', None) tags = self.get_argument('tags', None) try: # todo - better arguments handler url = url.strip() url = url if url else None members_list = [] team_leader = kwargs['user'] if leader: team_leader = User.objects(username=leader).first() if members: for member in parse_listed_strs(members): u = User.objects(username=member).first() if not u or u == team_leader: continue members_list.append(u) members_list.append(team_leader) tags_list = parse_listed_strs(tags) team = Team( name=name, description=description, url=url, leader=team_leader, members=members_list, tags=tags_list) team.save() team_data = document_to_json(team, filter_set=_FILTER) self.set_status(201) self.write(team_data) except Exception as e: reason = e.message self.raise400(reason=reason)
def register(params, device): rtype = params.get('rtype', None) name = params.get('name', None) phone = params.get('phone', None) password = params.get('password', None) vcode = params.get('vcode', None) uname = params.get('username', '') cname = params.get('cname', '') notice = params.get('notice', "true") if not phone or not password or not vcode or not name or not rtype or not notice or not rtype.isdigit(): return {"error_code":20021, "msg":"parameters required"} rtype = int(rtype) if not validate.is_phone(phone): return {"error_code":20022, "msg":"phone invalid"} # freelancer: 1, client: 2, client_person: 3 if rtype not in [1, 2, 3]: return {"error_code":20022, "msg":"user type invalid"} if rtype == 2 and not cname or len(cname) > 100: return {"error_code":20022, "msg":"user type invalid or cname too long"} if not validate.is_verify_code(vcode): return {"error_code":20024, "msg":"verify code invalid"} if User.select().where(User.phone == phone).first(): return {"error_code":20025, "msg":"user is exists"} if rtype != 1: username = phone else: # freelancer do not use username, just use phone to register # username = uname username = phone if not utils.is_username(username): return {"error_code":20023, "msg":"username invalid"} if User.select().where(User.username == username).first(): return {"error_code":20025, "msg":"user is exists"} res = verify_code(phone=phone, code=vcode) if res['error_code'] != 0: return res user_id = GUID.guid() team_id = GUID.guid() with database.atomic() as txn: try: pwd, salt = generate_password(password.encode('utf-8')) user = User() user.id = user_id user.username = username user.password = pwd user.salt = salt user.phone = phone #user.verifycode = vcode user.save(force_insert=True) profile = Profile() profile.user = user profile.name = name profile.avatar = widget.avatar() if notice == "true": profile.is_notice = True profile.save() party = Party() party.user = user party.vip = False party.connects = 60 party.agency_connects = 60 party.save() margin = Margin() margin.user = user margin.save() if rtype == 1: user.identify = 'f%s' % user.id user.app_identify = 'f%s' % user.id user.status = "unactive" user.to_dev = True user.to_req = False user.save() queue.to_queue({"type":"user_register", "user_id":user.id}) else: team = Team() team.id = team_id team.user = user if rtype == 2: team.name = cname else: team.name = "个人需求方" team.team_type = 'client' team.status = "normal" team.logo = widget.logo() team.save(force_insert=True) team_profile = TeamProfile() team_profile.team = team team_profile.phone = phone team_profile.save() user.identify = 'c%s' % team.id user.app_identify = 'c%s' % team.id user.status = "active" user.to_req = True user.to_dev = False user.save() queue.to_queue({"type":"user_register", "user_id":user.id, "team_id":team.id}) except Exception, e: logger.error(traceback.format_exc()) txn.rollback() return {"error_code":20026, "msg":"signup error"}
def register(params, device): rtype = params.get('rtype', None) name = params.get('name', None) phone = params.get('phone', None) password = params.get('password', None) vcode = params.get('vcode', None) uname = params.get('username', '') cname = params.get('cname', '') notice = params.get('notice', "true") if not phone or not password or not vcode or not name or not rtype or not notice or not rtype.isdigit( ): return {"error_code": 20021, "msg": "parameters required"} rtype = int(rtype) if not validate.is_phone(phone): return {"error_code": 20022, "msg": "phone invalid"} # freelancer: 1, client: 2, client_person: 3 if rtype not in [1, 2, 3]: return {"error_code": 20022, "msg": "user type invalid"} if rtype == 2 and not cname or len(cname) > 100: return { "error_code": 20022, "msg": "user type invalid or cname too long" } if not validate.is_verify_code(vcode): return {"error_code": 20024, "msg": "verify code invalid"} if User.select().where(User.phone == phone).first(): return {"error_code": 20025, "msg": "user is exists"} if rtype != 1: username = phone else: # freelancer do not use username, just use phone to register # username = uname username = phone if not utils.is_username(username): return {"error_code": 20023, "msg": "username invalid"} if User.select().where(User.username == username).first(): return {"error_code": 20025, "msg": "user is exists"} res = verify_code(phone=phone, code=vcode) if res['error_code'] != 0: return res user_id = GUID.guid() team_id = GUID.guid() with database.atomic() as txn: try: pwd, salt = generate_password(password.encode('utf-8')) user = User() user.id = user_id user.username = username user.password = pwd user.salt = salt user.phone = phone #user.verifycode = vcode user.save(force_insert=True) profile = Profile() profile.user = user profile.name = name profile.avatar = widget.avatar() if notice == "true": profile.is_notice = True profile.save() party = Party() party.user = user party.vip = False party.connects = 60 party.agency_connects = 60 party.save() margin = Margin() margin.user = user margin.save() if rtype == 1: user.identify = 'f%s' % user.id user.app_identify = 'f%s' % user.id user.status = "unactive" user.to_dev = True user.to_req = False user.save() queue.to_queue({"type": "user_register", "user_id": user.id}) else: team = Team() team.id = team_id team.user = user if rtype == 2: team.name = cname else: team.name = "个人需求方" team.team_type = 'client' team.status = "normal" team.logo = widget.logo() team.save(force_insert=True) team_profile = TeamProfile() team_profile.team = team team_profile.phone = phone team_profile.save() user.identify = 'c%s' % team.id user.app_identify = 'c%s' % team.id user.status = "active" user.to_req = True user.to_dev = False user.save() queue.to_queue({ "type": "user_register", "user_id": user.id, "team_id": team.id }) except Exception, e: logger.error(traceback.format_exc()) txn.rollback() return {"error_code": 20026, "msg": "signup error"}
def init_db(): """ Initializing database and creating necessary files for user profile images view. :return: HTTP Response """ if not os.path.exists(os.path.join(os.getcwd(), 'static', 'media')): os.makedirs(os.path.join(os.getcwd(), 'static', 'media')) os.mkdir( os.path.join(os.getcwd(), 'static', 'media', 'profile_pictures')) Team.create() Users.create() if len(Users.get(is_admin=True)) == 0: tables = [ Team, Contest, Users, Problems, Tag, ProblemTag, Message, Clarification, Notification, Discussion, Submissions, Input, ContestUser, UsersUpvote, UsersDownvote ] for table in tables[::-1]: table.drop() for table in tables: table.create() # Teams and Users bumbles = Team(team_name='HumbleBumbles') bumbles.save() burakbugrul = Users(username='******', email='*****@*****.**', password='******', is_admin=True, team_id=bumbles.team_id) burakbugrul.save() packers = Team(team_name='HackerPackers') packers.save() hackergirl = Users(username='******', email='*****@*****.**', password='******', is_admin=True, team_id=packers.team_id) hackergirl.save() pax = Users(username='******', email='*****@*****.**', password='******', is_admin=True, team_id=packers.team_id) pax.save() # Contests online = Contest(contest_name='online', start_time=datetime.now(), end_time=datetime.now() + timedelta(days=1000)) online.save() past = Contest(contest_name='past', start_time=datetime.now() - timedelta(days=1000), end_time=datetime.now() - timedelta(days=1)) past.save() future = Contest(contest_name='future', start_time=datetime.now() + timedelta(days=500), end_time=datetime.now() + timedelta(days=1000)) future.save() # Problems easy = Problems(problem_name='Easy', statement='This problem is easy', contest_id=online.contest_id, max_score=100) easy.save() moderate = Problems(problem_name='Moderate', statement='This problem is moderate', contest_id=online.contest_id, max_score=100) moderate.save() hard = Problems(problem_name='Hard', statement='This problem is hard', contest_id=online.contest_id, max_score=100) hard.save() past_prob = Problems(problem_name='Old', statement='This problem is old', contest_id=past.contest_id, max_score=100) past_prob.save() new_prob = Problems(problem_name='New', statement='This problem is new', contest_id=future.contest_id, max_score=100) new_prob.save() # Tags dynamic = Tag(tag_name='Dynamic') dynamic.save() graph = Tag(tag_name='Graph') graph.save() greedy = Tag(tag_name='Greedy') greedy.save() games = Tag(tag_name='Game-Theory') games.save() ProblemTag.save_tags_to_problem(easy, [greedy]) ProblemTag.save_tags_to_problem(moderate, [dynamic, games]) ProblemTag.save_tags_to_problem(hard, [dynamic, graph, greedy]) # Inputs inp = Input(problem_id=easy.problem_id, testcase='input', expected_output='output') inp.save() inp = Input(problem_id=easy.problem_id, testcase='input2', expected_output='output2') inp.save() inp = Input(problem_id=moderate.problem_id, testcase='input moderate', expected_output='output moderate') inp.save() inp = Input(problem_id=hard.problem_id, testcase='input hard', expected_output='output hard') inp.save() return redirect(url_for('core.home'))