def post(self, user_token): team = Team.all().filter('user_token =', user_token).get() if team is None: # just make sure this pledge exists user_info = config_NOCOMMIT.pledge_service.loadPledgeInfo( user_token) if user_info is None: return self.notfound() form = TeamForm(self.request.POST, team) if not form.validate(): return self.render_template("new_from_pledge.html", form=form) if team is None: gravatar = "https://secure.gravatar.com/avatar/%s?%s" % ( hashlib.md5(user_info['email'].lower()).hexdigest(), urllib.urlencode({'s': str('120')})) team = Team.create(title=form.title.data, description=form.description.data, zip_code=form.zip_code.data, user_token=user_token, gravatar=gravatar) else: form.populate_obj(team) self.add_to_user(team) team.primary_slug = Slug.new(team) try: result = config_NOCOMMIT.pledge_service.updateMailchimp(team) except Exception as e: logging.error('Exception updating mailChimp: ' + str(e)) logging.info(traceback.format_exc()) team.put() if self.logged_in: return self.redirect("/t/%s" % team.primary_slug) return self.redirect("/dashboard/add_admin_from_pledge/%s" % user_token)
def post(self, user_token): team = Team.all().filter('user_token =', user_token).get() if team is None: # just make sure this pledge exists user_info = config_NOCOMMIT.pledge_service.loadPledgeInfo(user_token) if user_info is None: return self.notfound() form = TeamForm(self.request.POST, team) if not form.validate(): return self.render_template("new_from_pledge.html", form=form) if team is None: gravatar = "https://secure.gravatar.com/avatar/%s?%s" % ( hashlib.md5(user_info['email'].lower()).hexdigest(), urllib.urlencode({'s': str('120')})) team = Team.create(title=form.title.data, description=form.description.data, zip_code=form.zip_code.data, user_token=user_token, gravatar=gravatar) else: form.populate_obj(team) self.add_to_user(team) team.primary_slug = Slug.new(team) try: result = config_NOCOMMIT.pledge_service.updateMailchimp(team) except Exception as e: logging.error('Exception updating mailChimp: ' + str(e)) logging.info(traceback.format_exc()) team.put() if self.logged_in: return self.redirect("/t/%s" % team.primary_slug) return self.redirect("/dashboard/add_admin_from_pledge/%s" % user_token)
def teams(): form = TeamForm() if 'username' not in session: return redirect(url_for('signin')) user = session['username'] teams = db.session.query(Team).order_by(Team.Number).all() if user is None: redirect(url_for('signin')) else: if request.method == 'POST': if not form.validate(): return render_template('teams.html', teams=teams, form=form) else: newteam = Team(number=form.number.data, name=form.name.data, website=form.website.data, timestamp=datetime.datetime.now()) db.session.add(newteam) db.session.commit() flash('Team successfully added.') return redirect(url_for('teams')) elif request.method == 'GET' : return render_template('teams.html', teams=teams, form=form)
def post(self): user = tusers.get_current_user() form = TeamForm(self.request.POST) t_string = self.request.get('t') t_key = ndb.Key(urlsafe=t_string) team = t_key.get() institution = None t = None # If it is an institutional team, don't let them update the contact info # with this method, as that data belongs to the Institution if (isinstance(team, InstitutionTeam)): institution = team.key.parent().get() form.leadName.data = institution.leadName form.phone.data = institution.phone reg = institution.key.parent().get() elif (isinstance(team, RegisteredOpenTeam)): reg = t_key.parent().get() t = reg.key.parent().get() #Check if they are allowed to edit if team.authorised(user): #If valid, update the team object if (form.validate()): team.leadName = form.leadName.data team.phone = form.phone.data team.teamName = form.teamName.data team.sp1Name = form.sp1Name.data team.sp2Name = form.sp2Name.data team.sp1ESL = form.sp1ESL.data team.sp2ESL = form.sp2ESL.data team.sp1Novice = form.sp1Novice.data team.sp2Novice = form.sp2Novice.data team.put() self.redirect('/reg_control?t=' + str(t.key.id())) else: template_values = { 'user' : user, 't' : t, 'logout' : tusers.create_logout_url('/'), 'login' : tusers.create_login_url('/mod/team?j=' + t_key.urlsafe()), 'r' : reg, 'form' : form, 'team' : t_key.urlsafe(), 'institution' : institution } template = JINJA_ENVIRONMENT.get_template('view/modteam.html') self.response.write(template.render(template_values)) else: self.redirect(self.request.referer)
def dashboard_create_team(): form = TeamForm(request.form) if request.method == 'POST' and form.validate(): team = Team() team.name = form.name.data user_ids = request.form.getlist('selected-users') users = User.query.filter(User.id.in_(user_ids)).all() for user in users: team.users.append(user) db_session.add(team) db_session.commit() return redirect(url_for('dashboard.dashboard_teams')) return render_template('create_team.html', form=form)
def signup_team(): form = TeamForm(request.form, csrf_enabled=False) if request.method == 'POST' and form.validate(): # If there is already a matching email, check password and update/delete team = Team.query.filter(Team.email == form.email.data).first() if team: # check password if team.check_password(form.password.data): # delete this entry if that option is checked if form.delete.data: db_session.delete(team) db_session.commit() flash('Listing deleted') return redirect('/teams/') else: team.name = form.name.data team.abbrv = form.abbrv.data team.region = form.region.data team.contact = form.contact.data team.player1 = form.player1.data team.player2 = form.player2.data team.player3 = form.player3.data team.player4 = form.player4.data team.player5 = form.player5.data team.player6 = form.player6.data team.player7 = form.player7.data team.summary = form.summary.data db_session.commit() flash('Listing updated') return redirect('/teams/') else: # password is wrong flash('Incorrect credentials') return redirect('/teams/') else: # create a new entry team = Team(email=form.email.data, password=form.password.data, name=form.name.data, abbrv=form.abbrv.data, region=form.region.data, contact=form.contact.data, player1=form.player1.data, player2=form.player2.data, player3=form.player3.data, player4=form.player4.data, player5=form.player5.data, player6=form.player6.data, player7=form.player7.data, summary=form.summary.data) db_session.add(team) db_session.commit() flash('Thanks for registering your team') return redirect('/teams/') return render_template("signup-team.html", form=form)
def post(self, slug): team, _, is_admin = self.validate(slug) if team is None: return if not is_admin: return self.redirect("/t/%s" % team.primary_slug) form = TeamForm(self.request.POST, team) if not form.validate(): return self.render_template("edit_team.html", form=form) form.populate_obj(team) team.primary_slug = Slug.new(team) try: result = config_NOCOMMIT.pledge_service.updateMailchimp(team) except Exception as e: logging.error('Exception updating mailChimp: ' + str(e)) logging.info(traceback.format_exc()) team.put() self.redirect("/t/%s" % team.primary_slug)
def post(self): form = TeamForm(self.request.POST) if not form.validate(): return self.render_template("new_team.html", form=form) team = Team.create(title=form.title.data, description=form.description.data, goal_dollars=form.goal_dollars.data, youtube_id=form.youtube_id.data, zip_code=form.zip_code.data) # TODO: can i reference a team before putting it in other reference # properties? should check team.primary_slug = Slug.new(team) try: result = config_NOCOMMIT.pledge_service.updateMailchimp(team) except Exception as e: logging.error('Exception updating mailChimp: ' + str(e)) logging.info(traceback.format_exc()) team.put() makeUserAdmin(self.current_user["user_id"], team) return self.redirect("/t/%s" % team.primary_slug)
def dashboard_edit_team(team_id): team = Team.query.get(team_id) if team is None: abort(404) form = TeamForm(request.form, team) if request.method == 'POST' and form.validate(): team.name = form.name.data users_in = request.form.getlist('selected-users') users_out = request.form.getlist('available-users') users = User.query.filter(User.id.in_(users_in)).all() for user in users: if user not in team.users: team.users.append(user) users = User.query.filter(User.id.in_(users_out)).all() for user in users: if user in team.users: team.users.remove(user) return redirect(url_for('dashboard.dashboard_teams')) return render_template('create_team.html', form=form, team_id=team_id)
def post(self): user = tusers.get_current_user() #Get the requested tournament tid = self.request.get('t') key = ndb.Key('Tournament', int(tid)) t = key.get() reg = t.preRegRecord().get() if user: form = TeamForm(self.request.POST) if (form.validate()): #If we are updating an existing registration, update it. if 'teamkey' in self.request.arguments(): teamkey = (self.request.get('teamkey')) team = ndb.Key(urlsafe=teamkey).get() #Check they own it if team.user != user.key: self.redirect('/reg?t=' + tid) #Otherwise, make a new team registration else: #Check they haven't registered already if reg.isRegistered(user): self.redirect('/reg?t=' + tid) return team = RegisteredOpenTeam(parent=reg.key) team.user = user.key team.teamName = form.teamName.data team.sp1Name = form.sp1Name.data team.sp2Name = form.sp2Name.data team.sp1ESL = form.sp1ESL.data team.sp2ESL = form.sp2ESL.data team.sp1Novice = form.sp1Novice.data team.sp2Novice = form.sp2Novice.data team.user = user.key team.put() self.redirect('/reg?t=' + tid) else: logging.info('invalid form') template_values = { 'user' : user, 't' : t, 'logout' : tusers.create_logout_url('/'), 'login' : tusers.create_login_url('/reg/team?t=' + tid), 'r' : reg, 'form' : form } template = JINJA_ENVIRONMENT.get_template('view/regteam.html') self.response.write(template.render(template_values)) else: self.redirect('/reg?t=' + tid)