]> git.parisson.com Git - teleforma.git/commitdiff
update push / pull methods
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 22 Jul 2013 08:42:42 +0000 (10:42 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 22 Jul 2013 08:42:42 +0000 (10:42 +0200)
teleforma/views/core.py

index 6e980b3be59340028ad3d5af9bbc20345852f9e4..9ac43937d9d089a9f838d8f5796911b3f6fa8bd8 100644 (file)
@@ -206,6 +206,11 @@ class PeriodAccessMixin(View):
             return redirect('teleforma-home')
         return super(PeriodAccessMixin, self).render_to_response(context)
 
+    @jsonrpc_method('teleforma.get_period_list')
+    def get_period_list(request, department_id):
+        department = Department.objects.get(id=department_id)
+        return [period.name for period in Period.objects.filter(department=department)]
+
 
 class CourseAccessMixin(PeriodAccessMixin):
 
@@ -234,9 +239,8 @@ class CourseListView(CourseAccessMixin, ListView):
         return super(CourseListView, self).dispatch(*args, **kwargs)
 
     @jsonrpc_method('teleforma.get_course_list')
-    def get_course_list(request, organization_name, department_name):
-        organization = organization.objects.get(name=organization_name)
-        department = Department.objects.get(name=department_name, organization=organization)
+    def get_course_list(request, department_id):
+        department = Department.objects.get(id=department_id)
         return [course.to_dict() for course in Course.objects.filter(department=department)]
 
     def pull(request, organization_name, department_name):
@@ -447,29 +451,25 @@ class ConferenceListView(View):
         conferences = Conference.objects.all()
         return [c.to_json_dict() for c in conferences]
 
-    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_conference_list()
-        for conf_dict in remote_list['result']:
-            conference = Conference.objects.filter(public_id=conf_dict['id'])
-            if not conference:
-                conference = Conference()
-                conference.from_json_dict(conf_dict)
-
-    def push(request, host=None):
-        if not host:
-            host = settings.TELECASTER_MASTER_SERVER
-        url = 'http://' + host + '/json/'
-
+    def pull(request):
+        departments = Department.objects.all()
+        for department in departments:
+            url = 'http://' + department.domain + '/json/'
+            s = ServiceProxy(url)
+            remote_list = s.teleforma.get_conference_list()
+            for conf_dict in remote_list['result']:
+                conference = Conference.objects.filter(public_id=conf_dict['id'])
+                if not conference:
+                    conference = Conference()
+                    conference.from_json_dict(conf_dict)
+
+    def push(request, organization_name, department_name):
+        organization = organization.objects.get(name=organization_name)
+        department = Department.objects.get(name=department_name, organization=organization)
+        url = 'http://' + department.domain + '/json/'
         s = ServiceProxy(url)
         remote_list = s.teleforma.get_conference_list()['result']
         remote_ids = [conf['id'] for conf in remote_list]
-
         for conference in Conference.objects.all():
             if not conference.public_id in remote_ids and conference.date_end:
                 s.teleforma.create_conference(conference.to_json_dict())
@@ -544,7 +544,6 @@ class ConferenceRecordView(FormView):
                 except:
                     pass
 
-        
         try:
             live_message(self.conference)
         except:
@@ -614,6 +613,7 @@ class ProfessorListView(View):
         return [p.to_json_dict() for p in professors]
 
     def pull(request, host=None):
+        
         if host:
             url = 'http://' + host + '/json/'
         else: