from django.forms import ModelForm
from ..exam.models import Script
from ..models.core import get_n_choices
-from ..models.crfpa import Student
def validate_session(nb):
def __init__(self, *args, **kwargs):
period = kwargs.pop('period')
- user = kwargs.pop('user')
super(ScriptForm, self).__init__(*args, **kwargs)
self.fields['score'].localize = False
- try:
- student = user.student.get()
- except Student.DoesNotExist:
- student = None
-
- if student:
- nb = student.max_sessions() or settings.TELEFORMA_EXAM_MAX_SESSIONS
- else:
- nb = period.nb_scripts() or settings.TELEFORMA_EXAM_MAX_SESSIONS
-
+ nb = period.nb_script or settings.TELEFORMA_EXAM_MAX_SESSIONS
self.fields['session'] = forms.ChoiceField(choices=get_n_choices(nb + 1),
validators=[validate_session(nb)])
self.fields['file'].required = True
+++ /dev/null
-# Generated by Django 3.2.13 on 2022-12-08 12:14
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('teleforma', '0020_chatmessage_reply_to'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='period',
- name='nb_script',
- ),
- migrations.AddField(
- model_name='training',
- name='nb_script',
- field=models.IntegerField(blank=True, default=12, null=True, verbose_name='nombre maximal de copies'),
- ),
- ]
is_open = models.BooleanField(_('is open'), default=True)
date_exam_end = models.DateTimeField(
_("date de fin d'examens"), null=True, blank=True)
+ nb_script = models.IntegerField(
+ _("nombre maximal de copies"), null=True, blank=True)
date_close_accounts = models.DateField(
"date de fermeture des comptes étudiants", null=True, blank=True)
date_inscription_start = models.DateField(
def __str__(self):
return self.name
-
- def nb_scripts(self):
- """ max number of scripts among all trainings """
- max_scripts = 0
- for training in self.training.all():
- max_scripts = max(max_scripts, training.nb_script)
- return max_scripts
-
class Meta(MetaCore):
db_table = app_label + '_' + 'period'
verbose_name = _('period')
ordering = ['name']
-
class CourseType(models.Model):
name = models.CharField(_('name'), max_length=255)