From 37cb847ec177381207674795764306ea77ae8ab4 Mon Sep 17 00:00:00 2001 From: test test Date: Thu, 15 Jul 2021 10:54:17 +0200 Subject: [PATCH] WIP --- .../templates/teleforma/course_detail.html | 10 +++++++ teleforma/templatetags/webclass.py | 7 +++++ teleforma/views/core.py | 6 ++-- teleforma/webclass/admin.py | 4 +-- .../0005_webclassrecord_category.py | 18 +++++++++++ teleforma/webclass/models.py | 27 ++++++++++++++++- .../inc/webclass_corrections_list.html | 19 ++++++++++++ .../templates/webclass/inc/webclass_list.html | 30 ++++--------------- .../templates/webclass/webclass_record.html | 25 ++++++++++++++++ 9 files changed, 117 insertions(+), 29 deletions(-) create mode 100644 teleforma/webclass/migrations/0005_webclassrecord_category.py create mode 100644 teleforma/webclass/templates/webclass/inc/webclass_corrections_list.html create mode 100644 teleforma/webclass/templates/webclass/webclass_record.html diff --git a/teleforma/templates/teleforma/course_detail.html b/teleforma/templates/teleforma/course_detail.html index 77ce2284..aa2fd357 100644 --- a/teleforma/templates/teleforma/course_detail.html +++ b/teleforma/templates/teleforma/course_detail.html @@ -78,6 +78,16 @@ {% block webclass %} {% include "webclass/inc/webclass_list.html" %} {% endblock %} + + + +
+
{{ course.title }} - Corrections de copies{% if course.description %} - + {{ course.description }}{% endif %} +
+ {% block webclass_corrections %} + {% include "webclass/inc/webclass_corrections_list.html" %} + {% endblock %}
{% endwith %} {% endfor %} diff --git a/teleforma/templatetags/webclass.py b/teleforma/templatetags/webclass.py index 8bdb649a..03903ab4 100644 --- a/teleforma/templatetags/webclass.py +++ b/teleforma/templatetags/webclass.py @@ -12,3 +12,10 @@ def add_records_links(context): return { 'periods':periods, } + + +@register.inclusion_tag('webclass/webclass_record.html', takes_context=True) +def webclass_record(context, record): + return { + 'record':record + } diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 3a3624f0..af1d65eb 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -492,12 +492,14 @@ class CourseView(CourseAccessMixin, DetailView): context['webclass'] = webclass context['webclass_slot'] = webclass_slot + records = {} try: - context['webclass_records'] = WebclassRecord.get_records( - context['period'], course) + records = WebclassRecord.get_records(context['period'], course) except Exception as e: print(e) context['webclass_error'] = True + context['webclass_records'] = records.get(WebclassRecord.WEBCLASS) + context['webclass_corrections_records'] = records.get(WebclassRecord.CORRECTION) return context @method_decorator(access_required) diff --git a/teleforma/webclass/admin.py b/teleforma/webclass/admin.py index f9b5dbdf..52bf6a6c 100644 --- a/teleforma/webclass/admin.py +++ b/teleforma/webclass/admin.py @@ -22,8 +22,8 @@ class WebclassAdmin(admin.ModelAdmin): search_fields = ['id', 'course__code', 'course__title'] class WebclassRecordAdmin(admin.ModelAdmin): - list_filter = ('course', 'period') - list_display = ('course', 'period', 'created') + list_filter = ('course', 'period', 'category') + list_display = ('course', 'period', 'category', 'created') search_fields = ['id', 'course__code', 'course__title'] # def get_form(self, request, obj=None, **kwargs): diff --git a/teleforma/webclass/migrations/0005_webclassrecord_category.py b/teleforma/webclass/migrations/0005_webclassrecord_category.py new file mode 100644 index 00000000..4b912435 --- /dev/null +++ b/teleforma/webclass/migrations/0005_webclassrecord_category.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.3 on 2021-07-13 16:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('webclass', '0004_auto_20210616_1654'), + ] + + operations = [ + migrations.AddField( + model_name='webclassrecord', + name='category', + field=models.CharField(choices=[('WC', 'Webclass'), ('CC', 'Correction de copie')], default='WC', max_length=2, verbose_name='Catégorie'), + ), + ] diff --git a/teleforma/webclass/models.py b/teleforma/webclass/models.py index a4f3ba40..d33e43c3 100644 --- a/teleforma/webclass/models.py +++ b/teleforma/webclass/models.py @@ -380,6 +380,19 @@ class WebclassRecord(models.Model): 'BBBServer', related_name='webclass_records', verbose_name='Serveur BBB', on_delete=models.CASCADE) created = models.DateTimeField("Date de la conférence", auto_now_add=True) + WEBCLASS = 'WC' + CORRECTION = 'CC' + CATEGORY_CHOICES = [ + (WEBCLASS, 'Webclass'), + (CORRECTION, 'Correction de copie'), + ] + category = models.CharField( + "Catégorie", + max_length=2, + choices=CATEGORY_CHOICES, + default=WEBCLASS, + ) + class Meta(MetaCore): db_table = app_label + '_' + 'webclass_record' verbose_name = 'enregistrement' @@ -391,9 +404,21 @@ class WebclassRecord(models.Model): @staticmethod def get_records(period, course): record_ids = set() + # id : category mapping + category_mapping = {} for record in WebclassRecord.objects.filter(period=period, course=course): record_ids.add(record.record_id) + category_mapping[record.record_id] = record.category if not record_ids: return [] records = get_records_from_bbb(recording_id=','.join(record_ids)) - return records + + # group records by category + categories = {} + for record in records: + category = category_mapping[record['id']] + if category not in categories: + categories[category] = [] + categories[category].append(record) + + return categories diff --git a/teleforma/webclass/templates/webclass/inc/webclass_corrections_list.html b/teleforma/webclass/templates/webclass/inc/webclass_corrections_list.html new file mode 100644 index 00000000..2007a7da --- /dev/null +++ b/teleforma/webclass/templates/webclass/inc/webclass_corrections_list.html @@ -0,0 +1,19 @@ +{% load teleforma_tags webclass %} +{% load i18n %} + +{% if webclass_corrections_records %} +
+ + + + {% for record in webclass_corrections_records %} + {% webclass_record record %} + {% endfor %} + +
+
+{% else %} +
+

