Exemple #1
0
def post(request):
	'''process post page

	judge user's authenticate status and save valid post, store raiseNUMBER of user'''

	if request.user.is_authenticated():
		form = PostForm()
		if request.method == "POST":
			form = PostForm(request.POST.copy())
			if form.valid():
				poster = request.user
				title = form.cleaned_data["title"]
				content = form.cleaned_data["content"]
				bonus = form.cleaned_data["bonus"]
				deadline = form.cleaned_data["deadline"]
				post = Mission(missionNAME=title, missionDESCRIBE=content,
						logDATE=datetime.datetime.now(), deadline=deadline,
						rpBONUS=bonus, missionRAISER=poster, closed=False)
				post.save()

				poster_pro = UserProfile.objects.get(user_id=request.user.id) 
				poster_pro.raiseNUMBER += 1
				poster_pro.save()
				return HttpResponseRedirect("/")
		form = PostForm()
		return render_to_response("tasks/post.html",{'request': request, 'form': form, })
	return HttpResponseRedirect("/accounts/login/")
Exemple #2
0
    def get(self, args):
        if not users.is_current_user_admin():
            self.error(403)
            return

        template_vals = {'title': 'Edit Mission', 'page': 'missions'}
        template_vals['user'] = users.get_current_user()
        template_vals['logout_url'] = users.create_logout_url(self.request.uri)

        req_id = self.request.get('id')

        if not req_id:
            new_mission = Mission()
            new_mission.name = 'New Mission'
            template_vals['mission'] = new_mission
        else:
            mission = Mission.query(Mission.id == req_id).get()
            if mission:
                template_vals['mission'] = mission
            else:
                self.error(404)
                return

        template_vals['semesters'] = get_all_semesters()

        template = JINJA_ENVIRONMENT.get_template('mission_edit.html')
        self.response.write(template.render(template_vals))
Exemple #3
0
	def get(self, args):
		if not require_admin(self):
			return
		
		template_vals = generate_base_template_vals(self)
		template_vals['title'] = 'Edit Mission'
		template_vals['page'] = 'missions'
		
		req_id = self.request.get('id')
		
		if not req_id:
			new_mission = Mission()
			new_mission.name = 'New Mission'
			template_vals['mission'] = new_mission
		else:
			mission = Mission.query(Mission.id == req_id).get()
			if mission:
				template_vals['mission'] = mission
			else:
				self.error(404)
				return
		
		template_vals['semesters'] = get_all_semesters()
		
		template = JINJA_ENVIRONMENT.get_template('mission_edit.html')
		self.response.write(template.render(template_vals))
Exemple #4
0
	def get(self, args):
		if not require_admin(self):
			return
		
		template_vals = generate_base_template_vals(self)
		template_vals['title'] = 'Edit Mission'
		template_vals['page'] = 'missions'
		
		req_id = self.request.get('id')
		
		if not req_id:
			new_mission = Mission()
			new_mission.name = 'New Mission'
			template_vals['mission'] = new_mission
		else:
			mission = Mission.query(Mission.id == req_id).get()
			if mission:
				template_vals['mission'] = mission
			else:
				self.error(404)
				return
		
		template_vals['semesters'] = get_all_semesters()
		
		template = JINJA_ENVIRONMENT.get_template('mission_edit.html')
		self.response.write(template.render(template_vals))
Exemple #5
0
def prefix_questions_and_answers(*args):
    PD = PrefixDialog(ctx=ctx)
    dlg = PD.create()
    if dlg.execute():
        p_question = dlg.getControl('p_question').Text
        p_answer = dlg.getControl('p_answer').Text
        dlg.dispose()
        doc = Mission(ctx)
        doc.prefix_questions_and_answers(p_question, p_answer)
    def test_get_by_recent_miss_not_shared(self):

        Mission.create(editor=self.user.id,
                       name="test mission 3",
                       city="LA",
                       state="CA",
                       country='US')
        db.session.commit()

        recent = Mission.get_by_recent()

        self.assertEqual(len(recent), 2)
