def admin(username=None, action=None): if not g.user.admin: return redirect(url_for('index')) msg = "" # Make a little list of major keys for reference majors = [] for major in Major.objects.all(): majors.append(major.key) majors = ', '.join(majors) # Handle the logic of doing mass imports iform = ImportForm() test_table = None if request.method == "POST": tp = request.form['_arg_form'] if tp == "import": success = iform.validate(request.form) data = iform.data_by_attr() if success: if not data['go']: test_table = iform.body.valid_data else: for user in iform.body.valid_data: try: team = Team.objects.get_or_create(text=user.team_txt) delattr(user, 'team_txt') user.team = team[0] user.password = user.username user.active = True user.save() iform.start.add_error( {'message': 'Inserted user ' + user.username, 'type': 'success'}) except mongoengine.errors.NotUniqueError: iform.start.add_error( {'message': 'User ' + user.username + ' already exists'}) # Handle logic of approving or denying user accounts if username is not None: if action == "approve": user = User.objects.get(username=username) user.active = True user.save() msg = user.username + " has been activated" users = User.objects(active=False).all() return render_template('admin.html', iform=iform.render(), test_table=test_table, majors=majors, users=users, msg=msg, msg_type="success")