Beispiel #1
0
def ajax_getMyPartners():
	if request.method == "GET": 
		if not session: # 서버가 요청한 사람이 누군지 모르겠을때. session 딕셔너리변수에 사용자정보가 없음
			return json.dumps(["로그인이 안되어서 응답을 못하겠습니다."]) 

		elif session['email']: # session 딕셔너리변수에 사용자의 이메일 정보가 있을 경우.

			role = session['role']
			email = session['email']
			print "아잉"
			return getMyPartners(role, email)					
def getAnnouncementNotes(role, userEmail):
	dResult = {}
	publisherEmail = userEmail
	## 총 공통공지 개수를 저장하는 변수
	total_common_announcement = 0
	if role == 'parent':
		dMyPartners = json.loads(getMyPartners(role,userEmail))
		currentClassTeacherEmail = ""
		for teacher in dMyPartners:
			if teacher['currentFriend']:
				publisherEmail = teacher['email']
				break
				
	# for문을 통해 total_common_announcement의 개수를 세서 입력
	for common_announcement in query_db('select * from common_announcement \
			where publisher_email='+'\''+publisherEmail+'\''):
		total_common_announcement = total_common_announcement + 1

	# dResult에 다음의 key들을 추가합니다.
	dResult['total_common_announcement'] = total_common_announcement
	dResult['num_of_article_per_request'] = 5

	# dResult['page']를 구하기 위한 연산과정. request당 한 페이지, 한 페이지 당 5개
	if (total_common_announcement % dResult['num_of_article_per_request']) != 0 :
		dResult['page'] = total_common_announcement / dResult['num_of_article_per_request'] + 1
	else :
		dResult['page'] = total_common_announcement / dResult['num_of_article_per_request']
		
	dResult['articles'] = []

	# dResult['articles'] 에 쓸 내용 담기위해 dArticles 딕셔너리를 만들었어욧.
	dArticles = {}
	dArticles['individual_announcement'] = []

	# cur_id 의 초기값을 -1로 합니다.
	cur_id = -1

	# 현재 로그인 id가 session['email']이면 query_db의내용을 하나하나 불러옵니다
	for common_announcement in query_db('select * from common_announcement where publisher_email='+'\''+publisherEmail+'\''):

		# 현재 individual_announcement의 id가 common_announcement의 id와 같으면
		# individual_announcement를 append 합니다.
		indivisual_announcement_query = 'select * from individual_announcement where common_announcement_id='+str(common_announcement['id'])

		if role == 'parent':
			indivisual_announcement_query = indivisual_announcement_query + ' AND receiver_email=\''+session['email']+'\''

		for individual_announcement in query_db(indivisual_announcement_query):
			dArticles['individual_announcement'].append(individual_announcement)

		# cur_id가 common_announcement['id']와 다르다면
		# 즉 common_announcement의 loop가 충분히 돌아 다른 날짜의 글로 넘어갔다면
		# 다음 내용들을 실행합니다.
		if cur_id != common_announcement['id']:
			dArticles['published_date'] = common_announcement['published_date']
			dArticles['publisher_email'] = common_announcement['publisher_email']
			dArticles['content'] = common_announcement['content']
			dArticles['id'] = common_announcement['id']
			dArticles['attached_file'] = common_announcement['attached_file']

			# 앞의 내용들이 다 저장되었으면 최종적으로 dResult에 append 합니다
			dResult['articles'].append(dArticles)

			# append 이후 dArticles 를 초기화합니다.
			dArticles = {}
			dArticles['individual_announcement'] = []

			cur_id = common_announcement['id']

	## json.dumps() 함수안에 인자로 리스트나 딕셔너리를 넣어주면
	## JSON 스트링으로 바꿔준다. 
	return json.dumps(dResult)