예제 #1
0
def courseModify(request):
    errors = []
    if request.method == 'GET':
        if 'term' in request.GET:
            inSearch = True
            searchTerm = request.GET.get('term')
            searchType = request.GET.get('type')
            if not searchTerm:
                errors.append('Please enter a key word')
            else:
                if searchType == 'course_id':
                    courses = Course_info.objects.filter(course_id=searchTerm)
                elif searchType == 'course_name':
                    courses = Course_info.objects.filter(
                        name__icontains=searchTerm)
                #else:
                #courses = Course_info.objects.filter(teacher = searchTerm)
    if request.method == 'POST':
        if 'modifyid' in request.POST:
            inModify = True
            courseId = request.POST.get('modifyid')
            term = Course_info.objects.filter(course_id=courseId)
            form = CourseFormModify(
                initial={
                    'course_name': term[0].name,
                    'credits': term[0].credits,
                    'semester': term[0].semester,
                    'textbook': term[0].textbook,
                    'college': term[0].college
                })
        else:
            form = CourseFormModify(request.POST)
            if form.is_valid():
                info = form.cleaned_data
                dbQuery = Course_info(
                    course_id=request.POST.get('courseId'),
                    name=info['course_name'],
                    credits=info['credits'],
                    semester=info['semester'],
                    textbook=info['textbook'],
                    college=info['college'],
                )
                dbQuery.save()
                modifyIsDone = True
    return render(request, 'ModifyCourse.html', locals())
예제 #2
0
def courseModify(request):
	errors = []
	if request.method == 'GET':
		if 'term' in request.GET:
			inSearch = True
			searchTerm = request.GET.get('term')
			searchType = request.GET.get('type')
			if not searchTerm:
				errors.append('Please enter a key word')
			else:
				if searchType == 'course_id':
					courses = Course_info.objects.filter(course_id = searchTerm)
				elif searchType == 'course_name':
					courses = Course_info.objects.filter(name__icontains = searchTerm)
				#else:
					#courses = Course_info.objects.filter(teacher = searchTerm)
	if request.method == 'POST':
		if 'modifyid' in request.POST:
			inModify = True
			courseId = request.POST.get('modifyid')
			term = Course_info.objects.filter(course_id = courseId)
			form = CourseFormModify(initial = {
				'course_name': term[0].name,
				'credits': term[0].credits,
				'semester': term[0].semester,
				'textbook': term[0].textbook,
				'college': term[0].college}
			)
		else:
			form = CourseFormModify(request.POST)
			if form.is_valid():
				info = form.cleaned_data
				dbQuery = Course_info(
					course_id = request.POST.get('courseId'),
					name = info['course_name'],
					credits = info['credits'],
					semester = info['semester'],
					textbook = info['textbook'],
					college = info['college'],
				)
				dbQuery.save()
				modifyIsDone = True	
	return render(request, 'ModifyCourse.html', locals())