Exemple #7
0
def missions():
    """Missions view."""

    query_params = request.args.to_dict()

    if not query_params:
        missions = Mission.get_by_recent()
    else:
        missions = Mission.search(query_params)

    return render_template('main_views/missions.html',
                           missions=missions,
                           form_data=query_params)
Exemple #8
0
def rank(member, semester=get_current_semester()):
	paid = False
	num_semesters_paid_to_date = 0
	for semester_paid in member.semesters_paid:
		if semester_paid <= semester:
			paid = True
		if semester_paid < semester:
			num_semesters_paid_to_date += 1
	
	# Cadets cannot earn ranks
	if not paid:
		return 0
	
	rank = 1
	
	# Longevity
	if num_semesters_paid_to_date >= 4:
		rank += 1
	
	# Led weekly mission
	if Mission.query(Mission.runners == member.id, Mission.type == 0, Mission.start < semester_date(semester)).count(limit=1) != 0:
		rank += 1
	
	# Volunteered with special mission or committee
	if member.committee_rank or Mission.query(Mission.runners == member.id, Mission.type == 1, Mission.start < semester_date(semester)).count(limit=1) != 0:
		rank += 1
	
	# Merit ranks
	if member.merit_rank1:
		rank += 1
	if member.merit_rank2:
		rank += 1
	
	# Voted captain
	if BridgeCrew.query(BridgeCrew.captain == member.id, BridgeCrew.start < semester_date(semester)).count(limit=1) != 0:
		rank = 6
	
	# Alumni ranks
	if not member.current_student:
		if rank == 6:
			# Captains become rear admirals
			rank = 8
		else:
			# Non-captains become commodores
			rank = 7
	
	# Was an admiral (advisor)
	if BridgeCrew.query(BridgeCrew.admiral == member.id, BridgeCrew.start < semester_date(semester)).count(limit=1) != 0:
		rank = 10
	
	return rank
    def test_get_by_recent(self):

        mission3 = Mission.create(editor=self.user.id,
                                  name="test mission 3",
                                  city="LA",
                                  state="CA",
                                  country='US')
        mission3.share()
        db.session.commit()

        recent = Mission.get_by_recent()

        self.assertEqual(len(recent), 3)
        self.assertEqual(recent[0], mission3)
Exemple #10
0
    def setUp(self):

        self.user = User.register(email="*****@*****.**",
                                  username="******",
                                  password="******")

        self.mission = Mission.create(editor=self.user.id,
                                      name="test mission",
                                      city="Albany",
                                      state="NY",
                                      country='US')

        self.business = Business.create(name='Cuisine of Nepal',
                                        longitude=-122.42318,
                                        latitude=37.74097,
                                        id='iUockw0CUssKZLyoGJYEXA',
                                        city='San Francisco',
                                        state='CA',
                                        country='US')

        self.mission.businesses.append(self.business)

        self.report = Report.create(user_id=self.user.id,
                                    business_id='iUockw0CUssKZLyoGJYEXA',
                                    text='Best nepalese food I ever had!')

        db.session.commit()

        self.report2 = Report.create(user_id=self.user.id,
                                     mission_id=self.mission.id,
                                     text='The curry was devine!')

        db.session.commit()
