Example #1
0
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)
Example #2
0
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'))
Example #3
0
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)
Example #4
0
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)
Example #5
0
        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,