def __store_to_db(self, content): try: Competition.objects.get(name=content['name'], year=content['year']) except Competition.DoesNotExist: competition_to_add = Competition(internal_identifier=content['internal_identifier'], external_identifier=content['external_identifier'], name=content['name'], area_id=content['area_id'], year=content['year']) competition_to_add.save()
def setUp(self): self.dir = os.path.dirname(os.path.abspath(__file__)) #self.app = rubix.app.test_client() self.response = self.client.get("/") self.soup = BeautifulSoup(self.response.data, 'html.parser') db.create_all() db.session.add( User("Firstname", "Lastname", "*****@*****.**", "test123")) db.session.add(User("Mock", "User", "*****@*****.**", "mock123")) db.session.add(User("new", "User", "*****@*****.**", "new123")) db.session.add(User("Competitor", "Jones", "*****@*****.**", "comp123")) db.session.add( User("delegate", "DeeDee", "*****@*****.**", "1234567890")) user = User.query.filter_by(email="*****@*****.**").first() user1 = User.query.filter_by(email="*****@*****.**").first() user2 = User.query.filter_by(email="*****@*****.**").first() delegateuser = User.query.filter_by(email='*****@*****.**', credentials=2).first() db.session.add( Competition(user.id, "Test name", "Test location", "Test City", "Test State", "10031", datetime.date(2017, 12, 31))) db.session.add( Competition(20, "Cant view", "Cant view", "New York", "NY", "10031", datetime.date(2017, 12, 31))) comp = Competition.query.filter_by(comp_id=1).first() comp.approved = True comp20 = Competition.query.filter_by(organizer_id=20).first() announce1 = Announcement(comp.comp_id, user.id, "Test announcement", "Test body") announce2 = Announcement(comp20.comp_id, 2, "Can i see this?", "maybe") db.session.add(announce1) db.session.add(announce2) event1 = Event('4x4x4 Cube', 'Round 1', datetime.time(11, 0, 0), datetime.time(12, 0, 0)) db.session.add(event1) comp.comp_events.append(event1) comp.competitors.append(user) comp.competitors.append(user1) comp.competitors.append(user2) register_user1 = EventUserLink(user=user1, event=event1) register_user2 = EventUserLink(user=user2, event=event1) db.session.add(register_user1) db.session.add(register_user2) register_user2.volunteer = True register_user2.volunteer_role = 'Judge' register_user1.staff = True register_user1.staff_role = 'Scrambler' db.session.commit()
def setUp(self): db.create_all() user = User("Firstname", "Lastname", "*****@*****.**", "test123") comp = Competition(user.wca_id, "Test name", "Test location", "12/31/2017") db.session.add(user) db.session.add(comp) db.session.commit()
def host(): form = CompetitionForm() # form.event.choices = if request.method == 'POST': if form.validate_on_submit(): # datetime_object = datetime.strftime(form.date.data, '%Y/%m/%d') print(current_user.id) newComp = Competition(organizer_id=current_user.id, title=form.name.data, address=form.address.data, city=form.city.data, state=form.state.data, zipcode=form.zipcode.data, date=form.date.data) db.session.add(newComp) db.session.commit() flash(form.name.data + " has been created!") return redirect(url_for('manage.manage')) else: return render_template('host.html', form=form) return render_template('host.html', form=form)
def host(): ''' Manages the host page and all of the data that comes from the form ''' form = CompetitionForm() if request.method == 'POST': if form.validate_on_submit(): new_comp = Competition( organizer_id=current_user.id, title=form.name.data, address=form.address.data, city=form.city.data, state=form.state.data, zipcode=form.zipcode.data, date=form.date.data) db.session.add(new_comp) db.session.commit() flash(form.name.data + " has been created!") return redirect(url_for('manage.manage')) else: return render_template('host.html', form=form) return render_template('host.html', form=form)
def setUp(self): db.create_all() db.session.add( User("Firstname", "Lastname", "*****@*****.**", "test123")) db.session.add(User("Mock", "User", "*****@*****.**", "mock123")) db.session.add(User("new", "User", "*****@*****.**", "new123")) db.session.add(User("Competitor", "Jones", "*****@*****.**", "comp123")) user = User.query.filter_by(email="*****@*****.**").first() user1 = User.query.filter_by(email="*****@*****.**").first() user2 = User.query.filter_by(email="*****@*****.**").first() db.session.add( Competition(user.id, "Test name", "Test location", datetime.date(2017, 12, 31))) db.session.add( Competition(20, "Cant view", "Cant view", datetime.date(2017, 12, 31))) comp = Competition.query.filter_by(comp_id=1).first() comp.approved = True comp20 = Competition.query.filter_by(organizer_id=20).first() announce1 = Announcement(comp.comp_id, user.id, "Test announcement", "Test body") announce2 = Announcement(comp20.comp_id, 2, "Can i see this?", "maybe") db.session.add(announce1) db.session.add(announce2) event1 = Event('Rubik\'s Cube', 'Round 1', datetime.time(11, 0, 0), datetime.time(12, 0, 0)) db.session.add(event1) comp.comp_events.append(event1) comp.competitors.append(user) comp.competitors.append(user1) comp.competitors.append(user2) register_user1 = EventUserLink(user=user1, event=event1) register_user2 = EventUserLink(user=user2, event=event1) db.session.add(register_user1) db.session.add(register_user2) register_user2.volunteer = True register_user2.volunteer_role = 'Judge' register_user1.staff = True register_user1.staff_role = 'Scrambler' db.session.commit()
def add_contest(request): try: request.session['email'] except KeyError: return HttpResponseRedirect('/login/') if request.method == 'GET': return render(request, 'admin/create contest.html') elif request.method == 'POST': user = Users.objects.get(email=request.session['email']) competition_name = request.POST.get('title') explain = request.POST.get('my-editormd-html-code') start_time = request.POST.get('starttime') stop_time = request.POST.get('stoptime') password = request.POST.get('password') contest = Competition(email=user, competition_name=competition_name, description=explain, passwd=password, start_time=start_time, stop_time=stop_time).save() return redirect('add_contest') return render(request, 'admin/create contest.html')
db.session.add(user3) db.session.add(user4) db.session.add(user5) db.session.add(user6) db.session.add(user7) db.session.add(user8) db.session.add(user9) db.session.add(user10) db.session.add(user11) db.session.add(user12) db.session.add(user13) db.session.add(user14) # Add competitions db.session.add( Competition(1, "City College Cube Day", "160 Convent Avenue", "New York", "NY", "10031", datetime.date(2017, 12, 31))) db.session.add( Competition(user2.id, "Rubik's Cube Day", "Cubicle", "City", "State", "10009", datetime.date(2017, 12, 31))) session_comp = Competition.query.filter_by(comp_id=1).first() session_comp2 = Competition.query.filter_by(comp_id=2).first() session_comp.approved = True # Add announcement announce = Announcement( session_comp.comp_id, user.id, "4x4 Evemt shorted to combined final", "Due to lack of time, we've shortened the 4x4 event to a combined final. We apologize for any inconvenience!" ) db.session.add(Announcement(1, user.id, "Test Announcement", "Test Body"))
import datetime from app import db from app.models import User, Competition, Announcement, Event # Add users db.session.add(User("Test", "Test", "*****@*****.**", "test123")) db.session.add(User("firstname", "lastname", "*****@*****.**", "password")) session_user = User.query.filter_by(email="*****@*****.**").first() session_user2 = User.query.filter_by(email="*****@*****.**").first() # Add competitions db.session.add(Competition(session_user.id, "Rubik's Cube Day", "Cubicle", "New York", "NY", 10020, datetime.date(2017, 12, 31))) db.session.add(Competition(session_user2.id, "City College Cube Day", "160 Convent Avenue","New York", "NY", 10020, datetime.date(2017, 12, 31))) session_comp = Competition.query.filter_by(comp_id=1).first() session_comp2 = Competition.query.filter_by(comp_id=2).first() session_comp.approved = True # Add announcement announce = Announcement( session_comp.comp_id, session_user.id, "4x4 Evemt shorted to combined final", "Due to lack of time, we've shortened the 4x4 event to a combined final. We apologize for any inconvenience!" ) db.session.add(Announcement(1, session_user.id, "Test Announcement", "Test Body")) db.session.add(announce) event = Event("Rubik's Cube", "Round 1",datetime.time(11, 0, 0), datetime.time(12, 0, 0)) db.session.add(event)
from app.models import Competition db.init_app(app) iris = Competition( name='Iris Flowers', code='iris', image_url= 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTt-bTDxcUL6-tMCxNEd7Xetp9GnmG4MNqNzVPoTLtpt5ItfhcNKA', training_data_url='/data/iris.zip', description= """<p>The <strong>Iris Flowers </strong>Dataset involves predicting the flower species given measurements of iris flowers.</p> <p>It is a multi-class classification problem.</p> <p>The number of observations for each class is balanced. There are 150 observations with 4 input variables and 1 output variable.</p> <p>The variable names are as follows:</p> <ul> <li>Sepal length in cm.</li> <li>Sepal width in cm.</li> <li>Petal length in cm.</li> <li>Petal width in cm.</li> </ul> <p>The baseline performance of predicting the most prevalent class is a classification accuracy of approximately 26%.</p> """) with app.app_context(): db.session.add(iris) db.session.commit()
def handle(self, *args, **kwargs): person_list = {} persons = Person.objects.all() for person in persons: person_list[person.id] = person with open(self.get_fixtures_path("round")) as file: json_round = json.loads(file.read()) rounds = [] for record in json_round: round = Round( id=record["pk"], competition_id=record["fields"]["competition_id"], event_id=record["fields"]["event_id"], event_name=record["fields"]["event_name"], attempt_count=record["fields"]["attempt_count"], type=record["fields"]["type"], format_id=record["fields"]["format_id"], limit_type=record["fields"]["limit_type"], limit_time=record["fields"]["limit_time"], cutoff_attempt_count=record["fields"]["cutoff_attempt_count"], cutoff_time=record["fields"]["cutoff_time"], proceed_type=record["fields"]["proceed_type"], proceed_count=record["fields"]["proceed_count"], proceed_rate=record["fields"]["proceed_rate"], room_name=record["fields"]["room_name"], begin_at=record["fields"]["begin_at"], end_at=record["fields"]["end_at"], ) rounds.append(round) cursor = connection.cursor() cursor.execute("SET FOREIGN_KEY_CHECKS = 0") cursor.execute("TRUNCATE TABLE app_round") cursor.execute("SET FOREIGN_KEY_CHECKS = 1") Round.objects.bulk_create(rounds) # 参照のためdictとして保持 tmpRounds = {} for round in rounds: tmpRounds[round.id] = round with open(self.get_fixtures_path("result")) as file: json_result = json.loads(file.read()) results = [] for record in json_result: result = Result( id=record["pk"], competition_id=record["fields"]["competition_id"], event_id=record["fields"]["event_id"], person_id=record["fields"]["person_id"], round=tmpRounds[record["fields"]["round_id"]], rank=record["fields"]["rank"], best=record["fields"]["best"], average=record["fields"]["average"], value1=record["fields"]["value1"], value2=record["fields"]["value2"], value3=record["fields"]["value3"], value4=record["fields"]["value4"], value5=record["fields"]["value5"], ) results.append(result) cursor = connection.cursor() cursor.execute("TRUNCATE TABLE app_result") Result.objects.bulk_create(results) with open(self.get_fixtures_path("averagerank")) as file: json_average_rank = json.loads(file.read()) average_ranks = [] for record in json_average_rank: average_rank = AverageRank( id=record["pk"], person=person_list[record["fields"]["person_id"]], event_id=record["fields"]["event_id"], competition_id=record["fields"]["competition_id"], competition_name_id=record["fields"]["competition_name_id"], competition_name=record["fields"]["competition_name"], year=record["fields"]["year"], best=record["fields"]["best"], value1=record["fields"]["value1"], value2=record["fields"]["value2"], value3=record["fields"]["value3"], value4=record["fields"]["value4"], value5=record["fields"]["value5"], gender=record["fields"]["gender"], generation=record["fields"]["generation"], prefecture_id=record["fields"]["prefecture_id"], rank=record["fields"]["rank"], gender_rank=record["fields"]["gender_rank"], generation_rank=record["fields"]["generation_rank"], prefecture_rank=record["fields"]["prefecture_rank"], ) average_ranks.append(average_rank) cursor = connection.cursor() cursor.execute("TRUNCATE TABLE app_averagerank") AverageRank.objects.bulk_create(average_ranks) with open(self.get_fixtures_path("bestrank")) as file: json_best_rank = json.loads(file.read()) best_ranks = [] for record in json_best_rank: best_rank = BestRank( id=record["pk"], person=person_list[record["fields"]["person_id"]], event_id=record["fields"]["event_id"], competition_id=record["fields"]["competition_id"], competition_name_id=record["fields"]["competition_name_id"], competition_name=record["fields"]["competition_name"], year=record["fields"]["year"], best=record["fields"]["best"], gender=record["fields"]["gender"], generation=record["fields"]["generation"], prefecture_id=record["fields"]["prefecture_id"], rank=record["fields"]["rank"], gender_rank=record["fields"]["gender_rank"], generation_rank=record["fields"]["generation_rank"], prefecture_rank=record["fields"]["prefecture_rank"], ) best_ranks.append(best_rank) cursor = connection.cursor() cursor.execute("TRUNCATE TABLE app_bestrank") BestRank.objects.bulk_create(best_ranks) with open(self.get_fixtures_path("competition")) as file: json_competition = json.loads(file.read()) competitions = [] for record in json_competition: registration_open_at = None registration_close_at = None if ( record["fields"]["registration_open_at"] != "" or record["fields"]["registration_close_at"] != "" ): registration_open_at = record["fields"]["registration_open_at"] registration_close_at = record["fields"]["registration_close_at"] competition = Competition( id=record["fields"]["id"], type=record["fields"]["type"], name=record["fields"]["name"], name_id=record["fields"]["name_id"], open_at=record["fields"]["open_at"], close_at=record["fields"]["close_at"], registration_open_at=registration_open_at, registration_close_at=registration_close_at, is_registration_at_other=record["fields"][ "is_registration_at_other" ], registration_url=record["fields"]["registration_url"], stripe_user_person_id=record["fields"]["stripe_user_person_id"], judge_person_ids=record["fields"]["judge_person_ids"], event_ids=record["fields"]["event_ids"], prefecture_id=record["fields"]["prefecture_id"], organizer_name=record["fields"]["organizer_name"], organizer_email=record["fields"]["organizer_email"], organizer_person_ids=record["fields"]["organizer_person_ids"], venue_name=record["fields"]["venue_name"], venue_address=record["fields"]["venue_address"], venue_url=record["fields"]["venue_url"], latitude=record["fields"]["latitude"], longitude=record["fields"]["longitude"], limit=record["fields"]["limit"], guest_limit=record["fields"]["guest_limit"], is_display_pending_competitor=record["fields"][ "is_display_pending_competitor" ], fee_pay_type=record["fields"]["fee_pay_type"], fee_calc_type=record["fields"]["fee_calc_type"], fee_pay_close_at=record["fields"]["fee_pay_close_at"], twin_competition_id=record["fields"]["twin_competition_id"], description=record["fields"]["description"], description_en=record["fields"]["description_en"], qualification_description=record["fields"][ "qualification_description" ], qualification_description_en=record["fields"][ "qualification_description_en" ], disclaimer=record["fields"]["disclaimer"], disclaimer_en=record["fields"]["disclaimer_en"], refund_description=record["fields"]["refund_description"], refund_description_en=record["fields"]["refund_description_en"], awards_description=record["fields"]["awards_description"], awards_description_en=record["fields"]["awards_description_en"], assignment_description=record["fields"]["assignment_description"], assignment_description_en=record["fields"][ "assignment_description_en" ], visitor_description=record["fields"]["visitor_description"], visitor_description_en=record["fields"]["visitor_description_en"], is_cancel=record["fields"]["is_cancel"], is_payment=record["fields"]["is_payment"], is_display=record["fields"]["is_display"], is_private=record["fields"]["is_private"], ) competitions.append(competition) cursor = connection.cursor() cursor.execute("TRUNCATE TABLE app_competition") Competition.objects.bulk_create(competitions) with open(self.get_fixtures_path("scramble")) as file: json_scramble = json.loads(file.read()) scrambles = [] for record in json_scramble: scramble = Scramble( id=record["pk"], competition_id=record["fields"]["competition_id"], event_id=record["fields"]["event_id"], round_id=record["fields"]["round_id"], group_id=record["fields"]["group_id"], scramble=record["fields"]["scramble"], ) scrambles.append(scramble) cursor = connection.cursor() cursor.execute("TRUNCATE TABLE app_scramble") Scramble.objects.bulk_create(scrambles) with open(self.get_fixtures_path("feeperevent")) as file: json_fee_per_event = json.loads(file.read()) fee_per_events = [] for record in json_fee_per_event: fee_per_event = FeePerEvent( id=record["pk"], competition_id=record["fields"]["competition_id"], event_id=record["fields"]["event_id"], price=record["fields"]["price"], prepaid_price=record["fields"]["prepaid_price"], ) fee_per_events.append(fee_per_event) cursor = connection.cursor() cursor.execute("TRUNCATE TABLE app_feeperevent") FeePerEvent.objects.bulk_create(fee_per_events) with open(self.get_fixtures_path("feepereventcount")) as file: json_fee_per_event_count = json.loads(file.read()) fee_per_event_counts = [] for record in json_fee_per_event_count: fee_per_event_count = FeePerEventCount( id=record["pk"], competition_id=record["fields"]["competition_id"], event_count=record["fields"]["event_count"], price=record["fields"]["price"], prepaid_price=record["fields"]["prepaid_price"], ) fee_per_event_counts.append(fee_per_event_count) cursor = connection.cursor() cursor.execute("TRUNCATE TABLE app_feepereventcount") FeePerEventCount.objects.bulk_create(fee_per_event_counts)
def user_competition(): """ 进行比赛项目的提交 :return: """ if request.method == 'GET': project = request.args.get('project_id') if project is not None: # get请求有参状态 this_project = Project.query.filter_by(id=int(project)).first() return render_template("user/competition2.html", this_project=this_project) else: # get请求无参数状态 projects = Project.query.all() return render_template("user/competition.html", projects=projects) else: # post请求接收表单 try: # 尝试获取文件 file = request.files['picture'] except Exception as e: print(e) return '未知错误' if not allowed_file(file.filename): flash('不符合文件类型') # 返回提交前的url return redirect(request.referrer) try: # 获取文件扩展名并重命名,最后保存文件 print('file.filename ', file.filename) filename_extension = secure_filename(file.filename).split('.')[-1] print('上传文件后缀名 --:\n', filename_extension) filename = '%s.%s' % (get_random_str(), filename_extension) file.save(os.path.join(SAVE_PATH, filename)) # 创建某个数据库模型的实例 competition = Competition( project_id=request.form['project_id'], project_name=request.form['project_name'], achievement_name=request.form['achievement_name'], prize_category=request.form['prize_category'], prize_level=request.form['prize_level'], stu_name=request.form['stu_name'], stu_phone_number=request.form['stu_phone_number'], stu_number=request.form['stu_number'], stu_qq=request.form['stu_qq'], stu_class=request.form['stu_class'], teacher_name=request.form['teacher_name'], teacher_title=request.form['teacher_title'], prize_date=request.form['prize_date'], award_department=request.form['award_department'], sponsor=request.form['sponsor'], filename=filename) # 打印数据用以测试 '''print( project_id, achievement_name, prize_category, prize_level, stu_name, stu_phone_number, stu_number, stu_qq, stu_class, teacher_name, teacher_title, prize_date, award_department, sponsor )''' # competition = Competition() db.session.add(competition) history = SubmitHistory(user_id=current_user.id, username=current_user.username, submit_content='竞赛项目的提交', submit_date=datetime.now(), filename=filename) db.session.add(history) db.session.commit() flash('竞赛获奖提交成功') return redirect(url_for('main.user_submit_history')) except Exception as e: db.session.rollback() print(e) flash("发生了未知错误已经将页面跳转") return redirect(request.referrer)