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]
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]
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()
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')