예제 #1
0
def editCourse(courseId):
    form = CourseForm()
    course = db.session.query(Course).filter_by(id=courseId).first_or_404()
    if form.validate_on_submit():
        course.name = form.name.data
        course.description = form.description.data
        formElToAppendLessons(form.lessonsIncluded, course)
        if request.files['imgFile']:
            if stopFileUpload(request, 'Image'):
                return render_template(url_for('editCourse'), courseId=courseId, title='Edit Course', form=form)
            course.imgFileLoc = changeFileReturnFileName(request, 'Image', course.imgFileLoc)
        db.session.commit()
        flash('Your changes were saved')
        return redirect(url_for('editCourse', courseId=courseId))
    elif request.method == 'GET':
        lessonGroups = findLessonsGroups(course)
        lessonIDsInCourse = set([lesson.id for lesson in lessonGroups['lessonsInCourse']])
        form.name.data = course.name
        form.description.data = course.description
        form.lessonsIncluded.data = ''.join(str(lessonID) + ',' for lessonID in lessonIDsInCourse ) 
    return render_template('editCourse.html', title='Edit Course', course=course, form=form,
        lessonsInCourse=lessonGroups['lessonsInCourse'], 
        lessonsUserCreated=lessonGroups['lessonsUserCreated'], 
        lessonsOthersCreated=lessonGroups['lessonsOthersCreated'], 
        lessonIDsInCourse=lessonIDsInCourse)
예제 #2
0
def editcourse(course_id):
    if current_user.tof == 1:
        return redirect(url_for('index'))
    else:
        form = CourseForm()
        course = Course.query.filter_by(id=course_id).first()
        if form.validate_on_submit():
            course.subject = form.subject.data
            course.number = form.number.data
            course.title = form.title.data
            course.gpareq = form.gpareq.data
            course.prevgrade = form.prevgrade.data
            course.numslots = form.numslots.data
            course.addinfo = form.addinfo.data
            db.session.commit()
            flash("You have updated your course!")
            return redirect(url_for('managecourses'))
        elif request.method == 'GET':
            form.subject.data = course.subject
            form.number.data = course.number
            form.title.data = course.title
            form.gpareq.data = course.gpareq
            form.prevgrade.data = course.prevgrade
            form.numslots.data = course.numslots
            form.addinfo.data = course.addinfo
        return render_template('editcourse.html',
                               title='Edit Course',
                               form=form,
                               course=course)
예제 #3
0
def update():
    form = CourseForm()
    if form.validate_on_submit():
        q.enqueue(main_function, form.class_name.data, current_user.email,
                  form.url.data, int(form.seats.data))
        flash('Congratulations course has been tracked!')
        return redirect(url_for('index'))
    return render_template('update.html', title='update', form=form)
예제 #4
0
def addcourse():
    form = CourseForm()
    form.ic_id.choices = [(str(i[0]), i[1]) for i in Faculty.get_all_faculty()]
    if form.validate_on_submit():
        Course.create_course(form.course_id.data, form.course_name.data,
                             int(form.ic_id.data))
        flash('The course has been added successfully')
        return redirect(url_for('index'))
    return render_template('courseForm.html', title='Add Course', form=form)
def add_course():
    form = CourseForm()
    course = Course()
    if request.method == 'POST' and form.validate_on_submit():
        course.course_title = form.course_title.data
        course.course_name = form.course_name.data
        course.add_course()
        flash(f'Successfully Added course of title "{form.course_title.data}"',
              category='success')
        return redirect(url_for('courses'))
    else:
        return render_template('add_course.html', form=form)
예제 #6
0
def create_course():
    form = CourseForm()
    if form.validate_on_submit():
        course = Courses(title=form.title.data,
                         startdate=form.startdate.data,
                         enddate=form.enddate.data,
                         semester=form.semester.data,
                         professor_id=current_user._get_current_object().id)
        db.session.add(course)
        db.session.commit()
        flash("Your course is created!")
        return redirect(url_for('show_courses'))
    return render_template('create_course.html', form=form)
