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
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)
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)
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
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)
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}
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
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}
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)
def status(): if SigninManager.get_is_signed_in(): return redirect("/volunteer/information") return render_template("volunteer/login.html")
def get(self): user = User.query.filter_by(_id=SigninManager.get_user_id()).first() return user