'corrector__last_name', 'course__title', 'course__code']
readonly_fields = ['date_added','uuid','box_uuid','sha1','mime_type']
list_filter = ['period', 'course__title', 'session', 'type', 'status',
- 'date_submitted', 'date_marked', 'date_rejected']
+ 'date_submitted', 'date_marked', 'date_rejected',
+ 'author__student__platform_only' ]
list_display = ['title', 'author_name', 'file_size', 'status']
actions = ['force_resubmit',]
<option value="{{type.0}}" {% if type.0 == type_selected %}selected="selected"{% endif %}>{{type.1}}</option>
{% endfor %}
</select>
+ <br />
+ <label for="platform_only_select">{% trans "E-learning uniquement"%}</label>
+ <select name="platform_only" id="platform_only_select">
+ <option value="">---</option>
+ <option value="1" {% if platform_only == '1' %}selected="selected"{% endif %}>Oui</option>
+ <option value="0" {% if platform_only == '0' %}selected="selected"{% endif %}>Non</option>
+ </select>
<input type="submit" value="Filtrer"/>
</form>
{% endif %}
self.period = Period.objects.get(id=self.kwargs['period_id'])
context['period'] = self.period
context['script_service_url'] = getattr(settings, 'TELEFORMA_EXAM_SCRIPT_SERVICE_URL')
+ self.nb_script = self.period.nb_script or settings.TELEFORMA_EXAM_MAX_SESSIONS
if getattr(settings, 'TELEFORMA_EXAM_SCRIPT_UPLOAD', True) and self.period.date_exam_end:
upload = datetime.datetime.now() <= self.period.date_exam_end
- if self.period.nb_script:
- if Script.objects.filter(period = self.period,
- author = self.request.user).count() >= self.period.nb_script:
- upload = False
+ if Script.objects.filter(period = self.period,
+ author = self.request.user).count() >= self.nb_script:
+ upload = False
context['upload'] = upload
else:
context['upload'] = False
correctors = User.objects.filter(corrector_scripts__in=self.get_base_queryset()).order_by('last_name').distinct()
context['correctors_list'] = [(str(corrector.id), corrector.get_full_name()) for corrector in correctors]
context['corrector_selected'] = self.request.GET.get('corrector', str(self.request.user.id))
+ session_choices = get_n_choices(self.nb_script + 1)
context['sessions_list'] = session_choices
context['session_selected'] = self.request.GET.get('session')
types = ScriptType.objects.all()
courses = Course.objects.filter(scripts__in=self.get_base_queryset()).distinct()
context['courses_list'] = [(str(course.id), course.title) for course in courses]
context['course_selected'] = self.request.GET.get('course')
+ context['platform_only'] = self.request.GET.get('platform_only')
return context
class ScriptView(ScriptMixinView, CourseAccessMixin, UpdateView):
type = self.request.GET.get('type')
session = self.request.GET.get('session')
course = self.request.GET.get('course')
+ platform_only = self.request.GET.get('platform_only')
if type:
QT = Q(type__id=int(type)) & QT
if session:
QT = Q(course__id=int(course)) & QT
if corrector:
QT = Q(corrector__id=int(corrector)) & QT
+ if platform_only:
+ QT = Q(author__student__platform_only = int(platform_only)) & QT
return QT
@method_decorator(login_required)
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_close_accounts = models.DateField("date de fermeture des comptes étudiants", null = True, blank = True)
def __unicode__(self):
return self.name