]> git.parisson.com Git - teleforma.git/commitdiff
add course list pull
authorGuillaume Pellerin <yomguy@parisson.com>
Wed, 17 Jul 2013 13:57:10 +0000 (15:57 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Wed, 17 Jul 2013 13:57:32 +0000 (15:57 +0200)
teleforma/models/core.py
teleforma/views/core.py

index 202f42dc96c165078eed17f66905f69b6042a6fc..05665902873d73ebb5d3dd4bbb9c85661a5a0d26 100644 (file)
@@ -181,9 +181,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):
index e3f9cc8353edbdbabe6f8b950517e8281db959a0..d9ccbe07816ee97b6744cd2ddbe273a9db60d989 100644 (file)
@@ -237,6 +237,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):