def client_info(params, lang): team_id = params.get("team_id", "") if not team_id: return {"error_code":20321, "msg":"paramsmeter invalid"} team = Team.select().where(Team.uuid == team_id).first() if not team: return {"error_code":20322, "msg":"client not exists"} statis = TeamStatistics.select().where(TeamStatistics.team == team).first() if statis: info = {"eveluate_num":statis.eveluate_num, "total_amount":statis.total_amount, "hours":statis.hours, "jobs":statis.jobs, "hires":statis.hires, "open_jobs":statis.open_jobs, "score":statis.score, "aver_score": statis.aver_score} else: info = {"eveluate_num":0, "total_amount":0, "hours":0, "jobs":0, "hires":0, "open_jobs":0, "score":0, "aver_score": 0} info.update({"name":team.name, "reg_at":utils.local_datetime_to_str(team.create_at), "location":""}) if team.location_id: city = widget.get_location(team.location_id) info['location'] = utils.lang_map_name(city.name, city.ename, lang) if city.parent_id: province = widget.get_location(city.parent_id) info['location'] += ",%s" % utils.lang_map_name(province.name, province.ename, lang) return {"error_code":0, "msg":"ok", "info":info}
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 user_role_change(user, params, token, device): uid = params.get("id", "") if device == "web": role, role_id = user.identify[0], int(user.identify[1:]) else: role, role_id = user.app_identify[0], int(user.app_identify[1:]) tmp_user = User.select().where(User.uuid==uid).first() identify = None if not tmp_user: tmp_team = Team.select().where(Team.uuid==uid).first() if not tmp_team or tmp_team.user != user: return {"error_code": 20332, "msg": "the role not change, not allowed"} if role == "f": identify = "c%s" % tmp_team.id else: if tmp_user.id != user.id: return {"error_code": 20332, "msg": "the role not change, not allowed"} if role == "c": identify = "f%s" % tmp_user.id if identify: if device == "web": user.identify = identify user.save() else: user.app_identify = identify user.save() if device in ("ios", "android"): qs = Session.delete().where(Session.user==user, Session.session_key!=token, Session.device << ("ios", "android")) qs.execute() 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 statistics_team_jobs(body): if "team_id" not in body: return team = Team.select().where(Team.id == body["team_id"]).first() if not team: return qs = (Job.team == team) qs_count = (qs & (Job.status << ["normal", "private", "close"])) qs_open = (qs & (Job.status == "normal")) jobs_count = Job.select().where(qs_count).count() jobs_open = Job.select().where(qs_open).count() ts = TeamStatistics().select().where(TeamStatistics.team == team).first() if not ts: ts = TeamStatistics() ts.user = team.user ts.team = team ts.jobs = 0 ts.open_jobs = 0 ts.jobs = jobs_count ts.open_jobs = jobs_open ts.save() return
def user_role_list(user): profile = user.profile.first() teams = Team.select().where(Team.user == user) out = [] for team in teams: out.append({"name":team.name, "team_id":team.uuid}) return {"error_code": 0, "msg": "ok", "teams": out, "name":profile.name, "id":user.uuid}
def get_events_for_user_to_be_ack(self): ''' Return the events 'created' waiting for a member to update to 'in progress' ''' teams = Team.select().join( Event).where((Team.member == self.current_user) & (Team.event.status == 'created')) return [Event.select().where(Event.id == team.event) for team in teams]
def has_permission_to_edit(self, event_name: str) -> bool: ''' Check if a user can edit the event given in argument; It can be a member, or the manager of the event ''' event = Event.get(Event.name == event_name) if event == None: return False return (Team.select().where((Team.member == self.current_user) & (Team.event == event)).count() == 1 or self.current_user == event.manager)
def user_all_info(cls): return; if cls.user: cls.user.profile.avatar = widget.avatar(cls.user.profile.avatar) teams = Team.select(Team.id, Team.name, Team.uuid, Team.logo).where(Team.user == cls.user, Team.status=="normal") cls.user.current_team = None for x in teams: x.logo = widget.logo(x.logo) if x.id == int(cls.user.identify[1:]): cls.user.current_team = x cls.user.team = teams
def im_session_verify(params): token = params.get("session_token") session = Session.select().where(Session.session_key==token, Session.expire_at>utils.now()).first() if not session: return {"error_code":1, "msg":"token not exist"} user = session.user role, tid = user.app_identify[0], int(user.app_identify[1:]) if role == "f": return {"error_code":0, "msg":"ok", "id":user.id} team = Team.select().where(Team.id == tid).first() if not team: return {"error_code":1, "msg":"token error"} return {"error_code":0, "msg":"ok", "id":team.id}
def get_events_per_user(self, event_id: int = None): if event_id == None: return [{ 'user': user.name, 'events': Team.select().where(Team.member == user).count(), 'checked': 'unchecked' } for user in User.select()] else: epu = [] for u in User.select(): checked = 'unchecked' if Team.select().where((Team.member == u) & (Team.event == event_id)): checked = 'checked' epu.append({ 'user': u.name, 'events': Team.select().where(Team.member == u).count(), 'checked': checked }) return epu
def statistics_team_amount(body): if filter(lambda x: x not in body, ["team_id", "amount"]): return team = Team.select().where(Team.id == int(body["team_id"])).first() if not team: return ts = TeamStatistics().select().where(TeamStatistics.team == team).first() if not ts: ts = TeamStatistics() ts.user = team.user ts.team = team ts.total_amount += utils.decimal_two(body["amount"]) ts.save() return
def change_role(user, uuid, change_to_role): if change_to_role == "f": if user.identify[0] != "f": user.identify = "f%s" % user.id user.save() else: return False else: team = Team.select().where(Team.user == user, Team.uuid == uuid).first() if team: #if user.status == "unactive": # user.status = "active" identify = "c%s" % team.id if user.identify != identify: user.identify = identify user.save() else: return False return True
def get_events_for_member(self, user: User) -> list: ''' Return the events a user is affiliated with ''' teams = Team.select().where(Team.member == user) return [Event.get(Event.id == team.event) for team in teams]