]> git.parisson.com Git - teleforma.git/commitdiff
Add fields to restrict user to register to webclass depending of if they are platform...
authortest test <yoanl@pilotsystems.net>
Wed, 16 Jun 2021 15:06:12 +0000 (17:06 +0200)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Wed, 16 Jun 2021 15:06:12 +0000 (17:06 +0200)
teleforma/views/core.py
teleforma/webclass/migrations/0002_webclass_platform_only.py
teleforma/webclass/migrations/0003_auto_20210616_1650.py [new file with mode: 0644]
teleforma/webclass/migrations/0004_auto_20210616_1654.py [new file with mode: 0644]
teleforma/webclass/models.py
teleforma/webclass/views.py

index 66309f1f11d828268082d670195f8027b7a49ceb..b2879397c93e746a0dba539daf84909668b89e07 100644 (file)
@@ -359,7 +359,9 @@ class CourseListView(CourseAccessMixin, ListView):
             for webclass in Webclass.published.filter(period=self.period, iej=student.iej, course__in=student_courses):
                 # if webclass.course not in student_courses:
                 #     continue
-                if webclass.platform_only and not student.platform_only:
+                if student.platform_only and not webclass.allow_elearning:
+                    continue
+                if not student.platform_only and not webclass.allow_presentiel:
                     continue
                 slot = webclass.get_slot(user)
                 if slot and slot.status in ('almost', 'ingoing'):
@@ -458,7 +460,9 @@ class CourseView(CourseAccessMixin, DetailView):
             except IndexError:
                 pass
             if webclass:
-                if webclass.platform_only and not student.platform_only:
+                if student.platform_only and not webclass.allow_elearning:
+                    webclass = None
+                elif not student.platform_only and not webclass.allow_presentiel:
                     webclass = None
                 else:
                     webclass_slot = webclass.get_slot(self.request.user)
index 407be8da0fa2b5d4d1fbc1da4823134337f40eae..0d4aaaeb9821dddb4460c663763bd61815ab4690 100644 (file)
@@ -13,6 +13,6 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='webclass',
             name='platform_only',
-            field=models.BooleanField(default=False, verbose_name='platform only'),
+            field=models.BooleanField(default=True, verbose_name='platform only'),
         ),
     ]
diff --git a/teleforma/webclass/migrations/0003_auto_20210616_1650.py b/teleforma/webclass/migrations/0003_auto_20210616_1650.py
new file mode 100644 (file)
index 0000000..f261bc6
--- /dev/null
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.3 on 2021-06-16 16:50
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('webclass', '0002_webclass_platform_only'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='webclass',
+            name='presentiel',
+            field=models.BooleanField(default=True, verbose_name='Autoriser présentiel'),
+        ),
+        migrations.AlterField(
+            model_name='webclass',
+            name='platform_only',
+            field=models.BooleanField(default=True, verbose_name='Autoriser e-learning'),
+        ),
+    ]
diff --git a/teleforma/webclass/migrations/0004_auto_20210616_1654.py b/teleforma/webclass/migrations/0004_auto_20210616_1654.py
new file mode 100644 (file)
index 0000000..74978d7
--- /dev/null
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.3 on 2021-06-16 16:54
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('webclass', '0003_auto_20210616_1650'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='webclass',
+            old_name='platform_only',
+            new_name='allow_elearning',
+        ),
+        migrations.RenameField(
+            model_name='webclass',
+            old_name='presentiel',
+            new_name='allow_presentiel',
+        ),
+    ]
index f3b92709eaf345df3698bf805683afb1066fd8d7..a4f3ba4089582f3232d480534e5318908a24ec2a 100644 (file)
@@ -139,7 +139,8 @@ class Webclass(models.Model):
         'teleforma.Course', related_name='webclass', verbose_name=_('course'), on_delete=models.CASCADE)
     iej = models.ManyToManyField(
         'teleforma.IEJ', related_name='webclass', verbose_name=_('iej'), blank=True)
-    platform_only = models.BooleanField(_('platform only'), default=False)
+    allow_elearning = models.BooleanField('Autoriser e-learning', default=True)
+    allow_presentiel = models.BooleanField('Autoriser présentiel', default=True)
     bbb_server = models.ForeignKey(
         'BBBServer', related_name='webclass', verbose_name='Serveur BBB', on_delete=models.CASCADE)
     duration = DurationField('Durée de la conférence', default="00:30:00")
index 8e008652d8267379a669af5757bf5c56b30d7eb3..5d39a926fcdad53726bfe7b1ca3761329269fea2 100644 (file)
@@ -55,7 +55,9 @@ class WebclassAppointment(View):
         # Student is in the right IEJ ?
         if not student.iej in webclass.iej.all():
             return HttpResponse('Unauthorized', status=401)
-        if webclass.platform_only and not student.platform_only:
+        if student.platform_only and not webclass.allow_elearning:
+            return HttpResponse('Unauthorized', status=401)
+        if not student.platform_only and not webclass.allow_presentiel:
             return HttpResponse('Unauthorized', status=401)
             
         return