예제 #7
0
def addcourse():
    form = CourseForm()
    if form.validate_on_submit():
        course = Course(subject=form.subject.data,
                        number=form.number.data,
                        title=form.title.data,
                        gpareq=form.gpareq.data,
                        prevgrade=form.prevgrade.data,
                        numslots=form.numslots.data,
                        addinfo=form.addinfo.data,
                        professor=current_user)
        db.session.add(course)
        db.session.commit()
        flash("You have created a new course!")
        return redirect(url_for('Facindex'))
    return render_template('addcourse.html', title='Create Course', form=form)
예제 #8
0
def createCourse():
    form = CourseForm()
    lessonGroups = findLessonsGroups(course=None)   
    if form.validate_on_submit():
        user = current_user
        if stopFileUpload(request, 'Image'):
            return render_template('createCourse.html', title='Create Course', form=form)
        imgFilename = saveFileReturnFileName(request, 'Image')
        course = Course(name=form.name.data, description=form.description.data, 
                        imgFileLoc=imgFilename, createdBy=user.id )
        formElToAppendLessons(form.lessonsIncluded, course)
        db.session.add(course)
        db.session.commit()
        flash('Course created successfully.')
        return redirect(url_for('admin', username=current_user.username))
    return render_template('createCourse.html', title='Create Course', form=form,
        lessonsInCourse=lessonGroups['lessonsInCourse'], 
        lessonsUserCreated=lessonGroups['lessonsUserCreated'], 
        lessonsOthersCreated=lessonGroups['lessonsOthersCreated'])
예제 #9
0
def edit_course(course_id=None):
    if course_id:
        course = Course.query.get(course_id)
    else:
        course = Course()
    if not course:
        abort(404)
    latest_term = course.latest_term
    if not latest_term:
        abort(404)
    course_form = CourseForm(formdata=request.form, obj=course)
    if course_form.validate_on_submit():
        course_form.introduction.data = sanitize(course_form.introduction.data)
        course_form.populate_obj(latest_term)
        if not latest_term.homepage.startswith('http'):
            latest_term.homepage = 'http://' + course.homepage
        latest_term.save()
        db.session.commit()
        return redirect(url_for('course.view_course', course_id=course.id))
    return render_template('course-edit.html', form=course_form, course=course)
예제 #10
0
def add_course():
    r = request.args.get('redir')
    if r in REDIR_PAGES:
        session['origin'] = url_for(REDIR_PAGES[r])
    elif r == 'edit' and 'examination_edit_id' in session:
        session['origin'] = '/examination/edit/{}'.format(
            session['examination_edit_id'])

    if not ModuleAPI.can_write('examination', True):
        session['prev'] = 'examination.add_course'
        return abort(403)

    form = CourseForm(request.form)

    if request.method == 'POST':
        if form.validate_on_submit():
            title = form.title.data
            course = Course.query.filter(Course.name == title).first()
            if not course:
                description = form.description.data
                new_course = Course(title, description)
                db.session.add(new_course)
                db.session.commit()
                flash("'%s': " % title + _('Course succesfully added.'),
                      'success')
            else:
                flash("'%s': " % title + _('Already exists in the database'),
                      'danger')

                return render_template('course/edit.htm', new=True, form=form)

            if 'origin' in session:
                redir = session['origin']
            else:
                redir = url_for('examination.add')
            return redirect(redir)
        else:
            flash_form_errors(form)

    return render_template('course/edit.htm', new=True, form=form)
예제 #11
0
def edit_course(course_id=None):
    if not current_user.is_admin:
        abort(403)
    if course_id:
        course = Course.query.get(course_id)
    else:
        course = Course()
    if not course:
        abort(404)
    latest_term = course.latest_term
    if not latest_term:
        abort(404)
    course_form = CourseForm(request.form, course)
    if course_form.validate_on_submit():
        course_form.introduction.data = sanitize(course_form.introduction.data)
        course_form.populate_obj(latest_term)
        if not latest_term.homepage.startswith("http"):
            latest_term.homepage = "http://" + course.homepage
        latest_term.save()
        db.session.commit()
        return redirect(url_for("course.view_course", course_id=course.id))
    return render_template("course-edit.html", form=course_form, course=course)
