def post(self): user = User.get(users.get_current_user()) if not user.superuser: self.redirect('/invite', error="Must be an admin to edit configuration.") return err = [] msg = [] flags = {} for name in config.keys(): v = self.request.get('config_%s' % name) if v != "": logging.info("Updating %s: %s" % (name, v)) flags[name] = Config.update(name, v) if flags[name] == True: config[name] = v elif flags[name] is None: err.append("Failed to update %s." % name) else: Config.query(Config.name==name).get().key.delete() del(config[name]) msg.append("'%s' deleted." % name) logging.info("Deleted key '%s'." % name) new_name = self.request.get('new_name') if new_name: value = self.request.get('new_value') logging.info("New config key %s: %s" % (new_name, value)) Config(name=new_name, value=value).put() flags[new_name] = True config[new_name] = value self.get(error=", ".join(err), msg=", ".join(msg), flags=flags)
def get(self): days = defaultdict(dict) for gn in Gamenight.future(10): days[gn.date]['date'] = gn.date days[gn.date]['scheduled'] = True days[gn.date]['status'] = gn.status days[gn.date]['owner'] = gn.owner days[gn.date]['time'] = gn.time days[gn.date]['where'] = gn.location invitations = Invitation.query(Invitation.date >= Utils.now()).\ order(Invitation.date).iter() for invite in invitations: if not days[invite.date].get('invitations'): days[invite.date]['date'] = invite.date days[invite.date]['invitations'] = [] days[invite.date]['invitations'].append(invite) day_sorter = lambda x: x.get('date') template_values = { 'days': sorted(days.values(), key=day_sorter) } current_user = users.get_current_user() if current_user: user = User.get(users.get_current_user()) template_values.update({ 'logout': users.create_logout_url('/'), 'user': user, }) template = JINJA_ENVIRONMNT.get_template('schedule.html') self.response.write(template.render(template_values))
def get(self, template_values={}, msg=None, error=None): user = User.get(users.get_current_user()) if user.superuser: invitations = Invitation.query(ancestor=Invitation.dummy()) else: invitations = Invitation.query(Invitation.owner==user.key, ancestor=Invitation.dummy()) invitations = invitations\ .filter(Invitation.date >= Utils.now())\ .order(Invitation.date).iter() template_values.update({ 'user': user, 'msg': msg, 'error': error, 'invitations': invitations, 'logout': users.create_logout_url('/'), }) if not template_values.has_key('where') and user.location: template_values['where'] = user.location template = JINJA_ENVIRONMNT.get_template('invite.html') self.response.write(template.render(template_values))
def get(self, error=None, msg=None, flags={}): user = User.get(users.get_current_user()) if not user.superuser: self.redirect('/invite', error="Must be an admin to edit configuration.") return template_values = { 'config': config, 'flags': flags, 'logout': users.create_logout_url('/'), 'user': user, 'error': error, 'msg': msg, } template = JINJA_ENVIRONMNT.get_template('config.html') self.response.write(template.render(template_values))
def post(self): user = User.get(users.get_current_user()) if user.superuser: edit = self.request.get('edit', False) if edit: self.get(profile=edit, msg='Editing %s' % edit) return profile = User.lookup(self.request.get('pid')) profile.superuser = self.request.get('admin')=='on' else: profile = user profile.location = self.request.get('location') profile.name = self.request.get('name') profile.nag = self.request.get('nag')=='on' profile.put() self.get(msg='Profile updated!', profile=profile.key.id())
def get(self, template_values={}, msg=None, error=None, profile=None): user = User.get(users.get_current_user()) template_values.update({ 'user': user, 'msg': msg, 'error': error, 'logout': users.create_logout_url('/'), }) template_values['profile'] = user if user.superuser: template_values['users'] = User.query().fetch() if profile: template_values['profile'] = User.lookup(profile) if not profile: template_values['profile'] = user template_values['error'] = "Couldn't find user %s" % profile template = JINJA_ENVIRONMNT.get_template('profile.html') self.response.write(template.render(template_values))
def post(self, template_values={}): user = User.get(users.get_current_user()) if self.request.get('withdraw'): invite = Invitation.get(self.request.get('withdraw')) if not invite: self.get(error="Can't find this invitation.") return if invite.owner != user.key and not user.superuser: self.get(error='Not your invitation.') return msg = '' gn = Gamenight.query(Gamenight.invitation==invite.key).get() logging.info('Invite id: %s, gn: %s', invite.key, gn) invite.key.delete() msg = 'Invitation withdrawn. ' if gn: gn.key.delete() msg += 'Rescheduling gamenight. ' Gamenight.schedule() self.get(msg=msg) return args = {} for k in ['when', 'where', 'priority', 'notes']: args[k] = self.request.get(k) error = None msg = '' if args['when']: try: args['when'] = parser.parse(args['when'].replace('today', '')) except ValueError: error = 'Not sure what you mean by "%s"' % args['when'] logging.error('Failed to parse when: %s', args['when']) else: checks = [] if not time(18, 0, 0) <= args['when'].time() <= time(21, 0, 0): checks.append(args['when'].time().strftime('%I:%M %p')) if args['when'].date().weekday() != 5: checks.append(args['when'].date().strftime('%A')) if args['when'].date() < Utils.now().date(): checks.append(args['when'].date().strftime('%x')) if checks: msg += 'Just checking, did you really mean %s? ' % ', '.join(checks) else: error = 'When do you want to host?' if error: self.get(template_values=args, error=error) return if not args['where']: error = 'Where do you want to host?' self.get(template_values=args, error=error) return if not args['priority']: error = '''Gotta have a priority. Also, don't mess with me.''' self.get(template_values=args, error=error) return args['owner'] = user.key updated, invite = Invitation.create(args) if updated: gn = Gamenight.query(Gamenight.invitation==invite.key).get() if gn: gn.update() msg += 'Invitation and gamenight updated! ' else: msg += 'Invitation updated! ' self.get(msg=msg) else: msg += 'Invitation created! ' self.get(msg=msg)
def post(self, template_values={}): user = User.get(users.get_current_user()) if self.request.get('withdraw'): invite = Invitation.get(self.request.get('withdraw')) if not invite: self.get(error="Can't find this invitation.") return if invite.owner != user.key and not user.superuser: self.get(error='Not your invitation.') return msg = '' gn = Gamenight.query(Gamenight.invitation==invite.key).get() logging.info('Invite id: %s, gn: %s', invite.key, gn) invite.key.delete() msg = 'Invitation withdrawn. ' if gn: gn.key.delete() msg += 'Rescheduling gamenight. ' Gamenight.schedule() self.get(msg=msg) return args = {} for k in ['when', 'where', 'priority', 'notes']: args[k] = self.request.get(k) error = None warning = None msg = '' if args['when']: try: orig = args['when'] args['when'] = parser.parse(args['when'].replace('today', '')) logging.info('Parsed "%s" as "%s"', orig, args['when']) except ValueError: error = 'Not sure what you mean by "%s"' % args['when'] logging.error('Failed to parse when: %s', args['when']) else: checks = [] if not time(18, 0, 0) <= args['when'].time() <= time(21, 0, 0): checks.append(args['when'].time().strftime('%I:%M %p')) if args['when'].date().weekday() != 5: checks.append(args['when'].date().strftime('%A')) if args['when'].date() < Utils.now().date(): checks.append(args['when'].date().strftime('%x')) if checks: warning = 'Just checking, did you really mean %s?' % ', '.join(checks) else: error = 'When do you want to host?' if error: self.get(template_values=args, error=error) return if not args['where']: error = 'Where do you want to host?' self.get(template_values=args, error=error) return if not args['priority']: error = '''Gotta have a priority. Also, don't mess with me.''' self.get(template_values=args, error=error) return args['owner'] = user.key updated, invite = Invitation.create(args) if updated: gn = Gamenight.query(Gamenight.invitation==invite.key).get() if gn: gn.update() msg += 'Invitation and gamenight updated! ' else: msg += 'Invitation updated! ' self.get(msg=msg, error=warning) else: msg += 'Invitation created! ' self.get(msg=msg, error=warning)