def get(self): session = get_current_session() if not session.has_key('net_id'): auth.require_login(self) user = models.get_user(session['net_id'], True) page = self.request.path if page == '/': page = 'main' if page.startswith('/'): page = page[1:] if page.endswith('.html'): page = page[:-5] logging.info(page) template = JINJA_ENV.get_template('/views/%s.html' % page) page_data = {} page_data['net_id'] = user.net_id page_data['terms'] = [] requiredTerm = models.Term.gql('WHERE code=:1', 'TRANSFER').get() #if requiredTerm.key() not in user.terms: # user.terms.append(requiredTerm.key()) # user.put() sorted_terms = sorted(models.Term.get(user.terms), key=lambda t:t.code) for term in sorted_terms: thisTerm = { 'code': term.code, 'description':term.description } courseTakens = models.CourseTaken.gql('WHERE user=:1 AND term=:2', user, term) thisTerm['courses'] = [] for courseTaken in courseTakens: thisTerm['courses'].append({ 'name': courseTaken.course.subject.code + " " + courseTaken.course.number, 'term': courseTaken.term.code, 'taken_id' : courseTaken.key(), 'id' : courseTaken.course.key() }) page_data['terms'].append(thisTerm) degree = models.DegreeRequirement.gql('WHERE name=:1', 'Computer Science').get() courses_takens = models.CourseTaken.gql('WHERE user=:1', user) courses = [] for courses_taken in courses_takens: courses.append(courses_taken.course) if degree: page_data['progress'] = degree.progress_summaries(courses) logging.info(page_data['progress']) self.response.out.write(template.render(page_data))
def get(self): user = auth.require_login(self) puzzleNum = self.request.get('p') logging.info(puzzleNum) if puzzleNum == '': self.display_not_found(user) else: puzzleNum = int(puzzleNum) if puzzleNum > NUM_PUZZLES or puzzleNum < 1: self.display_not_found(user) return attempts = get_attempts(user, puzzleNum-1) logging.info(attempts) for a in attempts: a['time_added'] = (a['time_added'] - timedelta(hours=6)).strftime('%Y-%m-%d %H:%M:%S') view = pages.render_view(PAGE_URI, {'attempts': attempts, 'puzzleNum': puzzleNum, 'puzzleTitle': models.puzzle_data.puzzle_titles[puzzleNum - 1]}) navbar = { 'team_name': user.team_name, 'logged_in' : True, 'team_score' : user.team_score } now = datetime.now() - timedelta(hours=6) #Get CST from UTC if now >= CLOSING_TIME: view = pages.render_view('/outoftime_main', {}) pages.render_page(self, view, navbar) return pages.render_page(self, view, navbar)
def get(self): user = auth.require_login(self) if not user: return self.redirect(ERROR_URI) ongoing_elections = models.election.get_ongoing_elections() for election in ongoing_elections: organization = models.organization.get_organization(election['organization']) election['organization'] = organization.title petitions = models.petition.get_petitions(user) expired_petitions = [] ongoing_petitions = [] for petition in petitions: election = models.election.get_election(petition['election']) petition['election'] = election.title organization = models.organization.get_organization(election.organization) petition['organization'] = organization.title petition['signatures_left'] = election.threshold - petition['signature_num'] if petition['signatures_left'] < 0: petition['signatures_left'] = 0 if election.end_date < date.today(): expired_petitions.append(petition) else: ongoing_petitions.append(petition) view = pages.render_view(MY_URI, {'expired_petitions': expired_petitions, 'ongoing_petitions': ongoing_petitions, 'ongoing_elections': ongoing_elections}) pages.render_page(self, view)
def delete(self): user = auth.require_login(self) if not user: return self.redirect(ERROR_URI) election_id = self.request.get('id') election = models.election.get_election(election_id) models.election.delete_election(election) self.response.out.write('Success!')
def get(self): user = auth.require_login(self) #petitions = models.petition.get_petitions(user) effectivePetitions = models.petition.get_in_effect_petitions() expiredPetitions = models.petition.get_expired_petitions() logging.info("effective petitions: %s", effectivePetitions) for petition in effectivePetitions: print petition['votes'] view = pages.render_view(PAGE_URI, {'effectivePetitions': effectivePetitions, 'expiredPetitions':expiredPetitions}) pages.render_page(self, view)
def post(self): user = auth.require_login(self) if not user: return self.redirect(ERROR_URI) data = json.loads(self.request.get('data')) logging.info('Save Admins Post: %s', data) models.organization.update_admins(data['organization_id'], data['admins']) self.response.out.write('Success!')
def post(self): user = auth.require_login(self) if not user: return self.redirect(ERROR_URI) data = json.loads(self.request.get('data')) logging.info('Add Election Post: %s', data) election = models.election.create_election(user, data) # Respond if not election: self.response.out.write('Duplicate Election') else: self.response.out.write('Success')
def get(self): user = auth.require_login(self) if not user: return self.redirect(ERROR_URI) # Get the organization organization_id = self.request.get('id') organization = models.organization.get_organization(organization_id).to_json() logging.info("Organization: %s", organization) # Make sure the user is authorized to delete the organization assert user.get_id() in organization['admins'] admin_dict = {} for admin in organization['admins']: admin_dict[admin] = (user.get_id() == admin or ADMIN_ID == admin) organization['admins'] = admin_dict # Get all the elections for the organization elections = models.election.get_organization_elections(organization['id']) ongoing_elections = [] upcoming_elections = [] expired_elections = [] for election in elections: positions = {} for position in election['positions']: petitions = models.petition.get_petitions_for_position(election['id'], position) for petition in petitions: petition['signatures_left'] = election['threshold'] - petition['signature_num'] if petition['signatures_left'] < 0: petition['signatures_left'] = 0 positions[position] = petitions election['positions'] = positions if election['start_date'] > datetime.date.today(): upcoming_elections.append(election) elif election['end_date'] < datetime.date.today(): expired_elections.append(election) else: ongoing_elections.append(election) logging.info("Elections: %s", elections) view = pages.render_view(DASHBOARD_URI, {'organization': organization, 'ongoing_elections': ongoing_elections, 'upcoming_elections': upcoming_elections, 'expired_elections': expired_elections}) pages.render_page(self, view)
def get(self): user = auth.require_login(self) if user.net_id in models.users_db.all_users: if user.team_name == None: #Initialize user.team_name = models.users_db.all_users[user.net_id] user.team_score = 0 user.put() view = pages.render_view(PAGE_URI, {'puzzles': PUZZLES_LIST}) navbar = { 'team_name': user.team_name, 'logged_in' : True, 'team_score' : user.team_score, 'puzzles' : True } pages.render_page(self, view, navbar) else: delete_user(user) view = pages.render_view('/notsignedup', {}) pages.render_page(self, view, {})
def get(self): user = auth.require_login(self) if not user: return self.redirect(ERROR_URI) ongoing_elections = models.election.get_ongoing_elections() for election in ongoing_elections: organization = models.organization.get_organization(election['organization']) election['organization'] = organization.title logging.info("Ongoing Elections: %s", ongoing_elections) petitions = {} for election in ongoing_elections: election_id = election['id'] petitions[election['title']] = {} for position in election['positions']: petitions[election['title']][position] = models.petition.get_petitions_for_position(election_id, position) for petition in petitions[election['title']][position]: petition['signatures_left'] = election['threshold'] - petition['signature_num'] if petition['signatures_left'] < 0: petition['signatures_left'] = 0 if petition['user'].get_id() == user.get_id(): petition['own'] = True else: petition['own'] = False if user.get_id() in petition['signatures']: petition['signed'] = True else: petition['signed'] = False logging.info("Petitions: %s", petitions) view = pages.render_view(PETITIONS_URI, {'petitions': petitions, 'ongoing_elections': ongoing_elections}) pages.render_page(self, view)
def get(self): user = auth.require_login(self) if not user: return self.redirect(ERROR_URI) # Get all the organizations organizations = models.organization.get_all_organizations() logging.info("organizations: %s", organizations) is_admin = user.get_id() == ADMIN_ID for organization in organizations: if user.get_id() in organization['admins'] or is_admin: organization['dashboard'] = True else: organization['dashboard'] = False if user.get_id() == ADMIN_ID: admins = ADMIN_ID else: admins = ADMIN_ID + ',' + user.get_id() view = pages.render_view(ORGANIZATION_URI, {'organizations': organizations, 'is_admin': is_admin, 'admins': admins, 'admin': ADMIN_ID}) pages.render_page(self, view)
def get(self): user = auth.require_login(self) myPetitions = models.petition.get_petitions(user) view = pages.render_view(MY_PAGE_URI, {'myPetitions': myPetitions}) pages.render_page(self, view)
def get(self): user = auth.require_login(self) stickies = models.sticky.get_stickies(user) view = pages.render_view(PAGE_URI, {'stickies': stickies}) pages.render_page(self, view)