Exemple #11
0
	def get(self, args):
		template_vals = generate_base_template_vals(self)
		template_vals['title'] = 'Missions'
		template_vals['page'] = 'missions'
		
		# Get all users from the given semester
		try:
			selected_semester = float(self.request.get('semester'))
		except Exception:
			selected_semester = get_current_semester()
		
		next_semester_date = semester_date(next_semester(selected_semester))
		selected_semester_date = semester_date(selected_semester)
		
		template_vals['missions'] = Mission.query(Mission.start >= semester_date(selected_semester), Mission.start < next_semester_date).order(Mission.start).fetch(limit=None)
		
		# Get all possible semesters to put in the menu.
		semesters = []
		for semester in get_all_semesters():
			semesters.append({
				'id': semester,
				'pretty': semester_pretty(semester),
				'selected': semester == selected_semester
			})
		template_vals['semesters'] = semesters
		template_vals['prev_semester'] = prev_semester(selected_semester) if selected_semester != FIRST_SEMESTER else None
		template_vals['next_semester'] = next_semester(selected_semester) if selected_semester != get_current_semester() else None
		
		template = JINJA_ENVIRONMENT.get_template('missions_list.html')
		self.response.write(template.render(template_vals))
Exemple #12
0
def post_vote(room_code):
    sessid = request.cookies.get("sessid")
    you = Player.select(Player, Room).join(Room).where(Player.sessid == sessid, Room.code == room_code).get()
    room = you.room
    vote = request.params["vote"]
    mission_id = request.params["missionId"]
    mission = Mission.get(Mission.id == mission_id, Mission.room == room)
    Vote.insert(player=you, mission=mission, vote=vote).execute()
    votes = Vote.select(Vote, Player).join(Player).where(Vote.mission == mission).execute()
    if votes.count == room.size:
        upvotes = sum(1 for v in votes if v.vote == "yes")
        agreed = True if (upvotes * 2 > votes.count) else False
        votes_message_data = {
            "votes": [
                {"player": {"id": vote.player.id, "name": vote.player.name}, "vote": vote.vote} for vote in votes
            ],
            "agreed": agreed,
        }
        messages = [Msg("votes", votes_message_data)]
        if agreed:
            room.phase = Room.PHASE_MISSION
            room.save()
        else:
            room.phase = Room.PHASE_TEAM_BUILD
            leader = next_leader(room)
            leader_message_data = {"leader": {"id": leader.id, "name": leader.name}}
            messages.append(Msg("leader", leader_message_data))
        post_message(messages, room=room)
Exemple #13
0
	def get(self):
		template_vals = {
			'page': 'home'
		}
		
		# Get the next five missions.
		# Include missions happening today.
		now = datetime.now()
		today = datetime(now.year, now.month, now.day)
		template_vals['missions'] = Mission.query(Mission.start >= today).order(Mission.start).fetch(limit=5)
		
		template_vals['user'] = users.get_current_user()
		if template_vals['user']:
			template_vals['logout_url'] = users.create_logout_url(self.request.uri)
		else:
			template_vals['login_url'] = users.create_login_url(self.request.uri)
		
		# Pick an end quote.
		template_vals['end_quote'] = choice([
			'Live long and prosper.',
			'May the Force be with you.',
			'Never give up!  Never surrender!'
		])
		
		template = JINJA_ENVIRONMENT.get_template('home.html')
		self.response.write(template.render(template_vals))
Exemple #14
0
    def get(self, req_id):
        template_vals = {'page': 'missions'}

        if not req_id:
            # Redirect to the missions page if no mission is specified.
            self.redirect('/missions')
            return

        mission = Mission.query(Mission.id == req_id).get()
        if not mission:
            # 404 if a nonexistent mission is specified
            self.error(404)
            return

        template_vals['mission'] = mission
        template_vals['title'] = mission.title

        # Get user data for the footer and admin controls.
        user = users.get_current_user()
        if user:
            template_vals['user'] = user
            template_vals['admin'] = users.is_current_user_admin()
            template_vals['logout_url'] = users.create_logout_url(
                self.request.uri)
        else:
            template_vals['login_url'] = users.create_login_url(
                self.request.uri)

        template = JINJA_ENVIRONMENT.get_template('mission_info.html')
        self.response.write(template.render(template_vals))
