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