def post(self, request, *args, **kwargs): print request.POST if request.POST['etype']=='subject': form=SubjectForm(request.POST) sub = form.save(commit=False) sub.save() return HttpResponseRedirect('/admin/subject') if request.POST['etype']=='map': form=SubjectMapForm(request.POST) _map = form.save(commit=False) _map.save() return HttpResponseRedirect('/admin/subject/')
def post(self, request, *args, **kwargs): try: instance = Subject.objects.get(id=request.POST['sid']) form=SubjectForm(request.POST,instance=instance) sub = form.save(commit=False) #user = User.objects.create_user(student.admission_no,student.email, 'johnpassword') #user.first_name=student.name #user.save() sub.save() msg="Record saved" except: msg="Unable to process, Please check all values are present" return HttpResponse(json.dumps(dict(result=msg)), content_type="application/json")
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)
def refactor(name, semester): subject = Subject.query.filter_by(name=name).first() if subject is not None and semester in subject.semesters: if (g.user.role == ROLE_ADMIN) | (g.user.nickname in subject.allowed_users): ref_form = RefactorForm() subj_form = SubjectForm() att_number = {1: ref_form.att1, 2: ref_form.att2, 3: ref_form.att3} if ref_form.validate_on_submit(): for att in subject.attestations: if att.semester == semester: att.themes = att_number[att.number].data subject.last_change = datetime.datetime.now() subject.allowed_users += ' ' + ref_form.users_to_add.data.lower( ) for nick in ref_form.users_to_delete.data.lower().split(' '): subject.allowed_users = subject.allowed_users.replace( nick, "").rstrip() subject.name = subj_form.name.data.lower() subject.semesters = subj_form.semesters.data.lower() db.session.add(subject) db.session.commit() return redirect( url_for('subjectpage', name=subject.name, semester=semester)) else: subj_form.name.data = str(subject.name) subj_form.semesters.data = str(subject.semesters) for att in subject.attestations: if att.semester == semester: att_number[att.number].data = att.themes return render_template('refactor.html', subject=subject, user=g.user, semester=semester, ref_form=ref_form, subj_form=subj_form) else: flash('No permission to change themes') return redirect( url_for('subjects.html', subject=subject, user=g.user, semester=semester)) else: flash('No subjects with such parameters') return redirect(url_for('find'))