def adminEdit(username): if 'me' not in session: return redirect('/') is_admin = 'me' in session and session['me']['username'] in ADMIN_USER if not is_admin: abort(403) if not getOAuthToken(): flash( "Die Sitzung war abgelaufen, eventuell musst du deine Daten nochmal eingeben, falls sie noch nicht gespeichert waren.", 'warning') return redirect(url_for('oauth_client.login')) Form = Winter17Registration defaults = {} confirmed = None req = oauth_remoteapp.get('registration', data={'username': username}) if req._resp.code == 200: defaults = json.loads(req.data['data']) if 'geburtsdatum' in defaults and defaults['geburtsdatum']: defaults['geburtsdatum'] = datetime.strptime( defaults['geburtsdatum'], "%Y-%m-%d") confirmed = req.data['confirmed'] elif req._resp.code == 409: flash('Username is unknown', 'error') return redirect('/') # Formular erstellen form = Form(**defaults) # Die Liste der Unis holen unis = oauth_remoteapp.get('unis') if unis._resp.code != 200: return redirect(url_for('oauth_client.login')) form.uni.choices = sorted(unis.data.items(), key=lambda uniEntry: int(uniEntry[0])) # Daten speichern if form.submit.data and form.validate_on_submit(): req = oauth_remoteapp.post( 'registration', format='json', data=dict(username=username, uni_id=form.uni.data, data={ k: v for k, v in form.data.items() if k not in ['csrf_token', 'submit'] })) if req._resp.code == 200 and req.data.decode('utf-8') == "OK": flash('Deine Anmeldedaten wurden erfolgreich gespeichert', 'info') else: flash('Deine Anmeldendaten konnten nicht gespeichert werden.', 'error') return redirect(url_for('sommer17.adminEdit', username=username)) return render_template('index.html', form=form, confirmed=confirmed)
def index(): registration_open = datetime.now(pytz.utc) <= REGISTRATION_SOFT_CLOSE priorities_open = datetime.now(pytz.utc) <= REGISTRATION_HARD_CLOSE is_admin = 'me' in session and session['me']['username'] in ADMIN_USER if not is_admin and not priorities_open: return render_template('registration_closed.html') if 'me' not in session: return render_template('landing.html', registration_open=registration_open, priorities_open=priorities_open) if not getOAuthToken(): flash( "Die Sitzung war abgelaufen, eventuell musst du deine Daten nochmal eingeben, falls sie noch nicht gespeichert waren.", 'warning') return redirect(url_for('oauth_client.login')) Form = Sommer19Registration defaults = {} confirmed = None req = oauth_remoteapp.get('registration') if req._resp.code == 200: defaults = json.loads(req.data['data']) if 'geburtsdatum' in defaults and defaults['geburtsdatum']: defaults['geburtsdatum'] = datetime.strptime( defaults['geburtsdatum'], "%Y-%m-%d") confirmed = req.data['confirmed'] else: if not is_admin and not registration_open: return render_template('registration_closed.html') # Formular erstellen form = Form(**defaults) # Die Liste der Unis holen unis = oauth_remoteapp.get('unis') if unis._resp.code == 500: raise if unis._resp.code != 200: return redirect(url_for('oauth_client.login')) form.uni.choices = sorted(unis.data.items(), key=lambda uniEntry: int(uniEntry[0])) # Daten speichern if form.submit.data and form.validate_on_submit(): req = oauth_remoteapp.post( 'registration', format='json', data=dict(uni_id=form.uni.data, data={ k: v for k, v in form.data.items() if k not in ['csrf_token', 'submit'] })) if req._resp.code == 200 and req.data.decode('utf-8') == "OK": flash('Deine Anmeldedaten wurden erfolgreich gespeichert', 'info') else: flash('Deine Anmeldendaten konnten nicht gespeichert werden.', 'error') return redirect('/') return render_template('index.html', form=form, confirmed=confirmed)