]> git.parisson.com Git - teleforma.git/commitdiff
Add conferences to seminars view
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Mon, 10 Dec 2018 00:04:01 +0000 (01:04 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Mon, 10 Dec 2018 00:04:01 +0000 (01:04 +0100)
teleforma/context_processors.py
teleforma/templates/teleforma/course_media.html
teleforma/templates/teleforma/seminars.html
teleforma/views/pro.py

index bab539b57c3afed4c64a1e669a76e317eacc157e..2d6fe5d81cc2399c9766901fe29e6d41d1b19984 100644 (file)
@@ -183,6 +183,40 @@ def all_seminars(request, progress_order=False, date_order=False):
     return {'all_seminars': seminars}
 
 
+def all_conferences(request, progress_order=False, date_order=False):
+    conferences = []
+    now = datetime.datetime.now()
+
+    if isinstance(request, User):
+        user = request
+    else:
+        user = request.user
+
+    if not user.is_authenticated():
+        return {}
+
+    professor = user.professor.all()
+    auditor = user.auditor.all()
+
+    if professor:
+        conferences = []
+        professor = user.professor.get()
+        courses = professor.courses.all()
+
+        for course in courses:
+            for conference in course.conference.filter(expiry_date__gte=now):
+                conferences.append(conference)
+
+    elif auditor and not (user.is_staff or user.is_superuser):
+        auditor = user.auditor.get()
+        conferences = auditor.conferences.filter(status=2, expiry_date__gte=now)
+
+    elif user.is_staff or user.is_superuser:
+        conferences = Conference.objects.filter(Q(expiry_date__gte=now) | Q(expiry_date=None))
+
+    return conferences
+
+
 def total_progress(request):
     """return the user progress of all seminars in percent"""
 
index 7393173c55de422a41509ec3db95b3288eb94c42..170ed70c1575c1f61a74864ec1ea09f61299255b 100644 (file)
@@ -1,4 +1,4 @@
-{% extends "teleforma/course_detail.html" %}
+{% extends "teleforma/seminars.html" %}
 {% load telemeta_utils %}
 {% load teleforma_tags %}
 {% load i18n %}
index b1e204c0e886547e5bdbc89599c2524f50ae3ecf..51d86b118e4e23c3460d3b18d12427b84f35ad24 100644 (file)
@@ -53,6 +53,18 @@ $(function() {
 </div>
 </div>
 
+<h3><a href="{% url teleforma-desk %}"><img src="{{ STATIC_URL }}telemeta/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% trans "My conferences" %}</a></h3>
+<div style="background: white;">
+<ul id="seminars">
+{% block conferences %}
+{% for conference in conferences %}
+   <li {% if user.is_staff and seminar.status == 2 %}class="link_green"{% endif %}><a href="{% url teleforma-conference-detail conference.id %}">{{ conference.title }}</a></li>
+ {% endfor %}
+{% endblock conferences %}
+</ul>
+</div>
+</div>
+
 {% block submodules %}
 {% endblock submodules %}
 
index 15903d3ec468054f04941d641c384d41b355c644..4bd69923cc8e2b1dfab397ed875a2974ccd12e53 100644 (file)
@@ -315,6 +315,11 @@ class SeminarsView(ListView):
     def get_queryset(self):
         return all_seminars(self.request, date_order=True)['all_seminars'][:10]
 
+    def get_context_data(self, **kwargs):
+        context = super(SeminarsView, self).get_context_data(**kwargs)
+        context['conferences'] = all_conferences(self.request)
+        return context
+
 
 class AnswerView(SeminarAccessMixin, SeminarRevisionMixin, FormView):
 
@@ -499,7 +504,7 @@ class AnswersView(ListView):
             a = _('answer')
             v = _('validated')
             subject = '%s : %s - %s %s' % (seminar.title, a, str(context['rank']), v)
-        
+
         mess = Message(sender=sender, recipient=user, subject=subject[:511], body=text)
         mess.moderation_status = 'a'
         mess.save()