예제 #1
0
def aspireSeater(sid):
    seater = SeaterModel.getSeater(sid)
    if ProjectModel.isProjectAdmin(getCurrentUid(), seater["pid"]):
        SeaterModel.assignUser(getCurrentUid(), sid)
    else:
        SeaterModel.aspireSeater(getCurrentUid(), sid)
    return json.dumps({"result": "success"})
예제 #2
0
def removeSeater(sid):
    seater = SeaterModel.getSeater(sid)
    if seater != None:
        if ProjectModel.isProjectAdmin(getCurrentUid(), seater["pid"]):
            SeaterModel.removeSeater(sid)
            return json.dumps({"result": "success"})
        else:
            return render_template("private-api/forbidden-request.html")
    return render_template("private-api/unknown-request.html")
예제 #3
0
def assignUser(sid, uid):
    seater = SeaterModel.getSeater(sid)

    if seater != None:
        if ProjectModel.isProjectAdmin(getCurrentUid(), seater["pid"]):
            if SeaterModel.isThereSeaterAspiration(uid, sid):
                SeaterModel.assignUser(uid, sid)
                return json.dumps({"result": "success"})
        else:
            return render_template("private-api/forbidden-request.html")

    return render_template("private-api/unknown-request.html")
예제 #4
0
def dismissUserFromSeater(sid):
    seater = SeaterModel.getSeater(sid)

    if seater != None:
        if ProjectModel.isProjectAdmin(getCurrentUid(),
                                       seater["pid"]) or (seater["uid"]
                                                          == getCurrentUid()):
            SeaterModel.dismissUser(sid)
            SeaterModel.cancelAspirationToTheSeater(seater["uid"], sid)
            return json.dumps({"result": "success"})
        else:
            return render_template("private-api/forbidden-request.html")

    return render_template("private-api/unknown-request.html")
예제 #5
0
파일: project.py 프로젝트: fozbek/devSeater
def projectPage(projectName):
  currentUser = getCurrentUser()
  project = ProjectModel.getProjectByProjectName(projectName)

  if project == None:
    return render_template(
      "not-found.html",
      title = "Project Not Found!",
      msg = "The project you trying to access not found!",
      currentUser = getCurrentUser()
      )

  projectLinks = ProjectModel.getProjectLinks(project["pid"])
  lastProjectPosts = ProjectPostModel.getLastProjectPosts(project["pid"], 10, getCurrentUid())
  numberOfMembers = ProjectModel.getNumberOfMembers(project["pid"])
  numberOfEmptySeaters = SeaterModel.getProjectEmptySeaterNumber(project["pid"])
  popularProjects = ProjectModel.getPopularProjects(10)
  whoToFollowList = UserModel.getWhoToFollowList(5, getCurrentUid())


  return render_template(
    "project-page.html",
    currentUser = currentUser,
    project = project,
    projectLinks = projectLinks,
    lastProjectPosts = lastProjectPosts,
    numberOfMembers = numberOfMembers,
    numberOfEmptySeaters = numberOfEmptySeaters,
    popularProjects = popularProjects,
    whoToFollowList = whoToFollowList
    )
예제 #6
0
def saveSeater(pid):
    if ProjectModel.isProjectAdmin(getCurrentUid(), pid):
        seater = json.loads(request.data)
        seater["pid"] = pid

        if request.method == "POST":
            # Create seater

            sid = SeaterModel.createSeater(pid, seater)

            #Add skills
            for skill in seater["skills"]:
                SkillModel.addSeaterSkill(sid, skill)

            return json.dumps({"result": "success", "sid": sid})
        else:
            # Update seater

            SeaterModel.updateSeater(seater["sid"], seater)

            # Get current skills
            currentSkills = [
                i["name"] for i in SkillModel.getSeaterSkills(seater["sid"])
            ]

            skillsToDelete = set(currentSkills).difference(
                set(seater["skills"]))
            skillToAdd = set(seater["skills"]).difference(set(currentSkills))

            # Delete skills
            for skill in skillsToDelete:
                skill.strip()
                if skill != None and skill != "":
                    SkillModel.removeSeaterSkill(seater["sid"], skill)

            # Add skills
            for skill in skillToAdd:
                skill.strip()
                if skill != None and skill != "":
                    SkillModel.addSeaterSkill(seater["sid"], skill)

            return json.dumps({"result": "success"})

    return render_template("private-api/forbidden-request.html")
