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'))
Beispiel #2
0
 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")
Beispiel #4
0
    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))
Beispiel #6
0
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))
Beispiel #10
0
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()
Beispiel #11
0
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
Beispiel #12
0
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
Beispiel #13
0
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')
Beispiel #14
0
	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");
Beispiel #15
0
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/')
Beispiel #16
0
 def test_create_simple_competition(self):
     competition = Competition(name="TestCompetition")
     competition.save()
Beispiel #17
0
	def get(self, id):
		template_values = {}
		competition = Competition.get_by_id(int(id))
		competition.complete = True
		competition.put()
		self.redirect('/admin/competitions')
Beispiel #18
0
 def test_create_competition_with_organizer_group(self):
     competition = Competition(name="TestCompetition",
                               organizer_group=self.group)
     competition.save()