コード例 #1
0
 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()
コード例 #2
0
ファイル: tests.py プロジェクト: ipalongengi/Rubix
    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()
コード例 #3
0
ファイル: tests.py プロジェクト: ArvisP/Arvis-Rubix
 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()
コード例 #4
0
ファイル: views.py プロジェクト: ArvisP/Arvis-Rubix
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)
コード例 #5
0
ファイル: views.py プロジェクト: ipalongengi/Rubix
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)
コード例 #6
0
    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()
コード例 #7
0
ファイル: views.py プロジェクト: zuoxin7/ZTOJ
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')
コード例 #8
0
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"))
コード例 #9
0
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)
コード例 #10
0
ファイル: seed.py プロジェクト: MingStar/internal-kaggle
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()
コード例 #11
0
    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)
コード例 #12
0
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)