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
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'
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'