Ejemplo n.º 1
0
    def post(self):
        if not SigninManager.get_is_signed_in():
            raise SigninRequiredError("Signin required.")

        args = json.loads(request.data.decode("utf-8"))

        user_id = SigninManager.get_user_id()

        speakerinfo = SpeakerInfo.query.filter_by(user_id=user_id).first()

        if speakerinfo is None:
            speakerinfo = SpeakerInfoRepo.insert(args)
        else:
            speakerinfo.introduce = args["introduce"]
            speakerinfo.history = args["history"]
            speakerinfo.title = args["title"]
            speakerinfo.description = args["description"]
            speakerinfo.keynote_link = args["keynote_link"]

            try:
                db.session.merge(speakerinfo)
                db.session.commit()
            except IntegrityError as e:
                print(str(e))
                db.session.rollback()
                abort_with_integrityerror(e)
            except Exception as e:
                print(str(e))
                db.session.rollback()
                raise e

        return speakerinfo
Ejemplo n.º 2
0
def information_modify():
    if not SigninManager.get_is_signed_in():
        return redirect("/volunteer/login")

    user = User.query.filter_by(_id=SigninManager.get_user_id()).first()
    return render_template("volunteer/additional_info.html",
                           speaker=user.speakerinfo)
Ejemplo n.º 3
0
def information():
    if not SigninManager.get_is_signed_in():
        return redirect("/volunteer/login")

    user = User.query.filter_by(_id=SigninManager.get_user_id()).first()
    speakerinfo = user.speakerinfo if user.speakerinfo else None

    return render_template("volunteer/information.html",
                           user=user,
                           speakerinfo=speakerinfo)
Ejemplo n.º 4
0
    def get(self):
        if not SigninManager.get_is_signed_in():
            raise SigninRequiredError("Signin required.")

        speakerinfo = SpeakerInfoRepo.get_with_user_id(
            SigninManager.get_user_id())

        if speakerinfo is None:
            speakerinfo = SpeakerInfo()

        return speakerinfo
Ejemplo n.º 5
0
def library_list():
    if not SigninManager.get_is_signed_in():
        return redirect("/volunteer/login")

    user = User.query.filter_by(_id=SigninManager.get_user_id()).first()
    if user.library_id is not None:
        return redirect("/volunteer/information")

    libraries = Library.query.all()

    lib_dict = dict()

    count = {"apply": 0, "approve": 0, "volunteer": 0}

    for library in libraries:
        session_dict = {
            "name": library.name,
            "location": library.location_road,
            "14:00": 0,
            "15:00": 0,
            "volunteer": 0
        }

        for user in library.users:
            if user.speakerinfo:
                count["apply"] += 1
                time = user.speakerinfo.session_time
                admin_approved = user.speakerinfo.admin_approved
                if admin_approved == 0:
                    count["approve"] += 1
                    availability = 2
                elif admin_approved is None or admin_approved == 1:
                    availability = 1
                else:
                    availability = 0

                session_dict[time] = availability
            else:
                count["volunteer"] += 1
                session_dict["volunteer"] += 1

        lib_dict[library._id] = session_dict.copy()

    # print(lib_dict)

    return render_template("volunteer/match.html",
                           libraries=libraries,
                           lib_dict=lib_dict,
                           count=count)
Ejemplo n.º 6
0
    def get(self, pk):
        # TODO(@harrydrippin) Signin Check
        library = get_or_404(Library, pk)
        user_list = list()
        for user in library.users:
            if not user.speakerinfo:
                user_list.append(user)

        if len(user_list) >= 2:
            return {"result": 1, "cause": "이미 정원이 꽉 찼습니다."}
        user_id = SigninManager.get_user_id()
        user = get_or_404(User, user_id)

        # TODO(@harrydrippin): Check if ref exist above this situation
        user.library_id = library._id

        try:
            db.session.merge(user)
            db.session.commit()
        except IntegrityError as e:
            print(str(e))
            db.session.rollback()
            abort_with_integrityerror(e)
        except Exception as e:
            print(str(e))
            db.session.rollback()
            raise e

        return {"result": 0}
Ejemplo n.º 7
0
    def post(self):
        args = signin_reqparser.parse_args()
        user = User.query.filter_by(email=args["email"]).first()
        if user is None:
            raise UserDoesntExistsError("User {} doesn\'t exists.".format(
                args["email"]))

        if not get_is_identified(user, args["password"]):
            raise UserPasswordIncorrectError("User password is incorrect.")

        # E-mail verification check
        if user.verifyemails.first().is_verified is False:
            raise EmailNotVerifiedError("User email was not verified.")

        SigninManager.set_is_signed_in(True)
        SigninManager.set_user_id(user._id)

        return user
Ejemplo n.º 8
0
    def get(self, pk):
        # TODO(@harrydrippin) Signin Check
        library = get_or_404(Library, pk)
        user_list = library.users

        args = matchspeaker_reqparser.parse_args()
        session_t = list()
        for user in user_list:
            # TODO(@harrydrippin): Verify that below if line works
            if user.speakerinfo:
                speaker_info = user.speakerinfo
                session_t.append(speaker_info.session_time)

        if session_t.count(args["time"] + ":00") != 0:
            return {"result": 1, "cause": "이미 할당된 세션입니다. 다른 세션을 선택해주세요."}

        user_id = SigninManager.get_user_id()
        user = get_or_404(User, user_id)
        user.library_id = library._id

        speakerinfo = SpeakerInfo()
        speakerinfo.user_id = user._id
        speakerinfo.session_time = args["time"] + ":00"

        try:
            db.session.merge(user)
            db.session.add(speakerinfo)
            db.session.commit()
        except IntegrityError as e:
            print(str(e))
            db.session.rollback()
            abort_with_integrityerror(e)
        except Exception as e:
            print(str(e))
            db.session.rollback()
            raise e

        return {"result": 0}
Ejemplo n.º 9
0
def modify_user():
    if not SigninManager.get_is_signed_in():
        return redirect("/volunteer/login")

    user = User.query.filter_by(_id=SigninManager.get_user_id()).first()
    return render_template("volunteer/modify_user.html", user=user)
Ejemplo n.º 10
0
def status():
    if SigninManager.get_is_signed_in():
        return redirect("/volunteer/information")
    return render_template("volunteer/login.html")
Ejemplo n.º 11
0
    def get(self):
        user = User.query.filter_by(_id=SigninManager.get_user_id()).first()

        return user