def reg_host(): req_json = MultiDict(request.get_json()) already_host = db_session.query(SessionHost).filter(SessionHost.roundtable_id == req_json.get('roundtable_num'), SessionHost.library_id==req_json.get('library_id'), SessionHost.session_time==req_json.get('session_time')) if already_host.count() == 2: return jsonify(success=False, msg='신청하신 도서관은 진행자 모집이 완료되었습니다.') session_host_obj = SessionHost() session_host_obj.roundtable_id = req_json.get('roundtable_num') session_host_obj.library_id = req_json.get('library_id') session_host_obj.session_time = 1 if already_host.count() == 0 else 2 session_host_obj.host_user_id = current_user.id session_host_obj.host_name = current_user.name session_host_obj.host_belong = req_json.get('organization') session_host_obj.host_hp = current_user.phone or req_json.get('phone') session_host_obj.host_email = current_user.email or req_json.get('email') session_host_obj.host_use_yn = True db_session.add(session_host_obj) user_record = db_session.query(User).filter(User.id == current_user.id).first() if not current_user.phone and req_json.get('phone'): user_record.phone = req_json.get('phone') if not current_user.email and req_json.get('email'): user_record.email = req_json.get('email') return jsonify(success=True)
def post(self): req_json = MultiDict(request.get_json()) user_record = db_session.query(User).outerjoin(UserSocialAuth).filter( UserSocialAuth.uid == req_json.get("lectureID")).first() lecturer_obj = Lecture() lecturer_obj.roundtable_id = req_json.get('roundtable_id') lecturer_obj.library_id = req_json.get('library').get('id') lecturer_obj.session_time = req_json.get('lectureTime') lecturer_obj.lecture_title = req_json.get('lectureTitle') lecturer_obj.lecture_summary = req_json.get('lectureSummary') lecturer_obj.lecture_expected_audience = req_json.get( 'lectureExpectedAudience') lecturer_obj.lecture_user_id = (user_record and user_record.id) or None lecturer_obj.lecture_name = req_json.get('lectureName') lecturer_obj.lecture_belong = req_json.get('lectureBelong') lecturer_obj.lecture_hp = req_json.get('lectureHp') lecturer_obj.lecture_email = req_json.get('lectureEmail') lecturer_obj.lecture_public_yn = req_json.get('lectureUserYn', type=bool) db_session.add(lecturer_obj) return jsonify(success=True)
def add_votebook(): req_json = request.get_json() # 가장 최근의 회차 정보를 가져온다. main_roundtable = db_session.query(Roundtable).filter(Roundtable.is_active == True).first() # 강연자가 최근 회차로 신청한 강연 ID를 가져온다. lecture_rec = Lecture.query.filter(Lecture.roundtable_id == main_roundtable.id, Lecture.lecture_user_id == current_user.id).order_by(desc(Lecture.id)).first() # 추천 도서 정보 기록 vote_book = VoteBooks() vote_book.roundtable_id = main_roundtable.id vote_book.lecture_id = lecture_rec.id vote_book.lecture_user_id = current_user.id vote_book.book_info = { 'book1': req_json.get('book1'), 'book1_desc': req_json.get('book1_desc'), 'book2': req_json.get('book2'), 'book3': req_json.get('book3'), 'etc': req_json.get('etc') } vote_books.enter_path = req_json.get("enter_path") db_session.add(vote_book) db_session.flush() return jsonify(success=True)
def tmpl_update(): record = PageTemplate() record.page_name = 'public/boost.html' record.page_content = open('nanumlectures/templates/public/boost2.html', 'r').read() db_session.add(record) db_session.commit() click.echo("DB에 후원 정보 페이지가 입력 되었습니다")
def post(self): req_json = request.get_json() faq_obj = FAQ() faq_obj.classify = req_json.get('faqClassify') faq_obj.subject = req_json.get('faqSubject') faq_obj.body = req_json.get('faqBody') faq_obj.writer_id = current_user.id db_session.add(faq_obj) return jsonify(success=True)
def goods_donation(): req_json = request.get_json() record = DonationGoods() record.roundtable_id = req_json.get('roundtable_num') record.lecture_user_id = current_user.id record.donation_type = req_json.get('donation_type') record.donation_description = req_json.get('donation_description') record.donation_transport = req_json.get('donation_transport_type') db_session.add(record) return jsonify(success=True, msg='신청되었습니다')
def post(self): req_json = request.get_json() board_obj = BoardModel() board_obj.title = req_json.get('title') board_obj.content = req_json.get('content') board_obj.wdate = func.now() board_obj.mdate = func.now() board_obj.user_id = current_user.id board_obj.hit = 0 db_session.add(board_obj) return jsonify(success=True)
def reset_complete_password(uuid): # 해당된 UUID에 일치하는 아이디 찾기 uuid_object = db_session.query(FindPasswordToken).filter(FindPasswordToken.uuid == str(uuid)).first() reset_complete_user = db_session.query(User).filter(User.id == uuid_object.find_user_id).first() # 해당된 패스워드를 SHA256 방식으로 변경 req_json = request.get_json() reset_password = req_json.get('reset_password') # 해당된 정보를 통해 USERID 변경 reset_complete_user.set_password(reset_password) db_session.add(reset_complete_user) return jsonify(success=True)
def post(self): req_json = request.get_json() news_obj = News() news_obj.category = req_json.get('pressCategory') news_obj.press_date = req_json.get('pressDate') news_obj.news_title = req_json.get('newsTitle') news_obj.news_press = req_json.get('newsPress') news_obj.news_link = req_json.get('newsLink') news_obj.news_body = req_json.get('newsBody') news_obj.writer_id = current_user.id db_session.add(news_obj) return jsonify(success=True)
def post(self): new_filename = str(uuid.uuid4()) design_obj = DesignData() design_obj.roundtable = db_session.query(Roundtable).filter( Roundtable.roundtable_num == request.form.get('roundtable_num')).first() design_obj.design_name = request.form.get('design_name') design_obj.design_files = {request.files['img'].filename: new_filename} design_obj.design_description = request.form.get('description') db_session.add(design_obj) upload_blob(request.files['img'], new_filename, request.files['img'].mimetype) return jsonify(success=True)
def post(self): req_json = request.get_json() goods_donate = DonationGoods() goods_donate.roundtable = db_session.query(Roundtable).filter( Roundtable.roundtable_num == req_json.get( 'roundtable_num')).first() goods_donate.donation_type = req_json.get('donation_type') goods_donate.donation_description = req_json.get( 'donation_description') goods_donate.donation_transport = req_json.get( 'donation_transport_type') db_session.add(goods_donate) return jsonify(success=True)
def find_match_password(): req_json = request.get_json() find_username = req_json.get('find_username') find_email = req_json.get('find_email') find_name = req_json.get('find_name') find_count = db_session.query(User).filter(User.username == find_username, User.email == find_email, User.name == find_name).count() if find_count == 1: # 아이디, 이메일, 이름 동일한 경우 # 유효기간 : 10분 uuid_string = uuid.uuid4().__str__() expire_date = datetime.datetime.now() expire_date_timedelta = datetime.timedelta(seconds=600) expire_date += expire_date_timedelta find_object = db_session.query(User).filter( User.username == find_username, User.email == find_email, User.name == find_name) # 해당되는 uuid Table Insert find_password_obj = FindPasswordToken() find_password_obj.find_user_id = find_object.first().id find_password_obj.find_user_email = find_email find_password_obj.uuid = uuid_string find_password_obj.find_expired_date = expire_date db_session.add(find_password_obj) # 해당되는 이름 가져오기 user_object = db_session.query(User).filter(User.username == find_username, User.email == find_email, User.name == find_name).first() # 해당되는 Email 파일을 오픈 후 메일 주소의 이름과 링크만 수정한다. # 해당 HTML 파일을 읽어온다 content = render_template("public/user/mail_password.html", user_real_name=user_object.name, uuid=uuid_string) # Amazon SES Mail Send ses = SESMail("10월의 하늘 비밀번호 초기화 인증", content, []) ses.send({"name": find_name, "addr": find_email}) return jsonify(success=True) else: # 아닌 경우 return jsonify(success=False)
def post(self): req_json = request.get_json() # 도서 관리 추가 books_obj = Books() books_obj.roundtable = db_session.query(Roundtable).filter( Roundtable.roundtable_num == req_json.get( 'roundtable_num')).first() books_obj.books_title = req_json.get('booksTitle') books_obj.books_link = req_json.get('booksLink') books_obj.books_isbn = req_json.get('booksISBN') books_obj.books_date = req_json.get('booksDate') books_obj.books_company = req_json.get('booksCompany') books_obj.books_body = req_json.get('booksBody') books_obj.books_bookshop = req_json.get('shopLink') db_session.add(books_obj) return jsonify(success=True)
def post(self, host): req_json = request.get_json() user_record = db_session.query(User).outerjoin(UserSocialAuth).filter( UserSocialAuth.uid == req_json.get("hostId")).first() host.host_num = req_json.get('hostNum') host.host_library_name = req_json.get('hostLibraryName') host.host_time = req_json.get('hostTime') host.host_title = req_json.get('hostTitle') host.host_user_id = (user_record and user_record.id) or None host.host_name = req_json.get('hostName') host.host_belong = req_json.get('hostBelong') host.host_hp = req_json.get('hostHp') host.host_email = req_json.get('hostEmail') host.host_use_yn = True db_session.add(host) return jsonify(success=True)
def post(self): req_json = request.get_json() obj = Roundtable() obj.roundtable_num = req_json.get('roundtableNum') obj.roundtable_year = req_json.get('roundtableYear') obj.roundtable_date = req_json.get('roundtableDate') obj.staff = req_json.get('staff') for item in req_json.get('library_list'): lib_info = RoundtableAndLibrary( round_num=item.get('session_time'), library_type=item.get('library_type')) lib_info.library = db_session.query(Library).filter( Library.id == item.get('library').get('id')).first() obj.library.append(lib_info) db_session.add(obj) return jsonify(success=True)
def ot_and_party_update(): req_json = request.get_json() main_roundtable = db_session.query(Roundtable).filter(Roundtable.is_active == True).first() # 현재 유저로 등록된 참석 여부 레코드가 있는지 확인한다. ot_party_record = db_session.query(OTandParty).filter(OTandParty.party_user_id == current_user.id).first() if not ot_party_record: ot_party_record = OTandParty() ot_party_record.party_user_id = current_user.id ot_party_record.roundtable_id = main_roundtable.id db_session.add(ot_party_record) if req_json.get('join_type') == 'ot1_join': ot_party_record.ot1_join = req_json.get('value') elif req_json.get('join_type') == 'ot2_join': ot_party_record.ot2_join = req_json.get('value') elif req_json.get('join_type') == 'party_join': ot_party_record.party_join = req_json.get('value') return jsonify(success=True)
def reg_votebook(): req_json = request.get_json() # 추천 도서 정보 기록 vote_book = VoteBooks() vote_book.roundtable_id = req_json.get('roundtable_num') vote_book.lecture_id = req_json.get('lecture_id') vote_book.lecture_user_id = current_user.id vote_book.book_info = { 'book1': req_json.get('book1'), 'book1_desc': req_json.get('book1_desc'), 'book2': req_json.get('book2'), 'book3': req_json.get('book3'), 'etc': req_json.get('etc') } vote_books.enter_path = req_json.get("enter_path") db_session.add(vote_book) db_session.flush() return jsonify(success=True)
def post(self): req_json = request.get_json() user_record = db_session.query(User).outerjoin(UserSocialAuth).filter( UserSocialAuth.uid == req_json.get("hostId")).first() session_host_obj = SessionHost() session_host_obj.roundtable_id = req_json.get('roundtable_id') session_host_obj.library_id = req_json.get('library').get('id') session_host_obj.session_time = req_json.get('hostTime') session_host_obj.host_user_id = (user_record and user_record.id) or None session_host_obj.host_name = req_json.get('hostName') session_host_obj.host_belong = req_json.get('hostBelong') session_host_obj.host_hp = req_json.get('hostHp') session_host_obj.host_email = req_json.get('hostEmail') session_host_obj.host_use_yn = True db_session.add(session_host_obj) return jsonify(success=True)
def post(self): req_json = request.get_json() library_obj = Library() library_obj.library_name = req_json.get('libraryName') library_obj.library_addr = req_json.get('libraryAddr') library_obj.manager_name = req_json.get('managerName') library_obj.manager_email = req_json.get('managerEmail') library_obj.manager_description = req_json.get('managerDescription') library_obj.library_place = req_json.get('libraryPlace') library_obj.place_seats = req_json.get('placeSeats') library_obj.pr_production = req_json.get('prProduction') library_obj.projector_screen = bool(req_json.get('projector_screen')) library_obj.projector_notebook = bool(req_json.get('projector_notebook')) library_obj.sound_equipment = bool(req_json.get('sound_equipment')) library_obj.camcorder_yn = bool(req_json.get('camcorder_yn')) library_obj.lecture_video_recording_yn = bool(req_json.get('lecture_video_recording_yn')) library_obj.coordinate_photography_yn = bool(req_json.get('coordinate_photography_yn')) library_obj.internet_yn = bool(req_json.get('internet_yn')) library_obj.etc_equipment = req_json.get('etc_equipment') library_obj.manager_hp = req_json.get('managerHp') library_obj.library_tel = req_json.get('libraryTel') library_obj.library_fax = req_json.get('libraryFax') library_obj.library_homepage = req_json.get('libraryHomepage') library_obj.library_description = req_json.get('libraryDescription') library_obj.expected_audience = req_json.get('expectedAudience') library_obj.expected_listens = req_json.get('expectedListens') library_obj.lat = req_json.get('libraryLat') library_obj.long = req_json.get('libraryLong') if req_json.get('libraryAddr').split(" ")[0] == '제주특별자치도': library_obj.area = '제주도' elif req_json.get('libraryAddr').split(" ")[0] == '세종특별자치시': library_obj.area = '세종시' else: library_obj.area = req_json.get('libraryAddr').split(" ")[0] db_session.add(library_obj) return jsonify(success=True)
def post(self): req_json = request.get_json() photo_obj = PhotoAlbum() photo_obj.roundtable = db_session.query(Roundtable).filter( Roundtable.roundtable_num == req_json.get( 'roundtable_num')).first() photo_obj.album_name = req_json.get('album_name') photo_obj.album_link = req_json.get('album_link') photo_obj.album_id = req_json.get('album_id') tmp_req = requests.get(req_json.get('represent_img')) represent_img_uri = DataURI.make(tmp_req.headers['Content-Type'], None, base64=True, data=tmp_req.content) photo_obj.representation_image_link = str(represent_img_uri) photo_obj.album_description = req_json.get('description') db_session.add(photo_obj) return jsonify(success=True)
def reg_lecture(): req_json = MultiDict(request.get_json()) already_library = db_session.query(Lecture).filter(Lecture.roundtable_id == req_json.get('roundtable_num'), Lecture.library_id==req_json.get('library_id'), Lecture.session_time==req_json.get('session_time')).first() if already_library: return jsonify(success=False, msg='신청하신 도서관의 강연 시간에 다른 분이 신청하셨습니다') lecture_obj = Lecture() lecture_obj.roundtable_id = req_json.get('roundtable_num') lecture_obj.library_id = req_json.get('library_id') lecture_obj.session_time = req_json.get('session_time') lecture_obj.lecture_title = req_json.get('title') lecture_obj.lecture_summary = req_json.get('description') lecture_obj.lecture_expected_audience = req_json.get('expectedaudience') lecture_obj.lecture_user_id = current_user.id lecture_obj.lecture_name = current_user.name lecture_obj.lecture_belong = req_json.get('organization') lecture_obj.lecture_hp = current_user.phone or req_json.get('phone') lecture_obj.lecture_email = current_user.email or req_json.get('email') lecture_obj.lecture_public_yn = req_json.get('public_yn', type=bool) db_session.add(lecture_obj) db_session.flush() user_record = db_session.query(User).filter(User.id == current_user.id).first() if not current_user.phone and req_json.get('phone'): user_record.phone = req_json.get('phone') if not current_user.email and req_json.get('email'): user_record.email = req_json.get('email') return jsonify(success=True, lecture_id=lecture_obj.id)
def post(self): # 현재 표출 중인 회차의 정보를 가져온다. main_roundtable = db_session.query(Roundtable).filter( Roundtable.is_active == True).first() req_json = request.get_json() mail_record = MailSend() mail_record.receive_type = req_json.get('receive_type') # receive_type에 따라 전송할 메일 주소를 가져온다. # area 추가(지역별로 메일을 보낼 수도 있다) area = req_json.get('area') mail_addr = [] if req_json.get('receive_type') == 'F': # 별도 메일 전송 mail_addr = [] for receiver in req_json.get("mail_addr").splitlines(): if receiver.find("<") > 0: to_addr_split = receiver.split("<") to_addr = dict(name=to_addr_split[0].strip(), addr=to_addr_split[1].strip("<>")) else: to_addr = dict(name='', addr=receiver) mail_addr.append(to_addr) elif req_json.get('receive_type') == 'E': # 도서관 섭외일때 to_addr = {} if req_json.get('mail_addr').find("<") > 0: to_addr_split = req_json.get("mail_addr").split("<") to_addr["name"] = to_addr_split[0].strip() to_addr["addr"] = to_addr_split[1].strip("<>") else: to_addr["name"] = "" to_addr["addr"] = req_json.get('mail_addr') mail_addr = [ to_addr, { "name": "Library Team", "addr": "*****@*****.**" }, { "name": "시월의하늘준비모임", "addr": '*****@*****.**' } ] # mail_addr = [req_json.get("mail_addr")] elif req_json.get('receive_type') == 'D': # 진행자 일 때 qry = SessionHost.query.filter( SessionHost.roundtable_id == main_roundtable.id) if area == 'all': mail_addr = [{ "name": entry.host_name, "addr": entry.host_email } for entry in qry] else: mail_addr = [{ "name": entry.host_name, "addr": entry.host_email } for entry in qry if entry.library.area == area] elif req_json.get('receive_type') == 'C': # 강연자 일 때 qry = Lecture.query.filter( Lecture.roundtable_id == main_roundtable.id) if area == 'all': mail_addr = [{ "name": entry.lecture_name, "addr": entry.lecture_email } for entry in qry] else: mail_addr = [{ "name": entry.lecture_name, "addr": entry.lecture_email } for entry in qry if entry.library.area == area] elif req_json.get('receive_type') == 'B': # 도서관 일 때 libraries = RoundtableAndLibrary.query.filter( RoundtableAndLibrary.roundtable_id == main_roundtable.id) if area == 'all': mail_addr = [{ "name": entry.library.manager_name, "addr": entry.library.manager_email } for entry in libraries] else: mail_addr = [{ "name": entry.library.manager_name, "addr": entry.library.manager_email } for entry in libraries if entry.library.area == area] elif req_json.get('receive_type') == 'A': # 도서관 libraries = RoundtableAndLibrary.query.filter( RoundtableAndLibrary.roundtable_id == main_roundtable.id) mail_addr = [{ "name": entry.library.manager_name, "addr": entry.library.manager_email } for entry in libraries] # 강연자 mail_addr.extend([{ "name": entry.lecture_name, "addr": entry.lecture_email } for entry in Lecture.query.filter( Lecture.roundtable_id == main_roundtable.id)]) # 진행자 mail_addr.extend([{ "name": entry.host_name, "email": entry.host_email } for entry in SessionHost.query.filter( SessionHost.roundtable_id == main_roundtable.id)]) mail_record.receive_addr = mail_addr mail_record.mail_subject = req_json.get('mail_subject') mail_record.mail_content = req_json.get('mail_content') mail_record.uploading_file_cnt = 0 mail_record.uploaded_file_cnt = req_json.get('uploaded_file_cnt') mail_record.mail_attach = [] mail_record.is_mail_send = False db_session.add(mail_record) # 첨부한 파일 갯수가 0인 경우는 여기서 메일을 보내고 끝낸다. if mail_record.uploaded_file_cnt == 0: # 전송 목록 필터링 receive_addr = filter(lambda x: bool(x), mail_record.receive_addr) mail_record.is_mail_send = True mail_record.send_time = func.now() ses = SESMail(mail_record.mail_subject, mail_record.mail_content, mail_record.mail_attach) for item in receive_addr: name_replace = mail_record.mail_subject.find("{name}") > -1 ses.send({ "name": item["name"], "addr": item["addr"] }, name_replace) db_session.flush() return jsonify(success=True, mail_id=mail_record.id)