def get(self, request, id): pluginsessionid = self.request.GET.get('pluginsessionid', None) if not pluginsessionid: raise ErrorResponse(statuscodes.HTTP_400_BAD_REQUEST, {'detail': '``pluginsessionid`` is a required parameter'}) period = get_object_or_404(Period, pk=id) previewdata = self.request.session[create_sessionkey(pluginsessionid)] grouper = GroupsGroupedByRelatedStudentAndAssignment(period) return { 'perioddata': grouper.serialize(), 'pluginoutput': previewdata }
def get(self, request, id): pluginsessionid = self.request.GET.get("pluginsessionid", None) if not pluginsessionid: raise ErrorResponse( statuscodes.HTTP_400_BAD_REQUEST, {"detail": "``pluginsessionid`` is a required parameter"} ) period = get_object_or_404(Period, pk=id) previewdata = self.request.session[create_sessionkey(pluginsessionid)] if not isinstance(previewdata, PreviewData): raise ErrorResponse( statuscodes.HTTP_400_BAD_REQUEST, {"detail": "The session data must be a PreviewData object."} ) grouper = GroupsGroupedByRelatedStudentAndAssignment(period) return {"perioddata": grouper.serialize(), "pluginoutput": previewdata.serialize()}
def _get_instance(self, id): try: qry = Period.objects.select_related("parentnode") period = qry.get(id=id) except Period.DoesNotExist: raise ErrorResponse( statuscodes.HTTP_404_NOT_FOUND, {"detail": "The period with ID {id} does not exist".format(id=id)} ) self._permissioncheck(period) statusQry = period.qualifiedforexams_status.all() if len(statusQry) == 0: raise ErrorResponse(statuscodes.HTTP_404_NOT_FOUND, {"detail": "The period has no statuses"}) grouper = GroupsGroupedByRelatedStudentAndAssignment(period) out = self._serialize_period(period) out.update( {"perioddata": grouper.serialize(), "statuses": [self._serialize_status(status) for status in statusQry]} ) return out
def _get_instance(self, id): try: qry = Period.objects.select_related('parentnode') period = qry.get(id=id) except Period.DoesNotExist: raise ErrorResponse(statuscodes.HTTP_404_NOT_FOUND, {'detail': 'The period with ID {id} does not exist'.format(id=id)}) self._permissioncheck(period) statusQry = period.qualifiedforexams_status.all() if statusQry.count() == 0: raise ErrorResponse(statuscodes.HTTP_404_NOT_FOUND, {'detail': 'The period has no statuses'}) statusQry = statusQry.select_related( 'period', 'user', 'user__devilryuserprofile') grouper = GroupsGroupedByRelatedStudentAndAssignment(period) out = self._serialize_period(period) out.update({ 'perioddata': grouper.serialize(), 'statuses': [self._serialize_status(status) for status in statusQry] }) return out
def get(self, request, id=None): period = Period.objects.get(id=id) # NOTE: We know the period exists because of IsPeriodAdmin grouper = GroupsGroupedByRelatedStudentAndAssignment(period) return grouper.serialize()