예제 #12
0
def edit_education(education_id):
    r = request.args.get('redir')
    if r in REDIR_PAGES:
        session['origin'] = url_for(REDIR_PAGES[r])
    elif r == 'edit' and 'examination_edit_id' in session:
        session['origin'] = '/examination/edit/{}'.format(
            session['examination_edit_id'])

    if not ModuleAPI.can_write('examination', True):
        session['prev'] = 'examination.edit_education'
        return abort(403)

    education = Education.query.get(education_id)

    if not education:
        flash(_('Education could not be found.'), 'danger')
        return redirect(url_for('examination.view_educations'))

    exam_count = Examination.query.filter(
        Examination.education == education).count()

    if 'delete' in request.args:
        if exam_count > 0:
            flash(_('Education still has examinations in the database.'),
                  'danger')
            form = CourseForm(title=education.name)
            return render_template('education/edit.htm', new=False,
                                   form=form, education=education,
                                   redir=r, exam_count=exam_count)

        Education.query.filter_by(id=education_id).delete()
        db.session.commit()

        flash(_('Education succesfully deleted.'), 'success')
        if 'origin' in session:
            redir = session['origin']
        else:
            redir = url_for('examination.add')
        return redirect(redir)

    if request.method == 'POST':
        form = EducationForm(request.form)
        if form.validate_on_submit():
            name = form.title.data
            if name != education.name and Education.query.filter(
                    Education.name == name).count() >= 1:
                flash("'%s': " % name + _('Already exists in the database'),
                      'danger')
                return render_template('education/edit.htm', new=False,
                                       form=form, redir=r,
                                       exam_count=exam_count,
                                       education=education)
            else:
                education.name = name

                db.session.commit()
                flash("'%s': " % name + _('Education succesfully saved.'),
                      'success')

                if 'origin' in session:
                    redir = session['origin']
                else:
                    redir = url_for('examination.view_educations')
                return redirect(redir)

        else:
            flash_form_errors(form)
    else:
        form = CourseForm(title=education.name)

    return render_template('education/edit.htm', new=False,
                           form=form, redir=r, exam_count=exam_count,
                           education=education)
예제 #13
0
def edit_course(course_id):
    r = request.args.get('redir')
    if r in REDIR_PAGES:
        session['origin'] = url_for(REDIR_PAGES[r])
    elif r == 'edit' and 'examination_edit_id' in session:
        session['origin'] = '/examination/edit/{}'.format(
            session['examination_edit_id'])

    if not ModuleAPI.can_write('examination', True):
        session['prev'] = 'examination.edit_course'
        return abort(403)

    course = Course.query.get(course_id)

    if not course:
        flash(_('Course could not be found.'), 'danger')
        return redirect(url_for('examination.view_courses'))

    exam_count = Examination.query.filter(Examination.course == course).count()
    if 'delete' in request.args:
        if exam_count > 0:
            flash(_('Course still has examinations in the database.'),
                  'danger')
            form = CourseForm(title=course.name,
                              description=course.description)
            return render_template('course/edit.htm', new=False,
                                   form=form,
                                   course=course, redir=r,
                                   exam_count=exam_count)

        Course.query.filter_by(id=course_id).delete()
        db.session.commit()

        flash(_('Course succesfully deleted.'), 'success')
        if 'origin' in session:
            redir = session['origin']
        else:
            redir = url_for('examination.add')
        return redirect(redir)

    if request.method == 'POST':
        form = CourseForm(request.form)
        if form.validate_on_submit():
            title = form.title.data
            if title != course.name and Course.query.filter(
                    Course.name == title).count() >= 1:
                flash("'%s': " % title + _('Already exists in the database'),
                      'danger')
                return render_template('course/edit.htm', new=False,
                                       form=form, redir=r,
                                       course=course,
                                       exam_count=exam_count)
            else:
                description = form.description.data
                course.name = title
                course.description = description

                db.session.commit()
                flash(_('Course succesfully saved.'),
                      'success')

                if 'origin' in session:
                    redir = session['origin']
                else:
                    redir = url_for('examination.add')
                return redirect(redir)
        else:
            flash_form_errors(form)
    else:
        form = CourseForm(title=course.name, description=course.description)

    return render_template('course/edit.htm', new=False,
                           form=form, redir=r, course=course,
                           exam_count=exam_count)