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'):
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)
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'),
),
]
--- /dev/null
+# 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'),
+ ),
+ ]
--- /dev/null
+# 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',
+ ),
+ ]
'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")
# 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