Exemple #15
0
	def get(self, args):
		template_vals = generate_base_template_vals(self)
		template_vals['title'] = 'Missions'
		template_vals['page'] = 'missions'
		
		# Get all users from the given semester
		try:
			selected_semester = float(self.request.get('semester'))
		except Exception:
			selected_semester = get_current_semester()
		
		next_semester_date = semester_date(next_semester(selected_semester))
		selected_semester_date = semester_date(selected_semester)
		
		template_vals['missions'] = Mission.query(Mission.start >= semester_date(selected_semester), Mission.start < next_semester_date).order(Mission.start).fetch(limit=None)
		
		# Get all possible semesters to put in the menu.
		semesters = []
		for semester in get_all_semesters():
			semesters.append({
				'id': semester,
				'pretty': semester_pretty(semester),
				'selected': semester == selected_semester
			})
		template_vals['semesters'] = semesters
		template_vals['prev_semester'] = prev_semester(selected_semester) if selected_semester != FIRST_SEMESTER else None
		template_vals['next_semester'] = next_semester(selected_semester) if selected_semester != get_current_semester() else None
		
		template = JINJA_ENVIRONMENT.get_template('missions_list.html')
		self.response.write(template.render(template_vals))
Exemple #16
0
    def post(self, args):
        if not users.is_current_user_admin():
            self.error(403)
            return

        req_id = self.request.get('id')
        if not req_id:
            self.error(422)
            return

        mission = Mission.query(Mission.id == req_id).get()
        if not mission:
            mission = Mission()
            req_id = req_id.strip().lower().replace(' ', '-')
            mission.id = req_id

        # Update int values.
        for int_param in ['type']:
            req_val = self.request.get(int_param)
            if req_val or req_val == 0:
                req_val = int(req_val)
                setattr(mission, int_param, req_val)

        # Update string values.
        for str_param in [
                'title', 'description', 'location', 'wave_url', 'fb_url',
                'gplus_url', 'the_link_url', 'youtube_url'
        ]:
            req_val = self.request.get(str_param)
            if req_val or req_val == '':
                req_val = urllib2.unquote(req_val)
                req_val = req_val.strip()
                setattr(mission, str_param, req_val)

        # Update date values.
        for date_param in ['start', 'end']:
            req_val = self.request.get(date_param)
            if req_val:
                req_val = urllib2.unquote(req_val)
                req_val = datetime.strptime(req_val, '%Y-%m-%dT%H:%M')
                setattr(mission, date_param, req_val)
            else:
                setattr(mission, date_param, None)

        # Update array values.
        req_runners = self.request.get('runners')
        if req_runners:
            req_runners = req_runners.replace(' ', '').split(',')
            mission.runners = req_runners
        else:
            mission.runners = []

        # Save the updated mission.
        mission.put()

        self.redirect('/missions/' + mission.id, code=303)
Exemple #17
0
    def test_search_miss(self):
        miss = Mission.search({
            'city': 'ithica',
            'state': 'ny',
            'keywords': 'potato',
            'country': 'us',
            'sort_by': 'recent'
        })

        self.assertListEqual([], miss)
Exemple #18
0
    def test_search_hit(self):

        hit = Mission.search({
            'city': 'ithica',
            'state': 'ny',
            'keywords': 'little',
            'country': 'us',
            'sort_by': 'recent'
        })

        self.assertListEqual([self.mission2], hit)