예제 #7
0
파일: project.py 프로젝트: fozbek/devSeater
def seaterPage(projectName, sid):
  project = ProjectModel.getProjectByProjectName(projectName)
  seater = SeaterModel.getSeater(sid, getCurrentUid())
  seater["skills"] = SkillModel.getSeaterSkills(sid)
  assignedUser = UserModel.getUser(seater["uid"])
  seater["isProjectAdmin"] = ProjectModel.isProjectAdmin(getCurrentUid(), project["pid"])

  return render_template(
    "seater-page.html",
    currentUser= getCurrentUser(),
    seater = seater,
    assignedUser = assignedUser
  )
예제 #8
0
def seaterSkills():
    if request.method == "GET":
        #Get seater skills
        sid = request.args.get("sid")

        if sid != None:
            skills = SkillModel.getUserSkills(getCurrentUid)
            return json.dumps(skills, cls=DateTimeEncoder)
        return render_template("private-api/unknown-request.html")

    elif request.method == "POST" and isLoggedIn():
        #Add seater skill
        sid = request.args.get("sid")
        skill = request.args.get("skill")

        pid = SeaterModel.getSeater(sid)["pid"]

        if ProjectModel.isProjectAdmin(getCurrentUid(), pid):
            if skill != None:
                SkillModel.addSeaterSkill(sid, skill)
                return json.dumps({"result": "success"})

    else:
        #Delete a user skill
        skid = request.args.get("skid")

        if skid != None and isLoggedIn():
            skill = SkillModel.getUserSkill(skid)

            if skill["uid"] == getCurrentUid():
                SkillModel.removeUserSkill(skid)
                return json.dumps({"result": "success"})
            else:
                return render_template("private-api/forbidden-request.html")

    return render_template("private-api/unknown-request.html")
예제 #9
0
def seaterAspirationNumber(sid):
    seater = SeaterModel.getSeater(sid)
    if ProjectModel.isProjectAdmin(getCurrentUid(), seater["pid"]):
        number = SeaterModel.getSeaterAspirationNumber(sid)
        return json.dumps({"number": number})
    return render_template("private-api/forbidden-request.html")
예제 #10
0
def projectFilledSeaters(pid):
    seaters = SeaterModel.getFilledProjectSeaters(pid)

    return json.dumps(seaters, cls=DateTimeEncoder)
예제 #11
0
def cancelSeaterAspiration(sid):
    if SeaterModel.isThereSeaterAspiration(getCurrentUid(), sid):
        SeaterModel.cancelAspirationToTheSeater(getCurrentUid(), sid)
        return json.dumps({"result": "success"})
    else:
        return render_template("private-api/forbidden-request.html")
예제 #12
0
def seaterAspirations(sid):
    seater = SeaterModel.getSeater(sid)
    if ProjectModel.isProjectAdmin(getCurrentUid(), seater["pid"]):
        aspirations = SeaterModel.getSeaterAspirations(sid)
        return json.dumps(aspirations, cls=DateTimeEncoder)
    return render_template("private-api/forbidden-request.html")
예제 #13
0
def projectEmptySeaterNumber(pid):
    number = SeaterModel.getEmptyProjectSeaterNumber(pid)

    return json.dumps({"number": number})
예제 #14
0
def userSeaters(uid):
    seaters = SeaterModel.getUserSeaters(uid)
    return json.dumps(seaters, cls=DateTimeEncoder)
예제 #15
0
def userSeaterNumber(uid):
    number = SeaterModel.getUserSeaterNumber(uid)
    return json.dumps({"number": number})
예제 #16
0
def projectEmptySeaters(pid):
    seaters = SeaterModel.getEmptyProjectSeaters(pid)

    return json.dumps(seaters, cls=DateTimeEncoder)
예제 #17
0
def getSeater(sid):
    seater = SeaterModel.getSeater(sid)
    seater["skills"] = SkillModel.getSeaterSkills(sid)
    return json.dumps(seater, cls=DateTimeEncoder)