]> git.parisson.com Git - teleforma.git/commitdiff
Merge branch 'crfpa' into tc202dev
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 11 Jul 2013 15:59:43 +0000 (17:59 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 11 Jul 2013 15:59:43 +0000 (17:59 +0200)
Conflicts:
teleforma/locale/fr/LC_MESSAGES/django.mo

14 files changed:
1  2 
teleforma/admin.py
teleforma/locale/fr/LC_MESSAGES/django.po
teleforma/management/commands/teleforma-import-conferences.py
teleforma/models/core.py
teleforma/templates/postman/email_user_init.txt
teleforma/templates/teleforma/course_conference.html
teleforma/templates/teleforma/course_conference_audio.html
teleforma/templates/teleforma/course_conference_record.html
teleforma/templates/teleforma/course_detail.html
teleforma/templates/teleforma/course_media.html
teleforma/templates/teleforma/inc/media_list.html
teleforma/templatetags/teleforma_tags.py
teleforma/views/core.py
teleforma/views/crfpa.py

Simple merge
Simple merge
index 5c91979aa5d24d57559f61d54f72f0682db772fa,d311d6d53bc2744fbd3ca84b88f1bdd0bba017ac..b021665ee244725f6700f535f2f2a172dbfe1ec2
@@@ -93,9 -96,9 +96,9 @@@ $(document).ready(function()
  
  {% if "video" in media.mime_type %}
  <div class="video">
- <video id="my_video_1" class="video-js vjs-default-skin" width="640" height="360" controls preload="auto" data-setup='{}'>
+ <video id="my_video_1" class="video-js vjs-default-skin" width="640" height="360" controls preload="auto" data-setup='{}' {% if media.item.related.all %}{% for related in media.item.related.all %}{% if related.title == "preview" %}{% thumbnail related.file "640" as im %}poster="{{ im.url }}"{% endthumbnail %}{% endif %}{% endfor %}{% endif %}>
  <!-- Hello Chrome and Firefox (and Opera?) -->
 -<source src="{{ MEDIA_URL }}{{ media.item.file }}" type="{{ media.mime_type }}" />
 +<source src="{{ MEDIA_URL|set_host:HOST }}{{ media.item.file }}" type="{{ media.mime_type }}" />
  </video>
  </div>
  
index 56c245726147ce6158f25b3615e1a3fdee1093fb,ec8b7e320c1046502be775c184fb96a4edf95f47..9bbfd641d74bf7197847f4a4ad6343735625de2d
@@@ -193,7 -193,10 +193,7 @@@ def get_video_id(media)
      return
  
  @register.filter
 -def get_host(url, host):
 +def set_host(url, host):
      u = urlparse(url)
 -    if host == '127.0.0.1' or host == 'localhost':
 -        nu = u.scheme + '://' + host + ':' + str(u.port) + u.path
 -        return nu
 -    else:
 -        return url
 +    return u.scheme + '://' + host + ':' + str(u.port) + u.path
-     
++    
index 3eea68524ef1066f9d06c5db6baa09d2efb2955b,8adef8d40d39c86481e9817ffe8a4ffcc68b6a71..afbac03279c7c290905faed5dc2f93c2c99551f1
@@@ -82,20 -82,27 +82,20 @@@ except
      pass
  
  
 -def render(request, template, data = None, mimetype = None):
 -    return render_to_response(template, data, context_instance=RequestContext(request),
 -                              mimetype=mimetype)
 -
  def format_courses(courses, course=None, queryset=None, types=None):
 -    if queryset:
 -        for c in queryset:
 -            if c and c.code != 'X':
 -                courses.append({'course': c, 'types': types.all(),
 -                'date': c.date_modified, 'number': c.number})
 -    elif course:
 -        if course.code != 'X':
 -            courses.append({'course': course, 'types': types.all(),
 -            'date': course.date_modified, 'number': course.number})
 -    return courses
 +    if settings.TELEFORMA_E_LEARNING_TYPE == 'CRFPA':
 +        from teleforma.views.crfpa import format_crfpa_courses
 +        return format_crfpa_courses(courses, course, queryset, types)
 +
 +    elif settings.TELEFORMA_E_LEARNING_TYPE == 'AE':
 +        from teleforma.views.ae import format_ae_courses
 +        return format_ae_courses(courses, course, queryset, types)
  
  
- def get_courses(user, date_order=False, num_order=False):
+ def get_courses(user, date_order=False, num_order=False, num_courses=False, period=None):
      if settings.TELEFORMA_E_LEARNING_TYPE == 'CRFPA':
          from teleforma.views.crfpa import get_crfpa_courses
-         return get_crfpa_courses(user, date_order, num_order)
+         return get_crfpa_courses(user, date_order, num_order, period)
  
      elif settings.TELEFORMA_E_LEARNING_TYPE == 'AE':
          from teleforma.views.ae import get_ae_courses
@@@ -224,18 -252,26 +245,36 @@@ class CoursesView(ListView)
      def dispatch(self, *args, **kwargs):
          return super(CoursesView, self).dispatch(*args, **kwargs)
  
 +    @jsonrpc_method('teleforma.get_dep_courses')
 +    def get_dep_courses(request, id):
 +        department = Department.objects.get(id=id)
 +        return [{'id': str(c.id), 'name': unicode(c)} for c in department.course.all()]
 +
 +    @jsonrpc_method('teleforma.get_dep_periods')
 +    def get_dep_periods(request, id):
 +        department = Department.objects.get(id=id)
 +        return [{'id': str(c.id), 'name': unicode(c)} for c in department.period.all()]
 +
  
- class MediaView(DetailView):
+ class PeriodListView(PeriodAccessMixin, CoursesView):
+     def get_queryset(self):
+         self.period = None
+         period = Period.objects.filter(id=int(self.kwargs['period_id']))
+         if period:
+             self.period = period[0]
+         self.all_courses = get_courses(self.request.user, date_order=True, period=self.period)
+         return self.all_courses[:5]
+     def get_context_data(self, **kwargs):
+         context = super(PeriodListView, self).get_context_data(**kwargs)
+         context['period'] = self.period
+         context['list_view'] = True
+         return context
+ class MediaView(PeriodAccessMixin, DetailView):
  
      model = Media
      template_name='teleforma/course_media.html'
@@@ -412,8 -438,43 +441,43 @@@ class ConferenceView(PeriodAccessMixin
          return super(ConferenceView, self).dispatch(*args, **kwargs)
  
  
+ class ConferenceListView(View):
+     @jsonrpc_method('teleforma.get_conference_list')
+     def get_conference_list(request):
+         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/'
+         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())
  class ConferenceRecordView(FormView):
 -    "Conference record form : TeleCaster module required"
 +    "Conference record form : telecaster module required"
  
      model = Conference
      form_class = ConferenceForm
                                          stream_type=stream_type, streaming=True)
                      stream.save()
          else:
-             raise 'Error : Bad Conference dictionnary'
+             raise 'Error : input must be a conference dictionnary'
  
      def push(self, conference):
 -        url = 'http://' + settings.TELECASTER_MASTER_SERVER + '/json/'
 +        url = 'http://' + conference.department.domain + '/json/'
          s = ServiceProxy(url)
 -        s.teleforma.create_conference(conference.to_json_dict())
 +        try:
 +            streaming = settings.TELECASTER_MASTER_STREAMING
 +        except:
 +            streaming = True
 +        s.teleforma.create_conference(conference.to_json_dict(streaming=streaming))
  
  
+ class ProfessorListView(View):
+     @jsonrpc_method('teleforma.get_professor_list')
+     def get_professor_list(request):
+         professors = Professor.objects.all()
+         return [p.to_json_dict() for p in professors]
+     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_professor_list()
+         for professor_dict in remote_list['result']:
+             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:
+                     if not course[0] in professor.courses.all():
+                         professor.courses.add(course[0])
+             professor.save()
  class HelpView(TemplateView):
  
      template_name='teleforma/help.html'
index 42493e43fc8da52d1fa16df4be1075e8dee4575a,6de30c8e5f7e3f730f25525296f41119dd496dd2..18107a19cd350566507e72c44a3f29f77983b377
@@@ -74,24 -71,24 +71,24 @@@ def get_crfpa_courses(user, date_order=
                          }
  
          for course in s_courses:
 -            courses = format_courses(courses, course=course,
 +            courses = format_crfpa_courses(courses, course=course,
                                 types=s_courses[course])
  
-         synthesis_note = student.training.synthesis_note
+         synthesis_note = training.synthesis_note
          if synthesis_note:
 -            courses = format_courses(courses,
 +            courses = format_crfpa_courses(courses,
                              queryset=Course.objects.filter(synthesis_note=True),
                              types=synthesis_note)
  
-         obligation = student.training.obligation
+         obligation = training.obligation
          if obligation:
 -            courses = format_courses(courses,
 +            courses = format_crfpa_courses(courses,
                              queryset=Course.objects.filter(obligation=True),
                              types=obligation)
  
-         magistral = student.training.magistral
+         magistral = training.magistral
          if magistral:
 -            courses = format_courses(courses,
 +            courses = format_crfpa_courses(courses,
                              queryset=Course.objects.filter(magistral=True),
                              types=magistral)