示例#1
0
def create():
    user = g.user
    subjectform = SubjectForm()
    if subjectform.validate_on_submit():
        if (g.user.role == ROLE_TEACHER) | (g.user.role == ROLE_ADMIN):
            sems = re.findall('\d+', subjectform.semesters.data)
            commit_subject = Subject(
                name=subjectform.name.data.lower(),
                semesters=subjectform.semesters.data,
                allowed_users="{0} {1}".format(
                    str(g.user.nickname),
                    re.sub('\W+', ' ',
                           subjectform.allowed_users.data.lower())),
                last_change=datetime.datetime.now())
            db.session.add(commit_subject)
            for semester in sems:
                for i in range(3):
                    commit_att = Attestation(number=i + 1,
                                             semester=semester,
                                             subject_id=commit_subject.id,
                                             subject=commit_subject)
                    db.session.add(commit_att)
            db.session.commit()
            flash('Added successfully')
            return redirect(
                url_for('subjectpage',
                        name=commit_subject.name,
                        semester=sems[0]))
        else:
            flash('No permission to create subjects')
    return render_template("create.html", form=subjectform, user=user)
示例#2
0
def subject_list():
    if not g.user_id:
        flash(message="You must Login or Signup")
        return redirect(url_for('login'))
    else:
        form = SubjectForm()
        if form.validate_on_submit():
            session['subject_name'] = form.subjects.data
            return redirect(url_for('questions'))
        return render_template('subject_list.html', form=form)
示例#3
0
def add_subject():
    subject_form = SubjectForm()
    nav_class = {
        'home': '',
        'about': '',
        'contact': '',
        'admin': 'current-section-color'
    }
    if subject_form.validate_on_submit():
        name = subject_form.name.data
        subject = Subject()
        subject.name = name
        db_session.add(subject)
        db_session.commit()
        return redirect(url_for('home'))
    return render_template("add_subject.html",
                           subject_form=subject_form,
                           nav_class=nav_class)
示例#4
0
def find():
    user = g.user
    subjectform = SubjectForm()
    if subjectform.validate_on_submit():
        semtmp = re.search('^\d+', subjectform.semesters.data).group(0)
        subjects = list(
            filter(
                lambda x: semtmp in x.semesters,
                Subject.query.filter_by(name=subjectform.name.data.lower())))
        if len(subjects) != 0:
            if subjects[0] is not None:
                return redirect(
                    url_for('subjectpage',
                            name=subjects[0].name,
                            semester=semtmp))
        flash("No subject with this parameters")
        subjectform.name.data = ""
        subjectform.semesters.data = ""
    return render_template("find.html", form=subjectform, user=user)
示例#5
0
文件: app.py 项目: aidenchia/esc-proj
def subjects():
    available_rooms = Rooms.query.all()
    room_list = [(-1,'No Preference')]
    for room in available_rooms:
        room_list.append((room.room_id, room.location))
    form = SubjectForm()
    
    if form.add_more_component.data:
        print("came here instead")
        form.component.append_entry(u'default value')
    for entry in form.component.entries:
        entry.classroom.choices = room_list

    if form.validate_on_submit():
        print("came here")
        if form.term_no.data == '-1' or form.pillar.data == '-1' or form.subject_type.data == '-1':
            print("Please choose an option for term, pillar and subject type")
        else:
            subjectname = form.subject_name.data
            subjectid = form.subject_id.data
            termno = dict(form.terms).get(form.term_no.data)
            subjecttype = dict(form.subject_types).get(form.subject_type.data)
            pillar = form.pillar.data
            cohort_num = form.cohort_num.data
            total_enrollment = form.total_enrollment.data
            session_nums = len(form.component.entries)
            components = []
            for each_entry in form.component.entries:
                temp  = {"duration":each_entry.data['duration'],"sessionType": int(each_entry.data['session']),"classroom":each_entry.data['classroom'], 'cohorts':[]}
                if int(each_entry.data['session']) == -1:
                    print("Please choose an option for session type")
                    return render_template('subjects.html',form=form)
                if int(each_entry.data['session']) == 1:
                    for i in range(cohort_num):
                        temp['cohorts'].append(i)
                components.append(temp)
                print(temp)
            Subjects.insertSubject(subjectid,termno,subjecttype,subjectname, str(components), pillar, cohort_num, total_enrollment, session_nums)
            return redirect(url_for('subjectsTable'))
            
        
    return render_template('subjects.html',form=form)