Exemple #19
0
	def post(self, args):
		if not require_admin(self):
			return
		
		req_id = self.request.get('id')
		if not req_id:
			self.error(422)
			return
		
		mission = Mission.query(Mission.id == req_id).get()
		if not mission:
			mission = Mission()
			req_id = req_id.strip().lower().replace(' ', '-')
			mission.id = req_id
		
		# Update int values.
		for int_param in ['type']:
			req_val = self.request.get(int_param)
			if req_val or req_val == 0:
				req_val = int(req_val)
				setattr(mission, int_param, req_val)
		
		# Update string values.
		for str_param in ['title', 'description', 'location', 'wave_url', 'drive_url', 'intro_url', 'pres_url', 'sign_in_url', 'fb_url', 'gplus_url', 'the_link_url', 'youtube_url']:
			req_val = self.request.get(str_param)
			if req_val or req_val == '':
				req_val = urllib2.unquote(req_val)
				req_val = req_val.strip()
				setattr(mission, str_param, req_val)
		
		# Update date values.
		for date_param in ['start', 'end']:
			req_val = self.request.get(date_param)
			if req_val:
				req_val = urllib2.unquote(req_val)
				req_val = datetime.strptime(req_val, '%Y-%m-%dT%H:%M')
				setattr(mission, date_param, req_val)
			else:
				setattr(mission, date_param, None)
		
		# Update array values.
		req_runners = self.request.get('runners')
		if req_runners:
			req_runners = req_runners.replace(' ','').split(',')
			mission.runners = req_runners
		else:
			mission.runners = []
		
		# Save the updated mission.
		mission.put()
		
		if not mission.start:
			self.redirect('/missions/hidden', code=303)
			return
		
		self.redirect('/missions/' + mission.id, code=303)
Exemple #20
0
	def get(self):
		if not require_admin(self):
			return
		
		template_vals = generate_base_template_vals(self)
		template_vals['title'] = 'Hidden Missions'
		template_vals['page'] = 'missions'
		
		template_vals['missions'] = Mission.query(ndb.OR(Mission.start == None)).order(Mission.id).fetch(limit=None)
		
		template = JINJA_ENVIRONMENT.get_template('missions_hidden.html')
		self.response.write(template.render(template_vals))
Exemple #21
0
	def get(self):
		if not require_admin(self):
			return
		
		template_vals = generate_base_template_vals(self)
		template_vals['title'] = 'Hidden Missions'
		template_vals['page'] = 'missions'
		
		template_vals['missions'] = Mission.query(ndb.OR(Mission.start == None)).order(Mission.id).fetch(limit=None)
		
		template = JINJA_ENVIRONMENT.get_template('missions_hidden.html')
		self.response.write(template.render(template_vals))
Exemple #22
0
    def setUp(self):

        self.user = User.register(email="*****@*****.**",
                                  username="******",
                                  password="******")

        self.mission = Mission.create(editor=self.user.id,
                                      name="test mission",
                                      city="Albany",
                                      state="NY",
                                      country='US')
        self.mission.share()

        self.mission2 = Mission.create(editor=self.user.id,
                                       name="test mission 2",
                                       city="Ithica",
                                       state="NY",
                                       country='US')
        self.mission2.share()

        self.business = Business.create(name='Cuisine of Nepal',
                                        longitude=-122.42318,
                                        latitude=37.74097,
                                        id='iUockw0CUssKZLyoGJYEXA',
                                        city='San Francisco',
                                        state='CA',
                                        country='US')

        self.business2 = Business.create(name='Little Nepal',
                                         longitude=-122.41361,
                                         latitude=37.7391,
                                         id='Kx1WExNj5ogaFe0cyg9L6A',
                                         city='San Francisco',
                                         state='CA',
                                         country='US')

        self.mission.businesses.append(self.business)
        self.mission2.businesses.append(self.business2)

        db.session.commit()
Exemple #23
0
    def setUp(self):

        self.user = User.register(email="*****@*****.**",
                                  username="******",
                                  password="******")

        self.mission = Mission.create(editor=self.user.id,
                                      name="test mission",
                                      city="Albany",
                                      state="NY",
                                      country='US')
        self.mission.share()

        self.mission2 = Mission.create(editor=self.user.id,
                                       name="test mission 2",
                                       city="Ithica",
                                       state="NY",
                                       country='US')
        self.mission2.share()

        self.business = Business.create(name="Cusine of Nepal",
                                        id='82372347',
                                        city='San Francisco',
                                        state='CA',
                                        country='US',
                                        longitude=20.22,
                                        latitude=77.0)

        db.session.commit()

        self.report = Report.create(user_id=self.user.id,
                                    business_id=self.business.id,
                                    text="Amazing!")

        self.report = Report.create(user_id=self.user.id,
                                    mission_id=self.mission.id,
                                    text="Amazing Mission!")

        db.session.commit()
