예제 #1
0
 def _get_list(self):
     qry = Period.where_is_admin_or_superadmin(self.request.user)
     qry = qry.filter(Period.q_is_active())
     qry = qry.prefetch_related("qualifiedforexams_status")
     qry = qry.select_related("parentnode")
     qry = qry.order_by("start_time")
     return [self._listserialize_period(period) for period in qry]
예제 #2
0
 def _get_list(self):
     qry = Period.where_is_admin_or_superadmin(self.request.user)
     qry = qry.filter(Period.q_is_active())
     if self.request.GET.get('node_id', None) != None:
         qry = qry.filter(parentnode__parentnode=self.request.GET['node_id'])
     qry = qry.prefetch_related('qualifiedforexams_status')
     qry = qry.select_related('parentnode')
     qry = qry.order_by('parentnode__long_name', 'start_time')
     return [self._listserialize_period(period) for period in qry]
예제 #3
0
 def get(self, request, status_id):
     try:
         self.status = Status.objects.get(pk=status_id)
     except Status.DoesNotExist:
         return HttpResponseNotFound()
     else:
         if not Period.where_is_admin_or_superadmin(self.request.user).filter(id=self.status.period_id).exists():
             return HttpResponseForbidden()
         elif self.status.status != Status.READY:
             return HttpResponseNotFound()
         else:
             return super(StatusPrintView, self).get(request, status_id)
    def get(self, request, id):
        qry = Period.where_is_admin_or_superadmin(self.request.user).filter(id=id)
        if len(qry) == 0:
            return HttpResponseForbidden()
        period = qry[0]

        format = self.request.GET.get('format', None)
        if not format:
            return HttpResponseBadRequest('format is required.')

        exporter = self.exporters.get(format)
        if not exporter:
            return HttpResponseBadRequest('Invalid format: {0}. Valid formats: {1!r}'.format(
                format, self.exporters.keys()))

        filenameprefix = period.get_path()
        grouper = GroupsGroupedByRelatedStudentAndAssignment(period)
        return exporter(grouper, query=self.request.GET, filenameprefix=filenameprefix).response()
예제 #5
0
 def get_plugin_input_and_authenticate(self):
     self.periodid = self.request.GET['periodid']
     if not Period.where_is_admin_or_superadmin(self.request.user).filter(id=self.periodid).exists():
         raise PermissionDenied()
     self.period = get_object_or_404(Period, pk=self.periodid)
     self.pluginsessionid = self.request.GET['pluginsessionid']
 def check_permission(self, user):
     if user.is_superuser:
         return
     periodid = self.get_id()
     if Period.where_is_admin_or_superadmin(user).filter(id=periodid).count() == 0:
         raise PermissionDeniedError('Permission denied')