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)
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)
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)
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)
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)