def home(): dosens = (User.select(User, MataKuliah) .join(MataKuliah) .join(Level, JOIN.LEFT_OUTER, on=(User.level == Level.id)) .join(Tugas, JOIN.LEFT_OUTER, on=(Tugas.mata_kuliah == MataKuliah.id)) .join(Profile, on=(User.profile == Profile.id)) .group_by(User) .where(Level.name == 'dosen') .order_by(Profile.nama.asc())) dosen_id = request.args.get('dosen_id', None) if dosen_id: dosen = dosens.filter(User.id == dosen_id).get() else: dosen = dosens.first() dosen_id = dosen.id posts = Post.select().order_by(Post.id.desc()) user = g.user return render_template('mhs/home.html', dosen=dosen, dosens=dosens, posts=posts, dosen_id=dosen_id)
def update_info(user_id): if not g.user.id == user_id: return abort(401) user = User.select().join(Profile).where(User.id == user_id).get() form = UpdateInfoForm(request.form, obj=user) form.action = url_for('update-info', user_id=user_id) if form.validate_on_submit(): user.profile.nama = form.profile.nama.data user.profile.no_telpon = form.profile.no_telpon.data user.profile.tanggal_lahir = form.profile.tanggal_lahir.data user.profile.alamat = form.profile.alamat.data path = get_user_media_path(user) phile = request.files['profile-image'] if phile: path = os.path.join(path, secure_filename(phile.filename)) phile.save(path) user.profile.image = url_for('media', filepath=path) user.profile.save() user.save() return redirect(url_for('mhs:home')) return render_template('update_info.html', form=form, user=user)
def user_list(): users = User.select() _level = request.args.get('level', None) if _level: users = users.join(Level).where(Level.name == _level) return object_list('admin/user/list.html', users, 'users', paginate_by=10)
def get_dosen(): level = Level.select().where(Level.name == 'dosen') users = [(user.id, user.profile.nama) for user in User.select().where(User.level == level)] return users