def delete_meeting(meeting_id): """ Endpoint to asynchronously delete meeting """ if not meeting_id: return jsonify( success=False, message=u'Ingen møte ID mottatt' ) meeting = Meeting.get_meeting_by_id(meeting_id) # Check if user is owner if meeting.user_id == current_user.id: # Delete meeting from db before deleting world meeting.delete() # Object still exists in memory after deleting from db if meeting.world_id: # Also delete world if it's not favoured world = World.get_by_id(meeting.world_id) if meeting.user_id == world.user_id and not world.favourite: if world.delete(): # Will return false if in use by meeting return jsonify( success=True, message=u'Møtet ble slettet', world_id=world.id ) return jsonify( success=True, message=u'Møtet ble slettet' ) return jsonify( success=False, message=u'Du har ikke tilgang til å slette dette møtet' )
def edit_meeting(meeting_id): """ Renders the edit meeting page and stores the edited meeting """ # Get the meeting details based on the supplied ID meeting = Meeting.get_meeting_by_id(meeting_id) # Check if the current user can edit this meeting if meeting.user_id != current_user.id: flash(u'Du har ikke tilgang til å endre dette møtet!') return redirect(url_for('home')) if request.method == 'POST': form = forms.MeetingForm(request.form) # If valid, store the edited meeting details if form.validate(): form.populate_obj(meeting) meeting.store() flash(u'Møtet ble endret!') return redirect(url_for('home')) else: flash(u'Feil i skjema!') else: # GET # Feed meeting details to meeting form form = forms.MeetingForm(obj=meeting) return render_template( 'edit_meeting.html', set_tab=1, form=form, action=url_for('edit_meeting', meeting_id=meeting_id) )
def server_list(meeting_id): """ Render server list page for specified meeting """ # TODO handle get servers # TODO check if user has access meeting = Meeting.get_meeting_by_id(meeting_id) return render_template( 'server_list.html', title=u'Liste over tjenere', meeting=meeting, locale=locale.getpreferredencoding(), servers=[{'address': 'test.com', 'status': 'OK'}] )