コード例 #1
0
ファイル: __init__.py プロジェクト: ap13p/elearn
def tugas_create():
    form = TugasForm(request.form)
    if form.validate_on_submit():
        tugas = Tugas()
        form.populate_obj(tugas)
        user = g.user
        matkul = MataKuliah.get(MataKuliah.dosen == user)
        tugas.mata_kuliah = matkul
        tugas.save()

        file_list = request.files.getlist('file_pendukung')
        for f in file_list:
            if isinstance(f, FileStorage) and len(f.filename) != 0:
                import os
                path = generate_path()
                save_to = os.path.join(path, secure_filename(user.email))
                if not os.path.exists(save_to):
                    os.makedirs(save_to)
                tujuan = os.path.join(save_to, secure_filename(f.filename))
                f.save(tujuan)
                p = Phile.create(
                    filename=f.filename,
                    filepath=tujuan,
                    filetype=f.mimetype
                )
                TugasFile.create(tugas=tugas, phile=p)
        flash('Sukses membuat tugas')
        return redirect(url_for('dosen:tugas:list'))
    return render_template('dosen/tugas/create.html', form=form)
コード例 #2
0
ファイル: __init__.py プロジェクト: ap13p/elearn
def tugas_detail(tugas_id):
    user = current_user()
    dosens = (User
              .select(User, MataKuliah.judul, Profile.nama)
              .join(MataKuliah, on=(MataKuliah.dosen == User.id))
              .join(Level, JOIN.LEFT_OUTER, on=(User.level == Level.id))
              .join(Profile, on=(User.profile == Profile.id))
              .group_by(User)
              .where(Level.name == 'dosen')
              .order_by(Profile.nama.asc()))
    tugas = Tugas.get(Tugas.id == tugas_id)
    dosen_id = tugas.mata_kuliah.dosen.id
    file_list = TugasFile.select().where(TugasFile.tugas == tugas)
    try:
        sudah_mengumpulkan = KumpulTugas.get(KumpulTugas.tugas == tugas,
                                             KumpulTugas.mahasiswa == user)
    except KumpulTugas.DoesNotExist:
        sudah_mengumpulkan = False
    form = KumpulkanTugasForm(request.form)
    form.action = url_for('mhs:tugas:kumpulkan', tugas_id=tugas.id)
    return render_template('mhs/detail.html', tugas=tugas, dosens=dosens,
                           form=form,
                           sudah_mengumpulkan=sudah_mengumpulkan,
                           dosen_id=dosen_id,
                           file_list=file_list)
コード例 #3
0
ファイル: __init__.py プロジェクト: ap13p/elearn
def tugas_list():
    tugass = (
    Tugas.select(Tugas, fn.Count(KumpulTugas.id).alias('k_tugas_count'))
    .join(KumpulTugas, JOIN.LEFT_OUTER, on=(KumpulTugas.tugas == Tugas.id))
    .join(MataKuliah, on=(Tugas.mata_kuliah == MataKuliah.id))
    .group_by(Tugas)
    .where(MataKuliah.dosen == current_user()))

    return object_list('dosen/tugas/list.html', tugass, var_name='tugass',
                       paginate_by=10)
コード例 #4
0
ファイル: __init__.py プロジェクト: ap13p/elearn
def tugas_delete(tugas_id):
    if g.user and g.user.level.name == 'dosen':
        tugas = None
        try:
            tugas = Tugas.get(Tugas.id == tugas_id)
        except Tugas.DoesNotExist:
            flash('Tidak bisa menghapus tugas', 'error')
        if tugas:
            tugas.delete_instance(True)
            flash('Sukses menghapus tugas')
        return redirect(url_for('dosen:tugas:list'))
    return render_template('dosen/tugas/list.html')
コード例 #5
0
ファイル: __init__.py プロジェクト: ap13p/elearn
def tugas_update(tugas_id):
    tugas = Tugas.get(Tugas.id == tugas_id)
    user = g.user
    form = TugasForm(request.form, obj=tugas)
    form.action = url_for('dosen:tugas:update', tugas_id=tugas_id)
    matkul = MataKuliah.get(MataKuliah.dosen == user)
    if form.validate_on_submit():
        form.populate_obj(tugas)
        tugas.mata_kuliah = matkul
        tugas.save()
        flash('Sukses memperbarui tugas')
        return redirect(url_for('dosen:tugas:list'))
    return render_template('dosen/tugas/update.html', form=form)
コード例 #6
0
ファイル: __init__.py プロジェクト: ap13p/elearn
def tugas_kumpulkan(tugas_id):
    tugas = Tugas.get(Tugas.id == tugas_id)
    user = current_user()
    kumpul_tugas = KumpulTugas()
    kumpul_tugas.mahasiswa = user
    kumpul_tugas.tugas = tugas
    phile = request.files['phile']
    if isinstance(phile, FileStorage):
        path = generate_path(str(user.id), str(tugas.id))
        path = os.path.join(path, secure_filename(phile.filename))
        phile.save(path)
        f = Phile()
        f.filename = phile.filename
        f.filetype = phile.mimetype
        f.filepath = path
        f.save()
        kumpul_tugas.phile = f
    kumpul_tugas.save()
    return redirect(url_for('mhs:tugas:detail', tugas_id=tugas.id))
コード例 #7
0
ファイル: __init__.py プロジェクト: ap13p/elearn
def tugas_detail(tugas_id):
    tugas = (Tugas.select(Tugas, KumpulTugas)
             .join(KumpulTugas, JOIN.LEFT_OUTER,
                   on=(KumpulTugas.tugas == Tugas.id))
             .where(Tugas.id == tugas_id)).get()
    return render_template('dosen/tugas/detail.html', tugas=tugas)