def test_get_season(self): # create two seasons classification = Classification(label='test mens') classification.save() competition = Competition( name='div 1', mode='l', classification=classification ) competition.save() season_1 = Season(label='s1', start_date=datetime.date.today(), end_date=datetime.date.today() + datetime.timedelta(365), competition=competition, published=True ) season_2 = Season(label='s2', start_date=datetime.date.today() + datetime.timedelta(365), end_date=datetime.date.today() + datetime.timedelta(730), competition=competition ) season_1.save() season_2.save() self.assertIn(season_1, Season.get_current_season_by_slugs('test-mens', 'div-1')) self.assertNotIn(season_2, Season.get_current_season_by_slugs('test-mens', 'div-1'))
def form_valid(self,form): self.object = form.save() competitor = Competitor(name="Default Name", bracket=self.object) seeds = xrange(self.object.maxnum) for person in range(self.object.maxnum): competitor.pk = None competitor.seed = person competitor.save() for i in range(self.object.maxnum / 2 ): comp = Competition(bracket=self.object,competitor_a=Competitor.objects.get(bracket=self.object,seed=seeds[2 * i]),competitor_b=Competitor.objects.get(bracket=self.object,seed=seeds[2 * i + 1])) comp.save() return super(BracketCreateView, self).form_valid(form)
def post(self): try: upload = self.get_uploads('file') blob = upload[0] description = self.request.get('description'); title = self.request.get('title'); photo = Photo(blobKey=str(blob.key()), description=description, title=title) photo.put() competition = Competition(photoKey=photo.key(), dateCreated=datetime.datetime.now()) competition.put(); self.redirect("/competitions/latest") except: self.redirect("/upload-failure")
def test_create_duplicate_competitions(self): competition1 = Competition(name="DuplicateCompetition") competition2 = Competition(name="DuplicateCompetition") with self.assertRaises(IntegrityError): competition1.save() competition2.save()
def get(self, id=None, page=0, json=None): offset = 0 p = 0 if page: offset = 10*int(page) p = page template_values = {} if not id: competition = Competition.all().order("-dateCreated").get() else: competition = Competition.get_by_id(int(id)) photo = competition.photoKey # get photo instance showPagination = False captions = Caption.all().filter('competitionKey =',competition).filter('approved =',True).fetch(limit=100) if len(captions) == 11: showPagination = True p = p+1 captions.pop(10) if json == 'json': caps = [] for c in captions: caps.append({'text' : "%s" % c.text, "author" : "%s" % c.author, "comp" : "%s" % c.competitionKey, "caption" : "%s" % c.key().id(), "dateCreated" : "%s" % c.dateCreated}) self.response.headers['Content-Type'] = "application/json" self.response.out.write(simplejson.dumps([caps, showPagination, p])) else: caps = [] for c in captions: caps.append({'text' : c.text, "author" : c.author, "comp" : c.competitionKey, "caption" : c.key().id(), "dateCreated" : c.dateCreated}) template_values['img'] = "/photo/%s" % photo.key().id() # get id from photo instance, to pass later in URL template_values['title'] = photo.title template_values['description'] = photo.description template_values['competitionId'] = competition.key().id() template_values['complete'] = competition.complete template_values['captions'] = caps template_values['showPagination'] = showPagination template_values['page'] = p template_values['divWidth'] = len(captions) * 437 path = os.path.join(os.path.dirname(__file__), 'templates/competition.html') self.response.out.write(template.render(path, template_values))
def competitions(): form = CompetitionForm() if 'username' not in session: return redirect(url_for('signin')) user = session['username'] if user is None: redirect(url_for('signin')) else: if request.method == 'POST': if form.validate() == False: return render_template('competitions.html', form=form) else: newcomp = Competition(name=form.name.data, date=form.date.data, location=form.location.data, timestamp=datetime.datetime.now()) db.session.add(newcomp) db.session.commit() flash('Competition successfully added.') return redirect(url_for('competitions')) elif request.method == 'GET' : competitions = db.session.query(Competition).all() return render_template('competitions.html', competitions=competitions, form=form)
def create_season(classification, competition, season_label, start, end): competition = Competition( name=competition, mode='l', classification=classification ) competition.save() season = Season(label=season_label, start_date=start, end_date=end, competition=competition ) season.save() return season
def get(self): template_values = {} li = [] competitions = Competition.all().order('-dateCreated').fetch(limit=10) for comp in competitions: li.append( { 'date' : comp.dateCreated, 'id' : comp.key().id(), 'complete' : comp.complete } ) template_values['competitions'] = li path = os.path.join(os.path.dirname(__file__), 'templates/admin_competitions.html') self.response.out.write(template.render(path, template_values))
def get(self): template_values = {} li = [] competitions = Competition.all().order("-dateCreated").fetch(limit=10) for comp in competitions: photo = comp.photoKey # get photo instance li.append( { 'date' : comp.dateCreated, 'id' : comp.key().id(), 'complete' : comp.complete, 'title' : photo.title } ) template_values['competitions'] = li path = os.path.join(os.path.dirname(__file__), 'templates/competitions.html') self.response.out.write(template.render(path, template_values))
def check_bracket_round_complete(bracket): if Competition.objects.filter(bracket = bracket,winner=None): pass else: br = Bracket.objects.get(id=bracket) br.tourny_round += 1 br.save() compnum = Competition.objects.filter(bracket = br.id, tourny_round=br.tourny_round - 1).count() / 2 #obvious bug here, try to fix it at some point # hint: it's only a problem if more then one person is using the site at a time ~~ hey are you there?? :( winnerlist = Competition.objects.values_list('winner',flat=True).filter(tourney_round = br.tourney_round - 1).exclude(winner=None).order_by('id') players=zigzag(winnerlist) for player_a, player_b in players: comp = Competition(bracket = br, tourny_round = br.tourny_round,commit = False) comp.competitor_a = player_a comp.competitor_b = player_b comp.save()
def addData(competition, command, result): logger = logging.getLogger('FUNC') comp = Competition.select().where(Competition.name == competition, Competition.command == command) if len(comp): Competition.update({ Competition.result: result }).where(Competition.name == competition, Competition.command == command).execute() else: Competition.create(name=competition, command=command, result=result) if competition_data.get(competition) is None: competition_data[competition] = {} competition_data[competition][command] = result competition_table_data[competition] = types_of_score[competition]( competition_data[competition]) logger.info(f'Data saved') return True
def build_competitions(): seasons = Season.objects.all() for s in seasons: count_competitions = randint(3,6) levels = Level.objects.all() index = 0 while index < count_competitions: level = levels[randint(0, levels.count() - 1)] name = 'S_{id}-C_{index}'.format(id=s.id, index=index) c = Competition(name=name, level=level, season=s) c.save() c.build_matches() c.build_statistics() index += 1
def updateData(): logger = logging.getLogger('FUNC') global competition_data, competition_table_data data_db = Competition.select() for comp in data_db: if competition_data.get(comp.name) is None: competition_data[comp.name] = {} competition_table_data[comp.name] = {} competition_data[comp.name][comp.command] = comp.result for competition in competition_data: competition_table_data[competition] = types_of_score[competition]( competition_data[competition]) logger.info(f'Data updated')
def post(self): try: template_values = {} competitionId = self.request.get('competitionId') competition = Competition.get_by_id(int(competitionId)).key() captionText = cgi.escape(self.request.get('caption')) authorText = cgi.escape(self.request.get('author')) if len(captionText) > 140 or len(authorText) > 140: template_values = { "msg" : "too many characters" } path = os.path.join(os.path.dirname(__file__), 'templates/oops.html') self.response.out.write(template.render(path, template_values)) else: caption = Caption(text=captionText, author=authorText, competitionKey=competition, dateCreated=datetime.datetime.now()) caption.put() self.redirect("/success"); except: self.redirect("/oops");
def comp_create(request, competition=None): """ Creates a new competition """ c = getAuthValues(request, {}) if c["auth_name"] != "auth_team_white": return HttpResponseRedirect("/") # Checks if the user is submitting the form, or requesting the form if request.method != "POST": c.update(csrf(request)) c["form"] = CompetitionSettingsGeneralForm() return render_to_response('AdminConfig/competition_create.html', c) form_comp = CompetitionSettingsGeneralForm(request.POST) # Checks that submitted form data is valid if not form_comp.is_valid(): print form_comp.errors return render(request, 'AdminConfig/competition_create.html', c) # Create the new competition Competition(**form_comp.cleaned_data).save() return HttpResponseRedirect('/admin/competitions/')
def test_create_simple_competition(self): competition = Competition(name="TestCompetition") competition.save()
def get(self, id): template_values = {} competition = Competition.get_by_id(int(id)) competition.complete = True competition.put() self.redirect('/admin/competitions')
def test_create_competition_with_organizer_group(self): competition = Competition(name="TestCompetition", organizer_group=self.group) competition.save()