Exemple #24
0
    def test_search_miss_not_shared(self):

        m3 = Mission.create(
            editor=self.user.id,
            name='I like cheese.',
            city='San Francisco',
            state='CA',
            country='US',
            description="What is there to explain. Let's get some cheese.")

        m3.businesses.append(self.business)
        db.session.commit()

        miss = Mission.search({
            'city': '',
            'state': '',
            'keywords': '',
            'country': '',
            'sort_by': 'recent'
        })

        self.assertEqual(len(miss), 2)
Exemple #25
0
    def get(self, args):
        template_vals = {'title': 'Missions', 'page': 'missions'}

        user = users.get_current_user()
        if user:
            template_vals['user'] = user
            template_vals['admin'] = users.is_current_user_admin()
            template_vals['logout_url'] = users.create_logout_url(
                self.request.uri)
        else:
            template_vals['login_url'] = users.create_login_url(
                self.request.uri)

        # Get all users from the given semester
        selected_semester = self.request.get('semester')
        if not selected_semester:
            selected_semester = get_current_semester()

        prev_semester_str = prev_semester(selected_semester)
        current_semester_str = get_current_semester()
        next_semester_str = next_semester(selected_semester)
        next_semester_date = semester_date(next_semester_str)
        selected_semester_date = semester_date(selected_semester)

        template_vals['missions'] = Mission.query(
            Mission.start >= selected_semester_date,
            Mission.start < next_semester_date).order(
                Mission.start).fetch(limit=None)

        # Get all possible semesters to put in the menu.
        semesters = []
        for semester in get_all_semesters():
            semester_pretty = semester[0].upper() + semester[1:].replace(
                '_', ' ')
            semesters.append({
                'id': semester,
                'pretty': semester_pretty,
                'selected': semester == selected_semester
            })
        template_vals['semesters'] = semesters
        template_vals[
            'prev_semester'] = prev_semester_str if selected_semester != 'fall_2013' else None
        template_vals[
            'next_semester'] = next_semester_str if selected_semester != current_semester_str else None

        template = JINJA_ENVIRONMENT.get_template('mission_list.html')
        self.response.write(template.render(template_vals))
Exemple #26
0
def create_mission():
    """Endpoint to create a mission."""

    if not g.user:
        return Unauthorized()

    try:
        mission = Mission.create(editor=g.user.id, **request.json)
        db.session.commit()
        g.user.missions.append(mission)
        db.session.commit()
    except Exception as e:
        H.error_logging(e)
        return jsonify({'error': repr(e)})

    return jsonify({'success': 'Mission Created!',
                    'mission': mission.serialize()})
Exemple #27
0
    def setUp(self):

        self.user = User.register(
            email='*****@*****.**',
            username='******', password='******')

        self.user2 = User.register(
            email='*****@*****.**',
            username='******', password='******')

        self.mission = Mission.create(
            editor=self.user.id, name='Food Truck Grand Tour',
            city='San Francisco', state='CA', country='US',
            description="The pletora of SF food trucks never ceases to amaze.")

        db.session.commit()

        self.client = app.test_client()
Exemple #28
0
def post_team(room_code):
    sessid = request.cookies.get("sessid")
    you = Player.select(Player, Room).join(Room).where(Player.sessid == sessid, Room.code == room_code).get()
    room = you.room
    if you.queue_position != room.leader_queue:
        return HTTPError(400, "You are not the leader")
    team_ids = request.params.getall("team[]")
    team = room.players.where(Player.id << team_ids).execute()
    mission = Mission.create(room=room, leader=you, team_size=0)
    with db.atomic():
        for plr in team:
            PlayerMission.insert(player=plr, mission=mission).execute()
    room.phase = "vote"
    room.save()
    message_data = {
        "mission_id": mission.id,
        "leader": {"id": you.id, "name": you.name},
        "team": [{"id": plr.id, "name": plr.name} for plr in team],
    }
    post_message([Msg("team", message_data)], room=room)
