def copy_network_story(request, pk): """ Copy a story and related facets. """ original_story = get_object_or_404(Story, pk=pk) original_org = original_story.organization original_webfacet = original_story.webfacetstory.all() original_printfacet = original_story.printfacetstory.all() original_audiofacet = original_story.audiofacetstory.all() original_videofacet = original_story.videofacetstory.all() user = request.user organization = request.user.organization partner = request.user.organization # record action for activity story_team # action.send(request.user, verb="picked up", action_object=original_story) if request.method == "POST": # Create a copy of the story and a storycopydetail record copied_story = Story.copy_story(original_story) copied_story.owner = user copied_story.organization = organization copied_story.save() story_copy_record = StoryCopyDetail.objects.create_story_copy_record( original_org=original_org, partner=partner, original_story=original_story, partner_story=copied_story ) # Create copy of facets if they exist # Copy the WebFacet if original_webfacet: print original_webfacet[0] copied_webfacet = WebFacet.copy_webfacet(original_webfacet[0]) copied_webfacet.story = copied_story copied_webfacet.owner = user copied_webfacet.organization = organization copied_webfacet.save() webfacet_copy_record = WebFacetCopyDetail.objects.create_webfacet_copy_record( original_org=original_org, partner=partner, original_webfacet=original_webfacet[0], partner_webfacet=copied_webfacet ) # create copy of webfacet images original_webfacet_images = WebFacet.get_webfacet_images(original_webfacet[0]) for image in original_webfacet_images: copied_image = ImageAsset.copy_image(image) copied_image.owner = user copied_image.organization = organization copied_image.save() imageasset_copy_record = ImageAssetCopyDetail.objects.create_imageasset_copy_record( original_org=original_org, partner=partner, original_imageasset=image, partner_imageasset=copied_image ) # add image to copied webfacet copied_webfacet.image_assets.add(copied_image) copied_webfacet.save() # create copy of webfacet documents original_webfacet_documents = WebFacet.get_webfacet_documents(original_webfacet[0]) for document in original_webfacet_documents: copied_document = DocumentAsset.copy_document(document) copied_document.owner = user copied_document.organization = organization copied_document.save() documentasset_copy_record = DocumentAssetCopyDetail.objects.create_documentasset_copy_record( original_org=original_org, partner=partner, original_documentasset=document, partner_documentasset=copied_document ) # add document to copied webfacet copied_webfacet.document_assets.add(copied_document) copied_webfacet.save() # create copy of webfacet audio original_webfacet_audiofiles = WebFacet.get_webfacet_audio(original_webfacet[0]) for audio in original_webfacet_audiofiles: copied_audio = AudioAsset.copy_audio(audio) copied_audio.owner = user copied_audio.organization = organization copied_audio.save() audioasset_copy_record = AudioAssetCopyDetail.objects.create_audioasset_copy_record( original_org=original_org, partner=partner, original_audioasset=audio, partner_audioasset=copied_audio ) # add audio to copied webfacet copied_webfacet.audio_assets.add(copied_audio) copied_webfacet.save() # create copy of webfacet video # original_webfacet_video = WebFacet.get_webfacet_video(original_webfacet[0]) for video in original_webfacet_videos: copied_video = VideoAsset.copy_video(video) copied_video.owner = user copied_video.organization = organization copied_video.save() videoasset_copy_record = VideoAssetCopyDetail.objects.create_videoasset_copy_record( original_org=original_org, partner=partner, original_videoasset=video, partner_videoasset=copied_video ) # add video to copied webfacet copied_webfacet.video_assets.add(copied_video) copied_webfacet.save() # Copy the PrintFacet if original_printfacet: print original_printfacet[0] copied_printfacet = PrintFacet.copy_printfacet(original_printfacet[0]) copied_printfacet.story = copied_story copied_printfacet.owner = user copied_printfacet.organization = organization copied_printfacet.save() printfacet_copy_record = PrintFacetCopyDetail.objects.create_printfacet_copy_record( original_org=original_org, partner=partner, original_printfacet=original_printfacet, partner_printfacet=copied_printfacet ) # create copy of printfacet images original_printfacet_images = PrintFacet.get_printfacet_images(original_printfacet[0]) for image in original_printfacet_images: copied_image = ImageAsset.copy_image(image) copied_image.owner = user copied_image.organization = organization copied_image.save() imageasset_copy_record = ImageAssetCopyDetail.objects.create_imageasset_copy_record( original_org=original_org, partner=partner, original_imageasset=image, partner_imageasset=copied_image ) # add image to copied printfacet copied_printfacet.image_assets.add(copied_image) copied_printfacet.save() # create copy of printfacet documents original_printfacet_documents = PrintFacet.get_printfacet_documents(original_printfacet[0]) for document in original_printfacet_documents: copied_document = DocumentAsset.copy_document(document) copied_document.owner = user copied_document.organization = organization copied_document.save() documentasset_copy_record = DocumentAssetCopyDetail.objects.create_documentasset_copy_record( original_org=original_org, partner=partner, original_documentasset=document, partner_documentasset=copied_document ) # add document to copied printfacet copied_printfacet.document_assets.add(copied_document) copied_printfacet.save() # create copy of printfacet audio original_printfacet_audiofiles = PrintFacet.get_printfacet_audio(original_printfacet[0]) for audio in original_printfacet_audios: copied_audio = AudioAsset.copy_audio(audio) copied_audio.owner = user copied_audio.organization = organization copied_audio.save() audioasset_copy_record = AudioAssetCopyDetail.objects.create_audioasset_copy_record( original_org=original_org, partner=partner, original_audioasset=audio, partner_audioasset=copied_audio ) # add audio to copied printfacet copied_printfacet.audio_assets.add(copied_audio) copied_printfacet.save() # create copy of printfacet video original_printfacet_video = PrintFacet.get_printfacet_video(original_printfacet[0]) for video in original_printfacet_videos: copied_video = VideoAsset.copy_video(video) copied_video.owner = user copied_video.organization = organization copied_video.save() videoasset_copy_record = VideoAssetCopyDetail.objects.create_videoasset_copy_record( original_org=original_org, partner=partner, original_videoasset=video, partner_videoasset=copied_video ) # add video to copied printfacet copied_printfacet.video_assets.add(copied_video) copied_printfacet.save() # Copy the AudioFacet if original_audiofacet: print original_audiofacet[0] copied_audiofacet = AudioFacet.copy_audiofacet(original_audiofacet[0]) copied_audiofacet.story = copied_story copied_audiofacet.owner = user copied_audiofacet.organization = organization copied_audiofacet.save() audiofacet_copy_record = AudioFacetCopyDetail.objects.create_audiofacet_copy_record( original_org=original_org, partner=partner, original_audiofacet=original_audiofacet, partner_audiofacet=copied_audiofacet ) print "Audiofacet Copied" # create copy of audiofacet images original_audiofacet_images = AudioFacet.get_audiofacet_images(original_audiofacet[0]) for image in original_audiofacet_images: copied_image = ImageAsset.copy_image(image) copied_image.owner = user copied_image.organization = organization copied_image.save() imageasset_copy_record = ImageAssetCopyDetail.objects.create_imageasset_copy_record( original_org=original_org, partner=partner, original_imageasset=image, partner_imageasset=copied_image ) # add image to copied audiofacet copied_audiofacet.image_assets.add(copied_image) copied_audiofacet.save() # create copy of audiofacet documents original_audiofacet_documents = AudioFacet.get_audiofacet_documents(original_audiofacet[0]) for document in original_audiofacet_documents: copied_document = DocumentAsset.copy_document(document) copied_document.owner = user copied_document.organization = organization copied_document.save() documentasset_copy_record = DocumentAssetCopyDetail.objects.create_documentasset_copy_record( original_org=original_org, partner=partner, original_documentasset=document, partner_documentasset=copied_document ) # add document to copied audiofacet copied_audiofacet.document_assets.add(copied_document) copied_audiofacet # create copy of audiofacet audio original_audiofacet_audiofiles = AudioFacet.get_audiofacet_audio(original_audiofacet[0]) for audio in original_audiofacet_audios: copied_audio = AudioAsset.copy_audio(audio) copied_audio.owner = user copied_audio.organization = organization copied_audio.save() audioasset_copy_record = AudioAssetCopyDetail.objects.create_audioasset_copy_record( original_org=original_org, partner=partner, original_audioasset=audio, partner_audioasset=copied_audio ) # add audio to copied audiofacet copied_audiofacet.audio_assets.add(copied_audio) copied_audiofacet.save() # create copy of audiofacet video original_audiofacet_video = AudioFacet.get_audiofacet_video(original_audiofacet[0]) for video in original_audiofacet_videos: copied_video = VideoAsset.copy_video(video) copied_video.owner = user copied_video.organization = organization copied_video.save() videoasset_copy_record = VideoAssetCopyDetail.objects.create_videoasset_copy_record( original_org=original_org, partner=partner, original_videoasset=video, partner_videoasset=copied_video ) # add video to copied audiofacet copied_audiofacet.video_assets.add(copied_video) copied_audiofacet.save() # Copy the VideoFacet if original_videofacet: print original_videofacet[0] copied_videofacet = VideoFacet.copy_videofacet(original_videofacet[0]) copied_videofacet.story = copied_story copied_videofacet.owner = user copied_videofacet.organization = organization copied_videofacet.save() videofacet_copy_record = VideoFacetCopyDetail.objects.create_videofacet_copy_record( original_org=original_org, partner=partner, original_videofacet=original_videofacet, partner_videofacet=copied_videofacet ) print "Videofacet Copied" # create copy of videofacet images original_videofacet_images = VideoFacet.get_videofacet_images(original_videofacet[0]) for image in original_videofacet_images: copied_image = ImageAsset.copy_image(image) copied_image.owner = user copied_image.organization = organization copied_image.save() imageasset_copy_record = ImageAssetCopyDetail.objects.create_imageasset_copy_record( original_org=original_org, partner=partner, original_imageasset=image, partner_imageasset=copied_image ) # add image to copied videofacet partner_videofacet.image_assets.add(copied_image) partner_videofacet.save() # create copy of videofacet documents original_videofacet_documents = VideoFacet.get_videofacet_documents(original_videofacet[0]) for document in original_videofacet_documents: copied_document = DocumentAsset.copy_document(document) copied_document.owner = user copied_document.organization = organization copied_document.save() documentasset_copy_record = DocumentAssetCopyDetail.objects.create_documentasset_copy_record( original_org=original_org, partner=partner, original_documentasset=document, partner_documentasset=copied_document ) # add document to copied videofacet partner_documentasset.document_assets.add(copied_document) partner_documentasset.save() # create copy of videofacet audio original_videofacet_audiofiles = VideoFacet.get_videofacet_audio(original_videofacet[0]) for audio in original_videofacet_audiofiles: copied_audio = AudioAsset.copy_audio(audio) copied_audio.owner = user copied_audio.organization = organization copied_audio.save() audioasset_copy_record = AudioAssetCopyDetail.objects.create_audioasset_copy_record( original_org=original_org, partner=partner, original_audioasset=audio, partner_audioasset=copied_audio ) # add audio to copied audiofacet partner_audioasset.audio_assets.add(copied_audio) partner_audioasset.save() # create copy of videofacet video original_videofacet_video = VideoFacet.get_videofacet_video(original_videofacet[0]) for video in original_videofacet_videos: copied_video = VideoAsset.copy_video(video) copied_video.owner = user copied_video.organization = organization copied_video.save() videoasset_copy_record = VideoAssetCopyDetail.objects.create_videoasset_copy_record( original_org=original_org, partner=partner, original_videoasset=video, partner_videoasset=copied_video ) # add video to copied videofacet partner_videoasset.video_assets.add(copied_video) partner_videoasset.save() return redirect('network_stories')
def story_detail(request, pk): """ The detail page for a story. Displays the story's planning notes, discussion, assets, share and collaboration status and sensivity status. From here the user can also see any facets, edit them and add new ones. """ story = get_object_or_404(Story, pk=pk) storynoteform = StoryNoteForm() storynotes = StoryNote.objects.filter(story=story) storycommentform = StoryCommentForm() storydiscussion = get_object_or_404(Discussion, id=story.discussion.id) storycomments = Comment.objects.filter(discussion=storydiscussion).order_by('-date') notes = StoryNote.objects.filter(story=story) images = Organization.get_org_image_library(request.user.organization) documents = Organization.get_org_document_library(request.user.organization) audiofiles = Organization.get_org_audio_library(request.user.organization) videos = Organization.get_org_video_library(request.user.organization) imageassetform=ImageAssetForm() documentassetform=DocumentAssetForm() audioassetform=AudioAssetForm() videoassetform=VideoAssetForm() # ------------------------------ # # webfacet # # ------------------------------ # # create these here for efficiency webform=WebFacetForm(request=request, story=story) webcommentform=WebFacetCommentForm() try: webfacet = get_object_or_404(WebFacet, story=story) # IF WEBFACET EXISTS DO ALL OF THE FOLLOWING webform = WebFacetForm(instance=webfacet, request=request, story=story) # retrieve discussion and comments webfacetdiscussion = get_object_or_404(Discussion, id=webfacet.discussion.id) webcomments = Comment.objects.filter(discussion=webfacetdiscussion).order_by('-date')[:3] # retrieve history webhistory = webfacet.edit_history.all()[:5] # update an existing webfacet if request.method == "POST": if 'webform' in request.POST: webform = WebFacetForm(data=request.POST, instance=webfacet, request=request, story=story) if webform.is_valid(): webform.save() # record action for activity stream action.send(request.user, verb="edited", action_object=webfacet) return redirect('story_detail', pk=story.pk) except: # except WebFacet.DoesNotExist: # display form and save a new webfacet webcomments = [] webhistory = [] if request.method == "POST": if 'webform' in request.POST: webform = WebFacetForm(data=request.POST, request=request, story=story) if webform.is_valid(): webfacet = webform.save(commit=False) webfacet.story = story webfacet.owner = request.user webfacet.organization = request.user.organization webfacet.creation_date = timezone.now() discussion = Discussion.objects.create_discussion("WF") webfacet.discussion = discussion webfacet.save() webform.save_m2m() # create history of the webfacet webhistory = webfacet.edit_history.all()[:5] # record action for activity stream action.send(request.user, verb="created", action_object=webfacet) return redirect('story_detail', pk=story.pk) # ------------------------------ # # printfacet # # ------------------------------ # # create these here for efficiency printform=PrintFacetForm(request=request, story=story) printcommentform=PrintFacetCommentForm() try: printfacet = get_object_or_404(PrintFacet, story=story) # IF PRINTFACET EXISTS DO ALL OF THE FOLLOWING printform = PrintFacetForm(instance=printfacet, request=request, story=story) # retrieve discussion and comments printfacetdiscussion = get_object_or_404(Discussion, id=printfacet.discussion.id) printcomments = Comment.objects.filter(discussion=printfacetdiscussion).order_by('-date')[:3] # retrieve history printhistory = printfacet.edit_history.all()[:5] # update an existing printfacet if request.method == "POST": if 'printform' in request.POST: printform = PrintFacetForm(data=request.POST, instance=printfacet, request=request, story=story) if printform.is_valid(): printform.save() # record action for activity stream action.send(request.user, verb="edited", action_object=printfacet) return redirect('story_detail', pk=story.pk) except: # except PrintFacet.DoesNotExist: # display form and save a new printfacet printcomments = [] printhistory = [] if request.method == "POST": if 'printform' in request.POST: printform = PrintFacetForm(data=request.POST, request=request, story=story) if printform.is_valid(): printfacet = printform.save(commit=False) printfacet.story = story printfacet.owner = request.user printfacet.organization = request.user.organization printfacet.creation_date = timezone.now() discussion = Discussion.objects.create_discussion("WF") printfacet.discussion = discussion printfacet.save() printform.save_m2m() # create history of the printfacet printhistory = printfacet.edit_history.all()[:5] # record action for activity stream action.send(request.user, verb="created", action_object=printfacet) return redirect('story_detail', pk=story.pk) # ------------------------------ # # audiofacet # # ------------------------------ # # create these here for efficiency audioform=AudioFacetForm(request=request, story=story) audiocommentform=AudioFacetCommentForm() try: audiofacet = get_object_or_404(AudioFacet, story=story) # IF AUDIOFACET EXISTS DO ALL OF THE FOLLOWING audioform = AudioFacetForm(instance=audiofacet, request=request, story=story) # retrieve discussion and comments audiofacetdiscussion = get_object_or_404(Discussion, id=audiofacet.discussion.id) audiocomments = Comment.objects.filter(discussion=audiofacetdiscussion).order_by('-date')[:3] # retrieve history audiohistory = audiofacet.edit_history.all()[:5] # update an existing audiofacet if request.method == "POST": if 'audioform' in request.POST: audioform = AudioFacetForm(data=request.POST, instance=audiofacet, request=request, story=story) if audioform.is_valid(): audioform.save() # record action for activity stream action.send(request.user, verb="edited", action_object=audiofacet) return redirect('story_detail', pk=story.pk) except: # except AudioFacet.DoesNotExist: # display form and save a new audiofacet audiocomments = [] audiohistory = [] if request.method == "POST": if 'audioform' in request.POST: audioform = AudioFacetForm(data=request.POST, request=request, story=story) if audioform.is_valid(): audiofacet = audioform.save(commit=False) audiofacet.story = story audiofacet.owner = request.user audiofacet.organization = request.user.organization audiofacet.creation_date = timezone.now() discussion = Discussion.objects.create_discussion("WF") audiofacet.discussion = discussion audiofacet.save() audioform.save_m2m() # create history of the audiofacet audiohistory = audiofacet.edit_history.all()[:5] # record action for activity stream action.send(request.user, verb="created", action_object=audiofacet) return redirect('story_detail', pk=story.pk) # ------------------------------ # # videofacet # # ------------------------------ # # create these here for efficiency videoform=VideoFacetForm(request=request, story=story) videocommentform=VideoFacetCommentForm() try: videofacet = get_object_or_404(VideoFacet, story=story) # IF WEBFACET EXISTS DO ALL OF THE FOLLOWING videoform = VideoFacetForm(instance=videofacet, request=request, story=story) # retrieve discussion and comments videofacetdiscussion = get_object_or_404(Discussion, id=videofacet.discussion.id) videocomments = Comment.objects.filter(discussion=videofacetdiscussion).order_by('-date')[:3] # retrieve history videohistory = videofacet.edit_history.all()[:5] # update an existing videofacet if request.method == "POST": if 'videoform' in request.POST: videoform = VideoFacetForm(data=request.POST, instance=videofacet, request=request, story=story) if videoform.is_valid(): videoform.save() # record action for activity stream action.send(request.user, verb="edited", action_object=videofacet) return redirect('story_detail', pk=story.pk) except: # except VideoFacet.DoesNotExist: # display form and save a new videofacet videocomments = [] videohistory = [] if request.method == "POST": if 'videoform' in request.POST: videoform = VideoFacetForm(data=request.POST, request=request, story=story) if videoform.is_valid(): videofacet = videoform.save(commit=False) videofacet.story = story videofacet.owner = request.user videofacet.organization = request.user.organization videofacet.creation_date = timezone.now() discussion = Discussion.objects.create_discussion("VF") videofacet.discussion = discussion videofacet.save() videoform.save_m2m() # create history of the videofacet videohistory = videofacet.edit_history.all()[:5] # record action for activity stream action.send(request.user, verb="created", action_object=videofacet) return redirect('story_detail', pk=story.pk) # ------------------------------ # # Download Options # # ------------------------------ # if story.webfacetstory.all(): webfacet = get_object_or_404(WebFacet, story=story) webfacet_images = WebFacet.get_webfacet_images(webfacet) webfacet_documents = WebFacet.get_webfacet_documents(webfacet) webfacet_audio = WebFacet.get_webfacet_audio(webfacet) webfacet_video = WebFacet.get_webfacet_video(webfacet) else: webfacet_images = [] webfacet_documents = [] webfacet_audio = [] webfacet_video = [] if story.printfacetstory.all(): printfacet = get_object_or_404(PrintFacet, story=story) printfacet_images = PrintFacet.get_printfacet_images(printfacet) printfacet_documents = PrintFacet.get_printfacet_documents(printfacet) printfacet_audio = PrintFacet.get_printfacet_audio(printfacet) printfacet_video = PrintFacet.get_printfacet_video(printfacet) else: printfacet_images = [] printfacet_documents = [] printfacet_audio = [] printfacet_video = [] if story.audiofacetstory.all(): audiofacet = get_object_or_404(AudioFacet, story=story) audiofacet_images = AudioFacet.get_audiofacet_images(audiofacet) audiofacet_documents = AudioFacet.get_audiofacet_documents(audiofacet) audiofacet_audio = AudioFacet.get_audiofacet_audio(audiofacet) audiofacet_video = AudioFacet.get_audiofacet_video(audiofacet) else: audiofacet_images = [] audiofacet_documents = [] audiofacet_audio = [] audiofacet_video = [] if story.videofacetstory.all(): videofacet = get_object_or_404(VideoFacet, story=story) videofacet_images = VideoFacet.get_videofacet_images(videofacet) videofacet_documents = VideoFacet.get_videofacet_documents(videofacet) videofacet_audio = VideoFacet.get_videofacet_audio(videofacet) videofacet_video = VideoFacet.get_videofacet_video(videofacet) else: videofacet_images = [] videofacet_documents = [] videofacet_audio = [] videofacet_video = [] storydownloadform = StoryDownloadForm(story=story) return render(request, 'editorial/storydetail.html', { 'story': story, 'storydownloadform': storydownloadform, 'storynoteform': storynoteform, 'storynotes': storynotes, 'storycommentform': storycommentform, 'storycomments': storycomments, 'webform': webform, 'webcomments': webcomments, 'webhistory': webhistory, 'webcommentform': webcommentform, 'printform': printform, 'printcomments': printcomments, 'printhistory': printhistory, 'printcommentform': printcommentform, 'audioform': audioform, 'audiocomments': audiocomments, 'audiohistory': audiohistory, 'audiocommentform': audiocommentform, 'videoform': videoform, 'videocomments': videocomments, 'videohistory': videohistory, 'videocommentform': videocommentform, 'images': images, 'imageassetform': imageassetform, 'documentassetform': documentassetform, 'audioassetform': audioassetform, 'videoassetform': videoassetform, 'webfacet_images': webfacet_images, 'printfacet_images': printfacet_images, 'audiofacet_images': audiofacet_images, 'videofacet_images': videofacet_images, 'documents': documents, 'webfacet_documents': webfacet_documents, 'printfacet_documents': printfacet_documents, 'audiofacet_documents': audiofacet_documents, 'videofacet_documents': videofacet_documents, 'audiofiles': audiofiles, 'webfacet_audio': webfacet_audio, 'printfacet_audio': printfacet_audio, 'audiofacet_audio': audiofacet_audio, 'videofacet_audio': videofacet_audio, 'videos': videos, 'webfacet_video': webfacet_video, 'printfacet_video': printfacet_video, 'audiofacet_video': audiofacet_video, 'videofacet_video': videofacet_video, })
def create_download(request, pk): """ Process download form to collect objects and create download file.""" # get the story and associated facets no matter what options are selected story_id = request.POST.get('story') story = get_object_or_404(Story, id=pk) story_txt = Story.get_story_download(story) select_all_images = [] image_txt = "" select_all_documents = [] document_txt = "" select_all_audio = [] audio_txt = "" if story.webfacetstory.all(): webfacet = story.webfacetstory.all()[0] webfacet_images = WebFacet.get_webfacet_images(webfacet) webfacet_documents = WebFacet.get_webfacet_documents(webfacet) webfacet_audio = WebFacet.get_webfacet_audio(webfacet) select_all_images.extend(webfacet_images) select_all_documents.extend(webfacet_documents) select_all_audio.extend(webfacet_audio) webfacet_txt = WebFacet.get_webfacet_download(webfacet) if story.printfacetstory.all(): printfacet = story.printfacetstory.all()[0] printfacet_images = PrintFacet.get_printfacet_images(printfacet) printfacet_documents = PrintFacet.get_printfacet_documents(printfacet) printfacet_audio = PrintFacet.get_printfacet_audio(printfacet) select_all_images.extend(printfacet_images) select_all_documents.extend(printfacet_documents) select_all_audio.extend(printfacet_audio) printfacet_txt = PrintFacet.get_printfacet_download(printfacet) if story.audiofacetstory.all(): audiofacet = story.audiofacetstory.all()[0] audiofacet_images = AudioFacet.get_audiofacet_images(audiofacet) audiofacet_documents = AudioFacet.get_audiofacet_documents(audiofacet) audiofacet_audio = AudioFacet.get_audiofacet_audio(audiofacet) select_all_images.extend(audiofacet_images) select_all_documents.extend(audiofacet_documents) select_all_audio.extend(audiofacet_audio) audiofacet_txt = AudioFacet.get_audiofacet_download(audiofacet) if story.videofacetstory.all(): videofacet = story.videofacetstory.all()[0] videofacet_images = VideoFacet.get_videofacet_images(videofacet) videofacet_documents = VideoFacet.get_videofacet_documents(videofacet) videofacet_audio = VideoFacet.get_videofacet_audio(videofacet) select_all_images.extend(videofacet_images) select_all_documents.extend(videofacet_documents) select_all_audio.extend(videofacet_audio) videofacet_txt = VideoFacet.get_videofacet_download(videofacet) # Set up zip file fp = StringIO() z = ZipFile(fp, mode="w") # Always Zip up story meta z.writestr("story.txt", story_txt) # ------------------------------ # # IF SELECT ALL # # ------------------------------ # # if select_all is chosen, then all items will be downloaded select_all = request.POST.get('select_all') print "select all: ", select_all if select_all: # Zip up all facets and assets including story metadata if story.webfacetstory.all(): z.writestr("webstory.txt", webfacet_txt) if story.printfacetstory.all(): z.writestr("printstory.txt", printfacet_txt) if story.audiofacetstory.all(): z.writestr("audiostory.txt", audiofacet_txt) if story.videofacetstory.all(): z.writestr("videostory.txt", videofacet_txt) for image in select_all_images: z.writestr("{image}.jpg".format(image=image.asset_title), image.photo.read()) new_info = ImageAsset.get_image_download_info(image) image_txt += new_info for document in select_all_documents: if document.doc_type == "PDF": z.writestr("{document}.pdf".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "WORD": z.writestr("{document}.docx".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "TXT": z.writestr("{document}.txt".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "CSV": z.writestr("{document}.csv".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "XLS": z.writestr("{document}.xls".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info for audiofile in select_all_audio: if audiofile.audio_type == "MP3": z.writestr("{audiofile}.mp3".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info if audiofile.audio_type == "WAV": z.writestr("{audiofile}.wav".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info # user can also select download all items associated with certain facets # ------------------------------ # # IF WEBFACET ALL # # ------------------------------ # webfacet_sa = request.POST.get('webfacet_sa') print "WSA: ", webfacet_sa if webfacet_sa: # Zip up story meta, webfacet content and webfacet images if story.webfacetstory.all(): z.writestr("webstory.txt", webfacet_txt) for image in webfacet_images: z.writestr("{image}.jpg".format(image=image.asset_title), image.photo.read()) new_info = ImageAsset.get_image_download_info(image) image_txt += new_info for document in webfacet_documents: if document.doc_type == "PDF": z.writestr("{document}.pdf".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "WORD": z.writestr("{document}.docx".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "TXT": z.writestr("{document}.txt".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "CSV": z.writestr("{document}.csv".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "XLS": z.writestr("{document}.xls".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info for audiofile in webfacet_audio: if audiofile.audio_type == "MP3": z.writestr("{audiofile}.mp3".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info if audiofile.audio_type == "WAV": z.writestr("{audiofile}.wav".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info # ------------------------------ # # IF PRINTFACET ALL # # ------------------------------ # printfacet_sa = request.POST.get('printfacet_sa') print "PSA: ", printfacet_sa if printfacet_sa: # Zip up story meta, printfacet content and printfacet images if story.printfacetstory.all(): z.writestr("printstory.txt", printfacet_txt) for image in printfacet_images: z.writestr("{image}.jpg".format(image=image.asset_title), image.photo.read()) new_info = ImageAsset.get_image_download_info(image) image_txt += new_info for document in printfacet_documents: if document.doc_type == "PDF": z.writestr("{document}.pdf".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "WORD": z.writestr("{document}.docx".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "TXT": z.writestr("{document}.txt".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "CSV": z.writestr("{document}.csv".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "XLS": z.writestr("{document}.xls".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info for audiofile in printfacet_audio: if audiofile.audio_type == "MP3": z.writestr("{audiofile}.mp3".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info if audiofile.audio_type == "WAV": z.writestr("{audiofile}.wav".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info # ------------------------------ # # IF AUDIOFACET ALL # # ------------------------------ # audiofacet_sa = request.POST.get('audiofacet_sa') print "ASA: ", audiofacet_sa if audiofacet_sa: # Zip up story meta, audiofacet content and audiofacet images if story.audiofacetstory.all(): z.writestr("audiostory.txt", audiofacet_txt) for image in audiofacet_images: z.writestr("{image}.jpg".format(image=image.asset_title), image.photo.read()) new_info = ImageAsset.get_image_download_info(image) image_txt += new_info for document in audiofacet_documents: if document.doc_type == "PDF": z.writestr("{document}.pdf".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "WORD": z.writestr("{document}.docx".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "TXT": z.writestr("{document}.txt".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "CSV": z.writestr("{document}.csv".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "XLS": z.writestr("{document}.xls".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info for audiofile in audiofacet_audio: if audiofile.audio_type == "MP3": z.writestr("{audiofile}.mp3".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info if audiofile.audio_type == "WAV": z.writestr("{audiofile}.wav".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info # ------------------------------ # # IF VIDEOFACET ALL # # ------------------------------ # videofacet_sa = request.POST.get('videofacet_sa') print "VDS: ", videofacet_sa if videofacet_sa: # Zip up story meta, audiofacet content and audiofacet images if story.videofacetstory.all(): z.writestr("videostory.txt", videofacet_txt) for image in videofacet_images: z.writestr("{image}.jpg".format(image=image.asset_title), image.photo.read()) new_info = ImageAsset.get_image_download_info(image) image_txt += new_info for document in videofacet_documents: if document.doc_type == "PDF": z.writestr("{document}.pdf".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "WORD": z.writestr("{document}.docx".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "TXT": z.writestr("{document}.txt".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "CSV": z.writestr("{document}.csv".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "XLS": z.writestr("{document}.xls".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info for audiofile in videofacet_audio: if audiofile.audio_type == "MP3": z.writestr("{audiofile}.mp3".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info if audiofile.audio_type == "WAV": z.writestr("{audiofile}.wav".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info # if not select all OR facet select all, then user chooses the facet and the images # ------------------------------ # # IF WEBFACET SPECIFIC # # ------------------------------ # webfacet_only = request.POST.get('webfacet') if webfacet_only: z.writestr("webstory.txt", webfacet_txt) # ------------------------------ # # IF PRINTFACET SPECIFIC # # ------------------------------ # printfacet_only = request.POST.get('printfacet') if printfacet_only: z.writestr("printstory.txt", printfacet_txt) # ------------------------------ # # IF AUDIOFACET SPECIFIC # # ------------------------------ # audiofacet_only = request.POST.get('audiofacet') if audiofacet_only: z.writestr("audiostory.txt", audiofacet_txt) # ------------------------------ # # IF VIDEOFACET SPECIFIC # # ------------------------------ # videofacet_only = request.POST.get('videofacet') if videofacet_only: z.writestr("videostory.txt", videofacet_txt) # ------------------------------ # # IF SPECIFIC IMAGES # # ------------------------------ # # if not select all or by facet, then user chooses specific images images = request.POST.getlist('images') images = ImageAsset.objects.filter(pk__in=images) print "Images: ", images if images: for image in images: z.writestr("{image}.jpg".format(image=image.asset_title), image.photo.read()) new_info = ImageAsset.get_image_download_info(image) image_txt += new_info # ------------------------------ # # IF SPECIFIC DOCUMENTS # # ------------------------------ # # if not select all or by facet, then user chooses specific documents documents = request.POST.getlist('documents') documents = DocumentAsset.objects.filter(pk__in=documents) print "Documents: ", documents if documents: for document in documents: if document.doc_type == "PDF": z.writestr("{document}.pdf".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "WORD": z.writestr("{document}.docx".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "TXT": z.writestr("{document}.txt".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "CSV": z.writestr("{document}.csv".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info if document.doc_type == "XLS": z.writestr("{document}.xls".format(document=document.asset_title), document.document.read()) new_info = DocumentAsset.get_document_download_info(document) document_txt += new_info # ------------------------------ # # IF SPECIFIC AUDIO # # ------------------------------ # # if not select all or by facet, then user chooses specific audiofiles audiofiles = request.POST.getlist('audiofiles') audiofiles = AudioAsset.objects.filter(pk__in=audiofiles) print "Audiofiles: ", audiofiles if audiofiles: for audiofile in audiofiles: if audiofile.audio_type == "MP3": z.writestr("{audiofile}.mp3".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info if audiofile.audio_type == "WAV": z.writestr("{audiofile}.wav".format(audiofile=document.asset_title), audiofile.audio.read()) new_info = AudioAsset.get_audio_download_info(audiofile) audio_txt += new_info # ------------------------------ # # Create download # # ------------------------------ # #Take the final version of image_txt and write it. z.writestr("image.txt", image_txt) z.writestr("document.txt", document_txt) z.writestr("audio.txt", audio_txt) z.close() fp.seek(0) response = HttpResponse(fp, content_type='application/zip') fp.close() return response