Beispiel #1
0
 def setUp(self):
     self.user = UserFactory()
     self.client = APIClient()
     self.client.force_authenticate(user=self.user)
     self.list_url = reverse('api:activity-list')
     # create a bunch of action objects of various types
     self.team = TeamFactory()
     self.team_member = TeamMemberFactory(user=self.user, team=self.team)
     self.video = VideoFactory()
     TeamVideoFactory(video=self.video, team=self.team)
     self.user2 = UserFactory()
     Action.create_video_handler(self.video, self.user)
     self.video.title = 'new-title'
     self.video.save()
     Action.change_title_handler(self.video, self.user)
     # creating comment will automatically create the action object
     Comment(content_object=self.video,
             user=self.user,
             content="Test Comment").save()
     v = pipeline.add_subtitles(self.video, 'en', None, author=self.user)
     Action.create_caption_handler(v, datetime.now())
     Action.create_approved_video_handler(v, self.user2)
     Action.create_rejected_video_handler(v, self.user2)
     Action.create_new_member_handler(self.team_member)
     Action.create_member_left_handler(self.team, self.user)
     self.action_qs = Action.objects.for_user(self.user)
Beispiel #2
0
    def finished_subtitles(self, request, draft_pk, packets, completed=None):
        draft = models.SubtitleDraft.objects.get(pk=draft_pk)
        if not request.user.is_authenticated():
            return {'response': 'not_logged_in'}
        if not draft.language.can_writelock(request):
            return {"response": "unlockable"}
        if not draft.matches_request(request):
            return {"response": "does not match request"}

        self._save_packets(draft, packets)

        new_version, new_subs = self._create_version_from_draft(
            draft, request.user)

        if len(new_subs) == 0 and draft.language.latest_version() is None:
            should_save = False
        else:
            should_save = new_version.time_change > 0 or new_version.text_change > 0
        if should_save:
            new_version.save()
            for subtitle in new_subs:
                subtitle.version = new_version
                subtitle.save()
            language = new_version.language
            language.update_complete_state()
            language.is_forked = new_version.is_forked
            language.release_writelock()
            if not draft.is_dependent() and completed is not None:
                language.is_complete = completed
            language.save()
            new_version.update_percent_done()
            if language.is_original:
                language.video.update_complete_state()
                language.video.save()
            from videos.models import Action
            Action.create_caption_handler(new_version)

        return {
            "response": "ok",
            "last_saved_packet": draft.last_saved_packet,
            "drop_down_contents":
            self._drop_down_contents(draft.video.video_id)
        }
Beispiel #3
0
    def finished_subtitles(self, request, draft_pk, packets, completed=None):
        draft = models.SubtitleDraft.objects.get(pk=draft_pk)
        if not request.user.is_authenticated():
            return { 'response': 'not_logged_in' }
        if not draft.language.can_writelock(request):
            return { "response" : "unlockable" }
        if not draft.matches_request(request):
            return { "response" : "does not match request" }

        self._save_packets(draft, packets)

        new_version, new_subs = self._create_version_from_draft(draft, request.user)

        if len(new_subs) == 0 and draft.language.latest_version() is None:
            should_save = False
        else:
            should_save = new_version.time_change > 0 or new_version.text_change > 0
        if should_save:
            new_version.save()
            for subtitle in new_subs:
                subtitle.version = new_version
                subtitle.save()
            language = new_version.language
            language.update_complete_state()
            language.is_forked = new_version.is_forked
            language.release_writelock()
            if not draft.is_dependent() and completed is not None:
                language.is_complete = completed
            language.save()
            new_version.update_percent_done()
            if language.is_original:
                language.video.update_complete_state()
                language.video.save()
            from videos.models import Action
            Action.create_caption_handler(new_version)

        return { "response" : "ok",
                 "last_saved_packet": draft.last_saved_packet,
                 "drop_down_contents" : 
                     self._drop_down_contents(draft.video.video_id) }
Beispiel #4
0
    def finished_subtitles(self, request, video_id, packets, language_code=None):
        if not request.user.is_authenticated():
            return { 'response': 'not_logged_in' }

        from videos.models import Action
        
        video = models.Video.objects.get(video_id=video_id)
        language = video.subtitle_language(language_code)
        if not language.can_writelock(request):
            return { "response" : "unlockable" }
        last_version = language.latest_version()
        self._save_packets(last_version, packets)
        last_version.finished = True
        last_version.user = request.user
        last_version.save()
        language = models.SubtitleLanguage.objects.get(pk=language.pk)
        language.release_writelock()
        language.save()

        Action.create_caption_handler(last_version)
        return { "response" : "ok",
                 "last_saved_packet": last_version.last_saved_packet,
                 "drop_down_contents" : 
                     self._drop_down_contents(request.user, video) }