From 49043a3d11823ebe394e96f9f2df863d807950fe Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 11 Jul 2013 12:46:03 +0200 Subject: [PATCH] fix prof metadata --- teleforma/models/core.py | 1 + teleforma/views/core.py | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 3e109f18..ae2f2c60 100644 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -186,6 +186,7 @@ class Professor(Model): data = {'username': self.user.username, 'first_name': self.user.first_name, 'last_name': self.user.last_name, + 'email' : self.user.email, 'courses': [course.code for course in self.courses.all()], } return data diff --git a/teleforma/views/core.py b/teleforma/views/core.py index c05c133d..1abf569d 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -598,20 +598,22 @@ class ProfessorListView(View): url = 'http://' + host + '/json/' else: url = 'http://' + settings.TELECASTER_MASTER_SERVER + '/json/' - s = ServiceProxy(url) + remote_list = s.teleforma.get_professor_list() for professor_dict in remote_list['result']: - user, c = User.objects.get_or_create(username=professor_dict['username'], - first_name=professor_dict['first_name'], - last_name=professor_dict['last_name']) - if c: - professor = Professor.objects.get_or_create(user=user) - for course_code in professor_dict['courses']: - course = Course.objects.filter(code=course_code) - if course: - professor.courses.add(course) - professor.save() + user, c = User.objects.get_or_create(username=professor_dict['username']) + user.first_name = professor_dict['first_name'] + user.last_name = professor_dict['last_name'] + user.email = professor_dict['email'] + user.save() + + professor, c = Professor.objects.get_or_create(user=user) + for course_code in professor_dict['courses']: + course = Course.objects.filter(code=course_code) + if course and not course in professor.courses.all(): + professor.courses.add(course[0]) + professor.save() class HelpView(TemplateView): -- 2.39.5