def get(self, request, *args, **kwargs): """Download all files for a feedbackset into zipped folder. Args: request (HttpRequest): Request from client. Returns: Response: redirects to wait-for-download view, see :class:`~devilry.devilry_group.views.download_files.feedbackfeed_downloadviews.WaitForDownload`, or returns the content, see `~devilry.devilry_group.utils.download_response`. """ feedbackset_id = kwargs.get('feedbackset_id') feedbackset = get_object_or_404(group_models.FeedbackSet, id=feedbackset_id) # Check that the cradmin role and the AssignmentGroup is the same. if feedbackset.group.id != request.cradmin_role.id: raise Http404() archive_meta = archivemodels.CompressedArchiveMeta.objects.exclude()\ .filter(content_object_id=feedbackset_id, content_type=ContentType.objects.get_for_model(model=feedbackset), deleted_datetime=None)\ .order_by('-created_datetime').first() if not archive_meta: raise Http404() return download_response.download_response( content_path=archive_meta.archive_path, content_name=archive_meta.archive_name, content_type='application/zip', content_size=archive_meta.archive_size, streaming_response=True)
def get(self, request, *args, **kwargs): """ """ object_id = int(self.kwargs.get('pk')) archive_meta = archivemodels.CompressedArchiveMeta.objects.get(content_object_id=object_id) if archive_meta is not None: self.status = 'FINISHED' return download_response.download_response( content_path=archive_meta.archive_path, content_name=archive_meta.archive_name, content_type='application/zip', content_size=archive_meta.archive_size ) return super(WaitForDownload, self).get(request, *args, **kwargs)
def get(self, request, *args, **kwargs): assignment_id = kwargs.get('assignment_id') assignment = get_object_or_404(core_models.Assignment, id=assignment_id) if assignment != self.request.cradmin_role: raise Http404() archive_meta = archivemodels.CompressedArchiveMeta.objects\ .filter(content_object_id=assignment_id, content_type=ContentType.objects.get_for_model(model=assignment), deleted_datetime=None)\ .order_by('-created_datetime').first() return download_response.download_response( content_path=archive_meta.archive_path, content_name=archive_meta.archive_name, content_type='application/zip', content_size=archive_meta.archive_size, streaming_response=True)
def get(self, request, *args, **kwargs): """ Checks permission Args: request (HttpRequest): Request from client. Returns: Response: redirects to wait-for-download view, see :class:`~devilry.devilry_group.views.download_files.feedbackfeed_downloadviews.WaitForDownload`, or returns the content, see `~devilry.devilry_group.utils.download_response`. """ groupcomment_id = kwargs.get('groupcomment_id') groupcomment = get_object_or_404(group_models.GroupComment, id=groupcomment_id) # Check that the cradmin role and the AssignmentGroup is the same. if groupcomment.feedback_set.group.id != request.cradmin_role.id: raise Http404() # If it's a private GroupComment, the request.user must be the one that created the comment. if groupcomment.visibility != group_models.GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE: raise Http404() # Try to fetch archive meta try: archive_meta = archivemodels.CompressedArchiveMeta.objects.get(content_object_id=groupcomment_id) except ObjectDoesNotExist: # Run actiongroup batchjob. batchregistry.Registry.get_instance().run( actiongroup_name='batchframework_compress_groupcomment', context_object=groupcomment, ) else: # Send response. return download_response.download_response( content_path=archive_meta.archive_path, content_name=archive_meta.archive_name, content_type='application/zip', content_size=archive_meta.archive_size ) return HttpResponseRedirect( self.request.cradmin_app.reverse_appurl('wait-for-download', groupcomment_id))
def get(self, request, *args, **kwargs): assignment_id = kwargs.get('assignment_id') assignment = get_object_or_404(core_models.Assignment, id=assignment_id) if assignment != self.request.cradmin_role: raise Http404() archive_meta = archivemodels.CompressedArchiveMeta.objects\ .filter(content_object_id=assignment_id, content_type=ContentType.objects.get_for_model(model=assignment), deleted_datetime=None, created_by=self.request.user, created_by_role=archivemodels.CompressedArchiveMeta.CREATED_BY_ROLE_EXAMINER)\ .order_by('-created_datetime').first() if not archive_meta: raise Http404() return download_response.download_response( content_path=archive_meta.archive_path, content_name=archive_meta.archive_name, content_type='application/zip', content_size=archive_meta.archive_size, streaming_response=True)
def get(self, request, *args, **kwargs): """Download all files for a feedbackset into zipped folder. Args: request (HttpRequest): Request from client. Returns: Response: redirects to wait-for-download view, see :class:`~devilry.devilry_group.views.download_files.feedbackfeed_downloadviews.WaitForDownload`, or returns the content, see `~devilry.devilry_group.utils.download_response`. """ feedbackset_id = kwargs.get('feedbackset_id') feedbackset = get_object_or_404(group_models.FeedbackSet, id=feedbackset_id) # Check that the cradmin role and the AssignmentGroup is the same. if feedbackset.group.id != request.cradmin_role.id: raise Http404() # Check if archive exists try: archive_meta = archivemodels.CompressedArchiveMeta.objects.get(content_object_id=feedbackset_id) except ObjectDoesNotExist: # Run actiongroup batchregistry.Registry.get_instance().run( actiongroup_name='batchframework_compress_feedbackset', context_object=feedbackset, ) else: # Send response return download_response.download_response( content_path=archive_meta.archive_path, content_name=archive_meta.archive_name, content_type='application/zip', content_size=archive_meta.archive_size ) return HttpResponseRedirect( self.request.cradmin_app.reverse_appurl('wait-for-download', pk=feedbackset_id))