Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
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)
Beispiel #4
0
	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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
 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)
Beispiel #8
0
    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)
Beispiel #9
0
  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)
Beispiel #10
0
    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)
Beispiel #11
0
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)
Beispiel #12
0
  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)