From deb6f9f235b2a81c1edcc7b116826e67db412353 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Wed, 17 Jul 2013 15:57:10 +0200 Subject: [PATCH] add course list pull --- teleforma/models/core.py | 5 +++-- teleforma/views/core.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 4e8125cc..803b3a2a 100644 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -188,9 +188,10 @@ class Course(Model): self.department, c = Department.objects.get_or_create(name=data['department'], organization=organization) self.title = data['title'] self.description = data['description'] - self.code = date['code'] + self.code = data['code'] self.title_tweeter = data['title_tweeter'] - self.number = int(data['number']) + if data['number'] != 'None': + self.number = int(data['number']) self.save() class Meta(MetaCore): diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 9cd60bf0..e6d5112f 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -233,6 +233,20 @@ class CourseListView(CourseAccessMixin, ListView): def get_dep_courses(request): return [course.to_dict() for course in Course.objects.all()] + def pull(request, host=None): + if host: + url = 'http://' + host + '/json/' + else: + url = 'http://' + settings.TELECASTER_MASTER_SERVER + '/json/' + s = ServiceProxy(url) + + remote_list = s.teleforma.get_all_courses() + for course_dict in remote_list['result']: + course = Course.objects.filter(code=course_dict['code']) + if not course: + course = Course() + course.from_dict(course_dict) + class CourseView(CourseAccessMixin, DetailView): -- 2.39.5