Beispiel #1
0
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}
Beispiel #2
0
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"}
Beispiel #3
0
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"}
Beispiel #4
0
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"}
Beispiel #5
0
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}
Beispiel #6
0
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"}
Beispiel #7
0
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
Beispiel #8
0
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}
Beispiel #9
0
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}
Beispiel #10
0
 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]
Beispiel #11
0
    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)
Beispiel #12
0
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
Beispiel #13
0
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}
Beispiel #14
0
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}
Beispiel #15
0
    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
Beispiel #16
0
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
Beispiel #17
0
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
Beispiel #18
0
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
Beispiel #19
0
 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]