Aucun document

+
+{% endif %} \ No newline at end of file diff --git a/teleforma/webclass/templates/webclass/inc/webclass_list.html b/teleforma/webclass/templates/webclass/inc/webclass_list.html index 962b8786..f891db3c 100644 --- a/teleforma/webclass/templates/webclass/inc/webclass_list.html +++ b/teleforma/webclass/templates/webclass/inc/webclass_list.html @@ -1,4 +1,4 @@ -{% load teleforma_tags %} +{% load teleforma_tags webclass %} {% load i18n %} {% if webclass_slot or webclass_records %} @@ -44,31 +44,13 @@ {% endif %} {% for record in webclass_records %} - - - - {% trans 'Click here' %} -
Cliquez-ici
-
- - -
-
- {% if record.slot %} -
{% trans "Professor" %}
-
{{ record.slot.professor }}
- {% endif %} -
{% trans "Begin" %}
-
{{ record.start_date }}
-
-
- -
- -
- + {% webclass_record record %} {% endfor %} +{% else %} +
+

Aucun document

+
{% endif %} \ No newline at end of file diff --git a/teleforma/webclass/templates/webclass/webclass_record.html b/teleforma/webclass/templates/webclass/webclass_record.html new file mode 100644 index 00000000..ae78052d --- /dev/null +++ b/teleforma/webclass/templates/webclass/webclass_record.html @@ -0,0 +1,25 @@ +{% load i18n %} + + + + + {% trans 'Click here' %} +
Cliquez-ici
+
+ + +
+
+ {% if record.slot %} +
{% trans "Professor" %}
+
{{ record.slot.professor }}
+ {% endif %} +
{% trans "Begin" %}
+
{{ record.start_date }}
+
+
+ +
+ +
+ \ No newline at end of file -- 2.39.5