]> git.parisson.com Git - teleforma.git/commitdiff
Nouveau parcours fixes and evolutions
authorYoan Le Clanche <yoanl@pilotsystems.net>
Tue, 11 Oct 2022 09:39:20 +0000 (11:39 +0200)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Tue, 11 Oct 2022 09:39:20 +0000 (11:39 +0200)
requirements.txt
teleforma/context_processors.py
teleforma/migrations/0012_auto_20220919_1428.py [new file with mode: 0644]
teleforma/migrations/0013_seminarpart_index.py [new file with mode: 0644]
teleforma/models/pro.py
teleforma/static/teleforma/css/teleforma.css
teleforma/templates/teleforma/seminar_detail.html

index 14e4c526d9a1fede18adf63365955ff794c0476a..53ca65dbdd45972c0e56e6918a0da2ccad70744f 100644 (file)
@@ -27,4 +27,3 @@ psycopg2==2.8.6
 uwsgi
 pymemcache==3.4.4
 Mezzanine==5.0.0
-
index 323c5b569ab9801f940d9317f0781c00976fd80e..eefb9a146959bca4925c1f4278a4b5368503047c 100644 (file)
@@ -137,7 +137,7 @@ def seminar_progress(user, seminar, more=False):
     quizstep = multipart and '4' or '2bis'
     for quiz in quizs:
         if quiz:
-            quiz_weight = 3
+            quiz_weight = quiz.weight or 3
             startdate = seminar.date_added
             enddate = seminar.expiry_date
             quiz_validations = QuizValidation.objects.filter(user=user, quiz=quiz, validated=True, date_validated__range=[startdate, enddate])
diff --git a/teleforma/migrations/0012_auto_20220919_1428.py b/teleforma/migrations/0012_auto_20220919_1428.py
new file mode 100644 (file)
index 0000000..3897e01
--- /dev/null
@@ -0,0 +1,30 @@
+# Generated by Django 3.2.3 on 2022-10-04 17:37
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('quiz', '__first__'),
+        ('teleforma', '0011_merge_20220831_1143'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='seminarpart',
+            name='title',
+            field=models.CharField(blank=True, max_length=80, null=True, verbose_name='Titre de la séquence'),
+        ),
+        migrations.AlterField(
+            model_name='answer',
+            name='date_submitted',
+            field=models.DateTimeField(null=True, verbose_name='date submitted'),
+        ),
+        migrations.AlterField(
+            model_name='seminarpart',
+            name='quiz',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='seminarpart', to='quiz.quiz', verbose_name='quiz'),
+        ),
+    ]
diff --git a/teleforma/migrations/0013_seminarpart_index.py b/teleforma/migrations/0013_seminarpart_index.py
new file mode 100644 (file)
index 0000000..ebf07e7
--- /dev/null
@@ -0,0 +1,19 @@
+# Generated by Django 3.2.3 on 2022-10-05 15:55
+
+from django.db import migrations
+import tinymce.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('teleforma', '0012_auto_20220919_1428'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='seminarpart',
+            name='index',
+            field=tinymce.models.HTMLField(blank=True, null=True, verbose_name='Plan détaillé'),
+        ),
+    ]
index 6cfa56c4026bac6f1c4e288c49b81faa70cf4632..c902b2cb5be378ffe9bd9facdd728bd8a33bf6d0 100644 (file)
@@ -278,6 +278,8 @@ class Seminar(ClonableMixin, Displayable, ProductCodeMixin, SuggestionsMixin):
 
 class SeminarPart(models.Model):
     seminar         = models.ForeignKey(Seminar, related_name='parts', verbose_name=_('seminar'), on_delete=models.CASCADE)
+    
+    title           = models.CharField("Titre de la séquence", max_length=80, blank=True, null=True)
     docs_1          = models.ManyToManyField(Document, related_name="seminarpart_docs1",
                                         verbose_name=_('documents 1'),
                                         blank=True)
@@ -293,7 +295,13 @@ class SeminarPart(models.Model):
     #                                     blank=True)
     quiz            = models.ForeignKey(Quiz, related_name="seminarpart",
                                         verbose_name=_('quiz'),
+                                        blank=True, null=True,
                                         on_delete=models.PROTECT)
+    index            = tinymce.models.HTMLField("Plan détaillé", 
+                                                help_text="",
+                                                null=True, 
+                                                blank=True)
+
 
                                     
     def is_validated(self, user):
index 4203e1f6fb7d5da2a1427cedaecd7688e81c6632..1a8d5ba20e00c1f32df1c5d0d5d96d141cb20aeb 100644 (file)
@@ -2172,7 +2172,9 @@ form .exceed{
 .multipart-tabs li {
     display: inline-block;
 }
-
+.multipart-tabs li {
+    font-size: 0.9em;
+}
 .multipart-tabs .disabled {
     color: grey;
     pointer-events: none;
@@ -2185,6 +2187,9 @@ form .exceed{
   padding: 6px 12px;
   animation: fadeEffect 1s;
 }
+.tab-content h2 {
+    font-size: 1.1em;
+}
 
 @keyframes fadeEffect {
   from {
index 5f374930c97e9f515f16ab5721eeb3ef7b1d2748..ed0ea018405123574a7f5f1630a0c3099884091c 100644 (file)
@@ -84,7 +84,7 @@
 
 
   function openTab(tab) {
-    $(".tab-content").each(function() {
+    $(".tab-content, .index-multipart").each(function() {
       $(this).hide();
     })
     $(".tab-link").each(function() {
@@ -92,6 +92,8 @@
     })
     $("a[href="+tab+"]").addClass('active');
     $(tab).show().addClass("active");
+    $(tab + "-index").show();
+    
   }
 
 
   <div class="multipart">
     <ul class="multipart-tabs">
       {% for part in parts %}
-      <li><a href="#part-{{ part.index }}" class="tab-link {% if part.validated %}validated{% endif %} {% if not part.accessible %}disabled{% endif %}">Séquence {{ part.index }} > </a></li>
+      <li><a href="#part-{{ part.index }}" class="tab-link {% if part.validated %}validated{% endif %} {% if not part.accessible %}disabled{% endif %}">{% if part.object.title %}{{ part.object.title }}{% else %}Séquence {{ part.index }}{% endif %} > </a></li>
       {% endfor %}
       <li><a href="#part-last" class="tab-link {% if not seminar_progress == 100 %}disabled{% endif %}">Attestation</a></li>
     </ul>
 
     {% for part in parts %}
     <div class="tab-content" id="part-{{ part.index }}">
-      <h2>Séquence {{ part.index }}</h2>
+      <h2>{% if part.object.title %}{{ part.object.title }}{% else %}Séquence {{ part.index }}{% endif %}</h2>
 
       {% with part.object.docs_1 as docs %}
       <div class="course_content">
 
 
 {% block index %}
-{% if seminar.index %}
+{% if seminar.index or seminar.is_multipart %}
 <div class="module">
   <h3><img src="{{STATIC_URL}}teleforma/images/module_playlist.png" alt="status" style="vertical-align:middle" />
     {% trans "Plan" %}</h3>
   <div id="index">
-    {{ seminar.index|safe }}
+  {% if seminar.is_multipart %}
+    {% for part in parts %}
+      <div id="part-{{part.index}}-index" class="index-multipart">
+        {{ part.object.index|safe }}
+      </div>
+    {% endfor %}
+  {% elif seminar.index  %}
+    {{ seminar.index|safe }}    
+  {% endif %}
   </div>
-</div>
 {% endif %}
 {% endblock index %}
\ No newline at end of file