Exemple #29
0
	def get(self, req_id):
		if not req_id:
			# Redirect to the missions page if no mission is specified.
			self.redirect('/missions')
			return
		
		mission = Mission.query(Mission.id == req_id).get()
		if not mission:
			# 404 if a nonexistent mission is specified.
			self.error(404)
			return
		
		template_vals = generate_base_template_vals(self)
		template_vals['page'] = 'missions'
		
		template_vals['mission'] = mission
		template_vals['title'] = mission.title
		
		template = JINJA_ENVIRONMENT.get_template('mission_info.html')
		self.response.write(template.render(template_vals))
Exemple #30
0
	def get(self, req_id):
		if not req_id:
			# Redirect to the missions page if no mission is specified.
			self.redirect('/missions')
			return
		
		mission = Mission.query(Mission.id == req_id).get()
		if not mission:
			# 404 if a nonexistent mission is specified.
			self.error(404)
			return
		
		template_vals = generate_base_template_vals(self)
		template_vals['page'] = 'missions'
		
		template_vals['mission'] = mission
		template_vals['title'] = mission.title
		
		template = JINJA_ENVIRONMENT.get_template('mission_info.html')
		self.response.write(template.render(template_vals))
Exemple #31
0
def set_mission():
    """设置任务"""
    name = User.query.order_by(User.id.asc()).all()
    province = Province.query.order_by(Province.code.asc()).all()
    mis = Mission.query.order_by(Mission.add_time.asc()).all()
    major = MajorList.query.order_by(MajorList.id.asc()).all()
    if request.method == 'GET':
        return render_template("mission-set.html",
                               name=name,
                               province=province,
                               mis=mis,
                               major=major)
    else:
        import time
        user = request.form.get('name')
        province = request.form.get('province')
        major = request.form.get('major')
        op_type = request.form.get('type')
        quantity = request.form.get('quantity')
        begin_time = time.strftime('%Y-%m-%d %H:%M:%S')
        # 从所有学生信息中检索input和任务完成人进行比对,该任务被删除时,下次任务数量不为0,输机与复查完成量问题
        completed = 0
        # if op_type == "输机(有库)":
        #     completed = StudentInfo.query.filter(and_(
        #         StudentInfo.input == Mission.user, begin_time < StudentInfo.input_time)
        #     ).count()
        #     print(completed)
        # completed = StudentInfo.query.filter(StudentInfo.input == Mission.user).count()
        mission = Mission(user=user,
                          province=province,
                          major=major,
                          type=op_type,
                          quantity=quantity,
                          begin_time=begin_time,
                          completed=completed)
        db.session.add(mission)
        db.session.commit()
        flash('任务添加成功!')
        return redirect(url_for("set_mission"))
Exemple #32
0
	def get(self):
		template_vals = generate_base_template_vals(self)
		template_vals['page'] = 'home'
		
		# Get the home page text.
		home_content = PageContent.query(PageContent.page == 'home').get()
		template_vals['home_html'] = home_content.html_text if home_content else ''
		
		# Get the next five missions.
		# Include missions happening today.
		now = datetime.now()
		today = datetime(now.year, now.month, now.day)
		template_vals['missions'] = Mission.query(Mission.start >= today).order(Mission.start).fetch(limit=5)
		
		# Pick an end quote.
		template_vals['greeting'] = choice([
			'Greetings from Earth!',
			'Greetings, program!',
			'Hello there!',
			'Welcome aboard!'
		])
		template_vals['groups_call_to_action'] = choice([
			'Boldly chat where some have chatted before',
			'Come chat with us',
			'Explore strange new groups',
			'Join our groups',
			'Join the collective',
			'Join the conversation'
		])
		template_vals['end_quote'] = choice([
			'Excelsior!',
			'Live long and prosper.',
			'May the Force be with you.',
			'Never give up!  Never surrender!'
		])
		
		template = JINJA_ENVIRONMENT.get_template('home.html')
		self.response.write(template.render(template_vals))