예제 #3
0
def courseAdd(request):
	if not request.user.is_anonymous():
		return render(request, 'CourseMain.html')
	else:
		errors = []
		existed = []
		addIsDone = False
		if request.method == 'POST':
			if 'file' in request.POST and len(request.POST.get('file')) > 0: #click confirm button
				fileTerms = re.split(',', request.POST.get('file'))
				s = ""
				for x in xrange(0, len(fileTerms) / LEN_OF_COURSE_TABLE):
					dbQuery = Course_info(
						course_id = fileTerms[0 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
						name = fileTerms[1 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
						credits = fileTerms[2 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
						semester = fileTerms[3 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
						textbook = fileTerms[4 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
						college = fileTerms[5 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
					)
					if Course_info.objects.filter(course_id = fileTerms[0 + LEN_OF_COURSE_TABLE * x]): #test duplicate add
						s = s + str(x)
						isExist = True
						existed.append(fileTerms[0 + x * LEN_OF_COURSE_TABLE : LEN_OF_COURSE_TABLE + x * LEN_OF_COURSE_TABLE])
					else:
						dbQuery.save()
				addIsDone = True
				form = CourseForm()
			elif request.FILES.get('file'): #dealing with upload
				fileLocation = request.FILES.get('file')
				fileTerms = re.split(',|\n', fileLocation.read())
				multiAdd = True
				terms = []
				for x in xrange(0, len(fileTerms) / LEN_OF_COURSE_TABLE):
					terms.append(fileTerms[0 + x * LEN_OF_COURSE_TABLE : LEN_OF_COURSE_TABLE + x * LEN_OF_COURSE_TABLE])
			elif request.POST.get('multiAddCancle'): #click cancle button
				form = CourseForm()
			else: #regular form submit
				form = CourseForm(request.POST)
				if form.is_valid():
					info = form.cleaned_data
					dbQuery = Course_info(
						course_id = info['course_id'],
						name = info['course_name'],
						credits = info['credits'],
						semester = info['semester'],
						textbook = info['textbook'],
						college = info['college'],
					)
					dbQuery.save()
					addIsDone = True
					form = CourseForm()
		else: #raw form
			form = CourseForm()
		return render(request, 'AddCourse.html', locals())
예제 #4
0
def courseModify(request):
    errors = []
    #===========USER GROUP CHECK========================================================#
    isAdmin = False 																#
    isFaculty = False 																#
    userName = request.user.username 												#
    if Admin_user.objects.filter(id = userName): 									#
        userInfo = Admin_user.objects.filter(id = userName)							#
        if userInfo[0].college == 'all':											#
            isAdmin = True															#
            userCollege = -1														#
        else: 																		#
            isFaculty = True 														#
            userCollege = userInfo[0].college 										#
    elif Faculty_user.objects.filter(id = userName):								#
        userInfo = Faculty_user.objects.filter(id = userName)						#
        if userInfo[0].isSpecial and request.user.has_perm("IMS.course_manage"):	#
            isFaculty = True														#
            userCollege = userInfo[0].college 										#
    elif Student_user.objects.filter(id = userName):								#
        userInfo = Student_user.objects.filter(id = userName)						#
        if userInfo[0].isSpecial and request.user.has_perm("IMS.course_manage"):	#
            isFaculty = True														#
            userCollege = userInfo[0].college 										#
        #isAdmin = True																	#
        #isFaculty = False																#
        #userCollege = -1																#
        #============END OF GROUP CHECK=====================================================#
    if request.method == 'POST':
        if 'term' in request.POST: #search box
            inSearch = True
            searchTerm = request.POST.get('term')
            searchType = request.POST.get('type')
            if not searchTerm:
                if isAdmin:
                    courses = Course_info.objects.all()
                elif isFaculty:
                    courses = Course_info.objects.filter(college = userCollege)
            else:
                courses = getSearchResult(searchType, searchTerm, isAdmin, isFaculty, userCollege)
            return render(request, 'ModifyCourse.html', locals())
        elif 'modifyid' in request.POST: #initial info page
            inModify = True
            courseId = request.POST.get('modifyid')
            term = Course_info.objects.filter(course_id = courseId)
            if isAdmin:
                form = CourseFormModify(initial = {
                'course_name': term[0].name,
                'credits': term[0].credits,
                'semester': term[0].semester,
                'textbook': term[0].textbook,
                'college': term[0].college,
                'course_type' : term[0].course_type
                })
            elif isFaculty:
                facultyModify = True
                form = CourseFormFacultyModify(initial = {
                'course_name': term[0].name,
                'credits': term[0].credits,
                'semester': term[0].semester,
                'textbook': term[0].textbook,
                'course_type' : term[0].course_type
                })
            return render(request, 'ModifyCourse.html', locals())
        else: #DB update after press submit on initial info page
            if isAdmin:
                form = CourseFormModify(request.POST)
                if form.is_valid():
                    info = form.cleaned_data
                    dbQuery = Course_info(
                        course_id = request.POST.get('courseId'),
                        name = info['course_name'],
                        credits = info['credits'],
                        semester = info['semester'],
                        textbook = info['textbook'],
                        college = info['college'],
                        course_type = info['course_type'],
                    )
                    dbQuery.save()
                    modifyIsDone = True
            elif isFaculty:
                form = CourseFormFacultyModify(request.POST)
                if form.is_valid():
                    info = form.cleaned_data
                    dbQuery = Course_info(
                        course_id = request.POST.get('courseId'),
                        name = info['course_name'],
                        credits = info['credits'],
                        semester = info['semester'],
                        textbook = info['textbook'],
                        college = userCollege,
                        course_type = info['course_type'],
                    )
                    dbQuery.save()
                    modifyIsDone = True
            return render(request, 'ModifyCourse.html', locals())
    return render(request, 'AccessFault.html')
예제 #5
0
def courseAdd(request):
    errors = []
    errorImport = []
    addIsDone = False
    #===========USER GROUP CHECK========================================================#
    isAdmin = False 																#
    isFaculty = False 																#
    userName = request.user.username 												#
    if Admin_user.objects.filter(id = userName): 									#
        userInfo = Admin_user.objects.filter(id = userName)							#
        if userInfo[0].college == 'all':											#
            isAdmin = True															#
            userCollege = -1														#
        else: 																		#
            isFaculty = True 														#
            userCollege = userInfo[0].college 										#
    elif Faculty_user.objects.filter(id = userName):								#
        userInfo = Faculty_user.objects.filter(id = userName)						#
        if userInfo[0].isSpecial and request.user.has_perm("IMS.course_manage"):	#
            isFaculty = True														#
            userCollege = userInfo[0].college 										#
    elif Student_user.objects.filter(id = userName):								#
        userInfo = Student_user.objects.filter(id = userName)						#
        if userInfo[0].isSpecial and request.user.has_perm("IMS.course_manage"):	#
            isFaculty = True														#
            userCollege = userInfo[0].college 										#
        #isAdmin = True																	#
        #isFaculty = False																#
        #userCollege = -1																#
        #============END OF GROUP CHECK=====================================================#
    if request.method == 'POST':
        if request.POST.get('multiAddCancle') or request.POST.get('first'): #click cancle button or first access
            if isAdmin:
                form = CourseForm()
            if isFaculty:
                facultyAdd = True
                form = CourseFormFacultyAdd()
        elif 'file' in request.POST and len(request.POST.get('file')) > 0: #click confirm button
            fileTerms = re.split(',', request.POST.get('file'))
            for x in xrange(0, len(fileTerms) / LEN_OF_COURSE_TABLE):
                dbQuery = Course_info(
                    course_id = fileTerms[0 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
                    name = fileTerms[1 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
                    credits = fileTerms[2 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
                    semester = fileTerms[3 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
                    textbook = fileTerms[4 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
                    college = fileTerms[5 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
                    course_type = fileTerms[6 + LEN_OF_COURSE_TABLE * x].encode('utf-8'),
                )
                state = importCheck(fileTerms[0 + LEN_OF_COURSE_TABLE * x : LEN_OF_COURSE_TABLE * (x + 1)], isAdmin, isFaculty, userCollege)
                if state == 'YEAH'.encode('utf-8'):
                    dbQuery.save()
                else:
                    errorExist = True
                    returnListItem = fileTerms[0 + LEN_OF_COURSE_TABLE * x : LEN_OF_COURSE_TABLE * (x + 1)];
                    returnListItem.append(state)
                    errorImport.append(returnListItem)
            addIsDone = True
            if isAdmin:
                form = CourseForm()
            if isFaculty:
                facultyAdd = True
                form = CourseFormFacultyAdd()
        elif request.FILES.get('file'): #dealing with upload
            fileLocation = request.FILES.get('file')
            fileTerms = re.split(',|\n', fileLocation.read())
            multiAdd = True
            terms = []
            for x in xrange(0, len(fileTerms) / LEN_OF_COURSE_TABLE):
                terms.append(fileTerms[0 + x * LEN_OF_COURSE_TABLE : LEN_OF_COURSE_TABLE + x * LEN_OF_COURSE_TABLE])
        else: #regular form submit
            if isAdmin:
                form = CourseForm(request.POST)
                if form.is_valid():
                    info = form.cleaned_data
                    dbQuery = Course_info(
                        course_id = info['course_id'],
                        name = info['course_name'],
                        credits = info['credits'],
                        semester = info['semester'],
                        textbook = info['textbook'],
                        college = info['college'],
                        course_type = info['course_type'],
                    )
                    dbQuery.save()
                    addIsDone = True
                    form = CourseForm()
            elif isFaculty:
                form = CourseFormFacultyAdd(request.POST)
                if form.is_valid():
                    info = form.cleaned_data
                    dbQuery = Course_info(
                        course_id = info['course_id'],
                        name = info['course_name'],
                        credits = info['credits'],
                        semester = info['semester'],
                        textbook = info['textbook'],
                        college = userCollege,
                        course_type = info['course_type'],
                    )
                    dbQuery.save()
                    addIsDone = True
                    facultyAdd = True
                    form = CourseFormFacultyAdd()
        return render(request, 'AddCourse.html', locals())
    return render(request, 'AccessFault.html')
예제 #6
0
def courseAdd(request):
    if not request.user.is_anonymous():
        return render(request, 'CourseMain.html')
    else:
        errors = []
        existed = []
        addIsDone = False
        if request.method == 'POST':
            if 'file' in request.POST and len(
                    request.POST.get('file')) > 0:  #click confirm button
                fileTerms = re.split(',', request.POST.get('file'))
                s = ""
                for x in xrange(0, len(fileTerms) / LEN_OF_COURSE_TABLE):
                    dbQuery = Course_info(
                        course_id=fileTerms[0 + LEN_OF_COURSE_TABLE *
                                            x].encode('utf-8'),
                        name=fileTerms[1 + LEN_OF_COURSE_TABLE *
                                       x].encode('utf-8'),
                        credits=fileTerms[2 + LEN_OF_COURSE_TABLE *
                                          x].encode('utf-8'),
                        semester=fileTerms[3 + LEN_OF_COURSE_TABLE *
                                           x].encode('utf-8'),
                        textbook=fileTerms[4 + LEN_OF_COURSE_TABLE *
                                           x].encode('utf-8'),
                        college=fileTerms[5 + LEN_OF_COURSE_TABLE *
                                          x].encode('utf-8'),
                    )
                    if Course_info.objects.filter(
                            course_id=fileTerms[0 + LEN_OF_COURSE_TABLE *
                                                x]):  #test duplicate add
                        s = s + str(x)
                        isExist = True
                        existed.append(
                            fileTerms[0 + x *
                                      LEN_OF_COURSE_TABLE:LEN_OF_COURSE_TABLE +
                                      x * LEN_OF_COURSE_TABLE])
                    else:
                        dbQuery.save()
                addIsDone = True
                form = CourseForm()
            elif request.FILES.get('file'):  #dealing with upload
                fileLocation = request.FILES.get('file')
                fileTerms = re.split(',|\n', fileLocation.read())
                multiAdd = True
                terms = []
                for x in xrange(0, len(fileTerms) / LEN_OF_COURSE_TABLE):
                    terms.append(
                        fileTerms[0 +
                                  x * LEN_OF_COURSE_TABLE:LEN_OF_COURSE_TABLE +
                                  x * LEN_OF_COURSE_TABLE])
            elif request.POST.get('multiAddCancle'):  #click cancle button
                form = CourseForm()
            else:  #regular form submit
                form = CourseForm(request.POST)
                if form.is_valid():
                    info = form.cleaned_data
                    dbQuery = Course_info(
                        course_id=info['course_id'],
                        name=info['course_name'],
                        credits=info['credits'],
                        semester=info['semester'],
                        textbook=info['textbook'],
                        college=info['college'],
                    )
                    dbQuery.save()
                    addIsDone = True
                    form = CourseForm()
        else:  #raw form
            form = CourseForm()
        return render(request, 'AddCourse.html', locals())
예제 #7
0
def courseModify(request):
    errors = []
    # ===========USER GROUP CHECK========================================================#
    isAdmin = False  #
    isFaculty = False  #
    userName = request.user.username  #
    if Admin_user.objects.filter(id=userName):  #
        userInfo = Admin_user.objects.filter(id=userName)  #
        if userInfo[0].college == "all":  #
            isAdmin = True  #
            userCollege = -1  #
        else:  #
            isFaculty = True  #
            userCollege = userInfo[0].college  #
    elif Faculty_user.objects.filter(id=userName):  #
        userInfo = Faculty_user.objects.filter(id=userName)  #
        if userInfo[0].isSpecial and request.user.has_perm("IMS.course_manage"):  #
            isFaculty = True  #
            userCollege = userInfo[0].college  #
    elif Student_user.objects.filter(id=userName):  #
        userInfo = Student_user.objects.filter(id=userName)  #
        if userInfo[0].isSpecial and request.user.has_perm("IMS.course_manage"):  #
            isFaculty = True  #
            userCollege = userInfo[0].college  #
        # isAdmin = True																	#
        # isFaculty = False																#
        # userCollege = -1																#
        # ============END OF GROUP CHECK=====================================================#
    if request.method == "POST":
        if "term" in request.POST:  # search box
            inSearch = True
            searchTerm = request.POST.get("term")
            searchType = request.POST.get("type")
            if not searchTerm:
                if isAdmin:
                    courses = Course_info.objects.all()
                elif isFaculty:
                    courses = Course_info.objects.filter(college=userCollege)
            else:
                courses = getSearchResult(searchType, searchTerm, isAdmin, isFaculty, userCollege)
            return render(request, "ModifyCourse.html", locals())
        elif "modifyid" in request.POST:  # initial info page
            inModify = True
            courseId = request.POST.get("modifyid")
            term = Course_info.objects.filter(id=courseId)
            if isAdmin:
                form = CourseFormModify(
                    initial={
                        "name": term[0].name,
                        "credits": term[0].credits,
                        "semester": term[0].semester,
                        "textbook": term[0].textbook,
                        "college": term[0].college,
                        "course_type": term[0].course_type,
                    }
                )
            elif isFaculty:
                facultyModify = True
                form = CourseFormFacultyModify(
                    initial={
                        "name": term[0].name,
                        "credits": term[0].credits,
                        "semester": term[0].semester,
                        "textbook": term[0].textbook,
                        "course_type": term[0].course_type,
                    }
                )
            return render(request, "ModifyCourse.html", locals())
        else:  # DB update after press submit on initial info page
            if isAdmin:
                form = CourseFormModify(request.POST)
                if form.is_valid():
                    info = form.cleaned_data
                    dbQuery = Course_info(
                        id=request.POST.get("courseId"),
                        name=info["name"],
                        credits=info["credits"],
                        semester=info["semester"],
                        textbook=info["textbook"],
                        college=info["college"],
                        course_type=info["course_type"],
                    )
                    dbQuery.save()
                    modifyIsDone = True
            elif isFaculty:
                form = CourseFormFacultyModify(request.POST)
                if form.is_valid():
                    info = form.cleaned_data
                    dbQuery = Course_info(
                        id=request.POST.get("courseId"),
                        name=info["name"],
                        credits=info["credits"],
                        semester=info["semester"],
                        textbook=info["textbook"],
                        college=userCollege,
                        course_type=info["course_type"],
                    )
                    dbQuery.save()
                    modifyIsDone = True
            return render(request, "ModifyCourse.html", locals())
    return render(request, "AccessFault.html")