def competition(id=None, p=None, limit=None, admin=None, **kwargs): db = DB_Session() query = db.query(Competition) if web.ctx.method in ("POST", "PUT", "PATCH"): i = json.loads(web.data()) if web.ctx.method in ("PUT", "PATCH"): competition = query.get(int(id)) for name, value in i.items(): setattr(competition, name, value) else: competition = Competition(**i) db.add(competition) db.flush() db.refresh(competition) db.commit() n = ResultWrapper(competition, competition=competition.to_api()) else: if id: competition = query.get(int(id)) competition = competition.to_api() n = ResultWrapper(competition, competition=competition) else: if kwargs.has_key("nation"): nation = kwargs["nation"] competition = query.filter(Competition.nation_id == int(nation)) competition = paging(competition, limit, p) n = ResultWrapper(competition, competition=[v.to_api() for v in competition], count=query.count()) db.close() return n
def new_competition(request): event = None if request.method == 'POST': form = NewEventForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] competition = Competition(name=name) competition.save() msg = "New competition {0} has been created!".format(name) messages.success(request, msg) return redirect('soccer.views.competition', str(competition.id)) else: form = NewEventForm() c = {} c.update(csrf(request)) c['form'] = form return c