Exemple #33
0
 def mission(self):
     return Mission(self.ctx)
Exemple #34
0
	def get(self, req_id, resource_name):
		if not req_id:
			# Redirect to the missions page if no mission is specified.
			self.redirect('/missions')
			return
		
		mission = Mission.query(Mission.id == req_id).get()
		if not mission:
			# 404 if a nonexistent mission is specified.
			generate_plain_404(self, u'No mission exists with the ID \u201c%s\u201d.' % req_id)
			return
		
		if resource_name == 'wave':
			if not mission.wave_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a wave URL.' % req_id)
				return
			self.redirect(mission.wave_url.encode('utf-8'))
			
		elif resource_name == 'gdrive' or resource_name == 'drive':
			if not mission.drive_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a Drive URL.' % req_id)
				return
			self.redirect(mission.drive_url.encode('utf-8'))
			
		elif resource_name == 'intro':
			if not mission.intro_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have an intro. presentation URL.' % req_id)
				return
			self.redirect(mission.intro_url.encode('utf-8'))
			
		elif resource_name == 'presentation' or resource_name == 'pres':
			if not mission.pres_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a mission presentation URL.' % req_id)
				return
			self.redirect(mission.pres_url.encode('utf-8'))
			
		elif resource_name == 'signin':
			if not mission.sign_in_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a sign-in form URL.' % req_id)
				return
			self.redirect(mission.sign_in_url.encode('utf-8'))
			
		elif resource_name == 'facebook' or resource_name == 'fb':
			if not mission.fb_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a Facebook event URL.' % req_id)
				return
			self.redirect(mission.fb_url.encode('utf-8'))
			
		elif resource_name == 'gplus' or resource_name == 'google' or resource_name == 'google+' or resource_name == 'googleplus':
			if not mission.gplus_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a Google+ event URL.' % req_id)
				return
			self.redirect(mission.gplus_url.encode('utf-8'))
			
		elif resource_name == 'thelink':
			if not mission.the_link_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a The Link event URL.' % req_id)
				return
			self.redirect(mission.the_link_url.encode('utf-8'))
			
		elif resource_name == 'youtube' or resource_name == 'yt':
			if not mission.youtube_url:
				generate_plain_404(self, u'Mission \u201c%s\u201d does not have a YouTube stream URL.' % req_id)
				return
			self.redirect(mission.youtube_url.encode('utf-8'))
			
		else:
			generate_plain_404(self, u'Mission \u201c%s\u201d does not have a \u201c%s\u201d URL.\n\nThe links a mission might have are:\n\u2022 wave\n\u2022 gdrive (or drive)\n\u2022 intro\n\u2022 presentation (or pres)\n\u2022 signin\n\u2022 facebook (or fb)\n\u2022 gplus (or google)\n\u2022 thelink\n\u2022 youtube (or yt)' % (req_id, resource_name))
			return
Exemple #35
0
def get_things_down(*args):
    Mission(ctx).remove_key_handler(ctx)
Exemple #36
0
def wrap_last_word_into_brackets(*args):
    doc = Mission(ctx)
    doc.wrap_last_word_into_brackets()
Exemple #37
0
def remove_milliseconds_from_tc(*args):
    doc = Mission(ctx)
    doc.remove_milliseconds_from_tc()
Exemple #38
0
def remove_blank_line(*args):
    doc = Mission(ctx)
    doc.remove_blank_line()
Exemple #39
0
def question_lower(*args):
    doc = Mission(ctx)
    doc.question_lower()
Exemple #40
0
def question_upper(*args):
    doc = Mission(ctx)
    doc.question_upper()