def move(user_id): user = get_user_or_404(user_id) form = UserMoveForm() refill_form_data = False if form.validate_on_submit(): if user.room == Room.q.filter_by( number=form.room_number.data, level=form.level.data, building_id=form.building.data.id).one(): flash(u"Nutzer muss in anderes Zimmer umgezogen werden!", "error") refill_form_data = True else: when = session.utcnow() if form.now.data else datetime.combine( form.when.data, utc.time_min()) _, success = web_execute(lib.user.move, None, user=user, building_id=form.building.data.id, level=form.level.data, room_number=form.room_number.data, processor=current_user, when=when) if success: session.session.commit() if when > session.utcnow(): flash(u'Der Umzug wurde vorgemerkt.', 'success') else: flash(u'Benutzer umgezogen', 'success') sheet = lib.user.store_user_sheet( user, '********', generation_purpose='user moved') session.session.commit() flask_session['user_sheet'] = sheet.id return redirect(url_for('.user_show', user_id=user.id)) if not form.is_submitted() or refill_form_data: if user.room is not None: refill_room_data(form, user.room) return render_template('user/user_move.html', user_id=user_id, form=form)
def host_create(): user = get_user_or_404(request.args.get('user_id', None)) form = HostForm(owner_id=user.id) def default_response(): form_args = { 'form': form, 'cancel_to': url_for('user.user_show', user_id=user.id) } return render_template('generic_form.html', page_title="Host erstellen", form_args=form_args, form=form) if not form.is_submitted(): refill_room_data(form, user.room) if not form.validate_on_submit(): return default_response() room = Room.q.filter_by(number=form.room_number.data, level=form.level.data, building=form.building.data).one() owner = User.get(form.owner_id.data) try: with handle_errors(session.session): host = lib_host.host_create(owner, room, form.name.data, processor=current_user) session.session.commit() except PycroftException: return default_response() return redirect( url_for('.interface_create', user_id=host.owner_id, host_id=host.id, _anchor='hosts'))
def host_edit(host_id): host = Host.q.get(host_id) if host is None: flash(u"Host existiert nicht.", 'error') abort(404) form = HostForm(obj=host) if not form.is_submitted(): refill_room_data(form, host.room) if form.validate_on_submit(): room = Room.q.filter_by(number=form.room_number.data, level=form.level.data, building=form.building.data).one() owner = User.q.filter_by(id=form.owner_id.data).one() _, success = web_execute(lib_host.host_edit, "Host erfolgreich bearbeitet.", host, owner, room, form.name.data, current_user) if success: session.session.commit() return redirect(url_for('user.user_show', user_id=owner.id, _anchor='hosts')) form_args = { 'form': form, 'cancel_to': url_for('user.user_show', user_id=host.owner.id) } return render_template('generic_form.html', page_title="Host editieren", form_args=form_args, form=form)
def host_create(): user = get_user_or_404(request.args.get('user_id', None)) form = HostForm(owner_id=user.id) if not form.is_submitted(): refill_room_data(form, user.room) if form.validate_on_submit(): room = Room.q.filter_by(number=form.room_number.data, level=form.level.data, building=form.building.data).one() owner = User.q.filter_by(id=form.owner_id.data).one() host, success = web_execute(lib_host.host_create, "Host erfolgreich erstellt.", owner, room, form.name.data, current_user) if success: session.session.commit() return redirect( url_for('.interface_create', user_id=host.owner_id, host_id=host.id, _anchor='hosts')) form_args = { 'form': form, 'cancel_to': url_for('user.user_show', user_id=user.id) } return render_template('generic_form.html', page_title="Host erstellen", form_args=form_args, form=form)
flash("Host existiert nicht.", 'error') abort(404) form = HostForm(obj=host) def default_response(): form_args = { 'form': form, 'cancel_to': url_for('user.user_show', user_id=host.owner.id) } return render_template('generic_form.html', page_title="Host editieren", form_args=form_args, form=form) if not form.is_submitted(): refill_room_data(form, host.room) return default_response() if not form.validate(): return default_response() room = Room.q.filter_by(number=form.room_number.data, level=form.level.data, building=form.building.data).one() owner = User.get(form.owner_id.data) try: with handle_errors(session.session): lib_host.host_edit(host, owner, room,